RaspberryPi – Domoticz + ESP – LED pásek a Si7020

Lukáš Beran (web, linkedin, google+, twitter, facebook) mi poslal návod, jak zkombinovat RaspberryPi, ESP8266, Domoticz a LED pásek tak, aby ESP8266 ovládalo LED pásek právě přes Domoticz. Určitě to není poslední jeho článek na chiptron.cz. Za článek děkuji.

Mohlo by vás zajímat: ESP8266 + ArduinoIDE + Domoticz a RaspberryPi – Raspbian + Domoticz

V dnešním návodu bych chtěl popsat jak nejjednodušeji odesílat teplotu pomocí ESP8266 (Wemos d1 mini) do Domoticz a také přes Domoticz ovládat LED pásek. Tento led pásek je připojen k ESP a EPS spíná tranzistor, který slouží k ovládání LED pásku.

Nejprve bych hodně stručně popsal zapojení teplotního senzoru Si7020 a LED pásku k ESP.

ESP -> Si7020 ( popř. jiný teplotní a vlhkostní senzor komunikující přes I2C)

3,3V -> Vcc

GND -> GND

GPIO-4 (D2)->SDA

GPIO-5 (D1)-> SCL

ESP -> N – MOSFET

GPIO-15 (D8) -> G

GND -> S

LED pásek

Vcc -> 12V Adaptér

GND -> D

Nejlehčí cesta jak ovládat LED pásek a posílat teplotu + vlhkost do Domoticz je nahrát do ESP ESPEasy a poté provést jeho nastavení.

ESPEasy V2.0.0 si stáhneme z GitHubu zde: https://github.com/letscontrolit/ESPEasy/releases

Po stažení stačí archív rozbalit, připojit ESP8266 – v případě desky od wemos stačí použít micro USB kabel, jelikož deska má už v sobě USB rs232 převodník. V archívu od ESPEasy se již nachází program esptool.exe, který nahraje ESPEasy do ESP8266.

Před samotnou konfigurací ESPEasy je zapotřebí v Domoticz vytvořit nový hardware, toto provedeme v Setup -> Hardware.

Zde napíšeme jméno našeho HW (například: Wemos – esp8266) a jako typ zvolíme dummy.

K tomuto HW přidáme senzor a tím získáme tzv. Idx. Přidání se provádí kliknutím na Create Virtual Sensors. Zde si napíšeme název například Ložnice a zvolíme jaká data má Domoticz očekávat, v mém případě teplota + vlhkost.

Dále přidáme spínač pro ovládání LED pásku:

Pokud chceme z Domoticz řídit i jas LED pásku je zapotřebí editovat spínač v Domoticz. Přejdeme tedy do záložky Switches a zde klikneme na edit. Zde už stačí změnit Switch Type na Dimmer.

Poté je zapotřebí si najít a zapamatovat si Idx senzoru teploty a vlhkosti, toto Idx najdeme v Setup-> Devices.

Konečně můžeme přejít na nastavení ESPEasy. Do webového prohlížeče dáme IP adresu ESP na kterém běží ESPEasy – v případě, že tutu adresu nevíme doporučuji použít nějakou aplikaci např. na mobilním telefonu se mi osvědčila aplikace Fing Network Tools, tato aplikace zjistí IP adresu všech zařízení připojených do sítě.

Po zadání IP adresy do prohlížeče se otevře úvodní stránka ESPEasy.

Zde přejdeme do záložky Controllers a klikneme na Edit, kde nastavíme IP adresu Domoticz a port.

V ESPEasy je zapotřebí nastavit senzor a ovládání led pásku. Toto nastavení se provádí v záložce devices, zde klikneme na edit a provedeme nastavení senzoru teploty/vlhkosti dle print screenu. Zde je zapotřebí zadat správné idx senzoru a také si zde zvolíme prodlevu – jak často má ESP odesílat hodnotu teploty a vlhkosti do Domoticz.

Ještě je zapotřebí provést konfiguraci spínače – řízení našeho LED pásku, to provedeme následovně:

Poté co dokončíme nastavení v ESPEasy můžeme otevřít Domoticz a zde by už měla být zobrazena aktuální hodnota teploty a vlhkosti.

Bohužel nastavování ještě nekončí, je zapotřebí v Domoticz napsat script, tento script bude ovládat LED pásek. Otevřeme si tedy: Setup -> More options -> Events a zde klikneme na New.

Zvolíme jméno pro script, vybereme jazyk ve kterém budeme vytvářet script, v tomto případě LUA v posledním rozklikávacím okénku vybereme Device a zaškrtneme Event active.

Poté stačí zkopírovat script který je níže, v tomto scriptu změnit jméno spínače(pokud máte jiné), vložit IP adresu ESP a kliknout na Save.

local PWM_sensor_name1 = ‚LED pasek‘ — jmeno senzoru -.>setup->device

local IP_address= ‚IP_ESP‘ — IP ESP

local GPIO_pin= ’15‘

commandArray = {}

for i, v in pairs(devicechanged) do

if (i == PWM_sensor_name1) then

if(v == ‚Off‘ ) then

sensor_set_value = 0

elseif(v == ‚On‘) then

sensor_set_value = 100

else

sensor_set_value = otherdevices_svalues[PWM_sensor_name1]

end

calculated_PWM_value= math.ceil(sensor_set_value*1023/100)

print(‚PWM hodnota :‘..calculated_PWM_value)

commandArray[‚OpenURL‘]=(‚http://‘.. IP_address.. ‚/control?cmd=PWM,‘ ..GPIO_pin.. ‚,‘ ..calculated_PWM_value)

end

end

return commandArray

Sdílejte článek:

Související články

Lukáš Beran (web, linkedin, google+, twitter, facebook) mi poslal návod, jak nainstalovat Domoticz na RaspberryPi a určitě to není poslední jeho článek na chiptron.

Lukáš Beran (web, linkedin, google+, twitter, facebook) mi poslal návod, jak zprovoznit ESP8266 (Arduino IDE) v Domoticz na RaspberryPi a určitě to není poslední jeho článek na chiptron.

Lukáš Beran (web, linkedin, google+, twitter, facebook) mi poslal svůj návod, jak zprovoznit Zigbee2MQTT do Domoticz a ovládat tak nejrůznější zařízení.

Lukáš Beran (web, linkedin, google+, twitter, facebook) mi poslal návod, jak přidat robotický vysavač Xiaomi do služby Domoticz.

Lukáš Beran (web, linkedin, google+, twitter, facebook) mi poslal svůj projekt chytrého zrcadla s RaspberryPi a určitě to není poslední jeho článek na chiptron.