Inhoudsopgave:
- Stap 1: Maak het circuit voor interface ESP-01 en deurbel
- Stap 2: 3.3VDC-voeding voor ESP-01
- Stap 3: Knipperen van de ESP-01
- Stap 4: Proefdraaien
- Stap 5: Integratie van het bord en de voeding in de bel
- Stap 6: laatste hand
Video: MQTT/Google Home DoorBell met ESP-01: Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
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
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
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
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
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
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:
Home Automation WiFi-lichtschakelaar met ESP-01 en relaismodule met drukknop - Ajarnpa
Domotica WiFi-lichtschakelaar met ESP-01 en relaismodule met drukknop: Dus in de vorige instructies hebben we een ESP-01 met Tasmota geprogrammeerd met behulp van een ESP Flasher en de ESP-01 verbonden met onze wifi-netwerken. Nu kunnen we beginnen met het programmeren ervan om een lichtschakelaar aan/uit te zetten via wifi of de drukknop.Voor de elektrische wer
MQTT/Google Home Flood/Water WIFI-sensor met ESP-01 - Ajarnpa
MQTT / Google Home Flood / Water WIFI-sensor met ESP-01: in deze instructable laat ik je zien hoe je wifi-overstromings- / watersensor kunt bouwen met minimale kosten. Het hele project kost me minder dan $ 8 voor onderdelen die ik verkrijg van eBay en mijn bestaande reserveonderdelen. In dit project zullen we ESP-01 gebruiken om Wif
PWM Met ESP32 - LED dimmen met PWM op ESP 32 met Arduino IDE - Ajarnpa
PWM Met ESP32 | Dimmen van LED met PWM op ESP 32 Met Arduino IDE: In deze instructables zullen we zien hoe we PWM-signalen kunnen genereren met ESP32 met behulp van Arduino IDE & PWM wordt in principe gebruikt om analoge uitvoer van elke MCU te genereren en die analoge uitvoer kan variëren van 0V tot 3,3V (in het geval van esp32) & van
Aan de slag met Esp 8266 Esp-01 met Arduino IDE - Esp-kaarten installeren in Arduino Ide en Esp programmeren - Ajarnpa
Aan de slag met Esp 8266 Esp-01 met Arduino IDE | Esp-boards installeren in Arduino Ide en Esp-programmering: in deze instructables gaan we leren hoe esp8266-boards in Arduino IDE te installeren en hoe esp-01 te programmeren en code erin te uploaden. Omdat esp-boards zo populair zijn, dacht ik erover om een instructablesfor dit en de meeste mensen hebben problemen
Aan de slag met AWS IoT met draadloze temperatuursensor met MQTT - Ajarnpa
Aan de slag met AWS IoT met draadloze temperatuursensor met behulp van MQTT: in eerdere Instructables hebben we verschillende cloudplatforms doorlopen, zoals Azure, Ubidots, ThingSpeak, Losant enz. We gebruiken het MQTT-protocol voor het verzenden van de sensorgegevens naar de cloud in bijna het hele cloudplatform. Voor meer infor