Tartalomjegyzék:

MQTT/Google Home DoorBell ESP-01 használatával: 6 lépés
MQTT/Google Home DoorBell ESP-01 használatával: 6 lépés

Videó: MQTT/Google Home DoorBell ESP-01 használatával: 6 lépés

Videó: MQTT/Google Home DoorBell ESP-01 használatával: 6 lépés
Videó: 15. ESP8266 alapú MQTT szerver 2024, November
Anonim
MQTT/Google Home DoorBell ESP-01 használatával
MQTT/Google Home DoorBell ESP-01 használatával

Elfelejtette valaha is válaszolni egy vendégnek, aki csengetett a csengőjén, csak azért, mert a ház olyan részében van, amely túl messze van ahhoz, hogy meghallja a csengő hangját? például pincében, zárt ajtós hálószobában, vagy esetleg tévét nézett vagy zenét hallgatott.

Ha hozzám hasonlóan, van egy vagy több Google otthoni hangszórója a ház több pontján, akkor ez az oktatható dolog lehet az, amire szüksége van.

Ebben az utasításban megmutatom, hogyan adhat hozzá MQTT klienst egy meglévő csengőhanghoz, hogy kommunikáljon az MQTT brókerrel a Google home / pushbullet értesítésével, a NodeRED használatával. Ez a projekt nem helyettesíti a csengőkapcsolót és a csengőt. Még mindig rendszeres mechanikus nyomógombot használ az ajtócsengőhöz.

Az ESP-01 modult hozzáadjuk a meglévő 16VAC-os csengőrendszerhez, és hozzáadjuk az MQTT funkciót, hogy üzenetet küldjünk az MQTT brókernek (ha a csengőkapcsolót megnyomjuk). Az MQTT bróker továbbítja az üzenetet a NodeRED számára. 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.

Szenvedélyem a DIY otthoni automatizálás, és lassan az IOT hozzáadása az otthonomhoz. A Google home az otthoni automatizálás egyik központi funkciója volt.

A fiam adta az ötletet ehhez a projekthez, amikor megkérdezte, hogy tudom -e a google home -t bejelenteni minden alkalommal, amikor valaki csenget. Van 2 emeletünk + befejezzük az alagsort otthonunkban, és sokszor nem hallottuk a harangjátékot, amikor a pincénkben vagy az emeleten vagyunk a hálószobában, csukott ajtóval vagy bekapcsolt TV -vel.

A házunkban 4 google home mini található különböző helyeken/helyiségekben, és ha a google home segítségével bejelent egy ajtócsengőt, azonnal tudjuk, hogy bárhol a házban, ha valaki csenget.

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

Hivatkozások:

  • Ajtócsengő kapcsolási rajzai:
  • Telepítse a Mosquitto MQTT Brokert a Raspberry Pi-re:
  • Telepítse a NodeRED -t a Raspberry Pi -re:

1. lépés: Hozza létre az áramkört az interfészhez ESP-01 és ajtócsengőt

Hozza létre az áramkört az interfészhez ESP-01 és ajtócsengőt
Hozza létre az áramkört az interfészhez ESP-01 és ajtócsengőt
Hozza létre az áramkört az interfészhez ESP-01 és ajtócsengőt
Hozza létre az áramkört az interfészhez ESP-01 és ajtócsengőt
Hozza létre az áramkört az interfészhez ESP-01 és ajtócsengőt
Hozza létre az áramkört az interfészhez ESP-01 és ajtócsengőt

Az első lépés az, hogy létrehozzuk azt az áramkört, amely az ESP-01 és az ajtócsengő közötti interfész lenne. A tipikus ajtócsengő akkor aktiválódik, ha 16VAC van a "TRANS (volt)" és a "ELSŐ/HÁTSÓ" csapok között, amint az az első fényképemen látható. A feszültség megjelenik a csapokon, amikor megnyomja a csengő gombot.

Az általam tervezett áramkör ezt a 16VAC jelet érzékeli, és körülbelül 3,3VDC digitális jellé alakítja. Ez egy alapvető félhullámú egyenirányító, amelyet D1 és C1 alkot. Ebben a helyzetben nincs szükségünk teljes hullámú egyenirányítóra, mivel nagyon kicsi a terhelés az egyenáramú kimenetre, és ezzel egy kicsit megtakarítunk az ingatlanon. Szeretném a lehető legkevesebbre készíteni a táblát, hogy elhelyezhessem a meglévő csengőhangomban.

Az R1 és R2 feszültségosztót képez, hogy a csúcs egyenáramú feszültséget 3,3 V körülire csökkentse.

R3, TR1 és R4 invertert képeznek, hogy fordított logikát biztosítsanak az ESP-01 GPIO-2 számára. Erre azért van szükség, hogy a rendszer logikailag HIGH legyen a rendszerindítás során (az R4 és R5 felhúzással) az ESP-01 vakuról történő indításához. Az ajtócsengő nyomógombjának megnyomásakor LOW logikát mutat a GPIO-2. TR1 lehet bármilyen kis teljesítményű NPN tranzisztor, az én esetemben a 2N3904-et használtam.

A V1 egy 3,3 V egyenáramú tápegység, amelyet egy régi 5 V -os mobiltelefon -töltő segítségével építettem, és az AMS1117 3,3 V egyenáramú szabályozót, amelyet a következő lépésben mutatok be.

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.

2. lépés: 3.3VDC tápegység ESP-01-hez

3.3VDC tápegység ESP-01-hez
3.3VDC tápegység ESP-01-hez
3.3VDC tápegység ESP-01-hez
3.3VDC tápegység ESP-01-hez
3.3VDC tápegység ESP-01-hez
3.3VDC tápegység ESP-01-hez

Ebben a lépésben elkészítjük a 3.3VDC tápegységet az ESP-01 számára. Van néhány régi 500mA és 700mA 5VDC USB töltő adapter, amelyet erre a projektre terveztem. Szükségünk van továbbá 3.3VDC szabályozóra, hogy az 5V-os feszültséget 3.3V-ra csökkentsük, ehhez egy olcsó, előre megépített AMS1117 alapú szabályozó modult használok, amelyet az ebay-től vettem. Kereshet a "3.3V AMS1117 modul" kifejezésre, és megtalálja az Önnek megfelelőt.

Ez a 3,3 V-os szabályozó modul nagyon kicsi, hogy ténylegesen be tudom tölteni az eredeti 5 V-os USB-töltőházba, így biztonságosabb a lehetséges rövidzárlat ellen. Eltávolítottam a töltőmodulból a váltakozó áramú fali csatlakozókat, és kicseréltem két kábellel, amelyek 120VAC -hoz csatlakoznak a meglévő csengő mögötti falról. De ne távolítsa el a fogakat ezen a lépésen, amíg nem teszteljük a következő lépést.

Ha van fali konnektor a közelben, vagy ha nem akarja közvetlenül csatlakoztatni a tápegységet a ház vezetékeihez, akkor egyszerűen csatlakoztassa a módosított tápegységet a fali csatlakozóhoz, és futtassa a kábelezést a csengőhöz, bár nem tűnik olyan tisztának, mint közvetlenül a ház vezetékeihez csatlakoztatni.

Nézze meg az egyik fotómat, hogy a csengőm mögött 120VAC kábelezés és a 16VAC transzformátor található.

A 3.3V-os szabályozó kimenete ekkor az ESP-01 interfész kártyához csatlakozik az előző lépés szerint.

3. 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.

4. lépés: Tesztfuttatás

Tesztfutás
Tesztfutás
Tesztfutás
Tesztfutás
Tesztfutás
Tesztfutás

Az 1. lépéstől kezdve felépítettük az ESP-01 interfész kártyát, a 2. lépéstől pedig az ESP-01 kártya 3.3V-os tápegységét. Most csatlakoztatjuk a tápegység kimenetét a kártyához a kapcsolási rajz szerint, V1 -ként.

A következő lépés az, hogy a csengőhang Trans/Door terminálokat az "Door Chime Terminals" néven látható interfészkártya -csatlakozásokhoz kell csatlakoztatni. Mivel a hangjelzőm magasan van a falra szerelve, a próbaüzemre ideiglenesen egy hosszú kábelt vezetek a csipogó terminálokról a kártyára, hogy bekapcsolhassam a tápegységet.

Annak tesztelésére, hogy működik -e a konstrukciónk, 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 csatlakoztassa a tápegységet a fali aljzathoz, és ha minden működik, néhány másodpercen belül legalább az alábbi MQTT üzenetet kell látnia:

stat/DoorBell/LWT Online

Most menjen kifelé, és csengessen be, és ezt az üzenetet kell látnia:

tele/DoorBell BE

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/DoorBellInfo": ezt az üzenetet minden percben elküldik az üzemidő és egyéb információk megadása érdekében.

"cmnd/DoorBellInfo": Az ESP-01 információt küld, ha megkapja ezt a témát "1" értékkel (ascii = 49) "cmnd/DoorBellCPUrestart": az ESP-01 újraindul, ha megkapja ezt a témát "1" értékkel '(ascii = 49) "cmnd/DoorBellCPUreset": Az ESP-01 alaphelyzetbe áll, ha ezt a témát "1" értékkel kapja meg (ascii = 49)

"tele/FrontDoorBell": Az ESP-01 üzenetet küld a témában "ON" értékkel, ha megnyomja a csengőt

5. lépés: Az alaplap és a tápegység integrálása a csengőhangba

Az alaplap és a tápegység integrálása a csengőhangba
Az alaplap és a tápegység integrálása a csengőhangba
Az alaplap és a tápegység integrálása a csengőhangba
Az alaplap és a tápegység integrálása a csengőhangba
Az alaplap és a tápegység integrálása a csengőhangba
Az alaplap és a tápegység integrálása a csengőhangba

Most, hogy sikeres próbaüzemünk van, össze kell szerelnünk a táblát és a tápegységet a csengőhangunkban (ha lehetséges). A meglévő csengettyűmben van egy üres ház, amelyet fel tudtam vágni, és be tudtam illeszteni a tápegységet az adott helyre. Az ESP-01 tábla nem fér bele ebbe a kis helyre, de mégis belefér a csengő dobozába. Csak egy vastag kétoldalas ragasztószalagot használtam az ESP-01 interfészlap rögzítéséhez.

Most eltávolíthatjuk a fém dugókat az USB -töltőnkből, és helyettesíthetjük őket egy vastagabb kábellel, amelyet csatlakoztathatunk a ház vezetékeihez. Ügyeljen arra, hogy kapcsolja ki a megszakítót, amely áramot szolgáltat a csengőkörhöz.

Ha nincs elég hely ahhoz, hogy a projektünket illessze a meglévő ajtócsengőbe, akkor külön dobozba kell helyeznie, és az ajtócsengő közelében kell felszerelnie.

6. 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 az ajtócsengő MQTT témájára, és bejelentem több google home hangszórónak. Ezen kívül az áramlást egy pushbullet csomóponthoz is kötöttem, hogy értesítést küldjek az androidos telefonomra, így tudom, ha valaki csenget, még akkor is, ha nem vagyok otthon. A Pushbullet értesítés nem hasznos néhány ember számára, de néhány alkalommal nagyon hasznos volt számomra, és az elülső verandámon lévő videokamerával párosítva láttam, hogy ki jött a szállításokról (általában csengetnek). Nem tudok sokat támaszkodni a kamera mozgásérzékelő funkciójára a különböző interferenciák, különösen a fák mozgó árnyékai miatt.

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. Mindig csatlakozhat a többi MQTT -hallgatóhoz, vagy akár IFTTT -t használhat más eszközök meghajtására a csengő megnyomására.

Érezd jól magad…

Ajánlott: