Подключение ультразвукового анемометра к Arduino для измерения скорости и направления ветра


В этом уроке мы подключим ультразвуковой анемометр к Arduino для измерения скорости и направления ветра. Ультразвуковой анемометр использует ультразвуковые волны для измерения скорости и направления ветра. В отличие от традиционных механических анемометров, которые используют вращающиеся чашки или лопасти для измерения ветра, ультразвуковые анемометры не имеют движущихся частей. Эта особенность делает их прочными, надежными и хорошо подходящими для различных сложных условий.

Подключение ультразвукового анемометра к Arduino для измерения скорости и направления ветра

Термин «анемометр» происходит от греческого слова «анемос», что означает «ветер». Ультразвуковые анемометры широко используются в таких областях как метеорология, изучение энергии ветра, навигация и исследования. Эти приборы особенно полезны в условиях, требующих высокой точности и сбора данных в реальном времени.

В этом проекте мы будем использовать ультразвуковой анемометр Renkeer, специально разработанный для наружных измерений. Датчик может измерять скорость ветра в диапазоне от 0 до 40 м/с и направление ветра от 0 до 360° с высокой точностью. Анемометр работает на маломощном чипе, потребляя всего 0,12 Вт, что делает его пригодным для установок с питанием от солнечных батарей или аккумуляторов.

Тестирование работы нашего проекта в реальных условиях

Для сопряжения анемометра с платой Arduino мы будем использовать протокол RS485. Модуль RS485 будет способствовать передаче данных с датчика на плату Arduino. Затем данные о скорости и направлении ветра будут отображаться на ЖК-экране 16×2, подключенном к Arduino.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. Ультразвуковой анемометр (купить на AliExpress).
  3. Модуль преобразования логики TTL в RS485 (модуль MAX485) (купить на AliExpress).
  4. ЖК дисплей 16x2 с модулем I2C (купить на AliExpress).
  5. Блок питания 12 В.
  6. Макетная плата.
  7. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Ультразвуковой датчик анемометра

Ультразвуковой анемометр — это специализированный прибор, который измеряет скорость и направление ветра, количественно выражая их в метрах в секунду (м/с) и градусах (°) соответственно. Ветровые условия могут значительно меняться на коротких расстояниях из-за таких факторов, как время суток, географическое положение и препятствия, такие как здания или рельеф местности.

Расположение преобразователей на ультразвуковом анемометре

Ультразвуковые анемометры измеряют скорость ветра, определяя разницу во времени, необходимое ультразвуковому импульсу для прохождения в каждом направлении между парами преобразователей, вызванную движением воздуха. Этот метод позволяет проводить точные измерения даже при низкой скорости ветра, поскольку не требуется преодолевать механическую инерцию.

Принцип работы ультразвукового анемометра

Ультразвуковой анемометр Renkeer

Ультразвуковой анемометр Renkeer — это инновационное устройство, разработанное для точного измерения скорости и направления ветра на открытом воздухе. Он отличается компактной конструкцией, отсутствием подвижных частей и высоким уровнем защиты, что делает его исключительно прочным и пригодным для суровых условий.

Ультразвуковой анемометр Renkeer

Внутри анемометр использует маломощные чипы, сохраняя потребление энергии на уровне эффективных 0,12 Вт. Это делает его идеальным выбором для установок с питанием от солнечных батарей или аккумуляторов, особенно в условиях, где требуется надежный и долгосрочный сбор данных. Технология устройства обеспечивает компактную структуру, дополнительно дополненную дополнительными модулями для измерения температуры и давления воздуха. Анемометр предлагает ряд выходных сигналов, включая 420 мА, 05 В, 0~10 В и RS485, предоставляя пользователям гибкие возможности интерфейса.

Размеры и основные компоненты ультразвукового анемометра Renkeer

Корпус анемометра изготовлен из высокопрочного материала ABS, что повышает его адаптивность к использованию в различных условиях окружающей среды. Благодаря сочетанию точности, долговечности и доступности ультразвуковой анемометр Renkeer является ценным инструментом для тех, кто хочет точно измерять ветровые условия.

Технические характеристики ультразвукового анемометра Renkeer

  • Электропитание: 10-30 В постоянного тока.
  • Диапазон скорости ветра: 0~40 м/с.
  • Диапазон направления ветра : 0~360°.
  • Точность измерения скорости ветра: ±0,5+2%FS (60%RH,25℃).
  • Точность измерения направления ветра: ±3°(60%RH,25℃).
  • Разрешение скорости ветра: 0,01 м/с.
  • Разрешение направления ветра: 1°.
  • Рабочая среда : -40~80℃, 0~95%RH.
  • Ветроустойчивость: 75 м/с.
  • Время отклика: 1 с.
  • Уровень защиты: IP65.
  • Выходной сигнал: 4~20 мА, 0~5 В, 0~10 В, RS485.
  • Начальная скорость ветра: 0,5 м/с.

Схема и распиновка датчика

Ниже представлена ​​внутренняя схема ультразвукового анемометрического датчика.

Ультразвуковой анемометрический датчик со снятой верхней крышкой

Ультразвуковой анемометр работает по протоколу RS485 и, следовательно, может легко взаимодействовать с Arduino, ESP32 или любыми другими микроконтроллерами, используюя модуль MAX485.

Вот 4 провода для датчика.

Распиновка ультразвукового анемометра

  • Коричневый провод: VCC (10-30 В).
  • Черный провод: GND.
  • Желтый провод: RS485-A.
  • Синий провод: RS485-B.

Определение формата кадра данных и протокол связи

Определение формата кадра данных

При использовании протокола связи Modbus-RTU формат выглядит следующим образом:

  • Начальная структура ≥ 4 байта
  • Код адреса = 1 байт
  • Код функции = 1 байт
  • Область данных = N байт
  • Проверка ошибок = 16-битный CRC-код
  • Время до конца структуры ≥ 4 байта

Структура фрейма запроса хоста:

Код адреса Код функции Адрес регистрации старта Длина регистра Проверка  младшего бита кода Проверка старшего бита кода
1 байт 1 байт 2 байта 2 байта 1 байт 1 байт

Структура кадра ответа ведомого устройства:

Код адреса Код функции Эффективные байты Область данных 1 Область данных 2 Область данных N Проверка  младшего байта кода Проверка старшего байта кода
1 байт 1 байт 1 байт 2 байта 2 байта 2 байта 1 байт 1 байт

Теперь рассмотрим как считать с анемометра значения скорости и направления ветра.

Считывание значений скорости и направления ветра

Кадр запроса

Код адреса Код функции Первоначальный адрес Длина данных Проверка  младшего бита кода Проверка старшего бита кода
0x01 0x03 0x00 0x00 0x00 0x02 0xC4 0x0B

Кадр ответа:

Код адреса Код функции Возвращает количество допустимых байтов Значение скорости ветра в реальном времени Значение направления ветра в реальном времени Проверка  младшего бита кода Проверка старшего бита кода
0x01 0x03 0x04 0x00 0x7D 0x00 0x5A 0xEA 0x10

Скорость и направление ветра из ответного кадра можно рассчитать следующим образом:

007D (шестнадцатеричное) =125=> Скорость ветра=1,25 м/с

005A (шестнадцатеричное) =90=> Направление ветра=90°с.ш.

Схема проекта

Схема подключения ультразвукового анемометра к плате Arduino представлена на следующем рисунке.

Схема подключения ультразвукового анемометра к плате Arduino

Ультразвуковой анемометр взаимодействует с микроконтроллером по протоколу RS485. Поэтому для этого проекта мы использовали модуль MAX485 — это популярный чип приемопередатчика RS-485, обычно используемый для последовательной связи. При сопряжении MAX485 с Arduino вы, как правило, будете иметь дело с полудуплексной связью, когда передача и прием данных происходят в разное время.

Модуль MAX485

Вот схема соединений между MAX485 и Arduino.

  • VCC (MAX485) -> 5 В (Arduino).
  • Земля (MAX485) -> Земля (Arduino).
  • RO (MAX485) -> 2 (цифровой контакт Arduino).
  • DI (MAX485) -> 3 (цифровой контакт Arduino).
  • RE (MAX485) -> 8 (цифровой контакт Arduino).
  • DE (MAX485) -> 7 (цифровой контакт Arduino).

Собранная на макетной плате конструкция проекта

Схема соединений между MAX485 и датчиком анемометра:

  • VCC  -> 12 В (Анемометр).
  • GND  -> GND (Анемометр).
  • A (MAX485) -> Контакт анемометра A (желтый цвет).
  • B (MAX485) -> Контакт анемометра B (синий цвет).

Вы можете использовать макетную плату для сборки и перемычки/соединительные провода для соединения датчика и модуля RS485 с Arduino. Ультразвуковой анемометр требует 12 В для работы. Вы можете использовать батарею 12 В или источник питания постоянного тока 12 В.

Исходный код программы

После сборки датчика согласно схеме выше давайте перейдем к коду программы этого проекта. Согласно таблице выше, фрейм запроса для получения шестнадцатеричного показания датчика выглядит следующим образом:

0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0xC4, 0x0B

Датчик передает данные со скоростью 4800 бод. Мы установили тот же параметр в коде чтобы получить требуемые показания.

Скопируйте следующий код и вставьте его в Arduino IDE.

Тестирование работы проекта

Чтобы загрузить код на плату Arduino Nano, выберите Arduino Nano из списка плат. Затем выберите COM-порт. Наконец, нажмите кнопку загрузки, чтобы загрузить код.

После загрузки кода откройте последовательный монитор, и вы увидите следующие показания.

Тестирование работы проекта при отсутствии ветра

Скорость и направление ветра будут равны нулю, когда ветер не дует.

Когда дует ветер, отображаются значения скорости ветра в км/ч и направления ветра в градусах.

Тестирование работы проекта при наличии ветра

Скорость и направление ветра, измеряемые ультразвуковым анемометром, зависят от множества факторов. К ним относятся время суток, поскольку ветровые режимы могут меняться с утра до вечера, и географические элементы, такие как наличие холмов, долин или искусственных сооружений, которые могут направлять или препятствовать потоку ветра.

Добавление к проекту ЖК-дисплея

Теперь давайте подключим ультразвуковой анемометр и ЖК-дисплей 16×2 I2C к Arduino и посмотрим на значение скорости и направления ветра на ЖК-дисплее.

Аппаратное подключение

Ниже представлена ​​схема подключения для добавления дополнительного подключения ЖК-дисплея.

Схема подключения ультразвукового анемометра и ЖК-дисплея 16×2 I2C к Arduino

Подключения датчика анемометра и RS485 соединения остаются такими же, как указано выше. Только добавляются соединения для ЖК-дисплея следующим образом:

  • VCC (ЖК-дисплей)  -> 5 В (Arduino)
  • GND (ЖК-дисплей)  -> GND (Arduino)
  • SDA (ЖК-дисплей) -> A4 (Arduino)
  • SCL (ЖК-дисплей) -> A5 (Arduino)

Собранная конструкция проекта с ЖК-дисплеем и аккумулятором на открытом воздухе

Исходный код программы

Для компиляции кода требуется библиотека I2C LCD. Поэтому скачайте эту библиотеку и добавьте ее в папку с библиотеками Arduino.

Теперь скопируйте следующий код и вставьте его в Arduino IDE.

Тестирование и результаты

Загрузите код на плату Arduino Nano. Теперь код Arduino готов выводить показания скорости и направления ветра на ЖК-дисплей

Тестирование работы проекта с ЖК дисплеем (часть 1)

Скорость и направление ветра изменяются в зависимости от скорости дующего ветра.

Тестирование работы проекта с ЖК дисплеем (часть 2)

Кроме того, географический регион сам по себе может влиять на общие ветровые условия: некоторые районы более подвержены постоянным ветрам, а другие — переменным порывам.

Видео, демонстрирующее работу проекта

Ссылка на видео на YouTube

Заключение

В этом уроке мы представили исчерпывающее руководство по сопряжению ультразвукового анемометра Renkeer с Arduino для измерения скорости и направления ветра. Используя протокол RS485, мы успешно передали данные датчика на Arduino и отобразили их на ЖК-экране 16×2.

Преимущества использования ультразвукового анемометра по сравнению с традиционными механическими вариантами были очевидны в его долговечности, надежности и приспособляемости к различным условиям окружающей среды. Его низкое энергопотребление 0,12 Вт также сделало его идеальным для установок с питанием от солнечных батарей или аккумуляторов. Благодаря высокоточным измерениям в диапазоне от 0 до 40 м/с для скорости ветра и от 0 до 360° для направления ветра, ультразвуковой анемометр Renkeer оказался отличным выбором для тех, кто хотел точно изучать или контролировать условия ветра.

(Проголосуй первым!)
Загрузка...
38 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *