- ESP Smart Plug for hjemmeautomatisering
- Nødvendig materiale
- Smart Plug-program for ESP8266
- Kretsdiagram
- 3D-trykt deksel for Smart Plug Socket
Helt siden jeg begynte å jobbe med ESP Wi-Fi-modulene, ønsket jeg alltid å bygge en smart Wi-Fi-kontakt som gjør at jeg kan kontrollere vekselstrømene mine trådløst via smarttelefon. Mens produkter som disse allerede er tilgjengelige i markedet, som den populære Moko WiFi Smart Plug eller Sonoff, er de litt dyre, og i tillegg gir det deg ikke gleden av å bygge din egen. Så i dette prosjektet vil jeg vise deg hvordan du kan bygge din helt egen Smart-plugg ved hjelp av ESP8266 Wi-Fi-modul. Enheten vi bygde kan enkelt kobles til en hvilken som helst spennende stikkontakt, og i den andre enden kan du koble den faktiske belastningen ved å koble den til denne kontakten på enheten vår. Etter det er det bare å holde hovedbryteren på kontakten din alltid på, og du kan kontrollere belastningen direkte fra smarttelefonen. Moro ikke sant? Så la oss komme inn i prosjektet….
ESP Smart Plug for hjemmeautomatisering
Vi har allerede bygget en håndfull hjemmeautomatiseringsprosjekter, fra enkel RF-basert hjemmeautomatisering til min favoritt Google-assistentbaserte stemmestyrte hjemmeautomatisering. Men i dag er kravet til dette prosjektet litt annerledes.
Her er formålet å slå på / av Wi-Fi-ruteren min ved å bare bruke smarttelefonen direkte fra arbeidsstasjonen min. Fordi internettforbindelsen til tider går ned, og når jeg ringer kundeservicen min, er det vanlige svaret jeg får: "Sir, jeg beklager ulempen som er forårsaket. Start ruteren på nytt ved å slå den av og deretter slå den på igjen etter noen sekunder ” Puffff! Lei av å gå meg til ruteren hver gang, bestemte jeg meg for å bygge denne wifi-smarte pluggen og kontrollere ruteren min ved hjelp av den.
Men vent litt! Jeg vil ikke lenger ha tilgang til internett når jeg har slått av ruteren. Så hvordan skal jeg slå den på igjen eksternt? Heldigvis kan vår ESP8266 brukes som et tilgangspunkt, noe som betyr at den også kan fungere som en ruter ved å sende sitt eget wi-fi-signal. Dette Wi-Fi-signalet vil alltid være tilgjengelig så lenge ESP8266 får strøm. Derfor vil vi programmere vår ESP8266 som en fangeportal, på den måten når vi har koblet til ESPs Wi-Fi-signal, blir vi ført til en webside hvor vi kan slå på / av belastningen.
Nødvendig materiale
1. ESP8266 Wi-Fi-modul
2. Hi-Link AC til DC-omformer (3,3 V)
3. 3V Relé
4. NPN Transistor BC547
5. FTDI programmeringsmodul
6. Arduino Wi-Fi-skjold
7. Koble ledninger
Merk: Vi bruker dette Arduino Wi-Fi Shield som vi bygde tidligere. Brettet brukes bare til å laste opp Arduino-koden til ESP8266-modulen. Hvis du ikke har dette kortet, kan du enten lage et ved hjelp av lenken for å bruke denne enkle ESP8266-programmørkretsen for å laste opp koden.
Smart Plug-program for ESP8266
Før vi fortsetter, la oss dykke rett inn i programmet for å forstå hvordan DIY WiFi-pluggen vår vil fungere. Som du kan se her, begynner vi programmet med å inkludere få headerfiler og sette opp en DNS-nettverksserver
#inkludere
Deretter initialiserer vi GPIO-pin 2 i ESP som utgang som skal brukes til å kontrollere belastningen vår. Deretter har vi en lang HTML-kode for websiden vår. Her har vi totalt tre skjermer på hjemmesiden vår, nemlig startskjermen, på skjermen og av-skjermen.
String Home_Screen = "" // Side 1 - Startskjerm HTML-kode "" " " + style_detials + "
""Velkommen - CircuitDigest
"" "; String ON_Screen =" "// Side 2 - Hvis enheten er slått PÅ" " " + stil_detaljer + " ""Smart Plug - slått PÅ
"" "; String OFF_Screen =" "// Side 3 - Hvis enheten er slått AV " " " " + style_detials + " " "Smart plug - slått AV
" " ";Disse tre websidene når de åpnes, vil vises som dette. Du kan tilpasse nettsiden din slik at den vises slik du liker den.
Så har vi vår ugyldige oppsettfunksjon der vi definerer at ESP skal fungere som et tilgangspunkt og også gir et navn på det, her “ESP_Smart_Plug”. Når en bruker kobles til dette Wi-Fi-nettet, blir de ført til hjemmesiden som vi definerte tidligere.
pinMode (LED_BUILTIN, OUTPUT); // LED-pin som utgang for indikasjon pinMode (GPIO_2, OUTPUT); // GPIO-pin som utgang for reléstyring WiFi.mode (WIFI_AP); // Sett ESP i AP-modus WiFi.softAPConfig (apIP, apIP, IPAddress (255, 255, 255, 0)); WiFi.softAP ("ESP_Smart_Plug"); // Gi AP-nettverket ditt navnet dnsServer.start (DNS_PORT, "*", apIP); webServer.onNotFound (() { webServer.sendHeader ("Location", String ("http://www.circuitdigest-automation.com/home.html"), true); // Åpne startskjermbildet som standard webServer.send (302, "text / plain", ""); });
Hvis brukeren klikker på PÅ-knappen på hjemmesiden, vises siden på skjermen og GPIO 2-pinnen blir satt høyt
// ON_Screen webServer.on ("/ relay_ON", () {// Hvis slå på knappen er trykket på digitalWrite (LED_BUILTIN, LOW); // Slå av LED digitalWrite (GPIO_2, HIGH); // Slå av Relay webServer.send (200, "text / html", ON_Screen); // Vis dette skjermbildet });
På samme måte, hvis brukeren klikker på av-knappen, vil siden for av-skjermen vises, og GPIO 2-pinnen vil være LAV.
// OF_Screen webServer.on ("/ relay_OFF", () {// Hvis slå av-knappen er trykket på digitalWrite (LED_BUILTIN, HIGH); // Slå på LED digitalWrite (GPIO_2, LAV); // Slå på Relay webServer.send (200, "text / html", OFF_Screen); // Vis dette skjermbildet });
Den komplette koden sammen med bibliotekfilene kan lastes ned som en ZIP-fil fra lenken nedenfor. Nå som koden vår er klar, kan vi laste den opp til ESP-modulen vår ved å klikke på opplastingsknappen og deretter vente på at koden skal lastes opp. Hele programmet sammen med bibliotekfilene kan lastes ned fra lenken nedenfor
ESP8266 Smart Plug - Nedlasting av Arduino-kode
De som har Wi-Fi-skjold, kan ganske enkelt koble modulene dine sammen som vist ovenfor og koble den til datamaskinen din for å begynne å programmere ESP8266 ved hjelp av Arduino IDE. Folk som ikke har dette kortet, kan bruke kretsskjemaet som nevnt tidligere.
Når koden er lastet opp, kan du søke etter Wi-Fi-nettverk på telefonen, og du skal finne et signal som heter “ESP_Smart_Plug”. Koble til den, så blir du ført til nettsiden vi nettopp har designet. Her når du trykker på slå av-knappen, bør du legge merke til at LED-en på ESP-kortet vårt slås av, og når du trykker på på-knappen, skal LED-en slås på igjen.
Etter å ha bekreftet koden noen ganger til, trenger vi ikke lenger programmererbrettet for dette prosjektet. Nå må vi bygge en krets for å drive ESP-modulen direkte fra nettspenningen og bruke GPIO-pinnen til å veksle et relé. For å bygge denne kretsen brukte jeg en AC-DC-omformermodul fra Hi-Link som konverterer vekselstrømspenningen til 3,3V DC med en utgangsstrøm på 900mA som er tilstrekkelig nok til å drive ESP-modulen gjennom strømnettet. Utgangssiden Relé er et 3,3 V-relé som kan styres av GPIO-pinnen til ESP gjennom en transistor som denne BC547. Vi trenger også en 1k motstand for å begrense basestrømmen til transistoren vår.
Kretsdiagram
Det komplette kretsskjemaet for Wi-Fi smart plug vil se slik ut.
Strømnettet for å drive prosjektet vårt vil bli oppnådd gjennom denne kontakten. De andre komponentene er de som forklarte eariler. En annen viktig ting å konsentrere seg om er å holde GPIO-0 og GPIO-2 høye mens du starter opp. Ellers vil ESP-modulen gå inn i programmeringsmodus og utkoden vil ikke fungere. Derfor har jeg brukt en 10k (verdier mellom 3,3k og 10k kan brukes) motstand for å trekke GPIO-pinnen høyt som standard. Alternativt kan du også bruke en PNP-transistor i stedet for BC547 og slå reléet fra høysiden. Med kretsskjemaet klart planla jeg hvordan man loddet disse komponentene ved å holde brettstørrelsen så liten som mulig slik at den passer inn i et lite foringsrør og behandles med lodding av brettet.
3D-trykt deksel for Smart Plug Socket
Deretter målte jeg dimensjonene på tavlen ved hjelp av vernier og målte også dimensjonene til stikkontakten for å designe et deksel for smartkontakten min. Designet mitt så omtrent slik ut nedenfor når det ble gjort.
Etter at jeg var fornøyd med designet, eksporterte jeg den som en STL-fil, skiver den ut basert på skriverinnstillinger og til slutt skrev den ut. Igjen er STL-filen også tilgjengelig for nedlasting fra thingiverse, og du kan skrive ut ditt eget deksel ved hjelp av det.
Etter at utskriften var ferdig var jeg ganske fornøyd med resultatet. Så fortsatte jeg med å legge til ledningene på brettet mitt og skruet dem også til strømterminalene og kontakten. Med den fullstendige tilkoblingen som ble gjort, monterte jeg kretsen i huset, og alt passet bra som du kan se her.
Med smartkontakten min klar for handling, gikk jeg til ruteren min, spores ledningen for å finne adapteren. Så fjernet jeg den fra kontakten og koblet smartkontakten til samme kontakt og slått den på. Nå koblet jeg adapteren tilbake til den smarte pluggen vår, og slik kan jeg heretter styre den fra telefonen min. På samme måte kan du kontrollere hvilken som helst lav strømadapter i hjemmet ditt og ha det gøy.
Komplett kode kan lastes ned herfra, og arbeidsvideo for denne DIY smarte stikkontakten finner du nederst på denne siden. Håper du likte prosjektet, gi meg beskjed i kommentarseksjonen hva du ville automatisert med denne enheten. Hvis du har spørsmål, la dem være i forumet, og jeg vil prøve mitt beste for å svare på dem.