- Forutsetninger:
- Arbeidskonsept:
- Arduino IDE-program for ESP8266:
- Kretsdiagram og maskinvare:
- Port videresending av din ESP8266 IP:
- Installerer Moni Android-applikasjon:
- Opprette applets ved hjelp av IFTTT-tjenesten:
- Testing av prosjekt:
Velkommen til et annet spennende prosjekt der vi skal bygge et stemmestyrt hjemmeautomatiseringssystem ved hjelp av ESP8266 Wi-Fi-modul, der du kan kontrollere hjemmeapparatet ditt med Voice via en Android-app fra hvor som helst i verden. Ja, drømmen din om å gjøre lastene dine (lys / vifter) til å slå seg av eller på ved å bare bruke en talekommando vil gå i oppfyllelse på slutten av dette prosjektet. Dette prosjektet er variasjonen av vårt forrige prosjekt Smart Junction Box for Home Automation der vi har kontrollert husholdningsapparater ved hjelp av webserver over nettverket.
Dette IOT-baserte Voice Controlled Home Automation- prosjektet er superenkelt å bygge og koster deg ikke mye siden det ikke krever at du kjøper noen kostbare talemoduler. Hele prosjektet tok rundt 500INR (8 USD) for meg å bygge det. Også dette er en mikrokontroller selvstendig prosjekt, som betyr at du ikke trenger noen MCU / MP som Arduino eller Raspberry Pi. Hele prosjektet kjører på ESP8266-modulen. Lær mer om ESP8266 her. Så la oss begynne å snakke….
Tidligere har vi dekket mange typer hjemmeautomatisering ved hjelp av forskjellige teknologier som:
- DTMF-basert hjemmeautomatisering
- GSM-basert hjemmeautomatisering ved hjelp av Arduino
- PC-kontrollert hjemmeautomatisering ved hjelp av Arduino
- Bluetooth-kontrollert hjemmeautomatisering ved hjelp av 8051
- IR fjernstyrt hjemmeautomatisering ved hjelp av Arduino
- hjemmeautomatiseringsprosjekt ved hjelp av MATLAB og Arduino
- Fjernkontrollerte RF-lysdioder ved bruk av Raspberry Pi
- Smarttelefonstyrt hjemmeautomatisering ved hjelp av Arduino
Forutsetninger:
Dette prosjektet er en fortsettelse av vårt forrige prosjekt Smart Junction Box for Home Automation ved bruk av ESP8266, så det meste av maskinvaredelen har allerede blitt dekket i den veiledningen. Vennligst les det før du fortsetter med denne siden jeg vil hoppe over informasjonen som er dekket i den veiledningen. For å gi et lite sammendrag av vårt forrige prosjekt, modifiserte vi en koblingsboks (utvidelseskort) i denne opplæringen som kunne konsolere et Perf-kort bestående av to reléer og ESP8266-modulen. De to reléene (AC-belastninger) kan byttes ved hjelp av en webside opprettet av ESP8266 (ved å fungere som en webserver). I denne opplæringen skal jeg bare legge til noen funksjoner i den, slik at vi også kan kontrollere vekselstrømbelastningen ved å bruke talekommandoen via Smart Phone.Vi vil ikke dekke noen maskinvaredel i denne opplæringen, maskinvaren og koden forblir den samme som i forrige opplæring.
Å vite hvordan du bruker www.IFTTT.com vil gi deg overtaket i dette prosjektet. Hvis du ikke er kjent med IFTTT, ingen bekymringer, jeg vil forklare hvordan du bruker den til denne spesielle opplæringen, slik at du kan få den til å fungere.
Arbeidskonsept:
Jeg antar at du har lest den forrige opplæringen, i så fall bør du nå vite hvordan du bygger den koblingsboksen og hvordan du bytter lastene eksternt fra nettleseren din. For å gjøre dette mulig har vi gjort vår IP-adresse tildelt ESP8266 offentlig tilgjengelig. Dette kan gjøres med "Port forwarding technique". Installer deretter en mobilapplikasjon kalt “Moni” på din Android / iPhone mobile enhet. Denne applikasjonen vil gjenkjenne talen vår og kommunisere informasjonen til IFTT Applets som igjen vil kontrollere lastene gjennom Maker Web kroker.
Det kan høres litt kjedelig ut, men alle disse tingene har blitt forklart tydelig i denne opplæringen, og stol på meg med få klikk, alt det ovennevnte kan gjøres. Denne opplæringen vil hjelpe deg på best mulig måte ved hjelp av bilder og videoer. På slutten av denne opplæringen vil du kunne slå husholdningsapparater på eller av med stemmen din fra hvor som helst i verden. Sjekk hele koden og demonstrasjonsvideoen på slutten av opplæringen.
Sjekk også stemmestyrte lys ved hjelp av Raspberry Pi og Voice typing på 16x2 LCD.
Arduino IDE-program for ESP8266:
Akkurat som i forrige prosjekt, skal vi programmere ESP8266-modulen vår ved hjelp av Arduino IDE. Det er gjort en liten modifikasjon i programmet. Denne modifikasjonen er laget slik at din ESP8266 kobles til en konstant IP-adresse hver gang den oppretter en forbindelse med ruteren. Programmet er nøyaktig det samme som forrige kode bortsett fra disse fire linjene
// Få en konstant IP hver gang IPAddress ip (192, 168, 0, 104); // Dette skal være IP-en til min ESP-modul IPAddress gateway (192, 168, 0, 1); // sett gateway for å matche nettverket ditt mest gateway vil være den samme som standard Serial.print (F ("Setter statisk ip til:")); Serial.println (ip); IPAddress-delnett (255, 255, 255, 0); // sett delnettmaske slik at den samsvarer med nettverket WiFi.config (ip, gateway, subnet);
Her, i stedet for IPAddress ip (192, 168, 0, 104); skriv inn ønsket IP-adresse. I dette tilfellet vil ESP-en min være koblet til 192.168.0.104 hele tiden, og jeg kan bare få tilgang til den ved å bruke denne IP-en i nettleseren min. Den komplette koden gitt på slutten av denne opplæringen.
Kretsdiagram og maskinvare:
Skjemaer og maskinvare for dette IoT-baserte stemmestyrte husholdningsapparatet er det samme som vårt forrige Smart Junction-prosjekt, og jeg har forklart skjematikken der så vennlig gjennom det. Her kan du se den fullstendige skjemaet for referanse:
Port videresending av din ESP8266 IP:
Det første trinnet er å aktivere videresending av porter i ruteren (modem) slik at du får tilgang til ESP-en din fra hvor som helst i verden, bare ved å angi din offentlige IP. Hver gang ESP8266 kobles til ruteren hjemme / på kontoret, får den en unik IP-adresse, og denne IP-adressen brukes til å få tilgang til ESP8266 via nettleseren. Denne IP-adressen er begrenset i hjem- / kontornettverket ditt, noe som betyr at du ikke får tilgang til det globalt. det er bare tilgang til enheter som er koblet til ruteren din. Port forwarding er teknikken der vi kan få denne websiden til å lastes globalt. Etter videresending av port kan du bruke din offentlige IP for å få tilgang til denne websiden fra hvor som helst i verden. Høres kult ut !! La oss se hvordan vi kan få dette gjort. For å gjøre dette vet du følgende på forhånd.
1. Produsentens navn og IP-adresse til ruteren. Dette kan du enkelt finne ved å se på ruteren. IP-adressen vil også bli nevnt på et klistremerke. Hvis ikke Google kjenner ruterenes IP.
2. Brukernavnet og passordet til ruterenes påloggingsside. De fleste rutere vil ha brukernavn som “admin” og passord som “admin”.
3. IP-adressen som er tildelt din ESP8266-modul. Dette er adressen du bruker for å få tilgang til nettsiden til ESP-modulen.
4. IP-adressen til Internett-leverandøren din (offentlig IP-adresse). Dette kan du finne ved ganske enkelt å beskytte "hva er IP-en min"?
Når du har alt i hånden, kan du følge trinnene nedenfor for videresending av porter, hvis du er fast med å finne noe, bruk kommentarseksjonen nedenfor. Jeg hjelper deg.
Trinn 1: Logg inn på ruteren Web-management-verktøyet ved å bruke IP-adressen til ruteren din, vanligvis er den 192.168.1.1. Skjermen min vil se slik ut nedenfor
Trinn 2: Skriv inn brukernavnet “admin” som standard og passordet “admin” som standard og klikk på Logg inn. Du blir ført til verktøysiden som ser ut som dette nedenfor.
Det meste av informasjonen du ser her, er veldig konfidensiell, og del dem derfor ikke med andre ukjente, du kan risikere Internett-sikkerhet.
Trinn 3: Som vist ovenfor vil siden din ha alle alternativene oppført nederst til venstre. Målet vårt er å finne noe som heter "Virtuelle servere". Jeg har min oppført under videresendingsalternativet. De fleste rutere vil ha dem oppført som 6, 7 eller 8 th alternativ (for det meste under DHCP-innstillingen). Finn den og klikk på den
Trinn 4: Nå må du oppgi IP-adressen som er tildelt ESP-modulen og portnummeret for å videresende IP-en vår. I mitt tilfelle må jeg klikke på Legg til ny og angi disse detaljene. Det kan være litt annerledes for deg. IP-adressen er den du bruker for å få tilgang til nettsiden til ESP-modulen din. Portnummeret kan være ditt valg, men la oss bruke "80" for enkelhets skyld. IP-en som er tildelt ESP8266-modulen min, er 192.168.0.104, og derfor vil videresendingen min se noe nedenfor:
Trinn 5: Nå må vi vite vår offentlige IP-adresse. Du finner dette min beskyttelsesbriller for “Hva er min IP”. Internett-leverandøren din bør holdes svært konfidensiell. Av hensyn til denne opplæringen, la oss anta at IP-adressen min er 987: 654: 321: 123. Jeg vil bruke dette som min ISP-IP for resten av opplæringen min.
Merk: Din ISP kan ha gitt deg Statisk / Dynamisk IP, hvis det er en dynamisk IP, vil IP-en din endres ved hver omstart av modem / ruter. I så fall må du bruke noe sånt som DynDNS. Men det er utenfor omfanget av denne opplæringen. Selv om det er en dynamisk IP, vil den fungere for deg så lenge du ikke tilbakestiller ruteren.
Det er det vår videresending av port er vellykket, vi kan sjekke at ved å skrive inn ISP IP: portname (987: 654: 321: 123: 80) i nettleseren vår og sjekke om ESP-nettsiden lastes opp. Hvis alt går som forventet, bør du nå kunne veksle mellom lastene hvor som helst i verden ved å bruke din IP-adresse.
Installerer Moni Android-applikasjon:
Moni er et program som er tilgjengelig for Android, Windows, iTunes og til og med Skype. Du kan laste ned dette programmet til mobilen din. Moni.ai har langt flere muligheter enn å bare svare på talekommandoer, det er svært utviklervennlig, og du kan raskt definere samtaler visuelt og koble til tjenester. Moni.ai bruker et program som heter Node-Red, som du enkelt kan lage stemmekanal og bygge ditt eget Chabot (AI) -system for din virksomhet / prosjekter og automatisere det med ditt naturlige språk. Det beste er at Moni er helt gratis for ikke-kommersiell bruk.
Jeg bruker en Android-telefon og laster derfor ned Moni direkte fra Google Play Store. Etter at du har installert, opprett din gratis konto og logg deg på den, appen din skal se slik ut nedenfor:
Du kan bruke dette som alle andre virtuelle assistenter, som å be om vær, tid osv. Men det som er ekstra er at det kan svare på applettene dine som er opprettet av Ifttt-tjenesten din. La oss se hvordan du lager applets for applikasjonen din nå.
Opprette applets ved hjelp av IFTTT-tjenesten:
Vi er et skritt unna å fullføre dette prosjektet. Det siste trinnet er å lage applets på IFTTT-nettstedet. Det er her vi instruerer Moni for forskjellige stemmekommandoer for å kontrollere forskjellige hvitevarer hjemme.
Jeg bruker denne stemmestyrte koblingsboksen for å veksle mellom akvariumbelastningene mine (lys / filter) som vist i videoen nedenfor. Derfor tilpasser jeg appleten for det kravet, du kan tilpasse den til ditt formål. Følg trinnene nedenfor:
Trinn 1: Besøk www.IFTTT.com og logg inn med kontoen din. Hvis ny, så registrer deg.
Trinn 2: Klikk nå på "Søk" og skriv inn Make Webhooks. Velg den og klikk på "Koble til". Følg trinnene for å koble til det.
Trinn 3: Klikk igjen på "Søk" og skriv inn Moni. Velg Moni og klikk på "Koble til". Logg inn med IFTTT-kontoen din for å aktivere tilkobling.
Trinn 4: Vi har koblet oss til “Maker Webhooks” og “Moni” -tjenestene. Nå kan du opprette en applet med disse tjenestene. Klikk på Mine applets og deretter på "New Applet". Du bør se noe slikt:
I dette skjermbildet må du klikke på “dette” og velge “Moni”. Klikk deretter på “Be Moni om å utføre en handling” du vil bli ført til under skjermen.
Trinn 5: Fyll ut detaljene slik jeg har fylt ut bildet ovenfor. Her er min oppgave å slå på Aquarium Lights (Load 1) når jeg sier "Turn on Aquarium Lights". Klikk deretter på “Opprett utløser”
Trinn 6: Du vil bli ført tilbake til "HVIS DETTE ENN DET" -skjermen. Klikk nå på “that” og skriv inn “Maker Webhooks” og velg det. Klikk deretter på "Lag en nettforespørsel". Du blir ført til under skjermen
Dette er et viktig trinn der du mest sannsynlig gjør feil. På denne siden skriver du bare inn nettadressen du vil laste inn. I mitt tilfelle vil jeg slå på lasten som er koblet til switch1, og linjen http: // 987: 654: 321: 123 / switch1On er brukt, må du erstatte IP-en min med din offentlige IP-adresse. Dette fungerer bare hvis du har brukt koden min i forrige opplæring. Den komplette listen over URL for å veksle lastene er gitt nedenfor.
URL |
Nøkkelord fra programmet |
Handling |
http: // 987: 654: 321: 123 / switch1 På |
Bryter1 På |
GPIO_0 er høyt, og slår dermed PÅ Last 1 |
http: // 987: 654: 321: 123 / switch1Off |
Bytt1 Av |
GPIO_0 er lavt, og slår dermed AV Last 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 er gjort høyt, og slår dermed PÅ Last 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 er lavt, og slår dermed AV Last 1 |
Når du har angitt ønsket URL, klikker du på "Opprett handling". Klikk deretter på Fullfør. På samme måte kan du opprette 4 applets for å slå PÅ / AV begge lastene i koblingsboksen vår.
Det er det appleten din er klar til handling, og den skal vises under "Mine applets" som vist nedenfor.
På tide å teste koden vår…….
Testing av prosjekt:
Endelig er vi klare med prosjektet vårt. La oss teste det. Slå den på og åpne Moni-applikasjonen på mobiltelefonen din. Klikk på mikrofonikonet og si kommandoen. I mitt tilfelle er det "Slå på akvariumlys" og det skal slå svar med "OK" og slå på lysene. Sjekk hele koden og demo-videoen nedenfor.
Håper du likte prosjektet og fikk det til å fungere. Hvis du sitter fast et sted, bruk kommentarseksjonen nedenfor, så vil jeg sikkert hjelpe deg. Møter deg med et annet interessant prosjekt inntil da, følg med.
Sjekk også våre andre IoT-baserte prosjekter her.