Nem új dolog, de továbbfejlesztettem WiFi-s e-mail küldő áramkimaradást figyelő modulomat, felruházva a vezetékes hálózat stabilitásával a WT32-ETH01 LAN-os ESP32 chip felhasználásával.

Igazából nem tűnik nagy kalandnak, kivéve hogy hardver és szoftverfronton is találkoztam némi akadállyal, nevezetesen, hogy 5VDC 600mA tápegységről táplálva a WT32-ETH01-et, induláskor a lapkára integrált 3.3V DC-DC átalakító nem képes stabilan ellátni az ESP32 magot, ezért végtelen ciklusban újraindul.. no egy 470uF kondenzátort forrasztva az "EN" és a "GND" lábai közé elmúlt ez a baja. Bár ahogy tesztelgettem, jobb megoldásnak tűnik ha közvetlenül egy 3VDC 1A tápegységet használunk inkább 5V-os helyett, így ennél is maradtam a végleges változatnál, ehhez nem kell kondenzátor sem.
Szoftverként ismét a Tasmotával próbálkoztam (aktuális 11.0.4), ami ment is, az előzőekben leírtak szerint, amíg ki nem kapcsoltam a wifit rajta, mert akkor jött a felismerés, hogy van ugyan vezetékes hálózat, de nem mennek rajta ki az e-mailek valamiért.. mondanom sem kell, hogy nem repestem a boldogságtól, de néhány órányi kísérletezés után rájöttem, hogy a régebbi Tasmota 9.4.0.4-el működik ez a funkció. Nos a szabad szoftver és nyílt forrás oltárán néha fel kell áldozni pár ősz hajszálat, és néhány munkaórát, ez ilyen bicikli. (Pár nappal miután jelentettem a hibát a github-on, úgy látom javították is azt a forráskódban, így a következő kiadásban már jó lesz)
Felhasznált anyagok:
- WT32-ETH01 ~ 6480 HUF
- Z-38 (84x170x36) Műszerdoboz, univerzális - 1591 HUF
- HiLink HLK-PM03 3VDC 1A tápegység - 1879 HUF
- 220V AC opto-leválasztott figyelő modul, 1 utas - ~1762 HUF
- Forrasztható próbapanel 5x7cm - 99 HUF
- C14 AC beépíthető aljzat (6100.4320) 2 x 434 HUF
- GK-50RD Kapcsoló (billenő, 1ák., világítós) 325 HUF
- Szigetelt saru kék/piros 7 x 45HUF
Láthatóan kicsit drágábban jön ki, (cirka 13 ezer HUF mai árfolyamon) mint a sima WiFi-s ESP32, az integrált LAN modul nem éppen filléres tétel. Meg egyébként minden más is drágább lett az elmúlt hónapok során...
A kütyü motorja a WT32-ETH01, az érzékelést pedig a hosszúkás zöld színű opto-leválasztott figyelő modul valósítja meg ismét, ezek egyikét sem nagyon látom még magyar webshopokon. A többi alkatrész beszerezhető itthon is. Ezúttal a keskenyebb doboz miatt lemondtam a C14 aljzatok csavaros befogatásáról, bár meg kell mondjam, ez a bepattintható változat nem annyira bizalomgerjesztően stabil számomra, főleg hogy nem oldalt, hanem alul-felül vannak körmei, de a doboz fedelével sikerült aránylag jól leszorítanom. Mellesleg így a fémcsavarok sem okozhatnak érintésvédelmi problémát. A szigetelt sarukkal szerintem sikerült aránylag biztonságosan és ízlésesen bekötnöm az erősáramú részt.
Extraként ezúttal világítós kapcsolót választottam, hogy legyen valami látványos visszajelzés, áram alatt van-e a kütyü. Ahogy az első verziónál, most is a TAP bemenetre kell kötni a szünetmentes tápegység felől jövő, akkuval szünetmentesített tápellátást - amiről jó esetben az internetet szolgáltató hálózati eszköz is üzemel - a FIGY bemenetre pedig egy sima 230-as tápkábel kötendő, aminek figyelésével eldönthető elment-e a házban az áram illetve visszatért-e.
A logika nem túl bonyolult, a 230V-os érzékelő gyengeáramú részét 3.3V DC-ről tápolom, ennek az Out-ja megy az ESP32 GPIO14 bemenetére.
Bekötési rajz:

