- ESP Smart Plug voor domotica
- Vereiste materialen
- Smart Plug-programma voor ESP8266
- Schakelschema
- 3D-geprinte behuizing voor slimme stopcontact
Sinds ik begon te werken met de ESP Wi-Fi Modules, wilde ik altijd al een slimme Wi-Fi-aansluiting bouwen waarmee ik mijn AC-belastingen draadloos kan bedienen via een smartphone. Hoewel dergelijke producten al op de markt verkrijgbaar zijn, zoals de populaire Moko WiFi Smart Plug of Sonoff, zijn ze een beetje duur en bovendien heb je er niet het plezier van om er zelf een te bouwen. Dus in dit project zal ik je laten zien hoe je je eigen Smart-plug kunt bouwen met behulp van de ESP8266 Wi-Fi-module. Het apparaat dat we hebben gebouwd, kan eenvoudig in een willekeurig stopcontact worden gestoken en aan de andere kant kunt u de werkelijke belasting eenvoudig aansluiten door het in dit stopcontact op ons apparaat te steken. Houd daarna de hoofdschakelaar van uw stopcontact altijd aan en u kunt uw Load direct vanaf uw smartphone bedienen. Leuk toch? Dus laten we naar het project gaan….
ESP Smart Plug voor domotica
We hebben al een handvol domotica-projecten gebouwd, van eenvoudige op RF gebaseerde domotica tot mijn favoriete op Google Assistent gebaseerde spraakgestuurde domotica. Maar vandaag is de vereiste van dit project iets anders.
Hier is het doel om mijn Wi-Fi-router in / uit te schakelen door de smartphone rechtstreeks vanaf mijn werkstation te gebruiken. Omdat mijn internetverbinding soms uitvalt en als ik mijn klantenservice bel, is het standaardantwoord dat ik krijg: “Mijnheer, het spijt me voor het ongemak. Start uw router opnieuw op door hem uit te schakelen en na een paar seconden weer aan te zetten ” Puffff! Omdat ik het zat was om elke keer naar de router te lopen, besloot ik deze slimme wifi-plug te bouwen en mijn router ermee te besturen.
Maar wacht even! Ik heb geen toegang meer tot internet zodra ik mijn router heb uitgeschakeld. Dus hoe kan ik het op afstand weer inschakelen? Gelukkig kan onze ESP8266 worden gebruikt als access point, wat betekent dat hij ook als router kan werken door zijn eigen wifi-signaal te verzenden. Dit Wi-Fi-signaal is altijd beschikbaar zolang de ESP8266 is ingeschakeld. Daarom zullen we onze ESP8266 als een captive portal programmeren, op die manier zullen we, zodra we verbinding hebben gemaakt met het Wi-Fi-signaal van de ESP, naar een webpagina worden geleid van waaruit we onze belasting kunnen in- / uitschakelen.
Vereiste materialen
1. ESP8266 Wi-Fi-module
2. Hi-Link AC naar DC-converter (3,3 V)
3. 3V-relais
4. NPN-transistor BC547
5. FTDI-programmeermodule
6. Arduino Wi-Fi-schild
7. Verbindingskabels
Opmerking: we gebruiken dit Arduino Wi-Fi Shield dat we eerder hebben gebouwd. Het bord wordt alleen gebruikt om de Arduino-code in de ESP8266-module te uploaden. Als je dit bord niet hebt, kun je er een bouwen met behulp van de link of dit eenvoudige ESP8266-programmeercircuit gebruiken om je code te uploaden.
Smart Plug-programma voor ESP8266
Voordat we verder gaan, duiken we meteen in het programma om te begrijpen hoe onze doe- het- zelf wifi smart plug zal werken. Zoals u hier kunt zien, beginnen we het programma door enkele headerbestanden op te nemen en een DNS-netwerkserver in te stellen
# omvatten
Vervolgens initialiseren we de GPIO-pin 2 van ESP als uitvoer die zal worden gebruikt om onze belasting te regelen. Daarna hebben we een lange HTML-code voor onze webpagina. Hier hebben we totaal drie schermen op onze webpagina, namelijk het startscherm, het scherm op het scherm en het scherm UIT.
String Home_Screen = "" // Pagina 1 - HTML-code startscherm "" " " + style_detials + "
""Welkom - CircuitDigest
"" "; String ON_Screen =" "// Pagina 2 - Als het apparaat is ingeschakeld" "" "+ style_detials +" ""Smart Plug - ingeschakeld
"" "; String OFF_Screen =" "// Pagina 3 - Als het apparaat is uitgeschakeld " " " " + style_detials + " " "Smart Plug - uitgeschakeld
" " ";Deze drie webpagina's zullen er bij het openen ongeveer zo uitzien. U kunt uw webpagina aanpassen zodat deze eruitziet zoals u dat wilt.
Dan hebben we onze void setup- functie waarin we onze ESP definiëren om te werken als een access point en er ook een naam voor geven, hier "ESP_Smart_Plug". Wanneer een gebruiker verbinding maakt met deze Wi-Fi, wordt hij naar de startpagina geleid die we eerder hebben gedefinieerd.
pinMode (LED_BUILTIN, OUTPUT); // LED-pin als uitgang voor indicatie pinMode (GPIO_2, OUTPUT); // GPIO-pin als uitgang voor relaisbesturing WiFi.mode (WIFI_AP); // Stel ESP in AP-modus WiFi.softAPConfig (apIP, apIP, IPAddress (255, 255, 255, 0)); WiFi.softAP ("ESP_Smart_Plug"); // Noem uw AP-netwerk dnsServer.start (DNS_PORT, "*", apIP); webServer.onNotFound (() { webServer.sendHeader ("Location", String ("http://www.circuitdigest-automation.com/home.html"), true); // Open standaard startscherm webServer.send (302, "text / plain", ""); });
Als de gebruiker op de startpagina op de knop AAN klikt, wordt de pagina op het scherm weergegeven en wordt de GPIO 2-pin hoog ingesteld
// ON_Screen webServer.on ("/ relay_ON", () {// Als aanzetten Knop is ingedrukt digitalWrite (LED_BUILTIN, LOW); // Schakel LED digitalWrite uit (GPIO_2, HIGH); // Schakel Relay webServer.send uit (200, "text / html", ON_Screen); // Toon dit scherm });
Evenzo als de gebruiker op de uit-knop klikt, wordt de off-screen-pagina weergegeven en wordt de GPIO 2-pin LAAG ingesteld.
// OF_Screen webServer.on ("/ relay_OFF", () {// Als uitschakelknop is ingedrukt digitalWrite (LED_BUILTIN, HIGH); // Zet LED digitalWrite aan (GPIO_2, LOW); // Schakel Relay webServer.send in (200, "text / html", OFF_Screen); // Toon dit scherm });
De volledige code samen met de bibliotheekbestanden kan worden gedownload als een ZIP-bestand via de onderstaande link. Nu onze code klaar is, kunnen we deze uploaden naar onze ESP-module door simpelweg op de uploadknop te klikken en vervolgens te wachten tot de code is geüpload. Het complete programma samen met de bibliotheekbestanden kan worden gedownload via onderstaande link
ESP8266 Smart Plug - Arduino-code downloaden
Degenen die het Wi-Fi-schild hebben, kunnen eenvoudig uw modules op elkaar aansluiten zoals hierboven weergegeven en deze op uw computer aansluiten om te beginnen met het programmeren van onze ESP8266 met behulp van de Arduino IDE. Mensen die dit bord niet hebben, kunnen het schakelschema gebruiken zoals eerder vermeld.
Zodra de code is geüpload, zoekt u naar Wi-Fi-netwerken op uw telefoon en vindt u een signaal met de naam "ESP_Smart_Plug". Maak er verbinding mee en u wordt naar de webpagina geleid die we zojuist hebben ontworpen. Hier, wanneer u op de uitschakelknop drukt, zou u moeten opmerken dat de LED op ons ESP-bord uitgaat en wanneer u op de inschakelknop drukt, moet de LED weer aan gaan.
Nadat we de code nog een paar keer hebben geverifieerd, hebben we het programmeerbord niet langer nodig voor dit project. Nu moeten we een circuit bouwen om onze ESP-module rechtstreeks van netspanning te voeden en de GPIO-pin gebruiken om een relais te schakelen. Om dit circuit te bouwen heb ik een AC-DC converter module van Hi-Link gebruikt die de AC netspanning omzet naar 3.3V DC met een uitgangsstroom van 900mA voldoende genoeg om de ESP module via het lichtnet van stroom te voorzien. Het relais aan de uitgangszijde is een 3.3V-relais dat kan worden bestuurd door de GPIO-pin van ESP via een transistor zoals deze BC547. We hebben ook een 1k-weerstand nodig om de basisstroom van onze transistor te beperken.
Schakelschema
Het volledige schakelschema voor Wi-Fi smart plug ziet er als volgt uit.
Het wisselstroomnet om ons project van stroom te voorzien, wordt via deze stekker verkregen. De andere componenten zijn degene die eariler hebben uitgelegd. Een ander belangrijk ding om te concentreren is om de GPIO-0 en GPIO-2 hoog te houden tijdens het opstarten. Anders gaat de ESP-module naar de programmeermodus en werkt de out-code niet. Daarom heb ik een weerstand van 10k (waarden tussen 3.3k en 10k kunnen worden gebruikt) gebruikt om de GPIO-pin standaard hoog te trekken. Als alternatief kunt u ook een PNP-transistor gebruiken in plaats van BC547 en het relais schakelen vanaf de hoge kant. Met het schakelschema klaar, plande ik hoe ik deze componenten zou solderen door de bordgrootte zo klein mogelijk te houden, zodat het in een kleine behuizing past en verder te gaan met het solderen van het bord.
3D-geprinte behuizing voor slimme stopcontact
Vervolgens heb ik de afmetingen van het bord gemeten met mijn nonius en ook de afmetingen van de stekker en het stopcontact gemeten om een behuizing voor mijn slimme stekker te ontwerpen. Mijn ontwerp zag er hieronder ongeveer zo uit toen het klaar was.
Nadat ik tevreden was met het ontwerp, heb ik het geëxporteerd als een STL-bestand, het in plakjes gesneden op basis van de printerinstellingen en het uiteindelijk afgedrukt. Wederom is het STL-bestand ook beschikbaar om te downloaden van Thingiverse en je kunt er je eigen behuizing mee printen.
Nadat de print klaar was, was ik best tevreden met het resultaat. Daarna ging ik verder met het toevoegen van de draden aan mijn bord en schroefde ze ook op de voedingsklemmen en het stopcontact. Met de complete verbinding gemaakt heb ik de schakeling in mijn behuizing gemonteerd en alles paste goed zoals je hier kunt zien.
Met mijn slimme stekker klaar voor actie, ging ik naar mijn router, traceerde de draad om de adapter te vinden. Daarna heb ik hem uit het stopcontact gehaald en de slimme stekker in hetzelfde stopcontact gestoken en ingeschakeld. Nu heb ik de adapter weer op onze slimme stekker aangesloten en zo kan ik hem hierna vanaf mijn telefoon bedienen.Op dezelfde manier kunt u elke laagvermogen AC-belasting in uw huis regelen en plezier hebben.
De volledige code kan vanaf hier worden gedownload en de werkvideo voor dit doe-het-zelf slimme stopcontact vindt u onderaan deze pagina. Ik hoop dat je het project leuk vond, laat me in het commentaargedeelte weten wat je met dit apparaat zou automatiseren. Als je vragen hebt, laat ze dan achter op het forum en ik zal mijn best doen om ze te beantwoorden.