|
Ez a példa eredetileg ciszterna vízszintméréséhez készült, de természetesen más hasonló távolságmérési feladatokra is használható.
A megvalósításhoz szükség van egy LILYGO® TTGO T-Internet-POE ESP32-WROOM LAN8720A programozható alaplapra, egy PoE tápegységre, valamint egy AJ-SR04M ultrahangos távolságmérő szenzorra. Fontos, hogy csak ez a változat megfelelő, amelynek kivezetései: 5V, Trig, Echo, GND.
 
1. lépés
Forrasszuk fel az alaplaphoz mellékelt sorkapcsokat a panelre.
2. lépés
A Tasmota telepítéséhez szükség van egy soros–USB átalakítóra. A bekötési sorrend balról jobbra haladva a következő:

3. lépés
Amikor feszültség alá helyezzük a soros–USB átalakítót, nyomjuk meg az alaplapon található BOOT gombot, hogy az eszköz bootloader, vagyis programozható módba kerüljön.
4. lépés
Nyissuk meg webböngészőben a következő oldalt: https://tasmota.github.io/install/ Állítsuk az adatátviteli sebességet 115200 Baud értékre, majd telepítsünk egy alap Tasmota firmware-t.

5. lépés
A telepítés befejezése után az eszközt az USB-C porton keresztül helyezzük tápfeszültség alá. Csatlakozzunk a megjelenő Tasmota-xxxx Wi-Fi hálózathoz, majd böngészőből nyissuk meg a 192.168.4.1 címet, ahol beállíthatjuk az eszköz Wi-Fi kapcsolatát.
Miután az eszköz felcsatlakozott a hálózatra, a kapott IP-cím beírásával elérhetővé válik a webes kezelőfelület.
6. lépés
A webes felületen az Update menüpontban töltsük fel az erre a célra fordított tasmota32_15_Lilygo_POE_SR04.bin firmware-t. Ez már tartalmazza a PoE Ethernet csatlakozáshoz és az ultrahangos szenzorhoz szükséges meghajtókat.
7. lépés
A kezelőfelületen a Configuration / Other menüpont alatt a Template mezőbe másoljuk be az alábbi tartalmat:
{"NAME":"LilyGO T-Internet-POE","GPIO": [0,1,672,1,1,0,0,0,1856,6720,736,704,1,0,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,1,1,1888,0,0,1], "FLAG":0,"BASE":1,"CMND":"EthType 0|EthClockMode 3|EthAddress 0"}
Ezután kapcsoljuk be az Activate lehetőséget, majd mentsük el a módosítást.
8. lépés
Húzzuk ki az USB-s tápellátást, majd PoE adapteren keresztül csatlakoztassuk az eszközt a hálózathoz. Ha a hálózaton működik DHCP szolgáltatás, és a korábbi beállítások megfelelőek, akkor az Ethernet kapcsolat külön IP-címmel elérhető lesz. Ezt ellenőrizhetjük a router DHCP listájában, illetve az eszköz kezdőoldalán az Information menüpont alatt is.
9. lépés
Az eszközt célszerű vízálló kötődobozba építeni. A szenzort a középső tömszelencéhez, a hálózati kábelt pedig az ellenkező oldalon vezessük be. Így az eszköz akár a hálózati kábelnél fogva belógatva is elhelyezhető kútba vagy ciszternába, a maximális vízszint fölött biztonságos távolságra.
Fontos, hogy a doboz általában csak fröccsenő víz ellen védett, tehát ha víz alá kerül, beázhat. A nagyobb biztonság érdekében érdemes a doboz illesztéseit a végén sziloplaszttal vagy megfelelő tömítőanyaggal körbekenni, hogy minél jobban ellenálljon a nedvességnek.

10. lépés
Hozzunk létre egy új virtuális eszközt a Domoticz-ban, amelynek típusa „Távolság”.
Ezután a Tasmota eszköz webes felületén a Configuration / Domoticz menüpontban a Sensor idx 6 (Count/PM1) mezőbe írjuk be ennek az új virtuális eszköznek az idx számát.
Fontos, hogy az MQTT szerver elérhetősége is megfelelően legyen beállítva a Tasmota eszközön. Csak ezt követően várható, hogy a mért értékek megjelennek és folyamatosan frissülnek a Domoticz rendszerben.
11. lépés – Pozitív vízszint számítása
Egy egyszerű trükkel a mért távolság értékéből pozitív vízszintet is tudunk megjeleníteni.
Ehhez hozzunk létre egy új virtuális „Távolság” típusú eszközt Domoticz-ban, például „Vízszint” néven.
Ezután egy rövid dzVents script segítségével egy elméleti maximális vízszintből kivonjuk a mért távolságot, és az eredményt ebbe az új eszközbe írjuk.
Fontos beállítandó értékek a scriptben:
-
forrás eszköz idx (Tasmota által mért távolság)
-
kijelző (virtuális) eszköz idx
-
bazis_cm = 200 → maximális (elméleti) vízszint cm-ben
Mit csinál ez?
-
A szenzor távolságot mér lefelé (pl. 150 cm)
-
Ebből kivonjuk a max szintet (pl. 200 cm)
-
→ így kapjuk a víz magasságát (pl. 50 cm)
dzVents script:
###############################################
return { on = { -- Ez a script akkor fut le, ha a 215-ös idx eszköz frissül -- (ez a Tasmota által küldött távolság adat) devices = { 215 } },
execute = function(domoticz, device)
-- Elméleti maximális vízmagasság cm-ben -- (pl. ciszterna teljes mélysége) local bazis_cm = 200
-- Ellenőrizzük, hogy van-e érték if device.sValue == nil then domoticz.log("Nincs sValue!", domoticz.LOG_ERROR) return end
-- A mért távolság (cm), stringből számmá alakítva local tavolsag = tonumber(device.sValue)
-- Ha nem szám, akkor hibát logolunk if tavolsag == nil then domoticz.log("Nem szám a távolság!", domoticz.LOG_ERROR) return end
-- Vízszint számítása: -- max szintből kivonjuk a mért távolságot -- (minél kisebb a távolság, annál magasabb a víz) local vizszint = bazis_cm - tavolsag
-- Ne legyen negatív (pl. ha üres a tartály) if vizszint < 0 then vizszint = 0 end
-- Ne legyen nagyobb, mint a maximális érték if vizszint > bazis_cm then vizszint = bazis_cm end
-- A cél (virtuális) eszköz lekérése idx alapján -- (ide írjuk ki a számolt vízszintet) local vdev = domoticz.devices(218)
if vdev then -- Az új vízszint érték frissítése cm-ben vdev.updateDistance(vizszint)
-- Log a debughoz (nagyon hasznos később) domoticz.log( "Ciszterna: tav="..tavolsag.."cm vizszint="..vizszint.."cm", domoticz.LOG_INFO ) else -- Ha nincs ilyen eszköz, hibát jelez domoticz.log("218 virtuális eszköz nem található!", domoticz.LOG_ERROR) end
end }
###############################################
|