- Förutsättningar:
- Arbetskoncept:
- Arduino IDE-program för ESP8266:
- Kretsschema och hårdvara:
- Port Forwarding din ESP8266 IP:
- Installerar Moni Android-applikation:
- Skapa applets med IFTTT-tjänsten:
- Test av projekt:
Välkommen till ett annat spännande projekt där vi kommer att bygga ett röststyrt hemautomatiseringssystem med hjälp av ESP8266 Wi-Fi-modul, där du kan styra dina hem-AC-apparater med din röst via en Android-app var som helst i världen. Ja, din dröm att göra dina laster (Light / Fans) att slå PÅ eller AV genom att helt enkelt använda ett röstkommando kommer att gå i uppfyllelse i slutet av detta projekt. Detta projekt är variationen i vårt tidigare projekt Smart Junction Box for Home Automation där vi har kontrollerat hushållsapparaterna med hjälp av webbserver över nätverket.
Detta IOT-baserade röststyrda hemautomatiseringsprojekt är super lätt att bygga och kostar inte mycket eftersom det inte kräver att du köper dyra röstmoduler. Hela projektet tog cirka 500 INR (8 USD) för mig att bygga det. Även detta är en mikro självständigt arbete, vilket innebär att du inte behöver någon MCU / MP som Arduino eller Raspberry Pi. Hela projektet körs på ESP8266-modulen. Läs mer om ESP8266 här. Så, låt oss börja prata….
Tidigare har vi täckt många typer av hemautomatiseringar med olika tekniker som:
- DTMF-baserad hemautomation
- GSM-baserad hemautomation med Arduino
- PC-styrd hemautomation med Arduino
- Bluetooth-styrd hemautomation med 8051
- IR-fjärrstyrd hemautomation med Arduino
- hemautomatiseringsprojekt med MATLAB och Arduino
- RF-fjärrstyrda lysdioder med Raspberry Pi
- Smart telefonstyrd hemautomation med Arduino
Förutsättningar:
Detta projekt är en fortsättning på vårt tidigare projekt Smart Junction Box for Home Automation med ESP8266 så det mesta av hårdvarudelen har redan behandlats i den självstudien. Vänligen läs det innan du fortsätter med den här eftersom jag hoppar över informationen som beskrivs i den självstudien. För att ge en liten sammanfattning av vårt tidigare projekt modifierade vi en kopplingsbox (Extension Board) i den självstudien som kunde konsoltera ett Perf-kort bestående av två reläer och ESP8266-modulen. De två reläerna (AC-belastningar) kan växlas med hjälp av en webbsida som skapats av ESP8266 (genom att fungera som en webbserver). I den här handledningen ska jag bara lägga till några funktioner i den så att vi också kan styra AC-belastningarna genom att använda röstkommandot via Smart Phone.Vi kommer inte att täcka någon hårdvarudel i denna handledning hårdvaran och koden förblir desamma som i föregående handledning.
Att veta hur man använder www.IFTTT.com ger dig en överhand i detta projekt. Om du inte känner till IFTTT, oroar mig förklarar jag hur du använder den för den här självstudien så att du kan få det att fungera.
Arbetskoncept:
Jag antar att du har läst föregående handledning, i så fall borde du nu veta hur man bygger den kopplingsrutan och hur man växlar mellan lasterna från din webbläsare. För att göra detta möjligt har vi gjort vår IP-adress tilldelad ESP8266 offentligt tillgänglig. Detta kan göras med "Port forwarding-teknik". Installera sedan en mobilapplikation som heter “Moni” på din Android / iPhone-mobilenhet. Denna applikation kommer att känna igen vårt tal och kommunicera informationen till IFTT-miniprogrammen som i sin tur kommer att styra belastningarna via Maker-webbkrokar.
Det kan låta lite tråkigt, men alla dessa saker har förklarats tydligt i den här handledningen och lita på mig med få klick, alla ovanstående kan göras. Denna handledning hjälper dig på bästa möjliga sätt med hjälp av bilder och videor. I slutet av denna handledning kommer du att kunna slå på eller stänga av dina hushållsapparater via din röst var som helst i världen. Kontrollera hela koden och demonstrationsvideon i slutet av handledningen.
Kontrollera även röststyrda lampor med Raspberry Pi och rösttyp på 16x2 LCD.
Arduino IDE-program för ESP8266:
Precis som i föregående projekt kommer vi att programmera vår ESP8266-modul med hjälp av Arduino IDE. Det görs en liten modifiering i programmet. Denna modifiering görs så att din ESP8266 ansluter till en konstant IP-adress varje gång den upprättar en anslutning till routern. Programmet är exakt samma som den tidigare koden förutom dessa fyra rader
// Få en konstant IP varje gång IPAddress ip (192, 168, 0, 104); // Detta bör vara IP: n för min ESP-modul IPAddress-gateway (192, 168, 0, 1); // ställa in gateway så att den matchar ditt nätverk mest gateway kommer att vara densamma som standard Serial.print (F ("Ställa in statisk ip till:")); Serial.println (ip); IP-adress undernät (255, 255, 255, 0); // ställ in nätmask för att matcha ditt nätverk WiFi.config (ip, gateway, subnät);
Här, i stället för IPAddress ip (192, 168, 0, 104); ange önskad IP-adress. I det här fallet kommer min ESP att vara ansluten till 192.168.0.104 hela tiden och jag kan helt enkelt komma åt den genom att använda denna IP i min webbläsare. Den fullständiga koden som ges i slutet av denna handledning.
Kretsschema och hårdvara:
Scheman och hårdvara för denna IoT-baserade röststyrda hushållsapparater är samma som vårt tidigare Smart Junction-projekt och jag har förklarat schemat där så snällt gå igenom det. Här kan du se hela schemat för referens:
Port Forwarding din ESP8266 IP:
Det första steget är att aktivera vidarebefordran av port i din router (modem) så att du kan komma åt din ESP var som helst i världen, bara genom att ange din offentliga IP. När vår ESP8266 ansluter till vår hem- / kontorsrouter får den en unik IP-adress och denna IP-adress används för att komma åt ESP8266 via webbläsare. Denna IP-adress är begränsad inom ditt hem- / kontorsnätverk, vilket innebär att du inte kan komma åt den globalt. det kan endast nås med enheter som är anslutna till din router. Port vidarebefordran är tekniken genom vilken vi kan ladda denna webbsida globalt. Efter portvidarebefordran kan du använda din offentliga IP för att komma åt denna webbsida var som helst i världen. Låter coolt rätt !! Låt oss se hur vi kan få det gjort. För att göra detta vet du följande i förväg.
1. Tillverkarens namn och IP-adress för din router. Detta kan enkelt hittas genom att titta på routern. IP-adressen kommer också att nämnas på en klistermärke. Om inte Google känner till din routers IP.
2. Användarnamnet och lösenordet för din routers inloggningssida. De flesta routrar har användarnamn som “admin” och lösenord som “admin”.
3. IP-adressen som tilldelats din ESP8266-modul. Det här är adressen som du använder för att komma åt ESP-modulens webbsida.
4. IP-adressen till din internetleverantör (offentlig IP-adress). Detta kan du hitta genom att helt enkelt skydda med "vad är min IP".
När du har allt i handen kan du följa stegen nedan för att vidarebefordra, om du är fast med att hitta något, använd kommentarsektionen nedan. Jag hjälper dig.
Steg 1: Logga in på din Routers webhanteringsverktygssida med din IP-adress, i allmänhet är den 192.168.1.1. Min skärm kommer att se ut så här nedan
Steg 2: Ange användarnamnet "admin" som standard och lösenordet "admin" som standard och klicka på Inloggning. Du kommer till verktygssidan som ser ut så här nedan.
Det mesta av informationen som du ser här är mycket konfidentiell och delar därför inte dem med någon annan okänd, du kan riskera din internetsäkerhet.
Steg 3: Som visas ovan kommer din sida att ha alla alternativ listade längst ner till vänster. Vårt mål är att hitta något namn "Virtuella servrar". Jag har mina listade under alternativet Vidarebefordran. De flesta routrar kommer att ha dem anges som 6, 7 eller 8 : e alternativ (mestadels under DHCP inställning). Hitta den och klicka på den
Steg 4: Nu måste du ange den IP-adress som tilldelats ESP-modulen och portnumret för att vidarebefordra vår IP. I mitt fall måste jag klicka på Lägg till ny och ange dessa uppgifter. Det kan vara lite annorlunda för dig. IP-adressen är den som du använder för att komma åt webbsidan för din ESP-modul. Portnumret kan vara ditt val, men låt oss använda "80" för enkelhetsändamål. IP tilldelad till min ESP8266-modul är 192.168.0.104 och därmed kommer min vidarebefordran att se något nedan:
Steg 5: Nu måste vi känna till vår offentliga IP-adress. Du hittar den här min skyddsglasögon för "Vad är min IP". Din Internetleverantörs IP ska hållas mycket konfidentiell. Låt oss för denna handledning anta att min IP-adress är 987: 654: 321: 123 Jag kommer att använda den som min ISP-IP under resten av min handledning.
Obs! Din ISP kan ha gett dig statisk / dynamisk IP, om det är en dynamisk IP kommer din IP att ändras vid varje omstart av modem / router. I så fall måste du använda något som DynDNS. Men det är utanför ramen för denna handledning. Även om det är en dynamisk IP kommer det att fungera för dig så länge du inte återställer routern.
Det är det som vår portvidarebefordran lyckas, vi kan kontrollera att genom att ange ISP IP: portname (987: 654: 321: 123: 80) i vår webbläsare och kontrollera om ESP-webbsidan laddas upp. Om allt går som förväntat borde du nu kunna växla mellan laster var som helst i världen med din internetleverantörs IP-adress.
Installerar Moni Android-applikation:
Moni är ett program som är tillgängligt för Android, Windows, iTunes och till och med Skype. Du kan ladda ner den här applikationen till din mobil. Moni.ai har mycket fler funktioner än att bara svara på dina röstkommandon, det är mycket utvecklarvänligt och du kan snabbt definiera konversationer visuellt och ansluta till tjänster. Moni.ai använder en applikation som heter Node-Red med vilken du enkelt kan skapa röstkanal och bygga ditt eget Chabot (AI) -system för ditt företag / projekt och automatisera det med ditt naturliga språk. Det bästa är att Moni är helt gratis för icke-kommersiellt bruk.
Jag använder en Android-telefon och laddar därför ner Moni direkt från Google Play Store. Efter installationen skapar du ditt gratis konto och loggar in på det, din app ska se ut så här nedan:
Du kan använda detta som alla andra virtuella assistenter, som att be om väder, tid etc. Men det som är extra är att det kan svara på dina applets som skapats av din Ifttt-tjänst. Låt oss se hur du skapar applets för din applikation nu.
Skapa applets med IFTTT-tjänsten:
Vi är ett steg borta från att slutföra detta projekt. Det sista steget är att skapa Applets på IFTTT-webbplatsen. Det är här vi instruerar vår Moni för olika röstkommandon för att styra olika hushållsapparater hemma.
Jag använder den här röststyrda kopplingsboxen för att växla mina akvariumbelastningar (ljus / filter) som visas i videon nedan. Därför anpassar jag appleten för det kravet, du kan anpassa den för ditt ändamål. Följ stegen nedan:
Steg 1: Besök www.IFTTT.com och logga in med ditt konto. Om det är nytt då Registrera dig.
Steg 2: Klicka nu på "Sök" och skriv Make Webhooks. Välj det och klicka på "Anslut". Följ stegen för att ansluta till den.
Steg 3: Klicka igen på "Sök" och skriv in Moni. Välj Moni och klicka på “Connect”. Logga in med ditt IFTTT-konto för att aktivera anslutning.
Steg 4: Vi har anslutit till "Maker Webhooks" och "Moni" -tjänsterna. Nu kan du skapa en applet med dessa tjänster. Klicka på Mina appletar och sedan på "Ny applet". Du borde se något så här:
I den här skärmen måste du klicka på "detta" och välja "Moni". Klicka sedan på ”Be Moni att utföra en åtgärd” du kommer till nedanför skärmen.
Steg 5: Fyll i detaljerna som jag har fyllt i ovanstående bild. Här är min uppgift att sätta på mina akvariumbelysning (belastning 1) när jag säger ”Sätt på akvariumbelysning”. Klicka sedan på "Skapa utlösare"
Steg 6: Du kommer tillbaka till skärmen “OM DET ÄR ÄN DET”. Klicka nu på "det" och skriv "Maker Webhooks" och välj det. Klicka sedan på "Gör en webbförfrågan". Du kommer till skärmen nedan
Detta är ett viktigt steg där du är mest sannolikt att göra misstag. På den här sidan anger du bara webbadressen som du vill ladda. I mitt fall vill jag sätta på lasten som är ansluten till switch1 och därmed raden http: // 987: 654: 321: 123 / switch1On används måste du ersätta min IP med din offentliga IP-adress. Detta fungerar bara om du har använt min kod i föregående handledning. Den fullständiga listan över URL för att växla mellan lasterna ges nedan.
URL |
Nyckelord från programmet |
Handling |
http: // 987: 654: 321: 123 / switch1 På |
Växla1 På |
GPIO_0 görs högt och slår på så sätt på last 1 |
http: // 987: 654: 321: 123 / switch1Off |
Växla1 Av |
GPIO_0 görs lågt, vilket stänger av last 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 görs högt och slår på ON Load 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 görs lågt, vilket stänger av last 1 |
När du har angett önskad URL klickar du på “Skapa åtgärd”. Klicka sedan på Slutför. På samma sätt kan du skapa 4 Applets för att slå PÅ / AV båda lasterna i vår kopplingsbox.
Det är det som din applet är redo för åtgärder och den ska visas under "Mina applets" som visas nedan.
Dags att testa vår kod…….
Test av projekt:
Äntligen är vi redo med vårt projekt. Låt oss testa det. Slå på den och öppna Moni-applikationen i din mobiltelefon. Klicka på mikrofonikonen och säg kommandot. I mitt fall är det "Turn on Aquarium Lights" och det ska vända svaret med "OK" och tända lamporna. Kontrollera hela koden och demo-videon nedan.
Hoppas du gillade projektet och fick det att fungera. Om du har fastnat någonstans, använd kommentarsektionen nedan så hjälper jag dig säkert. Kommer att träffa dig med ett annat intressant projekt tills dess hålla koll.
Kolla även våra andra IoT-baserade projekt här.