- Voorwaarden:
- Werkconcept:
- Arduino IDE-programma voor ESP8266:
- Schakelschema en hardware:
- Port Forwarding uw ESP8266 IP:
- Moni Android-applicatie installeren:
- Applets maken met de IFTTT-service:
- Testen van project:
Welkom bij een ander opwindend project waarin we een spraakgestuurd huisautomatiseringssysteem zullen bouwen met behulp van de ESP8266 Wi-Fi-module, waar u uw AC-apparaten voor thuis kunt bedienen met uw stem via een Android-app van overal ter wereld. Ja, je droom om je ladingen (licht / ventilatoren) AAN of UIT te zetten door simpelweg een spraakopdracht te gebruiken, zal aan het einde van dit project uitkomen. Dit project is de variatie op ons vorige project Smart Junction Box for Home Automation, waarbij we de huishoudelijke apparaten hebben aangestuurd met een webserver over het netwerk.
Dit op IOT gebaseerde spraakgestuurde huisautomatiseringsproject is supergemakkelijk te bouwen en kost u niet veel omdat u geen dure spraakmodules hoeft te kopen. Het hele project kostte me ongeveer 500 INR (8 USD) om het te bouwen. Ook dit is een microcontroller onafhankelijk project, wat betekent dat je elke MCU / MP, zoals Arduino of pi Raspberry niet nodig. Het hele project draait op de ESP8266-module. Lees hier meer over ESP8266. Dus laten we beginnen te praten…
Eerder hebben we veel soorten huisautomatisering behandeld met behulp van verschillende technologieën, zoals:
- DTMF-gebaseerde domotica
- GSM-gebaseerde domotica met behulp van Arduino
- PC-gestuurde huisautomatisering met Arduino
- Bluetooth-gestuurde huisautomatisering met 8051
- IR-afstandsbediende huisautomatisering met Arduino
- domotica-project met MATLAB en Arduino
- RF-afstandsbediende LED's met Raspberry Pi
- Slimme telefoongestuurde huisautomatisering met Arduino
Voorwaarden:
Dit project is een voortzetting van ons vorige project Smart Junction Box for Home Automation met ESP8266, dus het grootste deel van het hardwaregedeelte is al behandeld in die tutorial. Lees dat alstublieft voordat u verder gaat met deze, aangezien ik de informatie in die tutorial zal overslaan. Om een korte samenvatting te geven van ons vorige project, hebben we in die tutorial een Junction box (uitbreidingskaart) aangepast die een Perf-kaart bestaande uit twee relais en de ESP8266-module kan consoleren. De twee relais (AC-belastingen) kunnen worden geschakeld door een webpagina te gebruiken die is gemaakt door de ESP8266 (door op te treden als een webserver). In deze tutorial ga ik er gewoon wat functies aan toevoegen, zodat we ook de AC-belastingen kunnen bedienen met behulp van de spraakopdracht via Smart Phone.We behandelen geen hardware-onderdeel in deze tutorial, de hardware en de code blijft hetzelfde als die van de vorige tutorial.
Ook als u weet hoe u www.IFTTT.com moet gebruiken, krijgt u de overhand in dit project. Als u niet bekend bent met IFTTT, hoeft u zich geen zorgen te maken, ik zal uitleggen hoe u het voor deze specifieke tutorial kunt gebruiken, zodat u het kunt laten werken.
Werkconcept:
Ik neem aan dat je de vorige tutorial hebt gelezen, in dat geval zou je nu moeten weten hoe je die aansluitdoos moet bouwen en hoe je de belastingen op afstand kunt omschakelen vanuit je webbrowser. Om dit mogelijk te maken, hebben we ons IP-adres toegewezen aan de ESP8266 openbaar gemaakt. Dit kan gedaan worden met “Port forwarding techniek”. Installeer vervolgens een mobiele applicatie genaamd "Moni" op uw mobiele Android / IPhone-apparaat. Deze applicatie herkent onze spraak en geeft de informatie door aan de IFTT-applets, die op hun beurt de belastingen besturen via Maker Web-hooks.
Het klinkt misschien een beetje vervelend, maar al deze dingen zijn duidelijk uitgelegd in deze tutorial en geloof me met een paar klikken al het bovenstaande kan worden gemaakt. Deze tutorial helpt je op de best mogelijke manier met behulp van afbeeldingen en video's. Aan het einde van deze tutorial kun je je huishoudelijke apparaten overal ter wereld met je stem in- of uitschakelen. Bekijk de volledige code en demovideo aan het einde van de tutorial.
Controleer ook Spraakgestuurde verlichting met Raspberry Pi en Spraakgestuurd typen op 16x2 LCD.
Arduino IDE-programma voor ESP8266:
Net als in het vorige project gaan we onze ESP8266-module programmeren met behulp van de Arduino IDE. Er is een kleine wijziging aangebracht in het programma. Deze wijziging is aangebracht zodat uw ESP8266 elke keer dat hij een verbinding met de router tot stand brengt, verbinding maakt met een constant IP-adres. Het programma is exact hetzelfde als de vorige code, behalve deze vier regels
// Krijg elke keer een constant IP-adres IP-adres ip (192, 168, 0, 104); // Dit zou het IP-adres moeten zijn van mijn ESP-module IPAddress gateway (192, 168, 0, 1); // stel de gateway zo in dat deze overeenkomt met uw netwerk. De meeste gateway zal standaard hetzelfde zijn Serial.print (F ("Setting static ip to:")); Serial.println (ip); IP-adres subnet (255, 255, 255, 0); // stel het subnetmasker in zodat het overeenkomt met uw netwerk WiFi.config (ip, gateway, subnet);
Hier, in plaats van IPAddress ip (192, 168, 0, 104); voer je gewenste IP-adres in. In dit geval is mijn ESP de hele tijd verbonden met 192.168.0.104 en kan ik er eenvoudig toegang toe krijgen door dit IP-adres in mijn browser te gebruiken. De volledige code die aan het einde van deze tutorial wordt gegeven.
Schakelschema en hardware:
Schema's en hardware voor deze op IoT gebaseerde spraakgestuurde huishoudelijke apparaten zijn hetzelfde als ons vorige Smart Junction-project en ik heb het schema daar uitgelegd, dus neem het zo vriendelijk door. Hier kunt u het volledige schema ter referentie bekijken:
Port Forwarding uw ESP8266 IP:
De eerste stap is om Port forwarding in uw router (modem) in te schakelen, zodat u overal ter wereld toegang heeft tot uw ESP door gewoon uw openbare IP-adres in te voeren. Telkens wanneer onze ESP8266 verbinding maakt met onze thuis- / kantoorrouter, krijgt deze een uniek IP-adres en dit IP-adres wordt gebruikt om via een webbrowser toegang te krijgen tot de ESP8266. Dit IP-adres is beperkt binnen uw thuis- / kantoornetwerk, wat betekent dat u er wereldwijd geen toegang toe hebt; het is alleen toegankelijk voor apparaten die op uw router zijn aangesloten. Port forwarding is de techniek waarmee we deze webpagina wereldwijd kunnen laden. Na port forwarding kunt u uw openbare IP-adres gebruiken om deze webpagina overal ter wereld te openen. Klinkt goed toch !! Laten we eens kijken hoe we dit voor elkaar kunnen krijgen. Om dit te doen, weet u van tevoren het volgende.
1. De naam van de fabrikant en het IP-adres van uw router. Dit is gemakkelijk te vinden door naar de router te kijken. Het IP-adres wordt ook vermeld op een sticker. Zo niet Google om uw Routers IP te kennen.
2. De gebruikersnaam en het wachtwoord van de aanmeldingspagina van uw routers. De meeste routers hebben een gebruikersnaam als "admin" en een wachtwoord als "admin".
3. Het IP-adres dat is toegewezen aan uw ESP8266-module. Dit is het adres dat u gebruikt om toegang te krijgen tot de webpagina van de ESP-module.
4. Het IP-adres van uw internetprovider (openbaar IP-adres). Dit kan worden gevonden door simpelweg te Gogglen "wat is mijn IP".
Zodra u alles in de hand heeft, kunt u de onderstaande stappen volgen om door te sturen naar port, als u vastzit met het vinden van iets, gebruik dan het commentaargedeelte hieronder. Ik zal je helpen.
Stap 1: Log in op uw Routers Web-beheer hulpprogramma-pagina met behulp van het IP-adres van uw router, meestal is dit 192.168.1.1. Mijn scherm ziet er als volgt uit
Stap 2: Voer standaard de gebruikersnaam "admin" en standaard het wachtwoord "admin" in en klik op Login. U wordt naar de hulpprogramma-pagina geleid die er hieronder ongeveer zo uitziet.
De meeste informatie die u hier ziet, is zeer vertrouwelijk, dus deel ze niet met onbekende personen, anders riskeert u uw internetbeveiliging.
Stap 3: Zoals hierboven weergegeven, heeft uw pagina alle opties links onderaan. Ons doel is om iets te vinden met de naam "Virtuele Servers". Ik heb de mijne vermeld onder de optie Doorsturen. Bij de meeste routers worden ze vermeld als de 6, 7 of 8ste optie (meestal onder de DHCP-instelling). Zoek het en klik erop
Stap 4: Nu moet u het IP-adres invoeren dat is toegewezen aan de ESP-module en het poortnummer om onze IP door te sturen. In mijn geval moet ik op Nieuwe toevoegen klikken en die gegevens invoeren. Het kan voor jou iets anders zijn. Het IP-adres is het adres dat u gebruikt om toegang te krijgen tot de webpagina van uw ESP-module. Het poortnummer kan van uw keuze zijn, maar laat ons voor de eenvoud “80” gebruiken. Het IP-adres dat is toegewezen aan mijn ESP8266-module is 192.168.0.104 en daarom zal mijn doorsturen er als volgt uitzien:
Stap 5: Nu moeten we ons openbare IP-adres weten. U kunt dit mijn Goggling vinden voor "Wat is mijn IP". Uw ISP IP moet zeer vertrouwelijk worden behandeld. Laten we omwille van deze tutorial aannemen dat mijn IP-adres 987: 654: 321: 123 is. Ik zal dit gebruiken als mijn ISP IP voor de rest van mijn tutorial.
Opmerking: het kan zijn dat uw ISP u een statisch / dynamisch IP-adres heeft verstrekt. Als het een dynamisch IP-adres is, zal uw IP veranderen bij elke herstart van de modem / router. In dat geval moet u zoiets als DynDNS gebruiken. Maar dat valt buiten het bestek van deze tutorial. Zelfs als het een dynamisch IP-adres is, zal het voor u werken zolang u uw router niet reset.
Dat is het, onze port forwarding is succesvol, we kunnen dat controleren door de ISP IP: portname (987: 654: 321: 123: 80) in onze browser in te voeren en te controleren of de ESP-webpagina wordt geladen. Als alles verloopt zoals verwacht, zou je nu in staat moeten zijn om de Loads van overal ter wereld te wisselen met behulp van je ISP IP-adres.
Moni Android-applicatie installeren:
Moni is een applicatie die beschikbaar is voor Android, Windows, iTunes en zelfs Skype. U kunt deze applicatie downloaden naar uw gsm. Moni.ai heeft veel meer mogelijkheden dan alleen reageren op uw spraakopdrachten, het is zeer ontwikkelaarsvriendelijk en u kunt snel visueel gesprekken definiëren en verbinding maken met services. Moni.ai gebruikt een applicatie genaamd Node-Red, waarmee je eenvoudig een spraakkanaal kunt maken en je eigen Chabot (AI) -systeem voor je bedrijf / projecten kunt bouwen en kunt automatiseren met je natuurlijke taal. Het beste is dat Moni volledig gratis is voor niet-commercieel gebruik.
Ik gebruik een Android-telefoon en daarom download ik Moni rechtstreeks vanuit de Google Play Store. Maak na het installeren uw gratis account aan en log in, uw app zou er als volgt uit moeten zien:
U kunt dit gebruiken zoals elke andere virtuele assistent, zoals vragen naar het weer, tijd enz. Maar wat extra is, is dat het kan reageren op uw applets die zijn gemaakt door uw Ifttt-service. Laten we eens kijken hoe u nu applets voor uw applicatie kunt maken.
Applets maken met de IFTTT-service:
We zijn nog maar één stap verwijderd van het voltooien van dit project. De laatste stap is het maken van de applets op de IFTTT-website. Hier instrueren we onze Moni voor verschillende spraakopdrachten om verschillende huishoudelijke apparaten thuis te bedienen.
Ik gebruik deze spraakgestuurde aansluitdoos om mijn aquariumbelastingen (licht / filter) in te schakelen, zoals in de onderstaande video wordt getoond. Daarom pas ik de applet aan voor die vereiste, u kunt deze voor uw doel aanpassen. Volg onderstaande stappen:
Stap 1: Bezoek www.IFTTT.com en log in met uw account. Indien nieuw dan aanmelden.
Stap 2: Klik nu op "Zoeken" en typ Webhooks maken. Selecteer het en klik op "Connect". Volg de stappen om er verbinding mee te maken.
Stap 3: Klik nu opnieuw op "Zoeken" en typ Moni. Selecteer Moni en klik op "Connect". Log in met uw IFTTT-account om verbinding mogelijk te maken.
Stap 4: We hebben verbinding gemaakt met de "Maker Webhooks" en de "Moni" -services. Laat u nu een applet maken met deze services. Klik op Mijn applets en vervolgens op "Nieuwe applet". Je zou zoiets als dit moeten zien:
In dit scherm moet je op "dit" klikken en "Moni" selecteren. Klik vervolgens op "Vraag Moni om een actie uit te voeren". U wordt naar het onderstaande scherm geleid.
Stap 5: Vul de gegevens in zoals ik de bovenstaande afbeelding heb ingevuld. Hier is het mijn taak om mijn aquariumverlichting (belasting 1) aan te zetten als ik zeg "Zet aquariumverlichting aan". Klik vervolgens op 'Trigger maken'
Stap 6: U keert terug naar het scherm "ALS DIT DAN DAT". Klik nu op "dat" en typ "Maker Webhooks" en selecteer het. Klik vervolgens op "Doe een webverzoek". U wordt naar het onderstaande scherm geleid
Dit is een belangrijke stap waarbij de kans het grootst is dat u fouten maakt. Voer op deze pagina gewoon de URL in die u wilt laden. In mijn geval wil ik de belasting die is aangesloten op switch1 inschakelen, vandaar dat de regel http: // 987: 654: 321: 123 / switch1On wordt gebruikt, je moet mijn IP vervangen door je openbare IP-adres. Dit werkt alleen als je mijn code hebt gebruikt in de vorige tutorial. De volledige lijst met URL's om tussen de ladingen te schakelen, wordt hieronder gegeven.
URL |
Trefwoord uit programma |
Actie |
http: // 987: 654: 321: 123 / switch1On |
Schakelaar 1 Aan |
GPIO_0 wordt hoog gemaakt, waardoor belasting 1 wordt ingeschakeld |
http: // 987: 654: 321: 123 / switch1Off |
Schakelaar 1 Uit |
GPIO_0 wordt laag gemaakt, waardoor belasting 1 wordt uitgeschakeld |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 wordt hoog gemaakt, waardoor belasting 2 wordt ingeschakeld |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 is laag gemaakt, waardoor belasting 1 wordt uitgeschakeld |
Nadat u de gewenste URL heeft ingevoerd, klikt u op "Actie maken". Klik vervolgens op Voltooien. Op dezelfde manier kunt u 4 applets maken om beide belastingen in onze aansluitdoos AAN / UIT te zetten.
Dat is het, uw applet is klaar voor actie en zou moeten verschijnen onder "Mijn applets", zoals hieronder weergegeven.
Tijd om onze code te testen…….
Testen van project:
Eindelijk zijn we klaar met ons project. Laten we het testen. Schakel het in en open de Moni-applicatie op uw mobiele telefoon. Klik op het microfoonpictogram en spreek de opdracht uit. In mijn geval is het "Zet aquariumverlichting aan" en het zou moeten reageren met een "OK" en de lichten aan moeten doen. Bekijk de volledige code en demovideo hieronder.
Ik hoop dat je het project leuk vond en het liet werken. Als je ergens vastzit, gebruik dan de commentaarsectie hieronder en ik zal je zeker helpen. Ontmoet je tot dan met een ander interessant project, blijf op de hoogte.
Bekijk hier ook onze andere op IoT gebaseerde projecten.