Сделать стартовойДобавить в закладки  
Главная страничка Главная страничка
В номере:

    Выходит с 17 июля 2008 г. цена договорная

    Опрос

    Windows Mobile
    Symbian
    Android
    iPhone
    Linux
    другая
    не знаю
    у меня обычный телефон



    Календарь
    «    Сентябрь 2019    »
    ПнВтСрЧтПтСбВс
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30 

    Архив новостей
    Сентябрь 2019 (1)
    Август 2019 (2)
    Июль 2019 (2)
    Май 2019 (2)
    Март 2019 (1)
    Январь 2019 (1)

    Информация
    Вывод данных с Domoticz на ESP с OLED дисплеем
    Умный дом
    автор: dimon, опубликовано: 16 сентября 2019

    Все изображения кликабельны


    Захотелось мне тут выводить данные температуры и влажности на какой-нибудь дисплей, чтобы выходя из дома сразу видеть какая температура на улице, не доставая телефон. Самый просто способ похоже использовать 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-интерфейс.

    Посмотрим какие галки (опции) нам нужны:

    Опции WiFi-iot для работы с OLED дисплеем на ESP8266Опции WiFi-iot для работы с OLED дисплеем на ESP8266


    Часть опций платная, но стоимость Pro версии всего 100р, меньше стоимости того же модуля Wemos, и на мой взгляд это разумное "вложение" денег winked

    Перечислю их еще раз текстом с кратким пояснением:

    * 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, там же смотрим как подключать все наши датчики и дисплей. После обобщения схема подключения получилась такая:

    Схема подключения Wemos d1 mini + OLED SSD1306 + DS18B20 + DHT22Схема подключения Wemos d1 mini + OLED SSD1306 + DS18B20 + DHT22


    После прошивки берем телефон или компьютер с WiFi и ищем сеть WiFi-IoT, подключаемся, браузером переходим на адрес http://192.168.4.1, там переходим на вкладку main веб интерфейса и подключаем ESP модуль к своей сети:

    Настройка сети WiFi на прошивке WiFi-IoTНастройка сети WiFi на прошивке WiFi-IoT


    Здесь мы указываем имя ESP, GMT зону, режим работы WiFi (=клиент), имя WiFi сети и пароль.
    После перезапуска ESP модуля, он подключается к нашей WiFi сети, смотрим на роутере какой ip-адрес он получил (если мы не указали статичный ip) и заходим браузером на него.

    Теперь в разделе Конструктор строк (Designer lines) задаем текст для line1 - это будет разделитель локальных данных ESP (датчиков подключенных напрямую к Wemos d1) и тех которые Domoticz будет выводить на дисплей:

    Дизайнер линий WiFi-IoTДизайнер линий WiFi-IoT


    Теперь идем в раздел Display, включаем его и настраиваем что будем выводить на OLED дисплей:

    Включение OLED дисплея и настройка строк на WiFi-IoTВключение OLED дисплея и настройка строк на WiFi-IoT


    в моем случае:
    0 строка = текущее время
    1 строка = время работы модуля
    2 строка = данные DHT22
    3 строка = данные DS18B20
    4 строка = пустая
    5 строка = разделитель (Line 1)
    6 строка = пустая
    7 строка = пустая
    в строки 6-7 Домотикз будет выводить свои данные.

    Теперь нужно написать скрипт в домотикз, который будет записывать в 6 и 7 строку данные.

    Как это реализовать с помощью GET запросов описано в WIKI WiFi-IoT.

    Идем в раздел Настройки - Дополнительно - События, создаем скрипт, тип dzVents, код скрипта ниже:

    
    -- вывод показаний в ESP OLED
    
    return {
       --active = true,   -- скрипт активен
    	on = {
    		-- timer = {'every 5 minutes'},       -- вызывает скрипт каждые 5 минут
    		timer = {'every minute'},       -- вызывает скрипт каждую минуту
    		},
    	
    	
    	logging = {
    	    level = domoticz.LOG_ERROR    -- пишем в log только ошибки
    	},
    	
    	-- когда таймер выстрелил, выполним секцию execute:
    	execute = function(domoticz)
    	    
    	        -- ip адрес ESP c OLED
    	        local ip_esp = '192.168.1.111'
    	        -- символ пробела для url
    	        local probel = '%20'
    	        -- символ пробела необходимо использовать потому что функция openURL 
    	        -- домотикза не преобразует пробелы в нужный вид, и получается что
    	        -- все что после пробела в урле просто отбрасывается
    	        
    	        
    	    
    	        -- датчики которые будем выводить 
    	        local th_room = domoticz.devices(123)          --123    idx T&H Комната	Temp + Humidity
    	        local th_street = domoticz.devices(125)          --125    idx T&H Улица Temp + Humidity
      
                -- вычленим данные из датчиков
                local th_room_value = domoticz.utils.round(th_room.temperature,1)..'°'..probel..th_room.humidity..'%'
                local th_street_value = domoticz.utils.round(th_street.temperature,1)..'°'..probel..th_street.humidity..'%'
                
                
                -- формируем url для обновления 6 строки текста OLED
                local url_6 = 'http://'..ip_esp..'/lcdmsg?st=6&font=0&txt=Комната'..probel..th_room_value
                
                -- формируем url для обновления 7 строки текста OLED
                local url_7 = 'http://'..ip_esp..'/lcdmsg?st=7&font=0&txt=Улица'..probel..probel..probel..th_street_value
                
                -- вывод в лог строки для проверки
                -- domoticz.log(url_6, domoticz.LOG_ERROR)
                
                -- выполняем url-ы = выводим на OLED дисплей данные
    	        domoticz.openURL(url_6)
    	        domoticz.openURL(url_7)
    	    
           
    
        end
    }
    


    Вот так это выглядит на нашем OLED дисплее:

    Вывод данных с Domoticz на ESP с OLED дисплеем

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

    Другие новости по теме:

  • Domoticz + скрипт на Python 3, публикация на Народный мониторинг
  • Domoticz. Скрипт для уведомления на email об открытии/закрытии дверей и око ...
  • Domoticz. Включаем гирлянду по датчику Xiaomi Flower Monitor
  • Domoticz. Уведомление о низком уровне батарее датчиков
  • Domoticz. Ежедневное уведомление на e-mail с показаниями всех датчиков Xiao ...


  • Комментарии:

    Оставить комментарий



     
    Информация
     
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


    Поиск по сайту:


    Облако тегов
    Android, Arduino, backup, CentOS, cmd, css, div, DLE, DLE хаки, domoticz, dzvents, event, Linux, log, LUA, Monster, ogf3, RDP, Template, VBS, w2k8, windows, WSH, бумага, бумажный самолетик, верстка, иструкция, Карты, кино, Навигация, оригами, программа, рецензия, рецепт, скрипт, фигуры, шаблон, Яндекс, яндекс-карты

    Показать все теги
    Реклама
    раскрутка сайта бесплатно
    Главная страница | Регистрация | Добавить новость | Новое на сайте | Статистика | Поддержка | Правила ресурса Copyright © 2005-2018 by dimon - all right reserved!
    Тираж:           экземпляров.   Дизайн, верстка by dimon