INHOUDSOPGAWE:
- Stap 1: Versamel die materiaal
- Stap 2: Programmering van die Arduino en ESP8266
- Stap 3: Die opstel van Thingspeak.com
- Stap 4: Die program
- Stap 5: Stel Linkit Smart 7688 Duo en webcam op
- Stap 6: Stel PushingBox op
- Stap 7: Skep Alexa -vaardigheid met behulp van Backendless
- Stap 8: Configureer Alexa Skill in Amazon Developer Console:
- Stap 9: Finale opstelling en afwerking
Video: Smart Home Monitoring met Alexa en Arduino: 9 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
In die huidige wêreld spandeer mense meer tyd op die werkplek as in hul huise. Daarom is daar 'n tuismoniteringstelsel nodig waar mense die huis se toestande kan leer ken terwyl hulle werk. Dit sou nog beter wees as 'n mens net 'iemand' kan vra oor hul huis gedurende werksure. Dit kan bereik word deur gebruik te maak van Amazon Alexa as 'n assistent wat die gebruiker die nodige inligting oor hul huis kan gee.
Gebruikers kan nie net die werkplek op enige plek ter wêreld ken nie, solank hulle 'n internetverbinding en Amazon Alexa het.
Die volgende funksies word in hierdie projek geïmplementeer:
1) Beheer die huishoudelike toestelle soos waaier en lig
2) Vertel die status van die toestelle
3) Vertel die weerstoestand van die huis (temperatuur en humiditeit)
4) Stuur indien nodig die momentopname van die binnekant van die huis aan die gebruiker via Gmail.
5) Stuur kennisgewing in geval van -
* Indringer (stuur ook foto)
* Vuur
* Gas (stuur ook foto)
Stap 1: Versamel die materiaal
Materiaal benodig
Arduino Uno
ESP8266 Wifi -module
Linkit Smart 7688 Duo
DHT11
Relays
IR hindernis sensor
Webkamera
Amazon Echo Dot
Broodbord en springdrade
Sagteware en aanlyn dienste:
Thingspeak.com
Arduino IDE
Amazon Alexa vaardigheidsstel
Amazon Alexa Echosim.io (vir die toets van vaardigheid)
Agtergrondloos
PushingBox
Stap 2: Programmering van die Arduino en ESP8266
Laai die Arduino IDE af vanaf die amptelike webwerf:
Maak Arduino IDE oop en gaan na lêer-> voorkeure-> in addisionele bordbestuurder-URL-tipe-https://arduino.esp8266.com/stable/package_esp8266…
Gaan na tools -> boards -> Board Manager en installeer die esp8266 -pakket wat u uiteindelik gevind het.
Om arduino te programmeer, koppel die USB-kabel van die arduino aan op die rekenaar en kies Arduino/Genuino UNO in gereedskap-> borde. Maak ook seker dat u die regte COM -poorte in die gereedskap kies (die COM -poortnommer kan in Toestelbestuurder gevind word). Skryf die vereiste program, stel dit op en klik op Laai op as daar geen foute is nie.
Om die ESP8266 te programmeer, maak die verbinding soos in die diagram getoon. koppel die usb van arduino aan die rekenaar. Kies in tools-> board-> Generic ESP8266 en kies ook die regte COM-poort. Skryf die vereiste program, stel dit op en klik op Laai op as daar geen foute is nie. Maak seker dat u Arduino RST aan GND koppel (arduino dien soos 'n programmeerder op ESP8266).
In hierdie projek word die ESP8266 eers geprogrammeer en dan word die stroombaanverbindings verwyder. Dan word die stroombaan weer verbind soos getoon in die figuur met die naam "Kringaansluitings". En dan word die arduino geprogrammeer.
Stap 3: Die opstel van Thingspeak.com
Skep 'n rekening op thingspeak.com.
ons maak gebruik van kanale in ThingsPeak om die apparaatbeheerinligting op te slaan en na arduino/alexa te stuur. ons stoor ook die temperatuur- en humiditeitswaardes in die kanale. Dit is soos 'n stoorplek vir die inligting.
Teken in op thingspeak, gaan na kanale op my kanale en skep 'n nuwe kanaal. Gee naam en beskrywing aan u kanale. In ons projek benodig ons 8 kanale (u kan die werk doen met minder kanale, maar dit sal 'n bietjie ingewikkeld wees tydens die programmering). Thingspeak het ook 'n tydsbeperking tydens die opdatering van 'n kanaal. Daar moet 'n gaping van 10-15 sek. Wees tussen die opeenvolgende opdatering van 'n spesifieke kanaal.
Agt kanale met hul waardes en betekenis word hieronder gegee
kanaalnaam (waarde1-betekenis, waarde2-betekenis, ens):
1) Toestelbeheer (0-lig, 1- lig uit, 2- waaier aan, 3- waaier uit)
2) ligstatus (0- lig af, 1- lig aan)
3) waaierstatus (0- waaier af, 1 waaier aan)
4) humiditeit (waarde van humiditeit)
5) temperatuur (waarde van temperatuur)
6) indringer kennisgewing (1- indringer waarskuwing)
7) brandkennisgewing (1- brandwaarskuwing)
8) gaskennisgewing (1- gaswaarskuwing)
As u op enige kanaal klik, kan u die kanaal -ID sien en API -sleutels in die API -sleutels -oortjie skryf. kanaal -ID is nodig om die inligting/ waarde in die kanaal te kry. En 'n skryf sleutel is nodig om 'n waarde in die kanaal te stoor.
http -versoek vir die opdatering van 'n kanaal is:
api.thingspeak.com/update?api_key=&field1=
word vervang deur ooreenstemmende skryf sleutels van die kanaal en kan wees (0/1 in geval van toestelbeheer of temp/humiditeitswaardes)
http -versoek vir die leeswaarde van 'n kanaal is:
api.thingspeak.com/channels//field/field1/last.html
word vervang deur die spesifieke kanaal -ID van die kanaal waaruit ons wil lees.
Stap 4: Die program
Die program is in 3 dele verdeel:
A) Program vir Arduino: die program vir arduino is baie eenvoudig. Dit ontvang die data serieel van die ESP8266 en op grond van die ontvangde data word die toestelle beheer. Meer inligting oor die program word gevind in die kommentaar in die program self.
B) Program vir ESP8266: die program vir ESP8266 behels 3 dinge
1) die opdatering van die temperatuur en humiditeit met behulp van http -versoek
client.print (String ("GET") + "/update? key = & field1 =" + humiditeit + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); // werk humiditeit op
client.print (String ("GET") + "/update? key = & field1 =" + temperatuur + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); // opdateer temperatuur
die word vervang deur die ooreenstemmende skryfsleutel wat onderskeidelik gevind word in die dingekanaal vir humiditeit en temperatuur. en die gasheer is api.thingspeak.com.
laai dht-biblioteek af van:
2) lees vanaf ooreenstemmende kanale van dingesprek en beheer toestel gebaseer op die verkryde waardes: client.print (String ("GET") + "/chanels//field/field1/last.html HTTP/1.1 / r / n" + " Gasheer: " + gasheer +" / r / n " +" Verbinding: naby / r / n / r / n ");
waar word vervang deur ooreenstemmende kanaal -ID wat in thingspeak voorkom.
3) Stuur waarskuwing in geval van hoë temperatuur via die drukkas
String host1 = "api.pushingbox.com";
client.print (String ("GET") + "/pushingbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Connection: close / r / n / r / n ");
waar word vervang deur u toestel -ID in die pushbox.
Stap 5: Stel Linkit Smart 7688 Duo en webcam op
In hierdie projek word webcam en linkit smart 7688 duo gebruik om die vereiste foto te neem en dit na die gebruiker te stuur. U kan ook die arduino -kameramodule gebruik en dit met arduino koppel, of u kan enige IP -kamera gebruik.
Druk en hou die wifi -knoppie op die linkit smart 7688 vir 20 sekondes ingedruk om die bord terug te stel. Nadat die wifi -instelling herstel is, kan u die naam van die toegangspunt in die draadlose netwerkverbindings sien. Koppel nou die rekenaar aan die netwerk. Nadat u dit verbind het, maak die blaaier oop en tik 192.168.100.1 in die adresbalk. U kan die portaal daarvan sien. stel 'n wagwoord in om by die portaal aan te meld.
Nadat u aangemeld het, gaan na die netwerk -oortjie en kies die stasie -modus (ons benodig dit (linkit smart 7688 duo) om toegang tot die internet te verkry) en koppel dit aan u wifi -netwerk en druk op Konfigureer en herlaai.
Nadat die bord weer begin het, kry dit 'n plaaslike IP -adres. Vind die adres uit met behulp van enige IP -gereedskap of u router -portaal. In my geval was dit 192.168.1.4. Tik nou die plaaslike IP -adres in die adresbalk van die blaaier. maak seker dat die rekenaar aan dieselfde netwerk as die linkit smart gekoppel is. U sal weer gevra word om aan te meld.
Om streaming vanaf 'n webkamera moontlik te maak, moet u-j.webp
Nadat u aangemeld het, gaan na die diens -oortjie en kyk of-j.webp
Na die opstelling kan u u webkamera via 'n OTG -kabel verbind met die linkit smart 7688 duo usb -gasheer. in my geval is dit 192.168.1.4:4400
tik die opdrag om die snapshot te neem:? action = snapshot
Hierdie beeld is nou plaaslik beskikbaar, maar ons moet dit beskikbaar stel aan die diens van die posbus. Om dit te bereik, moet ons port forwarding doen. Poortaanstuur kan in die routerportaal gedoen word. Die proses is anders vir verskillende routers. Google net om te weet hoe om na 'n spesifieke router te stuur. Dit is gewoonlik beskikbaar onder die NAT -diens. Nadat u die poort vorentoe gebruik het, kan u toegang tot hierdie poort (dws. 4440) verkry vanaf u eksterne IP. Eksterne IP kan gevind word deur 'whats my ip' in Google vas te maak.
U moet hierdie adres plaas
ie.. https://::? action = momentopname
in die pushbox (wat in die volgende stap verduidelik word) sodat pushingbox toegang tot hierdie prent kan kry en dit aan die pos kan heg en dit aan u kan stuur wanneer dit nodig is.
U kan die prent ook op 'n SD -kaart stoor, aangesien Linkit smart 7688 duo ook 'n SD -kaartgleuf bevat vir die stoor van inligting. Meer inligting hieroor kan gevind word by:
docs.labs.mediatek.com/resource/linkit-sm…
Stap 6: Stel PushingBox op
pushbox word gebruik om kennisgewing oor verskillende waarskuwings in die projek na gmail te stuur.
teken aan by pushingbox met 'n Google -rekening:
gaan na my dienste voeg diens by. daar is baie dienste om uit te kies, soos Gmail, Twitter, push -kennisgewing vir Android, ens …
kies Gmail (aangesien ons 'n foto as aanhangsel moet stuur) en vul die toepaslike konfigurasie van die Gmail -naam en die Gmail -ID in van die gebruiker na wie die waarskuwing gestuur moet word.
gaan na my scenario's en skep 'n nuwe scenario. gee die scenario 'n naam (byvoorbeeld: ALERT) voeg die diens wat voorheen geskep is by.
skryf die geskikte onderwerp en liggaam van die pos en voer die url in om die skermkiekie van die webkamera te neem om 'n foto aan te heg. Skep verskillende scenario's vir verskillende alerts.api vir die uitvoering van 'n push box -scenario:
Stap 7: Skep Alexa -vaardigheid met behulp van Backendless
backendless word gebruik om die alexa -vaardigheid te skep. Dit is 'n eenvoudige sleep -en -aflaai -programmering wat gebruik word om alexa -vaardigheid (of enige programme) te skep, waartoe toegang sonder 'n eindelose API verkry kan word.
skep 'n rekening in backendless:
- Teken in op u rekening in 'n agtergrondlose rekening. klik op Skep program en gee 'n naam aan u app
- Klik op die Business Logic -ikoon in die ikoonbalk aan die linkerkant. U sal die API -DIENSTE -skerm sien.
- Klik op die "+" - ikoon om 'n nuwe diens te skep. Maak seker dat u CODELESS in die pop -up "Nuwe diens" kies. Voer "AlexaService" in vir die diensnaam. Klik op die SAVE knoppie:
- Backendless skep die API -diens en sal u vra om 'n metode vir die diens te skep. Dit is die metode wat versoeke van Alexa sal verwerk. Voer "handleRequest" in vir die metode se naam. Maak seker dat u POST kies vir die REST -operasie en verklaar 'n argument met die naam "req" en tik "Any Object" soos getoon:
- Backendless skep 'n plekhouer vir die kodelose logika van die metode. Klik op die EDIT -knoppie om oor te skakel na die Codeless Logic Designer. Klik in die geskepte funksie -plekhouerblok op die gebied wat sê "doSomething" en verander dit na "sendAlexaResponse". Hierdie funksie word gebruik om alexa iets te laat sê wat as argument geslaag kan word. Klik op die SAVE -knoppie sodat die funksie gestoor word.
- Klik op die rat -ikoon in die pers blok langs die woord "Funksie". Voeg twee argumente by deur die invoerblokke te sleep, soos in die onderstaande prent getoon word. Gee die name van die argumente as "whatToSay" en "waitForResponse". Let op dat namate u argumente byvoeg, die Context Blocks -gebied outomaties ingevul word met die blokke wat argumentwaardes verteenwoordig.
- Verander die logika van die funksie sodat dit lyk soos in die prent. Vir die blokke "Skep voorwerpe", gebruik die rat -ikoon om die naam van die voorwerpeienskappe te verander. Moenie vergeet om u werk te stoor deur op die SAVE -knoppie te klik nie.
- Noudat die pasgemaakte funksie gebou is, skakel terug na die handleRequest -metode van die AlexaService -diens. Klik op die kategorie Aangepaste funksies in die werkbalk aan die linkerkant en sleep die sendAlexaResponse -blok om aan te sluit by die retouraansluiting van u diensmetode
- Bogenoemde stappe kan ook gevind word op hul webwerf:
- Klik op die knoppie "Voeg nuwe" by onder Funksies in die BROWSER -afdeling. Klik in die geskepte funksie -plekhouerblok op die gebied wat "doSomething" sê en verander dit na "getIntentName", verander die blokke sodat die funksie lyk soos die getoonde prentjie. sal die bedoelingnaam kry op grond van steekproefuitsprake. Gaan terug na api-dienste-> hanteer versoek in die blaaierafdeling. Veranderlikes en logika word uit die stelselafdeling gemaak. Skep die volgende veranderlikes wat in die beelde getoon word.
- volgende stoor ons die bedoeling naam om veranderlike aan te vra. En vergelyk dan met die bedoeling. Byvoorbeeld, as die versoek "inleiding" is, dan is die reageerveranderlike ingestel op "hi! ek kan beheer …." en hierdie reaksie word uiteindelik deur alexa voorgelees. verander die blok soos aangedui.
- as die versoek LightsOn bedoel is, werk ons die Thingspeak -kanaal op na '0' met behulp van http get -versoek, en werk ons terselfdertyd die toestelstatus op (1/0, afhangende van Aan/Uit). Dieselfde word herhaal vir LightsOff, FanOn en FanOff.
- Vir weer lees ons uit die temperatuur- en humiditeitskanaal en stoor die resultaat in 'n reageer -veranderlike. Aangesien die kanaal slegs waardes gee, voeg ons tekste by om die antwoord betekenisvol te maak
- Vir 'n momentopname van die sitkamer word 'n pushingbox -scenario uitgevoer
- vir toestelstatus lees ons inligting vanaf die statuskanaal van thingspeak:
- vir kennisgewings en waarskuwings wat ons van waarskuwingskanale (brand, indringer en gas) lees:
- gebaseer op die waardes wat ons uit die kennisgewingsveld kry, word ooreenstemmende waarskuwingsboodskappe in die reaksie 0 -veranderlike gestoor. as daar geen kennisgewing is nie, word geen kennisgewingboodskap gestoor nie.
- sodra die kennisgewing voorgelees is, word die '0' in die kennisgewingskanale opgedateer sodat alexa nie weer dieselfde kennisgewing sal lees nie. Uiteindelik, op grond van die versoek, word die veranderlike van reageer0/reageer hardop gelees.
Stap 8: Configureer Alexa Skill in Amazon Developer Console:
Gaan na die Amazon -ontwikkelaarkonsole en meld aan met die Amazon -rekening.
gaan na die ontwikkelaarkonsole en klik op die ALEXA -oortjie. Klik op alexa skills kit om aan die gang te kom.
skep 'n aangepaste vaardigheidstipe, gee die vaardigheid naam en aanroepnaam. die onderskeie voornemens en voorbeelduitsprake word in die kode gegee.
Kies in die konfigurasie -oortjie HTTPS as tipe eindpunt van die diens, vul die standaard -URL met die API -URL van backendless. Kies die 2de opsie in Sertifikaat vir verstek eindpunt in SSL -sertifikaat. U kan die vaardigheid ook toets met behulp van die toetssimulator.
Nadat die toets voltooi is, kan u die vaardigheid publiseer met die vereiste publikasie -inligting.
Stap 9: Finale opstelling en afwerking
Maak die kringverbinding soos aangedui.
Soms funksioneer ESP8266 as gevolg van onvoldoende stroom. Alhoewel dit in die stroombaan genoem word, word dit aanbeveel om die ESP8266 van 'n aparte 3.3v -bron te voed. As u 'n kragbank gebruik, moet u die spanning van 5v tot 3.3v verlaag met 'n 3.3v spanningsreguleerder. Laai die program op na ESP8266 en arduino. Ek het die verbinding met die gloeilamp getoon, dieselfde kan uitgebrei word na waaier of enige ander toestel. Uiteindelik gebruik Amazon echo of echosim.io om u vaardigheid te toets.
U moet die vaardigheid aktiveer met die aanroepingsnaam (soos in my geval - "myhome"). Soms werk dit nie as dit sonder 'n oproepnaam gebruik word nie, soos ek 'n paar keer in my video getoon het
Hoop jy het die tutoriaal geniet!
Dankie!
Aanbeveel:
Alexa Smart Home -stelsel met behulp van NodeMCU -aflosmodule: 10 stappe
Alexa Smart Home System met behulp van NodeMCU Relay Module: In hierdie IoT -projek het ek die Alexa Smart Home Automation -stelsel gemaak met behulp van die NodeMCU ESP8266 & Relay Module. U kan lig, waaier en ander huishoudelike toestelle maklik beheer met die stemopdrag. Om die Echo Dot -slimluidspreker met die
Arduino en Raspberry Pi Powered Pet Monitoring System: 19 stappe (met foto's)
Arduino en Raspberry Pi Powered Pet Monitoring System: Onlangs tydens vakansie het ons besef dat daar geen verbinding met ons troeteldier Beagle is nie. Na 'n bietjie navorsing het ons produkte gevind met 'n statiese kamera waarmee 'n mens die troeteldier kan monitor en kommunikeer. Hierdie stelsels het sekere voordele
Monitoring van konferensiekamers met behulp van deeltjiesfoton: 8 stappe (met foto's)
Monitoring van konferensiekamers met behulp van deeltjiesfoton: inleiding In hierdie tutoriaal gaan ons die vergaderlokaalmonitor met behulp van deeltjiefoton maak. In hierdie deeltjie is geïntegreer met Slack met behulp van Webhooks om real -time opdaterings te kry of 'n kamer beskikbaar is of nie. PIR -sensors word gebruik om
IoT Home Weather Monitoring System met ondersteuning vir Android -toepassings (Mercury Droid): 11 stappe
IoT Home Weather Monitoring System Met Android -toepassingsondersteuning (Mercury Droid): Inleiding Mercury Droid is 'n soort IoT (Internet of Things) ingebedde stelsel wat gebaseer is op Mercury Droid Android Mobile Application. Wat in staat is om te meet & monitor die weerweeraktiwiteite tuis. dit is 'n baie goedkoop stelsel vir monitering van tuisweer
IoT Plant Monitoring System (Met IBM IoT Platform): 11 stappe (met foto's)
IoT Plant Monitoring System (Met IBM IoT Platform): Oorsig Die Plant Monitoring System (PMS) is 'n toepassing wat gebou is met individue wat in die werkersklas is met 'n groen duim in gedagte. Vandag is werkende individue besiger as ooit tevore; om hul loopbane te bevorder en hul finansies te bestuur