Анемометр для arduino своими руками

Измеряем скорость ветра с помощью анемометра CG-Anem на arduino, esp32 или esp8266.

CG_anem – это цифровой анемометр от компании ClimatGuard.

Я раньше не видел такой реализации анемометров. Видел импульсные-аналоговые, у которых крутятся по кругу лопасти от ветра и таким образом вырабатываются импульсы. Подсчитав которые мы можем высчитать скорость ветра.

Видел ультразвуковые анемометры. там стоят несколько ультразвуковых датчиков и каким-то образом определяют скорость ветра ( я если честно не вдавался в подробности, так как они довольно дорогие).

Но у героя этой статьи другой принцип работы. У него два датчика температуры. Эти датчики должны стоять перпендикулярно потоку воздуха. То-есть сначала должен воздух проходить через один датчик температуры, а потом уже через второй. Таким образом у нас получается разность температур между датчиками температуры. Она очень мизерная, но этого достаточно. И по формуле Стейнхарта-Харта высчитывается скорость ветра

Технические характеристики анемометра:

Сердцем модуля cg_anem служит микроконтроллер atmega8a. Это младший брат сердца ардуино atmega328p.

С завода этот микроконтроллер запрограммирован и откалиброван так, чтобы измерять верные показания скорости потока воздуха. И все расчеты по формуле проводит он же. Тем самым выдавая по шине i2c уже готовые значения скорости потока воздуха в m/s, температуру и количество прошедшего воздуха через датчик в m3/hour (метрах кубических в час).

Так-как нам приходят с датчика готовые уже показания и ненужно никакие импульсы подсчитывать и переводить их во что-то. Нам останется больше свободной памяти для конечного контроллера, который будем использовать для получения показаний и собственно меньше времени на программирования, так как не будем отвлекаться на расчеты.

Вот элементарный пример, я недавно разбирался с датчиком пыли dsm501a. И у него выходы импульсные. И чуть изменяешь код, добавляя всякие задержки, так сразу показания уже начинают считаться некорректно.

Теперь переходим к коду.

Для анемометра cg_anem есть готовая библиотека для arduino ide. Ее собственно можно скачать из стандартных библиотек, найдя ее по поиску введя “cg-anem”.

С библиотекой идет стандартный пример “i2canem_test”, который можно загрузить как в arduino, так и в esp32 или esp8266. И показания будем получать в монитор порта:

Но так-как у меня есть сервер умного дома home assistan. Я бы хотел показания естественно получать в него.

По этому я используя библиотеку cganem.h сделал программу, которая будет отправлять показания скорости ветра в m/s по mqtt. Остальные показания я решил не брать. Так как они мне не очень интересны.

Программа сделана под esp32. Под остальные контроллеры надо переделывать программу.

Программу готовую которая отправляет скорость ветра по mqtt можно скачать отсюда: https://disk.yandex.ru/d/BOA_iPrgSiGquA

Из основных параметров в скетче Вам нужно проставить только:

SSID и Пароль от wi-fi сети:

#define WIFI_SSID “NETGEAR”
#define WIFI_PASSWORD “14251251251”

Ip адрес вашего MQTT сервера:

#define MQTT_HOST IPAddress(192, 168, 31, 145)

Топик куда будут отправляться данные:

#define MQTT_PUB_TEMP “esp32/anem/ms”

Пароль от mqtt сервера:

Ну а в Home Assistant у Вас должна быт установлена интеграция “core-mosquitto”

На сервере Home Assistantв файле Configuration.yaml Сделаем следующий блок:

Обратите внимание, что Sensor: в файле Configuration.yaml один, и в этом блоке прописываются все сенсоры. Так что если он у Вас там уже присутствует, второй раз “sensor:” добавлять ненужно, а сразу там пишете блок mqtt, но с отступами, как показано у меня в примере.

После добавления кода перезапускаем сервер Home Assistant и у Вас появится сенсор с именем “CG_anem”.

Я его добавил на главный экран и вот как он выглядит:

Все проделанные действия я еще показал на видео:

Источник

Измеритель скорости ветра (анемометр) на Arduino

Измеритель скорости ветра, также известный как анемометр (Anemometer) является обязательным элементом профессиональных метеостанций. И если в сети интернет можно найти огромное количество проектов метеостанций (и на нашем сайте мы рассматривали их создание на основе плат Arduino и Raspberry Pi, а также модуля ESP8266), позволяющих производить измерение температуры и влажности окружающего воздуха, а также и атмосферного давления, то проектов измерителей скорости ветра (анемометров) в сети значительно меньше. Поэтому и решил перевести данный проект анемометра для нашего сайта (ссылка на оригинал приведена в конце статьи).

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

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

  1. Плата Arduino Uno (купить на AliExpress).
  2. Маленький электродвигатель постоянного тока.
  3. Светодиод (купить на AliExpress).

Общие принципы работы проекта

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

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

Автор проекта использовал двигатель постоянного тока из радиоуправляемой машины, подсоединил светодиод к двум проводам двигателя постоянного тока и крутанул вал двигателя. В результате этого светодиод загорелся!

Затем он подключил контакт +ve двигателя постоянного тока к аналоговому контакту A0 платы Arduino, а землю (ground) двигателя – к земле платы Arduino.

После этого он приступил к сборке конструкции проекты, этапы которой запечатлены на рисунках ниже.

Он взял у своей жены 4 одинаковые пластиковые ложки-совка и склеил две из них вместе. Затем он приклеил эти две ложки перпендикулярно друг другу на двух концах вала двигателя. Это и явилось основой рассматриваемого нами измерителя скорости ветра (анемометра).

Затем он установил этот узел на длинный карандаш и закрепил его на маленькой подставке для карандашей. Он принял меры для установки платы Arduino на этом стенде. Также он добавил светодиод на вывод PWM 9 платы Arduino, чтобы зажигать его при вращении ветра. Схему проекта можно скачать по следующей ссылке.

Возможные способы улучшения проекта

Поскольку двигатель 5 В использует сравнительно мощные магниты, то для его вращения требуется более сильный ветер. Поэтому для создания анемометра желательно использовать более легкий двигатель, подобный тому, который используется в дронах. Внутри него должны быть постоянные магниты.

Двигатель с низкими оборотами будет генерировать более высокое напряжение при низких скоростях вращения. То есть желательно использовать подобные двигатели для создания нашего анемометра. Однако, используя более крупные шестерни на валу вентилятора, который приводит в движение вал двигателя, мы можем заставить двигатель постоянного тока вращаться быстрее при более низких скоростях ветра.

Низковольтный двигатель постоянного тока, такой как двигатель 3 В, является более безопасным для нашего проекта измерителя скорости ветра, так как максимальное создаваемое им напряжение не будет достигать величины 5 В даже при максимальной скорости ветра и, следовательно, не повредит плату Arduino.

Исходный код программы (скетча)

В коде программы мы будем считывать аналоговое напряжение с контакта A0 платы Arduino и строить его график. Данный график будет строиться с помощью соответствующей опции монитора последовательной связи Arduino IDE (Arduino’s graph plotter).

Источник

DIY термоанемометр: собираем датчик скорости и температуры потока воздуха своими руками

Мечта об умном термоанемометре

Был у нас на работе один адок из рубрики “админам жарко, а бухгалтерам дует”…

Ростелеком, только переехали в новый офис в ComCity, огромные опенспейсы и сплошные окна без форточек. Плюс стандартная болезнь открытого пространства — на большое помещение всего один вентканал с кучей выходов.

Летом, в жару включается централизованная система кондиционирования и увлажнения, и начинается… Самые первые в цепочке отправляются на Северный полюс (или на Южный, к пингвинам в общем и снеговику Олафу). Последние продолжают изнывать в сухой и жаркой Африке. Катаклизма неизбежно приводит к войне за крутилку кондиционера, которую мудрые инженеры предусмотрительно отключили.

Регламент климатической демилитаризации предписывает на такой случай вызывать билдинг-менеджеров. Инженеры-климатологи проводят замеры температуры и скорости воздуха на каждом участке воздуховода, регулируют поток и наступает благоденствие. Впрочем, длится оно не долго. Как только аналогичная процедура настройки проводится в соседнем опенспейсе — в нашем помещении все тут же идет в разнос. Составляется новая заявка. И так по кругу.

Кончается тем, что озверевшие от постоянной беготни и волн негатива билдинг-менеджеры просто игнорируют проведение измерений. По заявке приходит инженер с анемометром, делает замер, и говорит, мол, ребята, у Вас все нормально, вы не шахтеры, а белые воротнички, расслабьтесь, работайте. Доказать ему что-то сложно — перед тобой сертифицированный оператор измерительного оборудования и вообще эксперт.

Приблизительно в таких нечеловеческих муках родилась мечта о сборке собственного arduino-анемометра. Можно, конечно, купить готовое устройство, но для айтишника это “беспонтово”. Кроме того, на умную железку можно (в теории) повесить логирование, сбор данных по расписанию, управление умным домом и запуск кота в космос. “Ардуино, и ни в чем себе не отказывай”.

С тех пор прошло 6 лет. Работодатель остался в прошлом. Бизнес-центр скорее всего также перестал высушивать и отмораживать арендаторов. Но мечта жила.

Мы продолжаем рубрику “сенсорика для самых маленьких инженеров”. И в настоящей статье представим подробную инструкцию по сборке собственного термоанемометра. Грейте паяльники, открывайте Arduino IDE, поехали!

Экскурс в матчасть

Как гласит Вики, впервые описание анемометра появилось в виде чертежа в 1540-м в трудах Леона Батиста Альберти “Математические забавы”. Позднее подобную конструкцию описал Леонардо Да Винчи. Через три века, в 1846-м году ирландский исследователь Джон Томас Ромни Робинсон изобрёл чашечный анемометр, ставший в то время революционным. В 1994-м году геологом Андреасом Пфличем был изобретён ультразвуковой анемометр.

Если не вдаваться в оттенки, все анемометры делятся на 3 основных типа:

Механические (чашечные или крыльчатые). Самый старый тип анемометров. устройства подобной конструкции используются в качестве портативных устройств для локальных замеров. На метеостанциях применяют анеморумбометры. Это те же чашечные анемометры, но с “хвостом” для определения направления потока.

Крыльчатые анемометры

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

Термоанемометры

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

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

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

Собираем DIY термоанемометр

Скучная лекция закончилась, возвращаемся к нашему DIY.

Нам необходимо собрать железку, выполняющую три задачи:

проводить замеры скорости потока в ручном режиме;

рассчитывать расход воздуха в вентиляционных системах;

обладать компактным размером для проведения замеров в вентканалах.

Компактная версия DIY термоанемометра

Закупка компонентов для анемометра (BOM)

Плата WEMOS D1 mini (от 130 руб. на Али)
Дешёвая и компактная плата на базе ESP8266, основа проекта.

WEMOS D1 mini

Термоанемометр CG_Anem от ClimateGuard (1720 руб. на Али)
Компактный и высокоточный модуль, работающий от 3.3 В по I2C.

CG_Anem

OLED-дисплей 0.96” с I2C (от 100 руб. на Али)
Сравнительно дешёвый, но комфортный для работы дисплей с неплохой яркостью.

OLED-дисплей 0.96”

Регулятор напряжения ADP3338 на 3.3 В (от 14 руб. на Али)
Необходим для стабилизации напряжения, подаваемого на анемометр. Подойдет любой регулятор с малым падением напряжения (ldo) с точностью регулирования напряжения под нагрузкой не более 1%.

ADP3338

Аккумулятор 18650 (от 200 руб. на Али)
Любой аккумулятор типа 18650 для автономной работы анемометра.

Аккумулятор 18650

Контроллер заряда на базе TP4056 (от 10 руб. на Али)
Обращаем внимание, что при использовании аккумуляторов без защиты необходимо использовать контроллер с защитой от переразряда (как в примере).

Плата питания TP4056

Макетная плата 7х3 см (от 50 руб. на Али)
Плата для распайки и соединения всех компонентов.

Макетная плата 7х3

Разъём XH 2.54 4pin “мама” с выводом на 90 градусов и два разъёма XH 2.54 4pin “папа” с проводами (от 90 руб. на Али). На просторах Али нашёл готовый комплепкт из обжатых проводов с ответной частью. За 90 рублей получаем 10 таких комплектов.

XH 2.54 4pin

Выключатель KCD-1 ( от 80 руб. на Али)
Компактный и дешёвый клавишный выключатель, под него рассчитана 3D-модель. Обычно продаётся мелкими партиями, так выходит дешевле.

Выключатель KCD-1

Селфи-палка (от 330 руб. на Али)
Самая простая селфи-палка для изготовления телескопической ручки анемометра.

Noname селфи-палка

Итого общая стоимость — от 2 730 рублей.

Для сравнения, бюджетные версии термоанемометров Testo начинаются от 14 500 руб., а популярное устройство (с сомнительной репутацией) от CEM — от 25 000 руб.

Алгоритм сборки датчика скорости потока

Ознакомление со схемами платы и компонентов, а также с общей схемой железки;

Соединение всех компонентов на макетной плате;

Печать корпуса на 3D-принтере, либо создание его из подручных материалов;

Программирование и прошивка платы;

Схема анемометра

WEMOS D1 мало чем отличается от своих собратьев, построенных на базе ESP8266. Для подключения всех компонентов нам будут необходимы пины D2, D1 (SDA, SCL) и A0 (пин АЦП для считывания остатка заряда батареи) — см. схему ниже.

Распиновка WEMOS D1

Анемометру требуется чистое и стабильное напряжение в 3.3 В. Для его обеспечения мы будем использовать стабилизатор напряжения ADP3338.

Распиновка LDO

Популярные преобразователи LM3940 или AMS117 не подходят, так как обладают низкой точностью регулирования (около 3%). При этом отклонение напряжения напрямую влияет на качество показаний анемометра. Поэтому выбор делается в пользу ADP3338 с точностью преобразования 0,8%. Выше приведена схема подключения LDO. Также производитель рекомендует ставить на вход и выход и выход конденсаторы номиналом 1 мкФ.

Мы собираем автономное устройство, поэтому необходим аккумулятор. Для текущего кейса была выбрана банка 18650 (под него создана 3D-модель корпуса), но в принципе можно использовать и li-ion / li-pol аккумуляторы другого форм-фактора.

Плата WEMOS имеет на борту встроенный АЦП (ADC0) для измерения выходного напряжения аккумулятора. Но так как АЦП способен измерять только до 3.3 В, а полностью заряженный аккумулятор выдаёт 4.2 В, необходим делитель напряжения. Делитель напряжения представляет собой последовательно соединенные резисторы. При подключении к средней точке мы обнаружим, что напряжение там равно напряжению, рассчитанному по формуле 2 на картинке.

WEMOS имеет делитель напряжения с номиналом резисторов 220 кОм и 100 кОм соответственно.

После ознакомления с распиновкой WEMOS и LDO подключаем все компоненты согласно схеме.

Схема сборки DIY анемометра

В результате у нас должна получиться примерно такая плата с кучей проводов и компонентов. Мастерство пайки постигается годами, мы нисколько не хотели задеть ваши чувства.

Результаты сборки схемы анемометра

Печатаем корпус

В процессе подготовки материала создано два типа корпусов для разных задач:

“Голый” корпус. Самый простой корпус, который можно доработать под свои задачи или использовать как есть. Сверху есть отверстия для винтов М2 для крепления корпуса анемометра.

    Корпус с возможностью крепления селфи-палки. В тыльной части имеет крепление под трубку диаметром 15 мм и пазами для стяжек.

3D-модели корпусов доступны на GitHub.

Финальная конструкция представлена на картинке. Провода были зажгутированы для удобства работы с устройством. Чтобы убрать “колхоз” можно использовать спиральную обмотку (под рукой не оказалось).

Подключаем плату и библиотеки

Для дальнейшей работы нам необходимо подключить библиотеки.

Сначала заходим в настройки Arduino IDE и добавляем дополнительные ссылки Менеджера плат следующее: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Затем мы должны выбрать необходимую нам плату. Для этого переходим во вкладку “Инструменты”, выбираем раздел “Плата”, далее выбираем “Менеджер плат” и вводим в поисковую строку “esp8266”.

После установки расширения снова заходим в “Платы” и выбираем “Generic ESP8266 Module” в подразделе с ESP8266.

Далее необходимо подключить библиотеки для анемометра и экрана. Для этого выполняем действия: Arduino -> Скетч -> Подключить библиотеку -> Управлять библиотеками -> Написать “anem” в поисковой строке.

После установки библиотеки для анемометра проделаем такую же операцию для библиотеки дисплея от популярного Алекса Гайвера. В поисковой строке необходимо написать “GyverOled”.

Программа реализует базовый функционал. Следуя путями DIY можете переработать её под свои хотелки. Скетч также можно найти на GitHub или в примерах библиотеки датчика CG_Anem. Для OLED используется нетленная классика — библиотека Алекса Гайвера. Она одна из самых простых, интуитивно понятна и полностью закрывает поставленные задачи.

Проверка самодельного термоанемометра

Выбор испытательного полигона для получившегося анемометра стал сложной задачей. Как отмечалось в начале статьи, доступа в офис с центральной вентиляцией у нас не было. Пришлось импровизировать.

Источник

Adblock
detector