Плата ANAVI с термометром была запущена на CrowdSupply в январе 2019 года. Это WiFi плата ESP8266 со встроенным датчиком температуры и влажности DHT22, которая поддерживает внешний водонепроницаемый датчик температуры DS18B20, а так же другие датчики, благодаря трем I2C разъемам.
Для обзора был получен стартовый комплект ANAVI термометр. Для начала начнем с распаковки, руководства по сборке, а также будет настроен его интерфейс с Home Assistant через MQTT, прежде чем он будет проверен в действии.
Распаковка стартового комплекта
ANAVI термометра
В комплект входит плата ANAVI с термометром, пластиковая подставка, отладочная плата USB – TTL, I2C OLED-дисплей, несколько гаек и болтов, а также пара наклеек KiCad и ANAVI. Также компания ANAVI положила дополнительно в коробку плату для светодиодов и сами светодиоды, но обычно это не входит в комплект.
Плата ANAVI с термометром включает в себя модуль ESP8266, датчик температуры и влажности AM2302 (проводной DHT 22), клеммную колодку для водонепроницаемого датчика температуры DS18B20, четыре I2C разъема, один из которых предназначен для дисплея, 3-контактный разъем UART для программирования, микро USB порт для питания и кнопку сброса.
На другой стороне платы ничего нет.
Сборка стартового комплекта
ANAVI термометра
Первое, что нужно сделать, это снять защитную пленку с подставки, поскольку она будет затруднять видимость OLED дисплея.
Однако подставка не перенесла транспортировку и пришла уже поломанной, но обычный клей помог решить данную проблему.
Дальше нужно прикрепить плату к основанию корпуса с помощью прилагаемых гаек и болтов, но болты для OLED дисплея очень большие, поэтому в данном случае он был прикреплен двухстороннем скотчем к верхней части подставки.
Также был взят датчик освещенности BH1750 из стартового комплекта ANAVI Light pHat, чтобы продемонстрировать, что можно добавить дополнительные датчики на данную подставку. Там достаточно много места для двух дополнительных датчиков I2C.
Первоначальная настройка для ANAVI термометра
Документацию для комплекта и платы можно найти на Github. Дальше в обзоре постараемся придерживаться данной документации.
Нужно подключить плату к источнику питания USB 5 В (рекомендуется 1 А или выше), также плату можно запитать от обычного USB-порта ноутбука.
OLED-дисплей показывает только “соединение…” что означает, что сперва вы должны подключить плату к вашей сети Wi-Fi для дальнейшей настройки. В списке точек доступа плата будет определяться как “ANAVI Thermometer Controller”.
После подключения вам будет предложено войти в настройки точки доступа и вы будете перенаправлены на веб-интерфейс как у “Sonoff-Tasmota” для настройки WiFi, там же будет отображаться некоторая системная информации (справа на скриншоте выше). Далее нужно перейти в “Configure WiFi“.
Плата будет автоматически сканировать точки доступа 2.4 ГГц и вы можете выбрать одну из них и ввести пароль от нее, а также настроить MQTT, если это необходимо. Machine ID здесь на самом деле не нужен, так что вы можете не использовать его. Пользовательский интерфейс на самом деле точно такой же, как и у ANAVI Light Controller, которым можно управлять из веб-интерфейса. После нужно нажать кнопку “Save” и ваша плата подключится к WiFi маршрутизатору, и уже через несколько секунд после этого должна появиться информация с данными на OLED дисплее.
Чуть выше показаны данные температуры и влажности от датчика DHT22, но значения для температуры воды были 0.0°C, поскольку датчик DS18B20 не был подключен.
Также комплект был подключен к компьютеру через последовательную плату, чтобы проверить вывод данных с помощью minicom с конфигурацией 115200 8N1 /dev/ttyUSB0:
1 2 3 4 |
Light: 295Lux Air 28.2C Humidity 36% Water 0.0C |
Датчик освещенности также определился без проблем и для проверки он был закрыт, чтобы убедиться, что он действительно работает:
1 2 3 4 |
Light: 0Lux Air 28.2C Humidity 36% Water 0.0C |
Датчик работает исправно, поскольку значение изменились с 295 на 0 люкс.
Если вам нужна система с небольшим дисплеем для отображения температуры и влажности, то данный комплект вам подойдет.
Мониторинг датчика температуры и влажности ESP8266 с помощью Home Assistant
Возможно, вы захотите получить удаленный доступ к данным датчика и в зависимости от температуры и влажности принимать меры. Итак, далее будет рассмотрено как установить и настроить Home Assistant, и отображать данные о температуре и влажности на панели.
Raspberry Pi 3 является рекомендуемым оборудованием для установки Home Assistant, но если у вас нет свободной платы, то можно установить Home Assistant через Docker на компьютере с Ubuntu 18.04. Для начала нужно создать рабочий каталог с именем homeassistant перед установкой docker.io и контейнером home-assitant:
1 2 3 |
mkdir ~/homeassistant sudo apt install docker.io sudo docker run --init -d --name="home-assistant" -v ~/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant |
Это может занять несколько минут. Как только это будет сделано, отредактируйте файл конфигурации в homeassistant/configuration.yaml для того, чтобы изменить секцию датчиков для датчиков температуры и влажности ANAVI:
1 2 3 4 5 6 7 8 9 10 11 |
sensor: - platform: mqtt name: "Temperature" unit_of_measurement: 'C' state_topic: "home/room/temperature" value_template: "{{value_json.temperature}}" - platform: mqtt name: "Humidity" unit_of_measurement: '%' state_topic: "home/room/humidity" value_template: "{{value_json.humidity}}" |
и настройте брокера MQTT:
1 2 |
mqtt: broker: 127.0.0.1 |
Далее установите брокер mosquitto MQTT
1 |
sudo apt install mosquitto mosquitto-clients |
Теоретически, есть возможность перезапустить контейнер home-assistant с помощью команды:
1 |
sudo docker restart home-assistant |
На данном этапе могут возникнуть некоторые проблемы с разрешениями, связанные с apparmor, поэтому лучше просто перезагрузить ваш компьютер и подключиться к панели мониторинга Home Assistant по адресу http://localhost:8123.
В первый раз вас попросят создать свою учетную запись, а затем вас перекинет на панель мониторинга, где вы увидите настройки температуры и влажности в файле конфигурации.
Однако данные не обновляются, поскольку у сервера ANAVI Thermometer MQTT не был установлен IP-адрес вашего брокера MQTT. Попытка перейти к веб-интерфейсу платы также была не удачной, поскольку она работала только в режиме точки доступа. Необходимо сбросить плату до заводских настроек, нажав кнопку сброса и удерживая ее более 10 секунд, после чего перезапустить конфигурацию, но на этот раз установить IP-адрес своего компьютера.
Все вроде бы хорошо, но если внимательно посмотреть на последовательную консоль, то есть небольшая проблема:
1 2 3 4 5 6 7 8 9 10 11 |
Should save config connected...yeey :) saving config failed to open config file for writing {"mqtt_server":"192.168.1.3","mqtt_port":"1883","workgroup":"workgroup","usernap 192.168.1.9 MQTT Server: 192.168.1.3 MQTT Port: 1883 MQTT Username: MQTT Password: Attempting MQTT connection...connected |
“Не удалось открыть файл конфигурации для записи”. Может быть так и должно быть… Дальше посмотрим. Температура и влажность остаются на уровне 0.0°C и 0%, хотя и можно захватить данные MQTT с помощью Wireshark, но это только для датчика освещенности.
Чтобы заработала температура и влажность просто нужно отключить и снова подключить питание, но вы заметите, что снова вернулось сообщение об ошибке “config”:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
*WM: Using last saved values, should be faster *WM: Connection result: *WM: 3 *WM: IP Address: *WM: 192.168.1.9 connected...yeey :) local ip 192.168.1.9 MQTT Server: iot.eclipse.org MQTT Port: 1883 MQTT Username: MQTT Password: Attempting MQTT connection...connected |
Теперь по умолчанию используется сервер MQTT: iot.eclipse.org. Поэтому попытка подружить ANAVI термометр с Home Assistant оказалась не совсем неудачной и в следующей части обзора может быть получиться это исправить. Документация на странице Github ANAVI термометра конкретно для этой части очень ограничена.
Также было бы не плохо, если на плате были бы какие-то контакты GPIO, например, чтобы была возможность локально включать / выключать переключатель. Данный стартовый комплект ANAVI термометра можно предварительно заказать на Crowdsupply за $39, включая международную доставку, если сделать заказ в ближайшее время, то доставка будет уже в апреле 2019 года.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.