- Forudsætninger:
- Arbejdskoncept:
- Arduino IDE-program til ESP8266:
- Kredsløbsdiagram og hardware:
- Port videresendelse af din ESP8266 IP:
- Installation af Moni Android-applikation:
- Oprettelse af applets ved hjælp af IFTTT-tjenesten:
- Test af projekt:
Velkommen til endnu et spændende projekt, hvor vi vil opbygge et stemmestyret hjemmeautomatiseringssystem ved hjælp af ESP8266 Wi-Fi-modul, hvor du kan styre dine AC-apparater til hjemmet ved hjælp af din Voice via en Android-app fra hvor som helst i verden. Ja, din drøm om at lade dine belastninger (lys / blæsere) tænde eller slukke ved blot at bruge en stemmekommando vil blive til virkelighed i slutningen af dette projekt. Dette projekt er variationen af vores tidligere projekt Smart Junction Box for Home Automation, hvor vi har styret husholdningsapparater ved hjælp af webserver over netværket.
Dette IOT-baserede stemmestyrede hjemmeautomatiseringsprojekt er super nemt at bygge og koster dig ikke meget, da det ikke kræver, at du køber dyre stemmemoduler. Hele projektet tog omkring 500INR (8 USD) for mig at bygge det. Også dette er en microcontroller selvstændigt projekt, hvilket betyder, at du ikke behøver nogen MCU / MP ligesom Arduino eller Raspberry Pi. Hele projektet kører på ESP8266-modulet. Lær mere om ESP8266 her. Så lad os begynde at tale….
Tidligere har vi dækket mange typer hjemmeautomationer ved hjælp af forskellige teknologier som:
- DTMF-baseret hjemmeautomatisering
- GSM-baseret hjemmeautomatisering ved hjælp af Arduino
- PC-styret hjemmeautomatisering ved hjælp af Arduino
- Bluetooth-styret hjemmeautomatisering ved hjælp af 8051
- IR fjernstyret hjemmeautomatisering ved hjælp af Arduino
- hjemmeautomatiseringsprojekt ved hjælp af MATLAB og Arduino
- RF-fjernstyrede LED'er ved hjælp af Raspberry Pi
- Smart telefonstyret hjemmeautomatisering ved hjælp af Arduino
Forudsætninger:
Dette projekt er en fortsættelse af vores tidligere projekt Smart Junction Box for Home Automation ved hjælp af ESP8266, så det meste af hardwaredelen er allerede blevet dækket i denne tutorial. Læs det, inden du fortsætter med denne, da jeg vil springe over de oplysninger, der er dækket af denne vejledning. For at give et lille resumé af vores tidligere projekt ændrede vi en Junction box (Extension Board) i denne tutorial, der kunne konsolere et Perf-board bestående af to relæer og ESP8266-modulet. De to relæer (AC-belastninger) kan skiftes ved hjælp af en webside oprettet af ESP8266 (ved at fungere som en webserver). I denne vejledning vil jeg bare tilføje nogle funktioner til det, så vi også kan kontrollere vekselstrømsbelastningerne ved hjælp af stemmekommandoen via Smart Phone.Vi dækker ikke nogen hardware-del i denne tutorial, hardware og koden forbliver den samme som i den tidligere tutorial.
At vide, hvordan man bruger www.IFTTT.com, giver dig en overhånd i dette projekt. Hvis du ikke er fortrolig med IFTTT, skal du ikke bekymre dig, jeg forklarer, hvordan du bruger det til denne særlige tutorial, så du kan få det til at fungere.
Arbejdskoncept:
Jeg antager, at du har læst den foregående vejledning, i så fald skal du nu vide, hvordan man bygger denne samleboks, og hvordan man skifter belastningerne eksternt fra din webbrowser. For at gøre dette muligt har vi offentliggjort vores IP-adresse tildelt ESP8266. Dette kan gøres med "Port forwarding technique". Installer derefter en mobilapplikation kaldet “Moni” på din Android / IPhone-mobilenhed. Denne applikation genkender vores tale og kommunikerer informationen til IFTT-miniprogrammerne, som igen styrer belastningerne via Maker Web-kroge.
Det lyder måske lidt kedeligt, men alle disse ting er blevet forklaret tydeligt i denne vejledning og stol på mig med få klik, alt det ovenstående kan laves. Denne tutorial hjælper dig på den bedst mulige måde ved hjælp af billeder og videoer. I slutningen af denne tutorial vil du være i stand til at tænde eller slukke for dine husholdningsapparater via din stemme fra hvor som helst i verden. Tjek den fulde kode og demo-video i slutningen af vejledningen.
Kontroller også stemmestyrede lys ved hjælp af Raspberry Pi og stemmetypning på 16x2 LCD.
Arduino IDE-program til ESP8266:
Ligesom i det forrige projekt skal vi programmere vores ESP8266-modul ved hjælp af Arduino IDE. Der er foretaget en lille ændring i programmet. Denne ændring foretages således, at din ESP8266 opretter forbindelse til en konstant IP-adresse, hver gang den opretter forbindelse til routeren. Programmet er nøjagtigt det samme som den forrige kode bortset fra disse fire linjer
// Få en konstant IP hver gang IPAddress ip (192, 168, 0, 104); // Dette skal være IP'en på mit ESP-modul IPAddress gateway (192, 168, 0, 1); // indstil gateway til at matche dit netværk mest gateway vil være den samme som standard Serial.print (F ("Indstilling af statisk ip til:")); Serial.println (ip); IPAddress-undernet (255, 255, 255, 0); // indstil undernetmaske til at matche dit netværk WiFi.config (ip, gateway, undernet);
Her i stedet for IPAddress ip (192, 168, 0, 104); indtast den ønskede IP-adresse. I dette tilfælde vil min ESP være forbundet til 192.168.0.104 hele tiden, og jeg kan simpelthen få adgang til den ved hjælp af denne IP i min browser. Den komplette kode angivet i slutningen af denne vejledning.
Kredsløbsdiagram og hardware:
Skemaer og hardware til denne IoT-baserede stemmestyrede husholdningsapparater er de samme som vores tidligere Smart Junction-projekt, og jeg har forklaret skemaet der så venligt at gennemgå det. Her kan du se det komplette skema til reference:
Port videresendelse af din ESP8266 IP:
Det første trin er at aktivere videresendelse af porte i din router (modem), så du kan få adgang til din ESP fra hvor som helst i verden, bare ved at indtaste din offentlige IP. Når vores ESP8266 opretter forbindelse til vores router til hjemmet / kontoret, får den en unik IP-adresse, og denne IP-adresse bruges til at få adgang til ESP8266 via webbrowseren. Denne IP-adresse er begrænset inden for dit hjem- / kontornetværk, hvilket betyder at du ikke kan få adgang til den globalt. det er kun tilgængeligt af enheder, der er forbundet til din router. Port forwarding er den teknik, hvorigennem vi kan få denne webside til at belastes globalt. Efter portvideresendelse kan du bruge din offentlige IP til at få adgang til denne webside fra hvor som helst i verden. Lyder sejt, rigtigt !! Lad os se, hvordan vi kan få dette gjort. For at gøre dette ved du på forhånd følgende.
1. Producentens navn og IP-adresse på din router. Dette kan let findes ved at se på routeren. IP-adressen vil også blive nævnt på et klistermærke. Hvis ikke Google kender din router-IP.
2. Brugernavnet og adgangskoden til din routers login-side. De fleste routere har brugernavn som “admin” og adgangskode som “admin”.
3. IP-adressen, der er tildelt dit ESP8266-modul. Dette er den adresse, du bruger til at få adgang til websiden til ESP-modulet.
4. IP-adressen til din internetudbyder (offentlig IP-adresse). Dette kan findes ved blot at beskytte "hvad er min IP".
Når du har alt i hånden, kan du følge nedenstående trin til portvideresendelse, hvis du sidder fast med at finde noget, skal du bruge kommentarsektionen nedenfor. Jeg hjælper dig.
Trin 1: Log ind på din Routers webadministrationssiden ved hjælp af IP-adressen på din router, generelt er den 192.168.1.1. Min skærm vil se sådan ud nedenfor
Trin 2: Indtast brugernavnet "admin" som standard og adgangskoden "admin" som standard, og klik på Login. Du føres til hjælpeprogrammet, der ser sådan ud nedenfor.
De fleste af de oplysninger, du ser her, er meget fortrolige, og del dem derfor ikke med andre ukendte, du kan risikere at få internetsikkerhed.
Trin 3: Som vist ovenfor har din side alle de muligheder, der er anført til venstre nederst. Vores mål er at finde noget navn "Virtuelle servere". Jeg har min opført under videresendelsesindstillingen. De fleste routere vil have dem opført som 6, 7 eller 8 th mulighed (for det meste under DHCP indstilling). Find det, og klik på det
Trin 4: Nu skal du indtaste den IP-adresse, der er tildelt ESP-modulet, og portnummeret for at videresende vores IP. I mit tilfælde skal jeg klikke på Tilføj nyt og indtaste disse detaljer. Det kan være lidt anderledes for dig. IP-adressen er den, du bruger til at få adgang til websiden til dit ESP-modul. Portnummeret kan være efter eget valg, men lad os bruge “80” til enkelthedsformål. IP'en, der er tildelt mit ESP8266-modul, er 192.168.0.104, og derfor vil min videresendelse se noget nedenfor:
Trin 5: Nu skal vi kende vores offentlige IP-adresse. Du kan finde dette min beskyttelsesbriller til "Hvad er min IP". Din internetudbyderes IP skal holdes meget fortroligt. Af hensyn til denne tutorial, lad os antage, at min IP-adresse er 987: 654: 321: 123 Jeg vil bruge denne som min internetudbyder-IP i resten af min tutorial.
Bemærk: Din internetudbyder har muligvis givet dig statisk / dynamisk IP, hvis det er en dynamisk IP, ændres din IP med hver genstart af modem / router. I så fald skal du bruge noget som DynDNS. Men det er uden for omfanget af denne vejledning. Selvom det er en dynamisk IP, fungerer den for dig, så længe du ikke nulstiller din router.
Det er det, vores portvideresendelse er vellykket, vi kan kontrollere det ved at indtaste ISP IP: portnavn (987: 654: 321: 123: 80) i vores browser og kontrollere, om ESP-websiden indlæses. Hvis alt går som forventet, skal du nu kunne skifte belastningen fra hvor som helst i verden ved hjælp af din internetudbyderes IP-adresse.
Installation af Moni Android-applikation:
Moni er et program, der er tilgængeligt til Android, Windows, iTunes og endda Skype. Du kan downloade denne applikation til din mobil. Moni.ai har langt flere funktioner end blot at svare på dine stemmekommandoer, det er meget udviklervenligt, og du kan hurtigt definere samtaler visuelt og oprette forbindelse til tjenester. Moni.ai bruger et program kaldet Node-Red, hvor du nemt kan oprette stemmekanal og opbygge dit eget Chabot (AI) system til din virksomhed / projekter og automatisere det med dit naturlige sprog. Det bedste er, at Moni er helt gratis til ikke-kommerciel brug.
Jeg bruger en Android-telefon og downloader derfor Moni direkte fra Google Play Store. Efter installation skal du oprette din gratis konto og logge ind på den, din app skal se sådan ud nedenfor:
Du kan bruge dette som enhver anden virtuel assistent, som at bede om vejr, tid osv. Men hvad der er yderligere er, at det kan svare på dine applets oprettet af din Ifttt-tjeneste. Lad os se, hvordan du opretter applets til din applikation nu.
Oprettelse af applets ved hjælp af IFTTT-tjenesten:
Vi er et skridt væk fra at gennemføre dette projekt. Det sidste trin er at oprette applets på IFTTT-webstedet. Det er her, vi instruerer vores Moni om forskellige stemmekommandoer til at styre forskellige husholdningsapparater derhjemme.
Jeg bruger denne stemmestyrede forbindelsesboks til at skifte mine akvariebelastninger (lys / filter) som vist i videoen nedenfor. Derfor tilpasser jeg appleten til det krav, du kan tilpasse den til dit formål. Følg nedenstående trin:
Trin 1: Besøg www.IFTTT.com og log ind med din konto. Hvis nyt, skal du tilmelde dig.
Trin 2: Klik nu på "Søg" og skriv Make Webhooks. Vælg det og klik på "Opret forbindelse". Følg trinene for at oprette forbindelse til det.
Trin 3: Klik igen på "Søg" og skriv Moni. Vælg Moni, og klik på "Opret forbindelse". Log ind med din IFTTT-konto for at aktivere forbindelse.
Trin 4: Vi har oprettet forbindelse til "Maker Webhooks" og "Moni" -tjenesterne. Lad dig nu oprette en applet med disse tjenester. Klik på Mine applets og derefter på "New Applet". Du skal se noget som dette:
I dette skærmbillede skal du klikke på “dette” og vælge “Moni”. Klik derefter på “Bed Moni om at udføre en handling”, du bliver ført til nedenstående skærm.
Trin 5: Udfyld detaljerne, som jeg har udfyldt ovenstående billede. Her er min opgave at tænde mine akvariumbelysning (belastning 1), når jeg siger “Tænd for akvariumbelysning”. Klik derefter på "Opret udløser"
Trin 6: Du føres tilbage til skærmen “HVIS DETTE END DET”. Klik nu på "det", og skriv "Maker Webhooks", og vælg det. Klik derefter på "Foretag en webanmodning". Du føres til nedenstående skærm
Dette er et vigtigt skridt, hvor du sandsynligvis begår fejl. På denne side skal du bare indtaste den URL, du vil indlæse. I mit tilfælde vil jeg tænde den belastning, der er tilsluttet til switch1, og linjen http: // 987: 654: 321: 123 / switch1On er brugt, skal du udskifte min IP med din offentlige IP-adresse. Dette fungerer kun, hvis du har brugt min kode i den foregående vejledning. Den komplette liste over URL til at skifte belastningerne er angivet nedenfor.
URL |
Nøgleord fra programmet |
Handling |
http: // 987: 654: 321: 123 / switch1Til |
Switch1Tændt |
GPIO_0 gøres højt og tænder således for belastning 1 |
http: // 987: 654: 321: 123 / switch1Off |
Skift1Fra |
GPIO_0 er lavt, hvilket slukker for belastning 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 er lavet højt, hvilket tænder for Load 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 er lavt, hvilket slukker for belastning 1 |
Når du har indtastet den ønskede URL, skal du klikke på "Opret handling". Klik derefter på Udfør. På samme måde kan du oprette 4 appletter til at tænde / slukke for begge belastningerne i vores forbindelsesboks.
Det er det, din applet er klar til handling, og den skal vises under "Mine applets" som vist nedenfor.
Tid til at teste vores kode…….
Test af projekt:
Endelig er vi klar med vores projekt. Lad os teste det. Tænd for det, og åbn Moni-applikationen på din mobiltelefon. Klik på mikrofonikonet og sig kommandoen. I mit tilfælde er det "Tænd for akvariumlys", og det skal slå svar med et "OK" og tænde lysene. Tjek den fulde kode og demo-video nedenfor.
Håber du kunne lide projektet og fik det til at fungere. Hvis du sidder fast et sted, skal du bruge kommentarsektionen nedenfor, og jeg vil helt sikkert hjælpe dig. Mødes med et andet interessant projekt indtil da, hold øje med.
Tjek også vores andre IoT-baserede projekter her.