A belcsín pedig így néz ki:

Szoftver
A Tasmota firmware első feltöltését a WT32-ETH01 cikkben leírt bekötéssel tudjuk elvégezni, amihez a szokásos USB-s CP2102 is kelleni fog:

Amennyiben nem kimondottan szeretjük a parancssoros dolgokat, a Tasmota fejlesztői kiadtak egy webes telepítőt, ami arra alkalmas böngészőben (Google Chrome) képes feltölteni USB-n keresztül a firmwaret.
https://tasmota.github.io/install/
Ha a CP2102 megfelelően csatlakoztatásra került, a Connect gombra kattintva tudjuk a megfelelő USB-Soros vonalat kiválasztani, Linuxon ez általában ttyUSB0, Windows alatt az Eszközkezelőben tudjuk megnézni.
Miután az alap Tasmota felmásolódott, leköthetjük az IO0 lábat a GND-ről, újraindítjuk, leválasztjuk, majd újra csatlakoztatjuk az USB-t a géphez, és immár be tudjuk állítani, hogy a WT32 a saját wifi hálózatunkra csatlakozzon. (szintén a fenti webinstall segítségével, miután újra rányomtunk a Connect-re)
Ha sikerrel jártunk eszközünk Wifire kapcsolódik, és a "Visit device"-ra kattintva máris a lokális webes felületén találjuk magunkat. Ez után OTA módon fel tudjuk tenni a 9.4.0.4 firmwaret, a Firmware frissítés / Firmware update menüpontban:
Ha valakinek nincs kedve binárist fordítani, mert az smtp és a szkript támogatás nincs benne az alap firmware-ekben, íme amit én használtam:
>> Tasmota32 9.4.04 ethernet + ssl smtp mail firmware + script támogatás <<
A Beállítások - Eszközbeállítások alatt lehet kiválasztani a WT32-Eth01 hardvertípust.
Ugyanitt lehet beállítani, hogy a GPIO14 legyen egy Kapcsoló típus, amire nem kérünk beépített felhúzó ellenállást aktiválni, és mivel a Tasmota csak úgy működik, ha egy kapcsoló/gomb + relé van párban, ezért felveszünk egy virtuális relét is a GPIO12-re, ahova nincs kötve semmi ez esetben.
Ugyanezt a Beállítások - Egyéb beállítások - Template alatt is elérhetjük az alábbi sablon beszúrásával:
Template: {"NAME":"WT32-ETH01","GPIO":[0,1,1,1,1,1,0,0,224,0,160,1,3840,576,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1],"FLAG":0,"BASE":5}
Az alapbeállítások és újraindítások után a főmenüben a Consoles - Script szerkesztése pontba lépve pipáljuk be a script futását az oldalon és szúrjuk be a szövegmezőbe az alábbit, kiegészítve saját adatainkkal: (email címek, jelszavak)
>D pstate=-1 astate=-1 ptimer=0 >E astate=pin[14] >S astate=pin[14] if ptimer<7 then ptimer=ptimer+1 endif if ptimer==7 then pstate=-1 ptimer=10 endif if astate!=pstate then pstate=astate if astate>0 then =>sendmail [smtp.gmail.com:465:felado@gmail.com:gmailjelszo:felado@gmail.com:cimzett@gmail.com:Powerwatch1 alarm] Aramszolgaltatas megszunt! =>print "Aramszolgaltatas megszunt!" else =>sendmail [smtp.gmail.com:465:felado@gmail.com:gmailjelszo:felado@gmail.com:cimzett@gmail.com:Powerwatch1 alarm] Aramszolgaltatas helyreallt. =>print "Aramszolgaltatas helyreallt." endif endif
A fenti kód azt csinálja, hogy másodpercenként ellenőrzi a GPIO14 állapotát, és ha változás állt be, akkor küld egy e-mailt. A GPIO14 logikai magas "1" állapotú, ha a modul bemenetén nem érzékel 230V-ot, és alacsony vagyis "0" ha van áram. Egy 7 másodperces késleltetést tettem az elejére, mert nagyjából 4 másodpercet vesz igénybe, hogy a WT32 IP címet kapjon, ellenben a GPIO észlelések már azelőtt lefutnak, viszont e-mailt nem tud küldeni nyilván hálózati kapcsolat nélkül. :)
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
Kommentezéshez lépj be, vagy regisztrálj! ‐ Belépés Facebookkal