Приобретал тут: http://alii.pub/6duxjq
Esp32: http://alii.pub/6c9kzh
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
CG_anem – это цифровой анемометр от компании ClimatGuard.
Телеграмм канал сообщества CG_anem: https://t.me/climateguard_community
Я раньше не видел такой реализации анемометров. Видел импульсные-аналоговые, у которых крутятся по кругу лопасти от ветра и таким образом вырабатываются импульсы. Подсчитав которые мы можем высчитать скорость ветра.
Видел ультразвуковые анемометры. там стоят несколько ультразвуковых датчиков и каким-то образом определяют скорость ветра ( я если честно не вдавался в подробности, так как они довольно дорогие).
Но у героя этой статьи другой принцип работы. У него два датчика температуры. Эти датчики должны стоять перпендикулярно потоку воздуха. То-есть сначала должен воздух проходить через один датчик температуры, а потом уже через второй. Таким образом у нас получается разность температур между датчиками температуры. Она очень мизерная, но этого достаточно. И по формуле Стейнхарта-Харта высчитывается скорость ветра
Технические характеристики анемометра:
Размеры:
Вообще про модуль cg_anem можно почитать в даташите: https://github.com/climateguard/CG-Anem/blob/master/extras/CG_Anem_1v1_datasheet_RU.pdf
Ну и если кому нужно, то на английском: https://github.com/climateguard/CG-Anem/blob/master/extras/CG_Anem_1v1_datasheet_ENG.pdf
Сердцем модуля cg_anem служит микроконтроллер atmega8a. Это младший брат сердца ардуино atmega328p.
С завода этот микроконтроллер запрограммирован и откалиброван так, чтобы измерять верные показания скорости потока воздуха. И все расчеты по формуле проводит он же. Тем самым выдавая по шине i2c уже готовые значения скорости потока воздуха в m/s, температуру и количество прошедшего воздуха через датчик в m3/hour (метрах кубических в час).
Так-как нам приходят с датчика готовые уже показания и ненужно никакие импульсы подсчитывать и переводить их во что-то. Нам останется больше свободной памяти для конечного контроллера, который будем использовать для получения показаний и собственно меньше времени на программирования, так как не будем отвлекаться на расчеты.
Вот элементарный пример, я недавно разбирался с датчиком пыли dsm501a. И у него выходы импульсные. И чуть изменяешь код, добавляя всякие задержки, так сразу показания уже начинают считаться некорректно.
Теперь переходим к коду.
Для анемометра cg_anem есть готовая библиотека для arduino ide. Ее собственно можно скачать из стандартных библиотек, найдя ее по поиску введя “cg-anem”.
Ну или можно ее найти на github: https://github.com/climateguard/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 сервера:
mqttClient.setCredentials(“mqtt”, “mqtt”);
Ну а в Home Assistant у Вас должна быт установлена интеграция “core-mosquitto”
На сервере Home Assistantв файле Configuration.yaml Сделаем следующий блок:
sensor:
#CG_anem_mqtt
- platform: "mqtt"
name: "CG_anem"
state_topic: "esp32/anem/ms"
value_template: "{{ value }}"
unit_of_measurement: "m/s"
icon: "mdi:pinwheel-outline"
Обратите внимание, что Sensor: в файле Configuration.yaml один, и в этом блоке прописываются все сенсоры. Так что если он у Вас там уже присутствует, второй раз “sensor:” добавлять ненужно, а сразу там пишете блок mqtt, но с отступами, как показано у меня в примере.
После добавления кода перезапускаем сервер Home Assistant и у Вас появится сенсор с именем “CG_anem”.
Я его добавил на главный экран и вот как он выглядит:
Все проделанные действия я еще показал на видео: