iobroker - недорогое решение - подключение Infodisplay на основе ESP8266

  • iobroker - недорогое решение - подключение Infodisplay на основе ESP8266

    Пожалуйста зарегистрируйся для просмотра прикрепленного файла.



    Привет. Как я отписался в теме про «умный дом IOBROKER на RASPBERRY“, захотелось мне сделать небольшой экранчик, на который выводятся нужные мне данные из iobroker.

    Критерии были такие:

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

    - небольшой, только для некольких значений

    - слабое потребление тока

    - только отображение информации

    Планшет я принципиально не захотел, хотя было бы наверно проще с ним.


    Приведу пример – стою в я домике, под ним зарыта бочка с дождевой водой, а уровень воды я не знаю, для этого надо из хлама отрыть крышку, открыть её. Или пойти в дом и посмотреть на планшете на стене, какой уровень. Так как в бочку я уже интегрировал модуль/сонар ультразвуковой, который меряет расстояние до воды. Может как нибудь опишу в другой статье.

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

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

    Хотелось, чтобы информация выдавалась в таком примерно виде.

    Пожалуйста зарегистрируйся для просмотра данного изображения.


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    Пожалуйста зарегистрируйся для просмотра данного изображения.



    Но тут на форуме отсоветовали, сказали что OLED «выгорает» со временем, лучше на другой основе.


    Для этого в Китае были прииобретены следующие девайсы:

    Пожалуйста зарегистрируйся для просмотра данного изображения.

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    и экран TFT 2.4“ Touch

    Пожалуйста зарегистрируйся для просмотра данного изображения.

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    По цене обошлось даже дешевле, вместе около 12€. И кстати, они просто втыкаются друг в друга, никакий проводов или шлейфов.


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


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


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.


    Так как я в Ардуино новичок, заняло у меня «сборка и отладка» кода несколько вечеров и некоторое количества нервов. Но зато теперь это готовое решение, которое может собрать почти любой.

    Проект состоит из двух частей – подготовка передающей стороны (иоброкер и значения для передачи) и приёмной стороны – сам ESP8266 модуль.

    Начал я с второй части, она казалась сложней.

    1. Для начала, припаиваяем штекеры к Wemos D1 mini, и втыкаем его в экран. Внимание на правильную распиновку, все ножки на обоих платах подписанны.

    2. Установил Ардуино, загрузил в него нужные библиотеки. Это «Adafruit GFX Library» общая библиотека для экранов, «Adafruit_ILI9341»- библиотека для моего экрана. Также нужна PubSubClient библиотека MQTT клиента, так как из брокера данные передаются по протоколу MQTT.

    3. Для того, что бы наша плата распознавалась в Ардуино, нужно обновить список плат из источника Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.. Для этого идём в Menü Datei/Voreinstellungen. В поле "Zusätzliche Boardverwalter-URLs" вставляем предыдущий линк.

    4. Теперь в Menü Werkzeuge/Board/Boardverwalter. Находим наш тип платы ESP8266, в моём случае это Wemos D1 mini. После этого надо выставить правильный порт. Все, подготовка завершена.

    5. Вставляем этот код в новый скетч, в поле const char* ssid = "наш ВЛАН"; const char* password = "наш пароль"; const char* mqtt_server = "IP Adresse нашего сервера с Iobroker"; В конце кода, где в моём случае стоят слова типа «Terasse, Ventil, Regen, Wasser и прочее типа хххххх» - тут можно поэксперементировать со своими текстами.





    Начинаем загружать код в Ардуино, нажав кнопку Upload. Если все нормально прошло и ошибок в коде нет, соединение установленно – код загрузится, наш экран начнет соединятся с WLAN и iobroker. Так как мы еще не подготовили iobroker, то никаких значений не отобразится.


    Для этого переходим к другой части, к iobroker.

    Для начала, если стоит Windows 10, то советую отобразить MQTT Box, может облегчить поиск ошибок, но вообще не обязателен, можно попробовать сначала без него.

    1. Идем в брокер, устанавливаем новый адаптер MQTT Server. Картинка 1

    Пожалуйста зарегистрируйся для просмотра прикрепленного файла.



    2. Идём в настройки адаптера- ставим typ -> server. Про порт: у меня стоит уже адаптер sonoff, который тоже работает по протоколлу MQTT через стандартный порт 1883. Чтобы оба адаптера друг другу не мешали – я поставил для MQTT Server порт 1884, этот же порт надо указать в ардуино-скетче, в моём примере он уже стоит.

    Пожалуйста зарегистрируйся для просмотра прикрепленного файла.


    3. Пароль/юзер я не использовал, пропустил. Во второй вкладке настоей я все оставил по умолчанию, можно потом поигратся с настройками, интервалами обновления и т.д.

    4. Адаптер светится жёлтым, иногда зелёным, это нормально.

    5. По идее, если в ESP8266 залит скетч и адаптер MQTT правильно сконфигурирован – в iobroker/objekte в папке mqtt.0 должны появится 20 строчек, которые передаются на ESP8266. Тип данных каждой строчки стоит у меня на „Zeichenkette“, некоторые значение на „Logikwert“ – там, где мне надо значение true/false. Картинка 2Пожалуйста зарегистрируйся для просмотра прикрепленного файла.



    6. Если был установлен MQTT Box, то там (после прописки адресса/порта) тоже должны отображатся все события, которые передаются по протоколлу MQTT.


    7. Предпоследний шаг – я в Blockly написал простейший скрипт, который в эти 20 строчек кода вставляет данные из iobroker, если они обновляются. Картинка 3

    Пожалуйста зарегистрируйся для просмотра прикрепленного файла.


    8. Ну теперь я припаял преобразователь напряжения 230v->5v

    9. Пока в процессе создания корпуса- рисую его как 3D Modell и попозже распечатаю. Но в принципе, можно придумать корпус по желанию.

    Пожалуйста зарегистрируйся для просмотра прикрепленного файла.Пожалуйста зарегистрируйся для просмотра прикрепленного файла.Пожалуйста зарегистрируйся для просмотра прикрепленного файла.Пожалуйста зарегистрируйся для просмотра прикрепленного файла.Пожалуйста зарегистрируйся для просмотра прикрепленного файла.




    Пара линков, которые мне помогли понять принцип Arduino & ESP8266:

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.




    Я знаю, что в тексте наделал кучу ошибок. Но чукча не писатель – чукча больше читатель!


    Может что то забыл, пишите, дополню.

Поделиться

Количество комментариев 3

  • Извини, не удержался: Terrasse пишется с двумя r.
    • Спасибо! Сейчас исправлю!
  • Кстати, забыл написать. Для меня-новичка все заняло несколько примерно неделю вечерами. Теперь, любому человеку по готовым следам все проще. Главное купить такие же компоненты.