Sisällysluettelo:

MQTT/Google Home DoorBell ESP-01: 6 askelta
MQTT/Google Home DoorBell ESP-01: 6 askelta

Video: MQTT/Google Home DoorBell ESP-01: 6 askelta

Video: MQTT/Google Home DoorBell ESP-01: 6 askelta
Video: Home Automation using ESP01 ESP8266 Tasmota Alexa control Relay - IoT Project 2023 2024, Marraskuu
Anonim
MQTT/Googlen kodin ovikello ESP-01: n avulla
MQTT/Googlen kodin ovikello ESP-01: n avulla

Oletko koskaan jäänyt vastaamatta vieraalle, joka soitti ovikelloa vain siksi, että olet osassa taloa, joka on liian kaukana ovikellon soitosta? esimerkiksi kellarissa, suljetussa makuuhuoneessa tai ehkä katselit televisiota tai kuuntelit musiikkia.

Jos kuten sinä, minulla on yksi tai useampi Googlen kotikaiutin useissa paikoissa koko talossasi, tämä opettavainen voi olla mitä tarvitset.

Tässä ohjeessa näytän sinulle, kuinka voit lisätä MQTT -asiakkaan olemassa olevaan ovikellon soittoon kommunikoidaksesi MQTT -välittäjälle ja ilmoittaaksesi Google home / pushbulletille NodeREDin avulla. Tämä projekti ei korvaa ovikellokytkintä eikä äänimerkkiä. Se käyttää edelleen tavallista mekaanista painiketta ovikellossa.

Lisäämme ESP-01-moduulin olemassa olevaan 16VAC-ovikellojärjestelmään ja lisäämme MQTT-toiminnon viestin lähettämiseksi MQTT-välittäjälle (kun ovikellokytkintä painetaan). MQTT -välittäjä välittää viestin NodeREDille. Vastaanotettuaan MQTT -viestin NodeRED lähettäisi ilmoituksen useille Google -kodin laitteille ja valinnaisesti myös viestin matkapuhelimeen/selaimeen pushbulletin kautta.

Minulla on intohimo DIY -kodin automatisointiin ja IOT: n lisääminen hitaasti kotiin. Google -koti on ollut yksi kotiautomaation keskeisistä toiminnoista.

Poikani antoi minulle idean tähän projektiin, kun hän kysyi minulta, voinko saada google home ilmoittamaan joka kerta, kun joku soittaa ovikellomme. Meillä on 2 tarinaa + viimeistellä kellarikoti, ja monta kertaa emme voineet kuulla äänimerkkiä, kun olemme kellarissamme tai yläkerrassa makuuhuoneessa, jossa ovi on kiinni tai televisio päällä.

Talossamme on neljä google home miniä, jotka on sijoitettu eri paikkoihin/huoneisiin, ja käyttämällä google homesia ilmoittamaan ovikellosta, tiedämme heti missä tahansa talossa, soittaako joku ovikelloa.

Kotona käytän RaspberryPi ZeroW: tä Mosquitto MQTT -palvelimen ja NodeRED -palvelimen isännöintiin. Se on toiminut yli vuoden ilman ongelmia.

Viitteet:

  • Ovikellon kytkentäkaaviot:
  • Asenna Mosquitto MQTT Broker Raspberry Pi: lle:
  • Asenna NodeRED Raspberry Pi: hen:

Vaihe 1: Luo piiri piiriin ESP-01 ja ovikello

Luo piiri piiriin ESP-01 ja ovikello
Luo piiri piiriin ESP-01 ja ovikello
Luo piiri piiriin ESP-01 ja ovikello
Luo piiri piiriin ESP-01 ja ovikello
Luo piiri piiriin ESP-01 ja ovikello
Luo piiri piiriin ESP-01 ja ovikello

Ensimmäinen askel olisi luoda piiri, joka olisi rajapinta ESP-01: n ja ovikellon välillä. Tyypillinen ovikello aktivoituu, kun "TRANS (entinen)" - ja "ETU/TAKA" -tappien välillä on 16VAC, kuten ensimmäisessä valokuvassani näkyy. Näihin nastoihin tulee jännite, kun ovikellon painiketta painetaan.

Suunnittelemani piiri on tunnistaa tämä 16VAC -signaali ja muuntaa se noin 3,3 VDC: n digitaaliseksi signaaliksi. Se on peruspuoliaallon tasasuuntaaja, jonka muodostavat D1 ja C1. Meidän ei tarvitse täyden aallon tasasuuntaajaa tässä tilanteessa, koska tasavirtalähtöön kohdistuu hyvin vähän kuormitusta, mikä säästää hieman kiinteistöä taululla. Haluan tehdä levyn mahdollisimman vähän, jotta voin sijoittaa sen nykyisen soittoääneni sisään.

R1 ja R2 muodostavat jännitteenjakajan, joka alentaa DC -huippujännitteen noin 3,3 V.

R3, TR1 ja R4 muodostavat invertterin, joka tarjoaa käänteisen logiikan ESP-01 GPIO-2: lle. Tämä on välttämätöntä, jotta logiikka on HIGH käynnistyksen aikana (vetämällä R4 ja R5), jotta ESP-01 käynnistyy salamasta. Kun ovikellon painiketta painetaan, se esittää logiikkaa LOW GPIO-2. TR1 voi olla mikä tahansa pienitehoinen NPN-transistori, minun tapauksessani käytin 2N3904.

V1 on 3,3 VDC: n virtalähde, jonka rakensin käyttämällä vanhaa 5 V: n matkapuhelinlaturia ja AMS1117 3.3 VDC -säädintä, jonka näytän seuraavassa vaiheessa.

ESP-01-pistorasiassa käytän 8-nastaista vakiomallista IC-pistorasiaa ja leikkaan muovisiltoja, jotka muodostavat rivien välisen raon, ja liimaan sitten 2 riviä yhteen.

Vaihe 2: 3.3VDC-virtalähde ESP-01: lle

3.3VDC-virtalähde ESP-01: lle
3.3VDC-virtalähde ESP-01: lle
3.3VDC-virtalähde ESP-01: lle
3.3VDC-virtalähde ESP-01: lle
3.3VDC-virtalähde ESP-01: lle
3.3VDC-virtalähde ESP-01: lle

Tässä vaiheessa rakennamme 3.3VDC-virtalähteen ESP-01: lle. Minulla on muutama vanha 500 mA: n ja 700 mA: n 5 VDC: n USB-laturisovitin, jonka olen suunnitellut uudelleen tähän projektiin. Tarvitsemme myös 3.3VDC-säätimen pudottamaan 5V: n jännitteen 3.3V: ksi, tätä varten käytän halpaa esivalmistettua AMS1117-pohjaista säätömoduulia, jonka ostin ebaystä. Voit etsiä "3.3V AMS1117 -moduulia" ja löytää itsellesi sopivan.

Tämä 3,3 V: n säätömoduuli on hyvin pieni, joten voin todella laittaa sen alkuperäiseen 5 V: n USB-laturikoteloon, mikä tekee siitä turvallisemman mahdolliselta oikosululta. Irrotin AC -seinäpiikit laturimoduulista ja korvasin sen kahdella kaapelilla, jotka kytketään 120 VAC: iin nykyisen soittoäänen takana olevasta seinästä. Mutta älä poista piikkejä tässä vaiheessa, ennen kuin teemme koeajon seuraavassa vaiheessa.

Jos lähistöllä on pistorasia tai jos et halua kytkeä virtalähdettä suoraan talon johdotukseen, voit vaihtoehtoisesti kytkeä vain muokatun virtalähteen seinäpistokkeeseen ja kytkeä kaapeloinnin kelloon. ei ehkä näytä yhtä siistiltä kuin liittäminen suoraan talon johdotukseen.

Katso yksi valokuvistani nähdäksesi, että kelloni takana on 120 VAC -johdotus ja 16 VAC -muuntaja.

3.3 V: n säätimen lähtö liitetään sitten ESP-01-liitäntäkorttiin edellisen vaiheen mukaisesti.

Vaihe 3: ESP-01: n vilkkuminen

Tässä vaiheessa salataan ESP-01 arduino-luonnoksella. Jos et ole koskaan väläyttänyt ESP-01-moduulia, voit aloittaa ohjeiden noudattamisen:

Luonnokseni löytyy github -sivultani:

Luonnoksessa sinun on muutettava vähintään seuraavat kotiverkkoasi/kokoonpanoasi koskevat tiedot:

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

Kotiverkossani minulla on 2 eri tukiasemaa, jotka lähettävät 2 eri SSID: tä, ja tämä luonnos sallii redundanssin muodostamalla yhteyden seuraavaan SSID: hen, jos yhteys nykyiseen tukiasemaan katkeaa. Jos sinulla on vain yksi SSID, täytä sekä ssid1 että ssid2 sama arvo.

Kun olet tehnyt muutokset, lataa luonnos ESP-01: een ja liitä ESP-01 liitäntäkorttiin.

Vaihe 4: Koeajo

Koeajo
Koeajo
Koeajo
Koeajo
Koeajo
Koeajo

Vaiheesta 1 lähtien olemme rakentaneet ESP-01-liitäntäkortin ja vaiheesta 2 lähtien meillä on 3,3 V: n virtalähde ESP-01-kortille. Liitämme virtalähteen lähdön piirilevyyn piirikaavion mukaisesti, joka on esitetty muodossa V1.

Seuraava askel on liittää äänimerkin Trans/Door -liittimet liitäntäkortin liitäntöihin, jotka on merkitty "Door Chime Terminals". Koska kelloni on asennettu korkealle seinälle, koeajoa varten vedän tilapäisesti pitkän parin kaapelia soittoäänen liittimistä korttiin, jotta voin kytkeä virtalähteen.

Testaaksemme, toimiiko laitteemme, helpoin olisi seurata verkon MQTT -viestejä. Tätä varten sinun on avattava SSH -istunto mosquitto -välittäjälle ja annettava seuraava komento:

mosquitto_sub -v -t '#'

Yllä olevan komennon avulla voimme nähdä kaikki välittäjään tulevat MQTT -viestit.

Liitä nyt virtalähde pistorasiaan, ja jos kaikki toimii, muutaman sekunnin kuluttua sinun pitäisi nähdä ainakin seuraava MQTT -viesti:

stat/DoorBell/LWT Online

Mene nyt ulos ja soita ovikelloa, ja sinun pitäisi nähdä tämä viesti:

tele/ovikello PÄÄLLÄ

Jos näet nämä viestit, projektisi on onnistunut.

Sisällysin luonnokseen myös useita hyödyllisiä MQTT -aiheita, joita voit käyttää:

"stat/DoorBellInfo": tämä viesti lähetetään joka minuutti käyttöajan ja muiden tietojen antamiseksi.

"cmnd/DoorBellInfo": ESP-01 lähettää tietoja, jos se vastaanottaa tämän aiheen arvolla "1" (ascii = 49) "cmnd/DoorBellCPUrestart": ESP-01 käynnistyy uudelleen, jos se vastaanottaa tämän aiheen arvolla "1" '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01 nollataan, jos se vastaanottaa tämän aiheen arvolla "1" (ascii = 49)

"tele/FrontDoorBell": ESP-01 lähettää tähän aiheeseen liittyvän viestin arvolla "ON", jos ovikelloa painetaan

Vaihe 5: Kortin ja virtalähteen liittäminen kelloon

Kortin ja virtalähteen liittäminen kelloon
Kortin ja virtalähteen liittäminen kelloon
Kortin ja virtalähteen liittäminen kelloon
Kortin ja virtalähteen liittäminen kelloon
Kortin ja virtalähteen liittäminen kelloon
Kortin ja virtalähteen liittäminen kelloon

Nyt kun meillä on onnistunut koeajo, meidän on koottava levy ja virtalähde ovikellon soittoäänen sisään (jos mahdollista). Nykyisessä soittokellossani on tyhjä kotelo, jonka pystyin leikkaamaan auki ja sovittamaan virtalähteen kyseiseen tilaan. ESP-01-levy ei sovi pieneen tilaan, mutta mahtuu silti soittoäänen laatikkoon. Käytin juuri paksua kaksipuolista teippiä ESP-01-liitäntäkortin kiinnittämiseen.

Nyt voimme poistaa metalliset koukut USB -laturistamme ja korvata ne paksummalla kaapelilla, jonka voimme liittää talon johtoihin. Muista sammuttaa katkaisija, joka syöttää sähköä soittoäänipiiriin.

Jos projektissamme ei ole riittävästi tilaa olemassa olevaan ovikelloon, sinun on asetettava se erilliseen laatikkoon ja asennettava se ovikellon lähelle.

Vaihe 6: Viimeinen kosketus

Viimeinen kosketus
Viimeinen kosketus

Nyt kun projekti on saatu toimimaan ja voimme julkaista MQTT -viestin välittäjälle, seuraava askel on miettiä, mitä tehdä sen kanssa.

Projektissani käytän Node-REDiä kuuntelemaan/tilaamaan kyseistä ovikellon MQTT-aihetta ja ilmoittamaan useille Googlen kotikaiuttimille. Tämän lisäksi liitin virtauksen myös pushbullet -solmuun, jotta voin lähettää ilmoituksen Android -puhelimeeni, jotta tiedän, soittaako kukaan ovikelloa, vaikka en ole kotona. Pushbullet -ilmoitus ei ole hyödyllinen joillekin, mutta se on ollut minulle hyödyllinen pari kertaa, yhdessä videokameran kanssa kuistillani, näen kuka tuli pudottamaan toimituksia (he yleensä soittavat ovikelloa). En voi luottaa paljon kameran liiketunnistusominaisuuteen erilaisten häiriöiden, erityisesti puiden liikkuvien varjojen, vuoksi.

Tämän vaiheen kuva näyttää solmun-PUNAN virtauksen tämän saavuttamiseksi. Voit myös liittää virran github-sivultani solmu-PUNAISEEN:

Googlen kotisivuilmoitus on vain yksi esimerkki tästä projektista, mutta mielestäni se on hyödyllisin ja käytännöllisin. Voit aina liittyä muihin MQTT -kuuntelijoihin tai jopa käyttää IFTTT: tä muiden laitteiden ohjaamiseen ovikelloa painettaessa.

Pidä hauskaa…

Suositeltava: