Inhoudsopgave:

MQTT/Google Home DoorBell met ESP-01: Ajarnpa
MQTT/Google Home DoorBell met ESP-01: Ajarnpa

Video: MQTT/Google Home DoorBell met ESP-01: Ajarnpa

Video: MQTT/Google Home DoorBell met ESP-01: Ajarnpa
Video: How-To: Integrate You Doorbell in Home Assistant Using ESPHome 2024, November
Anonim
MQTT/Google Home-deurbel met ESP-01
MQTT/Google Home-deurbel met ESP-01

Heb je ooit een gast die aanbelde gemist omdat je in een deel van het huis bent dat te ver weg is om de deurbel te horen? zoals kelder, slaapkamer met gesloten deur, of misschien keek u tv of luisterde u naar muziek.

Als je net als ik een of meer google home-luidsprekers op verschillende locaties in je huis hebt, is dit instructable misschien wat je nodig hebt.

In deze Instructable laat ik je zien hoe je een MQTT-client kunt toevoegen aan een bestaande deurbelbel om te communiceren met MQTT-makelaar met aankondiging naar Google Home / Pushbullet, met behulp van NodeRED. Dit project vervangt niet de deurbelschakelaar of de gong. Het gebruikt nog steeds een gewone mechanische drukknop voor de deurbel.

We zullen de ESP-01-module toevoegen aan het bestaande 16VAC-deurbelsysteem en MQTT-functionaliteit toevoegen om een bericht naar de MQTT-makelaar te sturen (wanneer de deurbelschakelaar wordt ingedrukt). MQTT-makelaar zou het bericht doorsturen naar NodeRED. Na ontvangst van het MQTT-bericht zou NodeRED een aankondiging naar meerdere Google Home-apparaten sturen en optioneel ook een bericht naar mobiel / browser sturen via pushbullet.

Ik heb een passie voor doe-het-zelf-domotica en voeg langzaam IOT toe aan mijn huis. Google home is een van de centrale functies geweest in mijn domotica.

Mijn zoon bracht me op het idee voor dit project toen hij me vroeg of ik Google Home elke keer kon laten aankondigen dat er iemand aanbelt. We hebben 2 verdiepingen + afgewerkte kelderwoning, en vaak konden we de bel niet horen als we in onze kelder of boven in de slaapkamer waren met de deur dicht of met de tv aan.

We hebben 4 google home mini's in huis geplaatst op verschillende plaatsen/kamers, en door google homes te gebruiken om een deurbel aan te kondigen, weten we meteen overal in huis of er iemand aanbelt.

In mijn huis gebruik ik RaspberryPi ZeroW om de Mosquitto MQTT-server en NodeRED te hosten. Het draait al meer dan een jaar zonder enig probleem.

Referenties:

  • Bedradingsschema's deurbel:
  • Installeer Mosquitto MQTT Broker op Raspberry Pi:
  • Installeer NodeRED op Raspberry Pi:

Stap 1: Maak het circuit voor interface ESP-01 en deurbel

Creëer het circuit voor interface ESP-01 en deurbel
Creëer het circuit voor interface ESP-01 en deurbel
Creëer het circuit voor interface ESP-01 en deurbel
Creëer het circuit voor interface ESP-01 en deurbel
Creëer het circuit voor interface ESP-01 en deurbel
Creëer het circuit voor interface ESP-01 en deurbel

De eerste stap zou zijn om het circuit te creëren dat de interface zou zijn tussen ESP-01 en Door Chime. Typische deurbel wordt geactiveerd wanneer er een 16VAC is tussen de "TRANS (voormalige)" en "FRONT/REAR" pinnen zoals weergegeven in mijn eerste foto. De spanning staat op die pinnen wanneer de deurbelknop wordt ingedrukt.

Het circuit dat ik heb ontworpen, is om dit 16VAC-signaal te detecteren en om te zetten in een digitaal signaal van ongeveer 3,3 VDC. Het is een eenvoudige halfgolfgelijkrichter gevormd door D1 en C1. We hebben in deze situatie geen dubbelfasige gelijkrichter nodig, omdat de DC-uitgang zeer weinig wordt belast, wat ons een beetje onroerend goed op het bord bespaart. Ik wil het bord zo min mogelijk maken, zodat ik het in mijn bestaande bel kan plaatsen.

R1 en R2 vormen een spanningsdeler om de piek-gelijkspanning terug te brengen tot ongeveer 3,3 V.

R3, TR1 en R4 vormen een omvormer om omgekeerde logica te bieden voor de ESP-01 GPIO-2. Dit is nodig om logica HOOG te bieden tijdens het opstarten (met de pull-up R4 en R5) voor ESP-01 om op te starten vanaf flash. Wanneer de deurbeldrukknop wordt ingedrukt, presenteert deze logisch LAAG aan de GPIO-2. TR1 kan elke NPN-transistor met klein vermogen zijn, in mijn geval gebruikte ik 2N3904.

De V1 is een 3.3VDC-voeding die ik heb gebouwd met behulp van een oude 5V-oplader voor mobiele telefoons in combinatie met een AMS1117 3.3VDC-regelaar die ik in de volgende stap zal laten zien.

Voor de ESP-01-socket gebruik ik een 8-pins standaard IC-socket en snij de plastic bruggen die de opening tussen de rijen creëren, en lijm vervolgens de 2 rijen aan elkaar.

Stap 2: 3.3VDC-voeding voor ESP-01

3.3VDC-voeding voor ESP-01
3.3VDC-voeding voor ESP-01
3.3VDC-voeding voor ESP-01
3.3VDC-voeding voor ESP-01
3.3VDC-voeding voor ESP-01
3.3VDC-voeding voor ESP-01

In deze stap bouwen we de 3.3VDC-voeding voor de ESP-01. Ik heb een paar oude 500mA en 700mA 5VDC USB-opladeradapter die ik opnieuw heb gebruikt voor dit project. We hebben ook een 3.3VDC-regelaar nodig om de 5V-spanning naar 3,3V te verlagen, hiervoor gebruik ik een goedkope vooraf gebouwde AMS1117-gebaseerde regelaarmodule die ik van ebay heb gekocht. U kunt zoeken naar "3.3V AMS1117-module" en vinden wat voor u werkt.

Deze 3,3V-regelaarmodule is zo klein dat ik hem in de originele 5V USB-opladerbehuizing kan stoppen, waardoor hij veiliger is tegen mogelijke kortsluiting. Ik heb de AC-muuruitsteeksels van de ladermodule verwijderd en vervangen door twee kabels die worden aangesloten op 120VAC van de muur achter mijn bestaande bel. Maar verwijder de tanden van deze stap pas als we de volgende stap hebben getest.

Als er een stopcontact in de buurt is, of als u het niet prettig vindt om de voeding rechtstreeks op de huisbedrading aan te sluiten, kunt u desgewenst gewoon de aangepaste voeding aansluiten op de wandstekker en de bekabeling naar de gong leiden, hoewel het ziet er misschien niet zo schoon uit als rechtstreeks aansluiten op huisbedrading.

Zie een van mijn foto's om te zien dat achter mijn bel 120VAC-bedrading is en de 16VAC-transformator voor de gong.

De uitvoer van de 3.3V-regelaar zou dan volgens de vorige stap worden aangesloten op de ESP-01-interfacekaart.

Stap 3: Knipperen van de ESP-01

In deze stap zullen we de ESP-01 flashen met arduino-schets. Als je de ESP-01-module nog nooit hebt geflitst, kun je mijn instructable volgen om je op weg te helpen:

Je kunt mijn schets vinden op mijn github-pagina:

In de schets moet u minimaal de volgende informatie met betrekking tot uw thuisnetwerk/configuratie wijzigen:

#define MQTT_SERVER "10.0.0.30"const char* ssid1 = "SSID";const char* wachtwoord1 = "MYSSIDpassword";const char* ssid2 = "SSID1";const char* wachtwoord2 = "MYSSIDpassword";

In mijn thuisnetwerk heb ik 2 verschillende toegangspunten die 2 verschillende SSID's uitzenden, en deze schets zou redundantie mogelijk maken door verbinding te maken met de volgende SSID als de communicatie met het huidige AP wegvalt. Als je maar één SSID hebt, vul dan zowel ssid1 als ssid2 in met dezelfde waarde.

Nadat u de wijziging hebt aangebracht, uploadt u de schets naar ESP-01 en sluit u de ESP-01 aan op het interfacebord.

Stap 4: Proefdraaien

Test uitvoeren
Test uitvoeren
Test uitvoeren
Test uitvoeren
Test uitvoeren
Test uitvoeren

Vanaf stap 1 hebben we het ESP-01-interfacebord gebouwd en vanaf stap 2 hebben we de 3.3V-voeding voor het ESP-01-bord. We verbinden nu de voedingsuitgang met het bord volgens het schakelschema, weergegeven als V1.

De volgende stap is nu om de deurbel-trans/deur-terminals aan te sluiten op de interfacekaart-aansluitingen die worden weergegeven als "Deurbel-terminals". Omdat mijn gong hoog op een muur is gemonteerd, heb ik voor het proefdraaien tijdelijk een lang paar kabels van de gong-aansluitingen naar het bord geleid, zodat ik de voeding kan aansluiten.

Om te testen of ons apparaat werkt, is het het gemakkelijkst om MQTT-berichten in het netwerk te controleren. Om dat te doen, moet je een SSH-sessie openen voor de mug-makelaar en de volgende opdracht geven:

mosquitto_sub -v -t '#'

Met het bovenstaande commando kunnen we alle MQTT-berichten zien die de makelaar binnenkomen.

Steek nu de stekker in het stopcontact en als alles werkt, zou je binnen een paar seconden in ieder geval het volgende MQTT-bericht moeten zien:

stat/DoorBell/LWT Online

Ga nu naar buiten en bel aan, en je zou dit bericht moeten zien:

tele/Deurbel AAN

Als je die berichten ziet, is je project een succes.

Ik heb ook verschillende nuttige MQTT-onderwerpen in de schets opgenomen die je kunt gebruiken:

"stat/DoorBellInfo": dit bericht wordt elke minuut verzonden om uptime en andere informatie te verstrekken.

"cmnd/DoorBellInfo": ESP-01 verzendt informatie als het dit onderwerp ontvangt met de waarde '1' (ascii=49)"cmnd/DoorBellCPUrestart": ESP-01 zal opnieuw opstarten als het dit onderwerp ontvangt met de waarde '1 ' (ascii=49)"cmnd/DoorBellCPureset": ESP-01 wordt gereset als het dit onderwerp ontvangt met de waarde '1' (ascii=49)

"tele/FrontDoorBell": ESP-01 stuurt een bericht in dit onderwerp met de waarde 'ON' als de deurbel wordt ingedrukt

Stap 5: Integratie van het bord en de voeding in de bel

Integratie van het bord en de voeding in de bel
Integratie van het bord en de voeding in de bel
Integratie van het bord en de voeding in de bel
Integratie van het bord en de voeding in de bel
Integratie van het bord en de voeding in de bel
Integratie van het bord en de voeding in de bel

Nu we onze succesvolle testrun hebben gehad, moeten we het bord en de voeding in onze deurbelbel monteren (indien mogelijk). In mijn bestaande bel is er een lege behuizing die ik heb kunnen opensnijden en de voeding in die ruimte kon plaatsen. Het ESP-01-bord past niet in die kleine ruimte, maar past nog steeds in de algehele beldoos. Ik heb zojuist een dikke dubbelzijdige tape gebruikt om het ESP-01-interfacebord te monteren.

Nu kunnen we de metalen pinnen van onze USB-oplader verwijderen en vervangen door een dikkere kabel die we kunnen aansluiten op de huisbedrading. Zorg ervoor dat u uw stroomonderbreker die de elektriciteit aan het belcircuit levert, uitschakelt.

Als er niet genoeg ruimte is om ons project in de bestaande deurbel te passen, moet je deze in een aparte doos plaatsen en dicht bij de deurbel monteren.

Stap 6: laatste hand

Laatste aanraking
Laatste aanraking

Nu we het project hebben laten werken en in staat zijn om het MQTT-bericht naar de broker te publiceren, is de volgende stap om een idee te bedenken wat we daarmee kunnen doen.

In mijn project gebruik ik Node-RED om te luisteren/abonneren op dat MQTT-onderwerp van de deurbel en aan te kondigen via verschillende Google Home-luidsprekers. Daarnaast heb ik de stroom ook gekoppeld aan een pushbullet-knooppunt om een melding naar mijn Android-telefoon te sturen, zodat ik weet of er iemand aanbelt, zelfs als ik niet thuis ben. Pushbullet-melding is voor sommigen niet nuttig, maar het is een paar keer behoorlijk nuttig voor mij geweest, in combinatie met een videocamera op mijn veranda, ik kan zien wie er kwam om leveringen af te leveren (ze bellen meestal aan de deur). Ik kan niet veel vertrouwen op de bewegingsdetectiefunctie van de camera vanwege verschillende interferentie, met name bewegende schaduwen van bomen.

De afbeelding bij deze stap toont de Node-RED-stroom om dit te bereiken. Je kunt ook de stroom van mijn github-pagina in je Node-RED plakken:

Google Home-aankondiging is slechts één voorbeeld voor dit project, maar ik denk dat dit het nuttigst en meest praktisch is. Je kunt altijd communiceren met andere MQTT-luisteraars, of zelfs IFTTT gebruiken om andere apparaten aan te sturen als er op de deurbel wordt gedrukt.

Veel plezier…

Aanbevolen: