Tartalomjegyzék:

MQTT/Google Home árvíz/víz WIFI érzékelő ESP-01: 7 lépésben
MQTT/Google Home árvíz/víz WIFI érzékelő ESP-01: 7 lépésben

Videó: MQTT/Google Home árvíz/víz WIFI érzékelő ESP-01: 7 lépésben

Videó: MQTT/Google Home árvíz/víz WIFI érzékelő ESP-01: 7 lépésben
Videó: Умное окно - автоматизация проветривания комнаты, интеграция в Home Assistant 2024, Július
Anonim
MQTT/Google Home árvíz/víz WIFI érzékelő ESP-01-vel
MQTT/Google Home árvíz/víz WIFI érzékelő ESP-01-vel

Ebben az utasításban megmutatom, hogyan lehet minimális költséggel felépíteni a wifi árvíz/víz érzékelőt. Az egész projekt kevesebb, mint 8 dollárba kerül az ebay-től beszerzett alkatrészekért és a meglévő alkatrészeimért.

Ebben a projektben az ESP-01 segítségével Wifi és MQTT klienseket biztosítunk a víz jelenlétének észlelésére, és opcionálisan közvetlenül csatlakoztatott hangszórót/hangjelzőt használunk a helyi riasztáshoz.

A projekt konkrét alkalmazása az árvíz/víz kimutatása a szivattyú kútjában, az olajteknő szivattyú meghibásodása esetén. Ha a vizet 2 nyitott vezeték érzékeli, az üzenetet küld az MQTT brókernek. Az MQTT bróker ezután továbbítja az üzenetet a NodeRED -nek. Az MQTT üzenet fogadása után a NodeRED bejelentést küld több Google otthoni eszközre, és opcionálisan üzenetet küld a mobiltelefonnak/böngészőnek pushbulleten keresztül

Természetesen ez a projekt csak akkor működik, ha az otthoni áram be van kapcsolva. A következő utasításban integrálom az akkumulátor tartalék áramkörét. De ha a tápegységet ugyanúgy gyártja, mint én, akkor csak csatlakoztathat egy USB tápegységet az akkumulátor biztonsági mentéséhez. Ha rendelkezik egy power-banknal, amely egyszerre tölti és táplálja az áramot, akkor minden készen áll.

A RaspberryPi ZeroW -t használom a Mosquitto MQTT szerver és a NodeRED kiszolgálására. Több mint egy éve működik minden probléma nélkül.

Hivatkozások: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi…A NodeRED telepítése a Raspberry Pi-re:

1. lépés: Alkatrészek, amelyekre szüksége lesz

Alkatrészek, amelyekre szüksége lesz
Alkatrészek, amelyekre szüksége lesz
Alkatrészek, amelyekre szüksége lesz
Alkatrészek, amelyekre szüksége lesz
Alkatrészek, amelyekre szüksége lesz
Alkatrészek, amelyekre szüksége lesz

Alkatrész lista:

(1) ESP-01

(2) 10K ohmos ellenállás

(1) kis jelű általános NPN tranzisztor (2N3904 -et használtam)

(2) hosszú vezetékek

(1) 5 V -os általános tápegység (ez az áramkör kevesebb, mint 300 mA áramot igényel)

(1) 3.3V -os szabályozó modul AMS1117

(1) Micro-USB-DIP adapter női csatlakozó PCB átalakító DIY készlet

(1) USB-A-MicroUSB kábel.

(1) 8 tűs IC aljzat-elhagyható, ha az ESP-01-et közvetlenül az áramköri lapra szeretné forrasztani. Vágja le a sorok közötti rést létrehozó műanyag hidakat, majd ragassza össze a 2 sort, lásd a fotót.

(1) Kis szekrény a projekthez

Az alábbiakban opcionális alkatrészek találhatók, ha hangosítóval/hangjelzéssel lokalizált riasztásra van szüksége

(1) Általános PNP tranzisztor, válassza ki a hangszóró/zümmögő áram/teljesítmény igény szerint. Esetemben a 2N2907 -et használom, mivel a hangszóróm csak 0,3 W (8 ohm), elegendő energiát biztosítana a hangszóró meghajtásához. Választhat egy nagyobb tranzisztorot és hangszórót, ha erősebb hangot szeretne.

(1) Hangszóró, lásd fent a PNP tranzisztorra vonatkozó megjegyzést

(1) 100 - 110 ohmos ellenállás

2. lépés: Áramköri diagram

Kördiagramm
Kördiagramm

Az első lépés az ábra szerinti áramkör létrehozása.

A 3.3VDC tápegységet egy régi 5V -os mobiltelefon -töltővel építettem, AMS1117 3.3VDC szabályozóval összekapcsolva. Az ESP-01 aljzathoz egy 8 tűs szabványos IC aljzatot használok, és elvágom a sorok közötti rést létrehozó műanyag hidakat, majd összeragasztom a 2 sort.

Az általam tervezett áramkör érzékeli a víz jelenlétét a két vezeték között. Ha a víz eléri mindkét vezeték csúcsát, akkor körülbelül 10-20 ohm ellenállást hoz létre. Ezután sorban a 10K ohmos R1-vel kis áramot biztosít a Q1 bázisához, ami a Q1 telítettségét eredményezi, és a GPIO-2-t a földhöz rögzíti. Az R1 szükséges ahhoz, hogy védelmet nyújtson a Q1 számára, ha véletlenül rövidzárlat keletkezik az érzékelő vezetékeken.

Az R2 egy felhúzó ellenállás, amely lehetővé teszi az ESP-01 vakuról történő indítását.

Most az opcionális hangszóró/zümmögő esetében, ha csak ESP-01-re van szüksége az MQTT beszédéhez, és nem szeretné végrehajtani ezt a lokalizált riasztást, eltávolíthatja az R2, Q2, hangszórót, és elhelyezhet egy 10K felhúzó ellenállást a GPIO-0 között és VCC.

Ha nem érzi szükségét a női Micro-USB-DIP adapter használatának, forraszthatja a vezetékeket az 5 V-os tápegység és a 3,3 V-os szabályozómodul között. Inkább a női MicroUSB adaptert használom, így bármilyen általános mobiltelefon töltőt és MicroUSB kábelt használhatok.

3. lépés: Az áramkör építése

A pálya építése
A pálya építése
A pálya építése
A pálya építése
A pálya építése
A pálya építése

Forrasztja az összes alkatrészt és alkatrészt a NYÁK -ba az előző oldalon található kapcsolási rajz szerint, és vágja méretre a NYÁK -ot.

Helyezze a NYÁK -t egy házba, amely illeszkedik a NYÁK -hoz és az opcionális hangszóróhoz. Esetemben minden alkatrész elférne egy kis telefonkimeneti dobozban, bár kicsit fel kell melegítenem a fedelet, hogy kidudorodjon, hogy az ESP-01 modul elférjen.

4. lépés: Az ESP-01 villogása

Ebben a lépésben megvillanjuk az ESP-01-t arduino vázlattal. Ha még soha nem villantotta fel az ESP-01 modult, kövesse az utasításokat az induláshoz:

A vázlatomat megtalálod a github oldalamon:

A vázlatban legalább meg kell változtatnia a következő információkat, amelyek az otthoni hálózatra/beállításra vonatkoznak:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

Az otthoni hálózatomban 2 különböző hozzáférési pontom van, amelyek 2 különböző SSID -t sugároznak, és ez a vázlat lehetővé tenné a redundanciát, ha a következő SSID -hez csatlakozna, ha megszakad a kommunikáció az aktuális AP -vel. Ha csak egy SSID -je van, töltse fel az ssid1 és az ssid2 azonos értékkel.

Miután elvégezte a módosítást, töltse fel a vázlatot az ESP-01-be, és csatlakoztassa az ESP-01-t az interfészlaphoz.

5. lépés: Tesztfuttatás

Annak tesztelésére, hogy a projektünk működik -e, a legegyszerűbb az MQTT üzenetek figyelése a hálózaton. Ehhez meg kell nyitnia egy SSH munkamenetet a szúnyogbrókernek, és ki kell adnia a következő parancsot:

mosquitto_sub -v -t '#'

A fenti parancs lehetővé teszi, hogy láthassuk az összes MQTT üzenetet, amely a közvetítőbe érkezik.

Most kapcsolja be az áramkört, és ha minden működik, néhány másodpercen belül legalább az alábbi MQTT üzenetet kell látnia:

stat/SumpWaterSensor/LWT Online

Most tesztelje a vízérzékelőt úgy, hogy a 2 érzékelő vezetéket egy csésze vízbe mártja, és ezt az üzenetet kell látnia:

tele/SumpWaterSensor WET

És ha kiveszi a vezetékeket a vízből, ezt az üzenetet kell látnia:

tele/SumpWaterSensor DRY

Ha látja ezeket az üzeneteket, a projekt sikeres.

Több hasznos MQTT témát is felvettem a vázlatba, amelyeket használhat:

"stat/SumpWaterSensorInfo": ezt az üzenetet minden percben elküldik az üzemidő és egyéb információk megadása érdekében.

"cmnd/SumpWaterSensorInfo": Az ESP-01 információt küld, ha megkapja ezt a témát "1" értékkel (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": Az ESP-01 újraindul, ha megkapja ezt a témát "1" értékkel (ascii = 49)

"cmnd/SumpWaterSensorBeep": Az ESP-01 megszólaltatja a hangszórót, ha ezt a témát "1" értékkel fogadja (ascii = 49)

"cmnd/SumpWaterSensorBeepFreq": Beállítja a hangszóró riasztásának frekvenciáját, alapértelmezett = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Soros hibakeresési szint engedélyezése és beállítása (alapértelmezett érték 0 - nincs hibakeresés)

6. lépés: Szerelje fel az érzékelőt

Szerelje fel az érzékelőt
Szerelje fel az érzékelőt
Szerelje fel az érzékelőt
Szerelje fel az érzékelőt

Alkalmazásomban figyelemmel akarom kísérni a vízszintet a szivattyúkút belsejében, és értesíteni akarok, ha a víz eléri az olajteknő szivattyú úszókapcsolóját, ami azt jelenti, hogy a szivattyú nem működik. Fűztem a vezetékeket, és drótkötéllel rögzítettem a lefolyócső mentén.

7. lépés: Utolsó érintés

Utolsó érintés
Utolsó érintés

Most, hogy a projekt működik, és közzétehetjük az MQTT üzenetet a brókernek, a következő lépés az, hogy kitaláljuk, mit tegyünk ezzel.

A projektemben a Node-RED segítségével hallgatom/feliratkozom a "tele/SumpWaterSensor" MQTT témára, és bejelentem több google home hangszórónak, ha vizet észlel. Ezenkívül az áramlást egy pushbullet csomóponthoz is kötöttem, hogy értesítést küldjek az Android telefonomra.

Létrehoztam egy webes kezelőfelületet is, hogy lássam az érzékelő állapotát (be/offline, üzemidő stb.). Néha láttam, hogy 1 hét alatt néhányszor offline állapotba kerül, a statisztikák alapján, sokszor annak köszönhető, hogy az ESP-01 levált a wifi-ről vagy az MQTT-ről. De ne aggódjon, a vázlatom tartalmazott rutinot az ESP-01 újraindítására, ha továbbra sem sikerül csatlakozni a WIFI és/vagy az MQTT brókerhez.

Ennek a lépésnek a képe mutatja a Node-RED folyamatot ennek eléréséhez. A folyamatot a github oldalamról is beillesztheti a Node-RED-be:

A Google otthoni bejelentése csak egy példa erre a projektre, de szerintem ez a leghasznosabb és legpraktikusabb. Bármikor csatlakozhat más MQTT figyelőhöz, vagy akár IFTTT -t használhat más eszközök meghajtására víz észlelésekor.

Érezd jól magad…

Ajánlott: