Главная > Умный дом > Вывод данных с Domoticz на ESP с OLED дисплеем
Вывод данных с Domoticz на ESP с OLED дисплеем16 сентября 2019. Разместил: dimon |
Все изображения кликабельны Захотелось мне тут выводить данные температуры и влажности на какой-нибудь дисплей, чтобы выходя из дома сразу видеть какая температура на улице, не доставая телефон. Самый просто способ похоже использовать ESP8266 плюс дисплей - можно взять LCD 1602/1604/2004, но на мой взгляд более интересен вариант OLED SSD1306 128x64. Данный дисплей на али сейчас можно купить в разных размера - от 0,96" до 2,42". В наличии оказался только маленький, его мы и попробуем, а если все взлетит, то закажем побольше. Чтобы не возиться с пустой ESP, не искать программатор, то построим эту систему на WEMOS D1 mini, которая уже имеет все необходимое, плюс на ней сразу распаян USB-UART преобразователь и ее можно довольно просто шить через обычный USB. Так же в запасе дома оказались два датчика DHT22 и DS18B20 их мы тоже сразу добавим, еще едет BME280 - Bosch-евский датчик атмосферного давления, влажности и температуры, который мы добавим чуть позже. В качестве прошивки ESP модуля мы будем использовать прошивку на конструкторе WiFi-IoT, что позволит не писать ее самим, а просто натыкать галок необходимых функций и быстро ее зашить в модуль, а все настройки будут осуществляться через Web-интерфейс. Посмотрим какие галки (опции) нам нужны: Часть опций платная, но стоимость Pro версии всего 100р, меньше стоимости того же модуля Wemos, и на мой взгляд это разумное "вложение" денег Перечислю их еще раз текстом с кратким пояснением: * 1-wire DS18B20 - температурный датчик Dallas Semiconductor * DHT 11/21/22 - датчик температуры и влажности DHT22 * BME280 - Bosch-евский датчик атмосферного давления, влажности и температуры * narodmon.ru - возможность отправлять данные на проект народного мониторинга narodmon.ru * MQTT клиент и MQTT JSON клиент - для связи модуля с Domoticz * Время и NTP - синхронизация времени и даты на модуле с интернетом * I2C сканер - обнаружение I2C устройств (DS18B20) * Обновление OTA - возможность обновлять прошивку модуля через интернет, добавлять опции и функции * Auto OTA - эта очень необходимая опция! Если у вас будет несколько устройств на WiFi-IoT, то при обновлении заливается последняя скомпилированная на сайте прошивка, и если вы последней компилировали прошивку для другого модуля, то зальется она. Функция Auto OTA позволяет "принудительно" запустить компиляцию прошивки привязанной в профиле именно для этого модуля ESP перед тем как ее обновить на модуле. * Настройки по умолчанию - необходимо для подключения модуля у своей Wi-Fi сети. * Interpreter - простой скриптовый язык для создания своей логики и математики * OLED 128x64 - дисплей * Конструктор строк - формирование своих строк * Русский шрифт - русские символы Далее компилируем прошивку и заливаем ее в модуль через usb - как скомпилировать, как привязать лицензию подробно написано в WIKI, там же смотрим как подключать все наши датчики и дисплей. После обобщения схема подключения получилась такая: После прошивки берем телефон или компьютер с WiFi и ищем сеть WiFi-IoT, подключаемся, браузером переходим на адрес http://192.168.4.1, там переходим на вкладку main веб интерфейса и подключаем ESP модуль к своей сети: Здесь мы указываем имя ESP, GMT зону, режим работы WiFi (=клиент), имя WiFi сети и пароль. После перезапуска ESP модуля, он подключается к нашей WiFi сети, смотрим на роутере какой ip-адрес он получил (если мы не указали статичный ip) и заходим браузером на него. Теперь в разделе Конструктор строк (Designer lines) задаем текст для line1 - это будет разделитель локальных данных ESP (датчиков подключенных напрямую к Wemos d1) и тех которые Domoticz будет выводить на дисплей: Теперь идем в раздел Display, включаем его и настраиваем что будем выводить на OLED дисплей: в моем случае: 0 строка = текущее время 1 строка = время работы модуля 2 строка = данные DHT22 3 строка = данные DS18B20 4 строка = пустая 5 строка = разделитель (Line 1) 6 строка = пустая 7 строка = пустая в строки 6-7 Домотикз будет выводить свои данные. Теперь нужно написать скрипт в домотикз, который будет записывать в 6 и 7 строку данные. Как это реализовать с помощью GET запросов описано в WIKI WiFi-IoT. Идем в раздел Настройки - Дополнительно - События, создаем скрипт, тип dzVents, код скрипта ниже:
Вот так это выглядит на нашем OLED дисплее: Вернуться назад |