Sisukord:

Nutika kodu jälgimine Alexa ja Arduino abil: 9 sammu (piltidega)
Nutika kodu jälgimine Alexa ja Arduino abil: 9 sammu (piltidega)

Video: Nutika kodu jälgimine Alexa ja Arduino abil: 9 sammu (piltidega)

Video: Nutika kodu jälgimine Alexa ja Arduino abil: 9 sammu (piltidega)
Video: 30 лучших советов и рекомендаций по Windows 10 на 2020 год 2024, Juuli
Anonim
Image
Image
Materjalide kogumine
Materjalide kogumine

Praeguses maailmas veedavad inimesed rohkem aega tööl kui kodus. Seetõttu on vaja kodu jälgimissüsteemi, kus inimesed saaksid töö ajal tutvuda maja tingimustega. Veelgi parem oleks, kui saaks tööajal lihtsalt "kelleltki" oma kodu kohta küsida. Seda saab teha, kui kasutada assistendina Amazon Alexat, mis võib anda kasutajale vajalikku teavet oma kodu kohta.

Mitte ainult töökohaga saavad kasutajad maja seisukorraga tutvuda igal pool maailmas, kui neil on Interneti -ühendus ja Amazon Alexa.

Selles projektis rakendatakse järgmisi funktsioone:

1) Juhtige kodumasinaid nagu ventilaator ja valgus

2) Näitab seadmete olekut

3) Näitab maja ilmastikutingimusi (temperatuur ja niiskus)

4) Saadab vajadusel Gmaili kaudu kasutajale maja sisemuse hetktõmmise.

5) saadab teate juhul, kui -

* Sissetungija (saadab ka foto)

* Tuli

* Külaline (saadab ka foto)

Samm: materjalide kogumine

Materjalide kogumine
Materjalide kogumine
Materjalide kogumine
Materjalide kogumine
Materjalide kogumine
Materjalide kogumine

Vajalikud materjalid

Arduino Uno

ESP8266 WiFi -moodul

Linkit Smart 7688 Duo

DHT11

Releed

IR takistusandur

Veebikaamera

Amazon Echo Dot

Leivalaud ja hüppaja juhtmed

Tarkvara ja võrguteenused:

Thingspeak.com

Arduino IDE

Amazon Alexa oskuste komplekt

Amazon Alexa Echosim.io (oskuste testimiseks)

Taustata

PushingBox

Samm: programmeerige Arduino ja ESP8266

Arduino ja ESP8266 programmeerimine
Arduino ja ESP8266 programmeerimine
Arduino ja ESP8266 programmeerimine
Arduino ja ESP8266 programmeerimine

Laadige Arduino IDE alla ametlikult veebisaidilt:

Avage Arduino IDE ja minge täiendava tahvlihalduri URL-i failis-> eelistused->-https://arduino.esp8266.com/stable/package_esp8266…

Minge tööriistadesse -> lauad -> Board Manager ja installige lõpuks leitud pakett esp8266.

Arduino programmeerimiseks ühendage lihtsalt arduino USB-kaabel arvutiga ja valige tööriistadetahvlites Arduino/Genuino UNO. Veenduge ka, et valite tööriistade õigused COM -pordid (COM -pordi numbri leiate seadmehaldurist). Kirjutage vajalik programm, kompileerige see ja vigade puudumisel klõpsake üleslaadimist.

ESP8266 programmeerimiseks looge ühendus vastavalt skeemile. ühendage USB arduinost arvutiga. Valige tööriistades-> tahvel-> Generic ESP8266 ja valige ka parem COM-port. Kirjutage vajalik programm, kompileerige see ja vigade puudumisel klõpsake üleslaadimist. Veenduge, et ühendate Arduino RST GND -ga (arduino toimib nagu programmeerija ESP8266 -ga).

Selles projektis Esmalt programmeeritakse ESP8266 ja seejärel eemaldatakse vooluahela ühendused. Seejärel ühendatakse vooluahel uuesti, nagu on näidatud joonisel "Ahelaühendused". Ja siis programmeeritakse arduino.

Samm 3: Thingspeak.com seadistamine

Thingspeak.com seadistamine
Thingspeak.com seadistamine

Looge konto saidil thingspeak.com.

me kasutame asju kõnelevas kanaleid, et salvestada seadme juhtimisteavet ja suunata see arduino/alexa. samuti salvestame kanalitesse temperatuuri ja niiskuse väärtused. See on nagu teabe salvestuskoht.

Logige sisse asjakõnesse, minge kanalitesse Minu kanalid ja looge uus kanal. Andke oma kanalitele nimi ja kirjeldus. Meie projektis vajame 8 kanalit (saate seda tööd teha, kasutades vähem kanaleid, kuid see on programmeerimise ajal natuke keeruline). Ka asjade rääkimisel on ajapiirang kanali uuendamisel. Konkreetse kanali järjestikuse värskendamise vahel peab olema vahe 10-15 sekundit.

Allpool on toodud kaheksa kanalit oma väärtuste ja tähendusega

kanali nimi (väärtus1 tähendus, väärtus2 tähendus jne):

1) Seadme juhtimine (0-LightON, 1- LightOff, 2 ventilaator ON, 3- Fan Off)

2) valguse olek (0- tuli välja, 1- põleb)

3) ventilaatori olek (0- ventilaator välja lülitatud, 1- ventilaator sisse lülitatud)

4) niiskus (niiskuse väärtus)

5) temperatuur (temperatuuri väärtus)

6) sissetungija märguanne (1- sissetungija hoiatus)

7) tulekahju teatis (1- tulekahjuhäire)

8) külalisteade (1- külalise märguanne)

kui klõpsate suvalisel kanalil, näete selle kanali ID -d ja kirjutate API võtmed vahekaardile API võtmed. kanali ID on vajalik kanali teabe/ väärtuse saamiseks. Ja väärtuse salvestamiseks kanalis on vaja kirjutusvõtit.

http taotlus kanali värskendamiseks on järgmine:

api.thingspeak.com/update?api_key=&field1=

asendatakse kanali vastavate kirjutusvõtmetega ja see võib olla (0/1 seadme juhtimise või temperatuuri/niiskuse väärtuste korral)

http taotlus kanali väärtuse lugemiseks on järgmine:

api.thingspeak.com/channels//field/field1/last.html

asendatakse selle kanali konkreetse ID -ga, millest soovime lugeda.

Samm: programm

Programm on jagatud 3 osaks:

A) Arduino programm: arduino programm on väga lihtne. See võtab ESP8266 -lt andmeid järjestikku ja saadud andmete põhjal juhitakse seadmeid. Lisateavet programmi kohta leiate programmi enda kommentaaridest.

B) ESP8266 programm: ESP8266 programm sisaldab 3 asja

1) temperatuuri ja niiskuse värskendamine http päringu abil

client.print (String ("GET") + "/update? key = & field1 =" + niiskus + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Ühendus: sulge / r / n / r / n "); // niiskuse värskendamine

client.print (String ("GET") + "/update? key = & field1 =" + temperatuur + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Ühendus: sulge / r / n / r / n "); // temperatuuri värskendamine

asendatakse vastava kirjutusvõtmega, mis leidub asjade kõne kanalis vastavalt niiskuse ja temperatuuri jaoks. ja host on api.thingspeak.com.

laadige dht raamatukogu alla siit:

2) lugemine asjakõne vastavatest kanalitest ja seadme juhtimine saadud väärtuste põhjal: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Host: " + host +" / r / n " +" Ühendus: sulge / r / n / r / n ");

kus see asendatakse asjakõnes leiduva vastava kanali ID -ga.

3) Hoiatusteate saatmine kõrge temperatuuri korral tõukekasti kaudu

Stringi host1 = "api.pushingbox.com";

client.print (String ("GET") + "/tõukekast? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Ühendus: sulge / r / n / r / n ");

kus tõukekastis asendatakse teie seadme ID.

Samm: Linkit Smart 7688 Duo ja veebikaamera seadistamine

Linkit Smart 7688 Duo ja veebikaamera seadistamine
Linkit Smart 7688 Duo ja veebikaamera seadistamine
Linkit Smart 7688 Duo ja veebikaamera seadistamine
Linkit Smart 7688 Duo ja veebikaamera seadistamine
Linkit Smart 7688 Duo ja veebikaamera seadistamine
Linkit Smart 7688 Duo ja veebikaamera seadistamine

Selles projektis kasutatakse vajaliku foto jäädvustamiseks ja kasutajale saatmiseks veebikaamerat ja linkit smart 7688 duo. Võite kasutada ka arduino kaameramoodulit ja liita see arduinoga või kasutada mis tahes IP -kaamerat.

Tahvli lähtestamiseks vajutage ja hoidke linkit smart 7688 wifi nuppu 20 sekundit all. Pärast WiFi -seadete lähtestamist näete traadita võrguühendustes selle pöörduspunkti nime. Nüüd ühendage arvuti selle võrguga. pärast selle ühendamist avage brauser ja tippige aadressiribale 192.168.100.1. Näete selle portaali. määrake oma portaali sisselogimiseks parool.

Pärast sisselogimist minge vahekaardile Võrk ja valige Jaamarežiim (me vajame seda (linkit smart 7688 duo), et pääseda Internetti), ühendage see oma WiFi -võrguga ja vajutage Seadistamine ja taaskäivitamine.

Pärast plaadi taaskäivitamist määratakse sellele kohalik IP -aadress. Uurige aadressi IP -tööriistade või ruuteri portaali abil. Minu puhul oli see 192.168.1.4. Nüüd tippige brauseri aadressiribale kohalik IP -aadress. veenduge, et arvuti on ühendatud linkit smartiga samasse võrku. Teil palutakse uuesti sisse logida.

Veebikaamerast voogesituse lubamiseks peate lubama-j.webp

Pärast sisselogimist minge vahekaardile teenus ja märkige-j.webp

Pärast seadistamist saate ühendada teid veebikaameraga OTG -kaabli kaudu linkit smart 7688 duo USB -hostiga. Nüüd, et näha voogu, avage brauser ja tippige aadressiribale. minu puhul on see 192.168.1.4:4400

hetkevõtte tegemiseks tippige käsk:? action = snapshot

Nüüd on see pilt kohapeal saadaval, kuid me peame selle tõukekasti teenusele kättesaadavaks tegema. Selle saavutamiseks peame tegema sadama edastamise. Pordi edastamist saab teha ruuteri portaalis. Protsessi id on erinevate ruuterite jaoks erinevad. Lihtsalt googeldage, et teada saada, kuidas konkreetset ruuterit edasi suunata. See on tavaliselt saadaval NAT -teenuse all. Pärast pordi edasisuunamist saate sellele pordile (st.. 4440) juurdepääsu oma välise IP -aadressi kaudu. Välise IP leiate google'is "whats my ip".

Peate selle aadressi sisestama

st.. https://::? action = snapshot

tõukekastis (mida selgitatakse järgmises etapis), nii et tõukekast pääseb sellele pildile juurde ja lisab selle kirjale ning saadab selle teile alati, kui vaja.

Saate pildi salvestada ka sd -kaardile, kuna Linkit smart 7688 duo on varustatud ka SD -kaardi pesaga teabe salvestamiseks. Lisateavet selle kohta leiate aadressilt:

docs.labs.mediatek.com/resource/linkit-sm…

6. samm: PushingBoxi seadistamine

PushingBoxi seadistamine
PushingBoxi seadistamine

tõukekasti kasutatakse projekti erinevate hoiatusteadete saatmiseks gmaili.

sisselogimine pushboxi Google'i kontoga:

mine minu teenuste lisateenusesse. valida on paljude teenuste vahel, nagu Gmail, twitter, andmeside tõukemärguanne jne …

valige Gmail (kuna meil on vaja saata foto manusena) ja täitke selle kasutaja gmaili nime konfiguratsioon ja gmaili ID, kellele hoiatus tuleb saata.

minge minu stsenaariumide juurde ja looge uus stsenaarium. anda stsenaariumile nimi (nt: HOIATUS) lisada varem loodud teenus.

kirjutage sobiv teema ja kiri ning sisestage URL, et teha veebikaamera ekraanipilt foto lisamiseks. Loo erinevate stsenaariumide jaoks erinevad stsenaariumid. Tõukekasti stsenaariumi täitmiseks mõeldud api on:

Samm 7: Alexa oskuse loomine Backendless'i abil

Alexa oskuste loomine Backendless'i abil
Alexa oskuste loomine Backendless'i abil
Alexa oskuste loomine Backendless'i abil
Alexa oskuste loomine Backendless'i abil
Alexa oskuste loomine Backendless'i abil
Alexa oskuste loomine Backendless'i abil

alexa oskuse loomiseks kasutatakse backendlessit. See on lihtne pukseerimisprogramm, mida kasutatakse alexa oskuste (või mis tahes programmide) loomiseks ja millele pääseb juurde taustata API kaudu.

looge konto backendlessis:

  • Logige oma kontole sisse backendless kontol. klõpsake nuppu Loo rakendus ja andke oma rakendusele nimi
  • Klõpsake vasakul asuval ikooniribal asuvat äriloogika ikooni. Näete ekraani API TEENUSED.
  • Uue teenuse loomiseks klõpsake ikooni „+”. Valige hüpikaknas „Uus teenus” kindlasti CODELESS. Sisestage teenuse nimeks „AlexaService”. Klõpsake nuppu SALVESTA:
  • Backendless loob API -teenuse ja palub teil teenuse jaoks meetodi luua. See on meetod, mis töötleb Alexa taotlusi. Sisestage meetodi nimeks „handleRequest”. Valige REST -toiminguks kindlasti POST ja deklareerige argument nimega “req” ning tippige “Any Object”, nagu näidatud:
  • Backendless loob meetodi koodita loogikale kohatäite. Koodita loogikakujundajale ülemineku alustamiseks klõpsake nuppu EDIT. Klõpsake loodud funktsiooni kohatäiteplokis ala, mis ütleb „doSomething”, ja muutke see väärtuseks „sendAlexaResponse”. Seda funktsiooni kasutatakse selleks, et alexa ütleks midagi, mida saab argumendina edastada. Funktsiooni salvestamiseks klõpsake nuppu SALVESTA.
  • Klõpsake hammasrattaikoonil, mis asub lilla plokis sõna „Funktsioon” kõrval. Lisage kaks argumenti, lohistades sisendplokke, nagu on näidatud alloleval pildil. Määrake argumentide nimed "whatToSay" ja "waitForResponse". Pange tähele, et argumentide lisamisel täidetakse kontekstiblokkide ala automaatselt argumentide väärtusi tähistavate plokkidega.
  • Muutke funktsiooni loogikat nii, et see näeks välja nagu pildil. Plokkide „Loo objektid” jaoks kasutage hammasrattaikooni, et muuta objekti atribuutide nime. Ärge unustage oma tööd salvestada, klõpsates nuppu SALVESTA.
  • Nüüd, kui kohandatud funktsioon on loodud, lülitage tagasi teenuse AlexaService meetodi handleRequest juurde. Klõpsake vasakpoolsel tööriistaribal kategooriat Kohandatud funktsioonid ja lohistage sendAlexaResponse plokk, et luua ühendus oma teenindusmeetodi tagasiliidesega
  • Ülaltoodud sammud leiate ka nende veebisaidilt:
  • Klõpsake jaotises BROWSER Funktsioonid jaotises „Lisa uus”. Loodud funktsiooni kohatäiteplokis klõpsake ala, mis ütleb „doSomething”, ja muutke see väärtuseks „getIntentName”, muutke plokke nii, et funktsioon näeks välja nagu näidatud pilt. saab kavatsuse nime näidislausete põhjal. Minge tagasi api teenuste juurde-> hallake päringut brauseri jaotises. Muutujad ja loogika luuakse süsteemi jaotisest. Looge piltidel näidatud järgmised muutujad.
  • seejärel salvestame muutuja taotlemiseks kavatsuse nime. Ja siis võrrelda kavatsustega. näiteks kui päring on "sissejuhatus", on vastusmuutujaks seatud "tere! ma saan juhtida …". ja selle vastuse loeb alexa lõpuks ette. muutke plokki, nagu näidatud.
  • kui taotlus on LightsOn kavatsusega, siis värskendame asjakõne kanali väärtuseks „0“, kasutades http get request ja samal ajal värskendame seadme olekut (1/0 olenevalt On/Off). Sama korratakse ka LightsOff, FanOn ja FanOff puhul.
  • Ilmastiku jaoks loeme temperatuuri ja niiskuse kanalist ning salvestame tulemuse vastuse muutujaga. Kuna kanal annab ainult väärtusi, lisame vastuse sisukaks muutmiseks tekste
  • elutoa hetktõmmise jaoks kasutame tõukekasti stsenaariumi
  • seadme oleku jaoks loeme teavet asjade olekukanalist:
  • teavituste ja hoiatuste jaoks, mida loeme hoiatuskanalitest (tulekahju, sissetungija ja külaline):
  • vastavalt teavitusväljalt saadud väärtustele salvestatakse vastavad hoiatussõnumid muutujale respond0. kui teateid pole, siis teateid ei salvestata.
  • kui teade on ette loetud, värskendatakse teavituskanalites "0", nii et alexa ei loe sama teadet uuesti. Lõpuks loetakse päringu põhjal valjuhäälselt ette muutuja vastus/vastus.

Samm 8: Alexa Skilli seadistamine Amazoni arendajakonsoolis:

Alexa Skilli seadistamine Amazoni arendajakonsoolis
Alexa Skilli seadistamine Amazoni arendajakonsoolis
Alexa Skilli seadistamine Amazoni arendajakonsoolis
Alexa Skilli seadistamine Amazoni arendajakonsoolis
Alexa Skilli seadistamine Amazoni arendajakonsoolis
Alexa Skilli seadistamine Amazoni arendajakonsoolis

minge amazoni arendajakonsooli ja logige sisse, kasutades amazoni kontot.

minge arendajakonsooli ja klõpsake vahekaarti ALEXA. Alustamiseks klõpsake alexa oskuste komplekti.

looge kohandatud oskuste tüüp, andke oskusele nimi ja kutsunimi. vastavad kavatsused ja näidislaused on antud koodis.

valige konfiguratsioonivahekaardil teenuse lõpp -punkti tüübiks HTTPS, täitke vaikimisi URL koos backendless -i API -aadressiga. Valige SSL -sertifikaadi vaikimisi lõpp -punkti sertifikaadi teine suvand. Oskusi saate testida ka testimulaatori abil.

Pärast testi lõppu saate oskuse koos vajaliku avaldamisteabega avaldada.

9. samm: lõplik seadistamine ja lõpetamine

Lõplik seadistamine ja lõpetamine!
Lõplik seadistamine ja lõpetamine!
Lõplik seadistamine ja lõpetamine!
Lõplik seadistamine ja lõpetamine!

Tehke vooluahela ühendus, nagu näidatud.

Mõnikord võib ESP8266 ebaõnnestuda ebapiisava voolu tõttu. Seega, kuigi seda on vooluringis mainitud, on soovitatav ESP8266 toita eraldi 3,3 V allikast. Kui kasutate toitepanka, vähendage kindlasti pinget 5 V -lt 3,3 V -le, kasutades 3,3 V pingeregulaatorit. Laadige programm üles ESP8266 ja arduino. Olen näidanud ühendust pirniga, sama asja saab laiendada ventilaatorile või mis tahes seadmetele. Lõpuks kasutage oma oskuste proovile panemiseks amazon echo või echosim.io.

Peate oskuse aktiveerima kutsumise nime abil (nagu minu puhul - "myhome"). Mõnikord ei tööta see, kui seda kasutatakse ilma kutsumisnimeta, nagu olen oma videos paar korda näidanud

Loodetavasti teile õpetus meeldis!

Aitäh!

Soovitan: