- Componenten vereist
- Schakelschema
- IFTTT-instelling voor Wi-Fi-deurbel
- Code Uitleg
- 3D-geprinte behuizing voor slimme wifi-deurbel
- De slimme Wi-Fi-deurbel testen
Tegenwoordig is beveiligingssysteem een van de meest onderzochte gebieden en met toenemende beveiligingsbedreigingen lanceren bedrijven nieuwe slimme beveiligingsproducten om deze bedreigingen te bestrijden. IoT is een bijkomend voordeel op dit gebied dat automatisch een gebeurtenis kan activeren, zoals het bellen van de politie, brandweer of uw buurman, in geval van nood. We hebben eerder veel beveiligingssystemen gebouwd, zoals Raspberry Pi Visitor-bewakingssysteem, videobewakingscamera, draadloze deurbel, IoT-gebaseerd deurbeveiligingsalarm enz. Vandaag zullen we ESP32 en camera gebruiken om een slimme wifi-deurbel te bouwen .
In een andere tutorial hebben we geleerd over ESP32-CAM en hoe je deze kunt gebruiken voor videostreaming, nu gaan we een Smart Wi-Fi Video Doorbell maken met ESP32-CAM. Deze slimme deurbel kan gemakkelijk worden gevoed door een stopcontact en wanneer iemand aan de deur op de deurbel drukt, speelt hij een specifiek nummer op je telefoon en stuurt hij een sms met een link naar een videostreamingspagina waar je de persoon op kunt zien de deur overal ter wereld.
Componenten vereist
- ESP32-CAM
- FTDI-programmeerbord
- 220V AC naar 5V DC-omzetter
- Zoemer
- Druk op de knop
- LED (2)
Schakelschema
Het schakelschema voor deze Smart Wi-Fi Deurbel is heel eenvoudig, sluit gewoon twee LED's, een drukknop en een zoemer aan op ESP32 GPIO-pinnen. Een zoemer wordt gebruikt om een geluid te maken wanneer de knop wordt ingedrukt. Een LED wordt gebruikt om de voedingsstatus aan te geven en de andere LED wordt gebruikt om de netwerkstatus aan te geven. De netwerk-LED is hoog als ESP is aangesloten op een netwerk, anders knippert hij.
Dit is hoe de opstelling van de Wi-Fi video-deurbel eruit zal zien in een 3D-geprinte behuizing:
IFTTT-instelling voor Wi-Fi-deurbel
IFTTT is een gratis webgebaseerde service waarmee gebruikers ketens van eenvoudige voorwaardelijke verklaringen kunnen maken, "recepten" genaamd, die worden geactiveerd op basis van wijzigingen in andere webservices zoals Gmail, Facebook, Instagram en. IFTTT is een afkorting van "If This Then That".
In dit project wordt IFTTT gebruikt om een e-mail te verzenden wanneer de temperatuur of vochtigheid een vooraf gedefinieerde limiet overschrijdt. We gebruikten eerder IFTTT in veel op IoT gebaseerde projecten om e-mails of sms-berichten te verzenden over bepaalde evenementen, zoals overmatig elektriciteitsverbruik, hoge polsslag, binnenkomst van indringers, enz.
Log eerst in op IFTTT met uw inloggegevens of meld u aan als u geen account heeft.
Zoek nu naar 'Webhooks' en klik op de sectie Webhooks in Services.
Klik nu in het Webhooks-venster op 'Documentatie' in de rechterbovenhoek om de privésleutel te krijgen.
Kopieer deze sleutel. Het wordt in het programma gebruikt.
Nadat we de privésleutel hebben verkregen, gaan we nu een applet maken met behulp van webhooks en e-mailservices. Om een applet aan te maken klikt u op uw profiel en vervolgens op ' Aanmaken. '
Klik nu in het volgende venster op het pictogram 'Dit' .
Zoek nu naar Webhooks in het zoekgedeelte en klik op ' Webhooks. '
Kies nu ' Ontvang een webverzoek' trigger en voer in het volgende venster de gebeurtenisnaam in als button_pressed en klik vervolgens op een trigger maken.
Om de applet te voltooien, klikt u op 'That' om een reactie te maken voor de button_pressed- gebeurtenis.
Hier spelen we een specifiek nummer op de telefoon wanneer de IoT-deurbelknop wordt ingedrukt. Zoek daarvoor naar 'Android-apparaat' in het zoekgedeelte.
Kies nu in het Android-apparaat de trigger ' Speel een specifiek nummer af' .
Voer nu de titel van het nummer in dat u wilt afspelen als de deurbel wordt ingedrukt. In mijn geval speel ik een nummer met de naam '123' van mijn Google Play-muziek. Je kunt ook Spotify of andere muziek-apps gebruiken.
Klik daarna op ' Actie maken' en vervolgens op 'Voltooien' om het proces te voltooien.
Maak nu een andere applet om een bericht met de webpagina- link naar de telefoon te sturen wanneer de deurbel wordt ingedrukt.
Om deze applet te maken, kiest u ' Webhooks ' in ' dit ' gedeelte en in 'dat' gedeelte ' Android SMS '.
Nu zal het vragen om het telefoonnummer en de berichttekst in te voeren. Voor dit wifi-deurbelproject sturen we een bericht met de webserverlink zodat u de live videostreaming direct kunt zien.
Code Uitleg
De volledige code samen met de video voor deze wifi-deurbelcamera vindt u aan het einde van dit document. Het kan hier ook worden gedownload. Hieronder lichten we enkele belangrijke onderdelen van de code toe.
Voeg eerst alle vereiste bibliotheekbestanden voor deze code toe.
#include "esp_camera.h" #include
Daarna voert u de Wi-Fi-referenties.
const char * ssid = "Wi-Fi-naam"; const char * password = "Wi-Fi-wachtwoord";
Daarna voert u de IFTTT hostnaam en private sleutel die u hebt gekopieerd van de IFTTT website.
const char * host = "maker.ifttt.com"; const char * privateKey = "Uw privésleutel";
Definieer alle pinnen die u in dit project gebruikt. Ik gebruik de GPIO 2, 14 en 15 pinnen om de drukknop, LED en zoemer aan te sluiten.
const int buttonPin = 2; const int led1 = 14; const int zoemer = 15;
Definieer in de lege setup- lus de knoppin als input en LED- en zoemerpennen als output.
void setup () {pinMode (buttonPin, INPUT); pinMode (led1, OUTPUT); pinMode (zoemer, OUTPUT);
Het zal proberen verbinding te maken met wifi met behulp van de opgegeven inloggegevens, en wanneer verbonden met een netwerk, verandert de LED-status van laag naar hoog.
WiFi.begin (ssid, wachtwoord); int led = LOW; while (WiFi.status ()! = WL_CONNECTED) {vertraging (500); Serial.print ("."); digitalWrite (led1, led); led =! led; } Serial.println (""); Serial.println ("WiFi verbonden"); digitalWrite (led1, HIGH);
Als de verbinding met een netwerk is verbroken, wordt ESP32 opnieuw opgestart totdat deze verbinding maakt met een netwerk.
while (WiFi.status () == WL_DISCONNECTED) {ESP.restart (); digitalWrite (led1, LOW); Serial.print ("Verbinding verbroken");
De ESP32 leest de status van de knop en als de knop zich in de LOW-status (omhooggetrokken) bevindt, dwz er is op een knop gedrukt, wordt de gebeurtenis verzonden en wordt de zoemer gedurende 3 seconden ingeschakeld.
int lezen = digitalRead (buttonPin); if (buttonState == LOW) {send_event ("button_pressed"); Serial.print ("knop ingedrukt"); digitalWrite (zoemer, HIGH); vertraging (3000); digitalWrite (zoemer, LOW);
3D-geprinte behuizing voor slimme wifi-deurbel
Hier heb ik een 3D geprinte behuizing ontworpen voor deze draadloze deurbel camera. Daarvoor heb ik de afmetingen van het ESP32-bord, de drukknop, de zoemer en de LED gemeten met behulp van mijn schuifmaat en het ontwerp zag er ongeveer zo uit als het hieronder was.
Daarna heb ik het geëxporteerd als een STL-bestand, in plakjes gesneden op basis van printerinstellingen en uiteindelijk afgedrukt. Het STL-bestand kan worden gedownload vanaf Thingiverse en u kunt er uw eigen behuizing mee afdrukken.
Nadat ik de behuizing had geprint, heb ik de schakeling in mijn behuizing gemonteerd en alles paste goed, zoals je hier kunt zien.
Als je meer wilt weten over een 3D-printer en hoe deze werkt, kun je dit artikel lezen in Beginnersgids om aan de slag te gaan met 3D-printen en kun je ook onze andere projecten bekijken waar we 3D-geprinte behuizingen zoals tweevoetige robot, robotarm, enz.
De slimme Wi-Fi-deurbel testen
Na het monteren van het circuit, voed je de deurbel via een stopcontact. Telkens wanneer de IoT-deurbelknop wordt ingedrukt, begint de smartphone een nummer met de naam '123' af te spelen en wordt er een bericht ontvangen met een link naar een webpagina zoals hieronder weergegeven, waar de live videofeed kan worden bekeken.
De volledige code en werkende video voor deze Smart Wi-Fi-deurbel vindt u aan het einde van het document of u kunt de code hier downloaden. Als je vragen hebt over dit project, laat ze dan achter in het commentaargedeelte.