Avtor: Boštjan Tovšak
Članka lanske decembrske številke, str. 44 in letošnje januarske številke revije Svet elektronike, str. 38, avtorja dr. Simona Vaupotiča, sta me vzpodbudila, da sem omenjeno okolje Tasmota in protokol mqtt uporabil v enem od svojih domačih projektov.
Nedolgo nazaj sem pričel z vzgojo gob, kjer sta za rast ključna relativna vlaga in temperatura zraka, ki ju je potrebno pozorno spremljati. V ta namen sem uporabil dve razvojni ploščici ESP32 dev. kit Lolin, senzor temperature zraka in relativne vlage DHT11, mini računalnik BananaPi M1 z ARM procesorjem in 1GB spomina za uporabo spletne kamere in USB WiFi vmesnik. Za spremljanje vrednosti na pametnem telefonu Android lahko uporabimo mqtt klienta »IoT MQTT Panel«, ki obstaja v brezplačni različici, plačljiva »IoT MQTT Panel Pro« pa stane cca. 10€.
Ta vsebina je samo za naročnike
Na eno od ESP32 razvojnih ploščic namestimo okolje Tasmota po navodilih iz članka in nanj povežemo ter ustrezno konfiguriramo v Tasmoti senzor relativne vlage in temperature zraka, DHT11. Ta razvojna ploščica bo služila kot pošiljatelj (mqtt »publisher«) točno določenih sporočil, zračne temperature in relativne vlage.
Na drugo razvojno ploščico ESP32 namestimo iz programskega okolja Arduino IDE in njegovih knjižnic osnovni mqtt posrednik (slika 1). V programski kodi je potrebna samo konfiguracija brezžičnega domačega omrežja (ime omrežja in geslo). Kodo naložimo na razvojno ploščico ESP32.
Na domačem usmerjevalniku fizična naslova (MAC naslova) obeh razvojnih ploščic povežemo s statičnima IP naslovoma. Tako ostaneta IP naslova našega novega mqtt posrednika (»brokerja«) in pošiljatelja fiksna.
V konfiguraciji Tasmota na EPS32 razvojni ploščici, kjer ima povezan senzor DHT11, vpišemo statičen IP naslov našega mqtt posrednika (»brokerja«). Podroben opis konfiguracije za mqtt je opisan v januarskem članku na str. 38. Nastavimo tudi »topic« sporočila, na katerega se »naroči« klient.
V brskalniku vpišemo statični IP naslov ESP32 s povezanim senzorjem DHT11 (slika 2).
V začetnem prikazanem meniju kliknemo »Tools« in nato »Console«. Preverimo, če je naš ESP32 povezan z »brokerjem«. V dnevniku dogodkov poiščemo vrednosti, ki jih ESP32 prejema iz DHT11 in pošilja sporočila. To so Temperature, Humidity, DewPoint in seveda oznaka senzorja DHT11 in si jih zapišemo. Potrebovali jih bomo kasneje pri vpisu v mqtt klientu za OS Android.
Poznati moramo tudi »topic«, ki smo ga nastavili v konfiguraciji.
Če nam je do sedaj uspela povezava med ESP32 pošiljateljem z DHT11 in ESP32 mqtt posrednikom, potem sledi namestitev na telefon ali tablico v začetku omenjenega mqtt klienta. Aplikacijo »IoT MQTT Panel « poiščemo v aplikaciji Google Play.
Po namestitvi aplikacije na pametno napravo sledi konfiguracija. Najprej pod menijem »All connections« nastavimo IP posrednika (»brokerja«), vrata 1883 in protokol TCP (slika 3). Sledi konfiguriranje »Dashboarda«. Tu imamo več možnosti izbire različnih elementov, grafov, različnih načinov prikaza itd. Vsem pa je skupno, da je potrebno za prikaz merjenih veličin nastaviti »topic« in »Payload is JSON Data« (slika 4).
Sintaksa za JSON za primer sporočila o vlagi: $.DHT11.Humidity. Podobno velja za temperaturo in točko rosišča, kjer »Humidity« zamenjamo z DewPoint ali Temperature, ostali izraz pa ostane enak. Sintaksa je natančno opisana tudi v navodilih aplikacije »IoT MQTT Dashboard«.
V začetku omenjen mini računalnik BananaPi M1 lahko uporabim za fotografiranje s spletno kamero. V ta namen nanj namestimo npr. Armbian linux 6.6.62- OS in enostavno kodo za uporabo fswebcam aplikacije za zajem slike in prenašanje na oddaljen strežnik. V aplikaciji IoT MQTT Dashboard lahko nastavimo tudi prikaz zajete slike s strežnika z vpisom IP strežnika (slika 5).
Tako smo izdelali enostaven sistem za spremljanje temperature in relativne zračne vlage na telefonu ali tablici s pomočjo Tasmote in mqtt. Ker je za posamezne sorte gob (ostrigarje) pomemben tudi čisti zrak z nizkim CO2, bi za nadgradnjo lahko implementirali še senzor kakovosti zraka oz. PM delcev, SDS011, ki ga prav tako podpira Tasmota. O tem pa kdaj drugič.