Indholdsfortegnelse:
- Trin 1: Indsamling af materialer
- Trin 2: Programmering af Arduino og ESP8266
- Trin 3: Konfiguration af Thingspeak.com
- Trin 4: Programmet
- Trin 5: Konfiguration af Linkit Smart 7688 Duo og webcam
- Trin 6: Konfiguration af PushingBox
- Trin 7: Oprettelse af Alexa Skill ved hjælp af Backendless
- Trin 8: Konfiguration af Alexa Skill i Amazon Developer Console:
- Trin 9: Final Setup og Finish
Video: Smart Home Monitoring Brug af Alexa og Arduino: 9 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
I den nuværende verden bruger mennesker mere tid på arbejdspladsen frem for deres hjem. Derfor er der behov for et hjemmemonitoreringssystem, hvor folk kan lære husets forhold at kende, mens de er på arbejde. Det ville være endnu bedre, hvis man bare kan spørge "nogen" om deres hjem i arbejdstiden. Dette kan opnås ved at bruge Amazon Alexa som en assistent, der kan give brugeren de nødvendige oplysninger om deres hjem.
Ikke kun Work Place kan brugerne lære husstanden at kende ethvert sted i verden, så længe de har en internetforbindelse og Amazon Alexa.
Følgende funktioner implementeres i dette projekt:
1) Styr husholdningsenhederne som ventilator og lys
2) Fortæller status for enhederne
3) Fortæller husets vejrforhold (temperatur og fugtighed)
4) Sender øjebliksbillede af husets indre til brugeren via Gmail, når det kræves.
5) sender besked i tilfælde af -
* Indtrænger (sender også foto)
* Ild
* Gæst (sender også foto)
Trin 1: Indsamling af materialer
Materialer påkrævet
Arduino Uno
ESP8266 Wifi -modul
Linkit Smart 7688 Duo
DHT11
Relæer
IR forhindringssensor
Webcam
Amazon Echo Dot
Brødbræt og jumper Wires
Software og onlinetjenester:
Thingspeak.com
Arduino IDE
Amazon Alexa Skill Set
Amazon Alexa Echosim.io (til test af færdigheder)
Backendless
PushingBox
Trin 2: Programmering af Arduino og ESP8266
Download Arduino IDE Fra det officielle websted:
Åbn Arduino IDE og gå til fil-> præferencer-> i yderligere board manager URL-type-https://arduino.esp8266.com/stable/package_esp8266…
Gå til værktøjer -> boards -> Board Manager og installer esp8266 -pakken, der sidst blev fundet.
For at programmere arduino skal du bare tilslutte USB-kablet fra arduino til computeren og vælge Arduino/Genuino UNO i værktøjs-> tavler. Sørg også for at vælge rettigheder COM -porte i Værktøjer (COM -portnummer kan findes i Enhedshåndtering). Skriv det nødvendige program, kompilér det og klik på upload, hvis der ikke er fejl.
For at programmere ESP8266 foretages forbindelsen som vist i diagrammet. tilslut usb fra arduino til computer. I værktøjs-> tavle-> vælg Generisk ESP8266 og vælg også højre COM-port. Skriv det nødvendige program, kompilér det, og klik på upload, hvis der ikke er fejl. Sørg for at tilslutte Arduino RST til GND (arduino fungerer som en programmerer til ESP8266).
I dette projekt er ESP8266 først programmeret, og derefter fjernes kredsløbstilslutningerne. Derefter tilsluttes kredsløbet igen som vist i figuren med navnet "Kredsløbstilslutninger". Og så er arduinoen programmeret.
Trin 3: Konfiguration af Thingspeak.com
Opret en konto på thingspeak.com.
vi gør brug af kanaler i thingspeak til at gemme enhedsstyringsoplysningerne og dirigere det til arduino/alexa. vi gemmer også temperatur- og fugtighedsværdierne i kanalerne. Det er som et opbevaringssted for oplysningerne.
Log ind på thingspeak, gå til kanaler mine kanaler og opret ny kanal. Giv navn og beskrivelse til dine kanaler. I vores projekt har vi brug for 8 kanaler (du kan udføre jobbet ved hjælp af færre kanaler, men det vil være lidt kompliceret under programmeringen). Thingspeak har også en tidsbegrænsning, mens en kanal opdateres. Der skal være et mellemrum på 10-15 sek mellem successiv opdatering af en bestemt kanal.
Otte kanaler med deres værdier og betydning er angivet nedenfor
kanalnavn (værdi1-betydning, værdi2-betydning osv.):
1) Enhedskontrol (0 -lightON, 1- lightOff, 2- fan ON, 3- Fan Off)
2) lysstatus (0- lys slukket, 1- lys tændt)
3) blæserstatus (0- blæser slukket, 1 blæser tændt)
4) fugtighed (værdi af fugtighed)
5) temperatur (værdi af temperatur)
6) ubuden anmeldelse (1- ubuden advarsel)
7) brandmeddelelse (1- brandvarsel)
8) gæstemeddelelse (1- gæstevarsling)
Når du klikker på en hvilken som helst kanal, kan du se dens kanal -id og skrive API -nøgler i fanen API -nøgler. kanal -id er påkrævet for at få informationen/ værdien i kanalen. Og skrive nøgle er påkrævet for at gemme en værdi i kanalen.
http -anmodning om opdatering af en kanal er:
api.thingspeak.com/update?api_key=&field1=
erstattes af tilsvarende skrive -taster på kanalen og kan være (0/1 i tilfælde af enhedskontrol eller temperatur/fugtighedsværdier)
http -anmodning om læsningsværdi fra en kanal er:
api.thingspeak.com/channels//field/field1/last.html
erstattes af det særlige kanal -id for den kanal, som vi vil læse fra.
Trin 4: Programmet
Programmet er opdelt i 3 dele:
A) Program for Arduino: Programmet for arduino er meget enkelt. Det modtager dataene fra ESP8266 serielt og baseret på de modtagne data styres enhederne. Flere oplysninger om programmet findes i kommentarerne i selve programmet.
B) Program til ESP8266: programmet til ESP8266 involverer 3 ting
1) opdatering af temperatur og fugtighed ved hjælp af http -anmodning
client.print (String ("GET") + "/update? key = & field1 =" + luftfugtighed + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Forbindelse: luk / r / n / r / n "); // opdater luftfugtighed
client.print (String ("GET") + "/update? key = & field1 =" + temperatur + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Forbindelse: luk / r / n / r / n "); // opdater temperatur
den erstattes af den tilsvarende skrivenøgle, der findes i Thingspeak -kanalen for henholdsvis fugtighed og temperatur. og værten er api.thingspeak.com.
download dht-bibliotek fra:
2) læsning fra tilsvarende kanaler for tingspids og kontrolenhed baseret på de opnåede værdier: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Host: " + host +" / r / n " +" Forbindelse: luk / r / n / r / n ");
hvor erstattes af tilsvarende kanal -id fundet i thingspeak.
3) Send alarm ved høj temperatur via skubbeboks
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 ");
hvor erstattes af dit enheds -id i pushingbox.
Trin 5: Konfiguration af Linkit Smart 7688 Duo og webcam
I dette projekt bruges webcam og linkit smart 7688 duo til at tage det nødvendige foto og sende det til brugeren. Du kan også bruge arduino kamera modul og interface det med arduino eller brug kan bruge ethvert IP kamera.
Tryk og hold wifi -knappen på linkit smart 7688 nede i 20 sekunder for at nulstille kortet. Efter at wifi -indstillingen er nulstillet, vil du kunne se dens adgangspunkts navn i de trådløse netværksforbindelser. Tilslut nu computeren til det netværk. Når du har tilsluttet det, åbner du browseren og skriver 192.168.100.1 i adresselinjen. Du vil kunne se dens portal. indstil en adgangskode for at logge ind på sin portal.
Når du har logget ind, skal du gå til fanen Netværk og vælge Stationstilstand (vi har brug for det (linkit smart 7688 duo) for at få adgang til internettet) og slutte det til dit Wifi -netværk, og tryk på Konfigurer og genstart.
Efter at kortet blev genstartet, vil det blive tildelt en lokal IP -adresse. Find ud af adressen ved hjælp af eventuelle IP -værktøjer eller din routerportal. I mit tilfælde var det 192.168.1.4. Skriv nu den lokale IP -adresse i browserens adresselinje. Sørg for, at computeren er forbundet til det samme netværk som linkit smart. Du bliver bedt om at logge ind igen.
For at aktivere streaming fra webcam skal du aktivere-j.webp
Når du har logget ind, skal du gå til fanen service og kontrollere aktiver-j.webp
Efter opsætningen kan du forbinde dit webcam med linkit smart 7688 duo usb -værten via et OTG -kabel. Nu kan du se Stream åbne browseren og skrive: i adresselinjen. i mit tilfælde er det 192.168.1.4:4400
for at tage snapshot, skriv kommandoen:? action = snapshot
Nu er dette billede tilgængeligt lokalt, men vi skal gøre dette tilgængeligt for push -box service. For at opnå dette skal vi foretage port forwarding. Port videresendelse kan foretages i router portal. Proces -id'et er forskelligt for forskellige routere. Bare google for at vide, hvordan du sender port frem til en bestemt router. Det er normalt tilgængeligt under NAT -service. Efter at du har videresendt port, kan du få adgang til denne port (dvs. 4440) fra din eksterne IP. Ekstern IP kan findes ved at knytte "hvad er min ip" i google.
Du skal angive denne adresse
ie.. https://::? action = øjebliksbillede
i pushingbox (som forklares i næste trin), så pushingbox kan få adgang til dette billede og vedhæfte det til mailen og sende det til dig, når det er nødvendigt.
Du kan også gemme billedet på sd -kort, da Linkit smart 7688 duo også leveres med et sd -kort slot til opbevaring af oplysninger. Mere information om dette kan findes på:
docs.labs.mediatek.com/resource/linkit-sm…
Trin 6: Konfiguration af PushingBox
pushingbox bruges til at sende meddelelse om forskellige advarsler i projektet til gmail.
log på pushingbox ved hjælp af Google -konto:
gå til mine tjenester tilføj service. der er mange tjenester at vælge imellem som Gmail, twitter, push -meddelelse til Android osv …
vælg Gmail (da vi skal sende foto som vedhæftet fil), og udfyld passende gmail -navnskonfiguration og gmail -id for den bruger, som advarslen skal sendes til.
gå til mine scenarier og opret et nyt scenario. Giv scenariet navn (f.eks. ALERT) tilføj den tidligere oprettede tjeneste.
skriv passende emne og brødtekst i mailen, og indtast webadressen for at tage skærmbilledet af webcam til vedhæftning af foto. Opret forskellige scenarier for forskellige alerts.api til udførelse af et push -box scenario er:
Trin 7: Oprettelse af Alexa Skill ved hjælp af Backendless
backendless bruges til at skabe alexa -færdigheden. Det er en simpel træk og slip -programmering, der bruges til at oprette alexa -færdigheder (eller andre programmer), som kan tilgås af backendless API.
opret en konto i backendless:
- Log ind på din konto på en konto uden ende. klik på Opret app, og giv et navn til din app
- Klik på ikonet Business Logic i ikonlinjen til venstre. Du får vist skærmen API -TJENESTER.
- Klik på ikonet "+" for at oprette en ny service. Sørg for at vælge KODELØS i pop -up'en "Ny service". Indtast "AlexaService" for servicenavnet. Klik på knappen GEM:
- Backendless opretter API -tjenesten og beder dig om at oprette en metode til tjenesten. Dette vil være den metode, der behandler anmodninger fra Alexa. Indtast "handleRequest" for metodens navn. Sørg for at vælge POST til REST -operationen, og erklær et argument med navnet "req" og skriv "Ethvert objekt" som vist:
- Backendless opretter en pladsholder til metodens kodeløse logik. Klik på knappen EDIT for at begynde at skifte til Codeless Logic Designer. I den oprettede funktionspladsholderblok skal du klikke på det område, der siger “doSomething”, og ændre det til “sendAlexaResponse”. Denne funktion bruges til at få alexa til at sige noget, der kan sendes som argument. Klik på knappen GEM, så funktionen gemmes.
- Klik på tandhjulsikonet i den lilla blok lige ved siden af ordet "Funktion". Tilføj to argumenter ved at trække inputblokkene som vist på billedet herunder. Tildel navnene på argumenterne som "whatToSay" og "waitForResponse". Bemærk, at når du tilføjer argumenter, udfyldes kontekstblokke -området automatisk med de blokke, der repræsenterer argumentværdier.
- Rediger funktionens logik, så den ser ud som på billedet. For blokke "Opret objekter" skal du bruge tandhjulsikonet til at ændre navnet på objektegenskaberne. Glem ikke at gemme dit arbejde ved at klikke på knappen GEM.
- Nu hvor den brugerdefinerede funktion er bygget, skal du skifte tilbage til handleRequest -metoden for AlexaService -tjenesten. Klik på kategorien Tilpassede funktioner på værktøjslinjen til venstre, og træk sendAlexaResponse -blokken for at oprette forbindelse til returforbindelsen til din servicemetode
- Ovenstående trin kan også findes på deres websted:
- Klik på "Tilføj ny" -knuden under Funktioner i BROWSER -sektionen. I den oprettede funktionspladsholderblok skal du klikke på det område, der siger "doSomething", og ændre det til "getIntentName", ændre blokkene, så funktionen ligner det viste billede. Dette får hensigtsnavnet baseret på prøveudtalelser. Gå tilbage til api services-> håndter anmodning i browsersektionen. Variabler og logik oprettes fra systemafsnittet. Opret følgende variabler vist i billeder.
- derefter gemmer vi hensigtsnavnet for at anmode om variabel. Og sammenlign derefter med hensigterne. for eksempel hvis anmodningen er "introduktion", er svarvariablen indstillet til "hej! Jeg kan styre ……." og dette svar læses endelig op af alexa. rediger blokken som vist.
- hvis anmodningen er LightsOn -hensigt, opdaterer vi thingspeak -kanalen til '0' ved hjælp af http get -anmodning, og vi opdaterer samtidig enhedens status (1/0 afhængigt af On/Off). Det samme gentages for LightsOff, FanOn og FanOff.
- For vejr læser vi fra temperatur- og luftfugtighedskanalen og gemmer resultatet i responsvariabel. Da kanalen kun giver værdier, tilføjer vi tekster for at gøre svaret meningsfuldt
- til øjebliksbillede af stuen kører vi pushingbox -scenario
- for enhedsstatus læser vi oplysninger fra statuskanalen for thingspeak:
- til meddelelse og advarsler, vi læser fra alarmkanaler (brand, ubudne gæst og gæst):
- baseret på de værdier, vi får fra meddelelsesfeltet, er tilsvarende advarselsmeddelelser gemt i respons0 -variablen. hvis der ikke er nogen meddelelse, gemmes der ingen meddelelsesmeddelelse.
- når meddelelsen er læst op, opdateres '0' i meddelelseskanalerne, så alexa ikke læser samme meddelelse igen. Derefter læses respons0/respond -variablen omsider baseret på anmodningen op.
Trin 8: Konfiguration af Alexa Skill i Amazon Developer Console:
gå til amazon udviklerkonsol og log ind med amazon -konto.
gå til udviklerkonsol og klik på fanen ALEXA. Klik på alexa skills kit kom i gang.
opret tilpasset færdighedstype, giv navn og påkaldelsesnavn til færdigheden. de respektive hensigter og prøveudtalelser er angivet i koden.
i konfigurationsfanen skal du vælge HTTPS som service slutpunktstype udfylde standard -URL'en med API -URL'en fra backendless. Select the 2nd option in Certificate for default endpoint in SSL certificate. Du kan også teste dygtigheden ved hjælp af testsimulator.
Når testen er gennemført, kan du offentliggøre færdigheden med de nødvendige publiceringsoplysninger.
Trin 9: Final Setup og Finish
Foretag kredsløbstilslutningen som vist.
Nogle gange vil ESP8266 fungere forkert på grund af utilstrækkelig strøm. Så selvom det ikke er nævnt i kredsløbet, anbefales det at drive ESP8266 fra en separat 3,3v kilde. Hvis du bruger en powerbank, skal du sørge for at reducere spændingen fra 5v til 3.3v ved hjælp af en 3.3v spændingsregulator. Upload program til ESP8266 og arduino. Jeg har vist forbindelsen til pære, det samme kan udvides til ventilator eller andre enheder. Brug endelig amazon echo eller echosim.io til at teste din dygtighed.
Du skal aktivere færdigheden ved hjælp af påkaldelsesnavnet (som det er mit tilfælde - "mit hjem"). Nogle gange virker det ikke, hvis det bruges uden påkaldelsesnavn, som jeg har vist et par gange i min video
Håber du nød undervisningen!
Tak skal du have!
Anbefalede:
IoT Smart Clock Dot Matrix Brug Wemos ESP8266 - ESP Matrix: 12 trin (med billeder)
IoT Smart Clock Dot Matrix Brug Wemos ESP8266-ESP Matrix: Lav dit eget IoT Smart Clock, der kan: Display ur med et smukt animationsikon Display Påmindelse-1 til Påmindelse-5 Vis kalender Vis muslimsk bønnetid Vis vejrinformation Vis Nyheder Vis råd Vis Bitcoin rate Display
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det
RPi IoT Smart Light Brug af Firebase: 4 trin (med billeder)
RPi IoT Smart Light Brug af Firebase: Denne vejledning viser dig, hvordan du opretter og opsætter en app til at styre Raspberry Pi via Firebase (En online database). Og så 3D -udskrivning af etui til Pi Zero W, en Powerboost 1000C, et batteri og en Blinkt! .For at være nemmest i stand til at følge med, kan jeg
IoT Cat Feeder Brug Particle Photon Integreret Med Alexa, SmartThings, IFTTT, Google Sheets: 7 trin (med billeder)
IoT Cat Feeder ved hjælp af Particle Photon Integreret med Alexa, SmartThings, IFTTT, Google Sheets: Behovet for en automatisk kattefoder er selvforklarende. Katte (vores kats navn er Bella) kan være modbydelige, når de er sultne, og hvis din kat er som min, vil den spise skålen tør hver gang. Jeg havde brug for en måde til automatisk at dosere en kontrolleret mængde mad