Satura rādītājs:

Viedās mājas uzraudzība, izmantojot Alexa un Arduino: 9 soļi (ar attēliem)
Viedās mājas uzraudzība, izmantojot Alexa un Arduino: 9 soļi (ar attēliem)

Video: Viedās mājas uzraudzība, izmantojot Alexa un Arduino: 9 soļi (ar attēliem)

Video: Viedās mājas uzraudzība, izmantojot Alexa un Arduino: 9 soļi (ar attēliem)
Video: Контрольная лампа переменного тока с диммером Arduino AC 2024, Novembris
Anonim
Image
Image
Materiālu savākšana
Materiālu savākšana

Mūsdienu pasaulē cilvēki vairāk laika pavada darba vietā, nevis mājās. Tāpēc ir nepieciešama mājas uzraudzības sistēma, kurā cilvēki darba laikā var iepazīt mājas apstākļus. Būtu vēl labāk, ja darba laikā kāds varētu vienkārši pajautāt kādam par viņu mājām. To var paveikt, izmantojot Amazon Alexa kā palīgu, kas var sniegt lietotājam nepieciešamo informāciju par viņu mājām.

Ne tikai darba vieta, kurā lietotāji var iepazīties ar mājas stāvokli jebkurā pasaules vietā, ja vien viņiem ir interneta pieslēgums un Amazon Alexa.

Šajā projektā tiek īstenotas šādas funkcijas:

1) Kontrolējiet sadzīves ierīces, piemēram, ventilatoru un gaismu

2) Norāda ierīču statusu

3) Norāda mājas laika apstākļus (temperatūru un mitrumu)

4) Ja nepieciešams, nosūta lietotājam mājas interfeisa momentuzņēmumu, izmantojot Gmail.

5) Nosūta paziņojumu, ja -

* Ielauzējs (arī nosūta fotoattēlu)

* Uguns

* Viesis (arī nosūta fotoattēlu)

1. darbība: materiālu savākšana

Materiālu savākšana
Materiālu savākšana
Materiālu savākšana
Materiālu savākšana
Materiālu savākšana
Materiālu savākšana

Nepieciešamie materiāli

Arduino Uno

ESP8266 Wifi modulis

Linkit Smart 7688 Duo

DHT11

Releji

IR šķēršļu sensors

Tīmekļa kamera

Amazon Echo Dot

Maizes dēlis un džemperu vadi

Programmatūra un tiešsaistes pakalpojumi:

Thingspeak.com

Arduino IDE

Amazon Alexa prasmju komplekts

Amazon Alexa Echosim.io (prasmju pārbaudei)

Bez aizmugures

PushingBox

2. darbība: Arduino un ESP8266 programmēšana

Arduino un ESP8266 programmēšana
Arduino un ESP8266 programmēšana
Arduino un ESP8266 programmēšana
Arduino un ESP8266 programmēšana

Lejupielādējiet Arduino IDE no oficiālās vietnes:

Atveriet Arduino IDE un dodieties uz failu-> preferences-> papildu tāfeles pārvaldnieka URL tipā-https://arduino.esp8266.com/stable/package_esp8266…

Dodieties uz rīkiem -> dēļi -> Board Manager un beidzot instalējiet atrasto pakotni esp8266.

Lai ieprogrammētu arduino, vienkārši pievienojiet USB kabeli no arduino datoram un rīku-> dēļos atlasiet Arduino/Genuino UNO. Pārliecinieties arī, ka rīkā esat izvēlējies tiesības uz COM portiem (COM porta numuru var atrast ierīču pārvaldniekā). Uzrakstiet nepieciešamo programmu, apkopojiet to un noklikšķiniet uz augšupielādēt, ja nav kļūdu.

Lai ieprogrammētu ESP8266, izveidojiet savienojumu, kā parādīts diagrammā. savienojiet USB no arduino ar datoru. Instrumenti-> tāfele-> izvēlieties Generic ESP8266 un arī labo COM portu. Uzrakstiet nepieciešamo programmu, apkopojiet to un noklikšķiniet uz augšupielādēt, ja nav kļūdu. Pārliecinieties, vai esat savienojis Arduino RST ar GND (arduino darbojas kā programmētājs ESP8266).

Šajā projektā Vispirms tiek ieprogrammēts ESP8266 un pēc tam tiek noņemti ķēdes savienojumi. Pēc tam ķēde tiek atkal pievienota, kā parādīts attēlā ar nosaukumu "Ķēdes savienojumi". Un tad arduino tiek ieprogrammēts.

3. darbība: Thingspeak.com konfigurēšana

Thingspeak.com konfigurēšana
Thingspeak.com konfigurēšana

Izveidojiet kontu Thingspeak.com.

mēs izmantojam kanālus lietas runā, lai saglabātu ierīces vadības informāciju un novirzītu to uz arduino/alexa. mēs arī saglabājam temperatūras un mitruma vērtības kanālos. Tā ir kā informācijas glabāšanas vieta.

Piesakieties lietās Speak, dodieties uz kanāliem mani kanāli un izveidojiet jaunu kanālu. Piešķiriet kanāliem nosaukumu un aprakstu. Mūsu projektā mums ir nepieciešami 8 kanāli (jūs varat veikt darbu, izmantojot mazāk kanālu, bet programmēšanas laikā tas būs nedaudz sarežģīti). Arī Thingspeak ir laika ierobežojums, atjauninot kanālu. Starp secīgu konkrēta kanāla atjaunināšanu ir jābūt 10-15 sek.

Tālāk ir norādīti astoņi kanāli ar to vērtībām un nozīmi

kanāla nosaukums (vērtība1 nozīme, vērtība2 nozīme utt.):

1) Ierīces vadība (0-LightON, 1- LightOff, 2 ventilators ON, 3- Fan Off)

2) gaismas statuss (0- gaisma izslēgta, 1- ieslēgta)

3) ventilatora statuss (0- ventilators izslēgts, 1 ventilators ieslēgts)

4) mitrums (mitruma vērtība)

5) temperatūra (temperatūras vērtība)

6) iebrucēja paziņojums (1- iebrucēja brīdinājums)

7) ugunsgrēka paziņojums (1- ugunsgrēka brīdinājums)

8) viesa paziņojums (1- viesa brīdinājums)

noklikšķinot uz jebkura kanāla, varat redzēt tā kanāla ID un cilnē API atslēgas ierakstīt API atslēgas. kanāla ID ir nepieciešams, lai kanālā iegūtu informāciju/ vērtību. Un rakstīšanas atslēga ir nepieciešama, lai kanālā saglabātu vērtību.

http pieprasījums kanāla atjaunināšanai ir šāds:

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

tiek aizstāts ar atbilstošajiem kanāla rakstīšanas taustiņiem un var būt (0/1 ierīces vadības vai temperatūras/mitruma vērtību gadījumā)

http pieprasījums vērtības nolasīšanai no kanāla ir šāds:

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

tiek aizstāts ar konkrēto kanāla ID, no kura mēs vēlamies lasīt.

4. solis: programma

Programma ir sadalīta 3 daļās:

A) Arduino programma: arduino programma ir ļoti vienkārša. Tas seriāli saņem datus no ESP8266, un, pamatojoties uz saņemtajiem datiem, ierīces tiek kontrolētas. Plašāka informācija par programmu atrodama pašas programmas komentāros.

B) ESP8266 programma: ESP8266 programma ietver 3 lietas

1) temperatūras un mitruma atjaunināšana, izmantojot http pieprasījumu

client.print (String ("GET") + "/update? key = & field1 =" + mitrums + "HTTP/1.1 / r / n" + "Host:" + resursdators + "\ r / n" + "Savienojums: aizvērt / r / n / r / n "); // atjaunināt mitrumu

client.print (String ("GET") + "/update? key = & field1 =" + temperatūra + "HTTP/1.1 / r / n" + "Host:" + resursdators + "\ r / n" + "Savienojums: aizvērt / r / n / r / n "); // atjaunināt temperatūru

to aizstāj ar atbilstošo rakstīšanas atslēgu, kas atrodama lietas runas kanālā attiecīgi mitrumam un temperatūrai. un saimnieks ir api.thingspeak.com.

lejupielādējiet dht bibliotēku no:

2) lasīšana no atbilstošajiem runas kanāliem un vadības ierīce, pamatojoties uz iegūtajām vērtībām: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Saimnieks: " + resursdators +" / r / n " +" Savienojums: aizvērt / r / n / r / n ");

kur tiek aizstāts ar atbilstošo kanāla ID, kas atrodams lietā Speak.

3) Brīdinājuma nosūtīšana augstas temperatūras gadījumā, izmantojot stumšanas kasti

String host1 = "api.pushingbox.com";

client.print (String ("GET") + "/pushbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Savienojums: aizvērt / r / n / r / n ");

kur stumšanas kastē tiek aizstāts ar jūsu ierīces ID.

5. darbība. Linkit Smart 7688 Duo un tīmekļa kameras konfigurēšana

Linkit Smart 7688 Duo un tīmekļa kameras konfigurēšana
Linkit Smart 7688 Duo un tīmekļa kameras konfigurēšana
Linkit Smart 7688 Duo un tīmekļa kameras konfigurēšana
Linkit Smart 7688 Duo un tīmekļa kameras konfigurēšana
Linkit Smart 7688 Duo un tīmekļa kameras konfigurēšana
Linkit Smart 7688 Duo un tīmekļa kameras konfigurēšana

Šajā projektā tiek izmantota tīmekļa kamera un linkit smart 7688 duo, lai uzņemtu nepieciešamo fotoattēlu un nosūtītu to lietotājam. Varat arī izmantot arduino kameras moduli un sasaistīt to ar arduino vai izmantot jebkuru IP kameru.

Nospiediet un 20 sekundes turiet linkit smart 7688 wifi pogu, lai atiestatītu tāfeli. Pēc tam, kad wifi iestatījums ir atiestatīts, bezvadu tīkla savienojumos varēsit redzēt tā piekļuves punkta nosaukumu. Tagad pievienojiet datoru šim tīklam. pēc tā pievienošanas atveriet pārlūkprogrammu un adreses joslā ierakstiet 192.168.100.1. Jūs varēsit redzēt tā portālu. iestatiet paroli, lai pieteiktos savā portālā.

Kad esat pieteicies, dodieties uz cilni Tīkls un atlasiet Stacijas režīms (mums tas ir vajadzīgs (linkit smart 7688 duo), lai piekļūtu internetam) un pievienojiet to savam Wifi tīklam un nospiediet Konfigurēt un restartējiet.

Pēc tam, kad tā ir restartēta, tai tiks piešķirta vietējā IP adrese. Uzziniet adresi, izmantojot IP rīkus vai maršrutētāja portālu. Manā gadījumā tas bija 192.168.1.4. Tagad pārlūkprogrammas adreses joslā ierakstiet vietējo IP adresi. pārliecinieties, vai dators ir pievienots tam pašam tīklam kā linkit smart. Jums tiks lūgts vēlreiz pieteikties.

Lai iespējotu straumēšanu no tīmekļa kameras, jums jāiespējo-j.webp

Pēc pieteikšanās dodieties uz pakalpojumu cilni un pārbaudiet, vai ir iespējota-j.webp

Pēc iestatīšanas varat savienot tīmekļa kameru ar linkit smart 7688 duo USB resursdatoru, izmantojot OTG kabeli. Tagad, lai redzētu straumi, atveriet pārlūkprogrammu un adreses joslā ierakstiet:. manā gadījumā tas ir 192.168.1.4:4400

lai uzņemtu snap shot, ierakstiet komandu:? action = snapshot

Tagad šis attēls ir pieejams lokāli, taču mums tas ir jādara pieejams stumšanas kastes pakalpojumam. Lai to panāktu, mums jāveic ostas pāradresācija. Ostas pāradresāciju var veikt maršrutētāja portālā. Procesa id dažādiem maršrutētājiem ir atšķirīgs. Vienkārši google, lai uzzinātu, kā pārsūtīt uz konkrētu maršrutētāju. Tas parasti ir pieejams NAT pakalpojumā. Pēc porta pārsūtīšanas izmantošana var piekļūt šim portam (ti.. 4440) no jūsu ārējā IP. Ārējo IP var atrast, Google ierakstot "whats my ip".

Jums jānorāda šī adrese

ti.. https://::? action = momentuzņēmums

stumšanas kastē (kas ir izskaidrots nākamajā darbībā), lai pushbox varētu piekļūt šim attēlam un pievienot to e -pastam un nosūtīt to jums, kad vien nepieciešams.

Jūs varat arī saglabāt attēlu SD kartē, jo Linkit smart 7688 duo arī ir aprīkots ar SD kartes slotu informācijas glabāšanai. Plašāku informāciju par to var atrast vietnē:

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

6. darbība: PushingBox konfigurēšana

PushingBox konfigurēšana
PushingBox konfigurēšana

pushbox tiek izmantots, lai nosūtītu paziņojumus par dažādiem projekta brīdinājumiem uz gmail.

pierakstieties pushbox, izmantojot Google kontu:

dodieties uz manu pakalpojumu pievienošanas pakalpojumu. ir daudz pakalpojumu, no kuriem izvēlēties, piemēram, Gmail, twitter, push paziņojums Android ierīcēm utt.

atlasiet Gmail (jo mums ir jānosūta fotoattēls kā pielikums) un aizpildiet atbilstošo lietotāja gmail nosaukuma konfigurāciju un Gmail ID, kuram jānosūta brīdinājums.

dodieties uz maniem scenārijiem un izveidojiet jaunu scenāriju. piešķiriet scenārijam nosaukumu (piemēram: ALERT) pievienojiet iepriekš izveidoto pakalpojumu.

uzrakstiet pasta tēmu un pamattekstu un ievadiet URL, lai uzņemtu tīmekļa kameras ekrānuzņēmumu fotoattēla pievienošanai. Izveidojiet dažādus scenārijus dažādiem brīdinājumiem. Api stumšanas lodziņa scenārija izpildei ir:

7. darbība. Alexa prasmju izveide, izmantojot Backendless

Alexa prasmju izveide, izmantojot Backendless
Alexa prasmju izveide, izmantojot Backendless
Alexa prasmju izveide, izmantojot Backendless
Alexa prasmju izveide, izmantojot Backendless
Alexa prasmju izveide, izmantojot Backendless
Alexa prasmju izveide, izmantojot Backendless

backendless tiek izmantots, lai izveidotu alexa prasmi. Tā ir vienkārša vilkšanas un nomešanas programmēšana, ko izmanto, lai izveidotu alexa prasmi (vai jebkuras programmas), kurai var piekļūt, izmantojot aizmugures API.

izveidojiet kontu backendless:

  • Piesakieties savā kontā backendless kontā. noklikšķiniet uz Izveidot lietotni un piešķiriet savai lietotnei nosaukumu
  • Noklikšķiniet uz biznesa loģikas ikonas, kas atrodas ikonu joslā kreisajā pusē. Jūs redzēsiet ekrānu API PAKALPOJUMI.
  • Noklikšķiniet uz ikonas “+”, lai izveidotu jaunu pakalpojumu. Uznirstošajā logā “Jauns pakalpojums” noteikti izvēlieties CODELESS. Pakalpojuma nosaukumam ievadiet “AlexaService”. Noklikšķiniet uz pogas SAGLABĀT:
  • Backendless izveido API pakalpojumu un lūgs jums izveidot pakalpojuma metodi. Šī būs metode, kas apstrādās Alexa pieprasījumus. Ievadiet metodes nosaukumu “handleRequest”. REST darbībai noteikti atlasiet POST un deklarējiet argumentu ar nosaukumu “req” un ierakstiet “Jebkurš objekts”, kā parādīts attēlā:
  • Backendless izveido vietturi metodes bezkoda loģikai. Noklikšķiniet uz pogas EDIT, lai sāktu pārslēgties uz Codeless Logic Designer. Izveidotajā funkciju vietturu blokā noklikšķiniet uz apgabala, kurā norādīts “doSomething”, un nomainiet to uz “sendAlexaResponse”. Šo funkciju izmanto, lai alexa pateiktu kaut ko, ko var nodot kā argumentu. Noklikšķiniet uz pogas SAGLABĀT, lai funkcija tiktu saglabāta.
  • Noklikšķiniet uz zobrata ikonas, kas atrodas violetajā blokā blakus vārdam “Funkcija”. Pievienojiet divus argumentus, velkot ievades blokus, kā parādīts attēlā. Piešķiriet argumentu nosaukumus kā “whatToSay” un “waitForResponse”. Ņemiet vērā, ka, pievienojot argumentus, konteksta bloku apgabals tiek automātiski aizpildīts ar blokiem, kas attēlo argumentu vērtības.
  • Mainiet funkcijas loģiku, lai tā izskatās kā attēlā. Blokiem “Izveidot objektus” izmantojiet zobrata ikonu, lai mainītu objekta rekvizītu nosaukumu. Neaizmirstiet saglabāt savu darbu, noklikšķinot uz pogas SAGLABĀT.
  • Tagad, kad pielāgotā funkcija ir izveidota, pārslēdzieties atpakaļ uz pakalpojuma AlexaService metodi handleRequest. Kreisajā rīkjoslā noklikšķiniet uz kategorijas Pielāgotās funkcijas un velciet bloku sendAlexaResponse, lai izveidotu savienojumu ar jūsu pakalpojuma metodes atgriešanas savienotāju
  • Iepriekš minētās darbības var atrast arī viņu vietnē:
  • Sadaļā Pārlūkprogramma Funkcijas noklikšķiniet uz mezgla “Pievienot jaunu”. Izveidotajā funkciju viettura blokā noklikšķiniet uz apgabala, kurā teikts “doSomething”, un mainiet to uz “getIntentName”, mainiet blokus tā, lai funkcija izskatītos kā attēlā. iegūs nodomu nosaukumu, pamatojoties uz izteikumu paraugiem. Atgriezieties api pakalpojumos-> apstrādājiet pieprasījumu pārlūkprogrammas sadaļā. Mainīgie un loģika tiek veidota no sistēmas sadaļas. Izveidojiet šādus mainīgos, kas parādīti attēlos.
  • tālāk mēs saglabājam nodomu nosaukumu, lai pieprasītu mainīgo. Un tad salīdziniet ar nodomiem. piemēram, ja pieprasījums ir “ievads”, tad atbildes mainīgais ir iestatīts uz “čau! Es varu kontrolēt ……”. un šo atbildi beidzot skaļi nolasa aleksa. modificējiet bloku, kā parādīts attēlā.
  • ja pieprasījums ir paredzēts LightsOn nolūkam, mēs atjauninām lietas runas kanālu uz “0”, izmantojot http get request, un vienlaikus atjauninām ierīces statusu (1/0 atkarībā no ieslēgšanas/izslēgšanas). Tas pats tiek atkārtots LightsOff, FanOn un FanOff.
  • Laika apstākļiem mēs lasām no temperatūras un mitruma kanāla un rezultātu saglabājam atbildes mainīgajā. Tā kā kanāls sniedz tikai vērtības, mēs pievienojam tekstus, lai atbilde būtu jēgpilna
  • dzīvojamās istabas momentuzņēmumam mēs izmantojam push -box scenāriju
  • ierīces statusam mēs lasām informāciju no lietas runas statusa kanāla:
  • paziņojumiem un brīdinājumiem, kurus lasām no trauksmes kanāliem (uguns, iebrucējs un viesis):
  • pamatojoties uz vērtībām, ko iegūstam no paziņojumu lauka, atbilstošie brīdinājuma ziņojumi tiek saglabāti mainīgajā atbildē. ja paziņojuma nav, paziņojuma ziņojums netiek saglabāts.
  • kad paziņojums ir nolasīts, paziņojumu kanālos tiek atjaunināts “0”, lai alexa vairs nelasītu to pašu paziņojumu. Pēc tam, beidzot, pamatojoties uz pieprasījumu, skaļi tiek nolasīts mainīgais respond0/respond.

8. darbība. Alexa prasmju konfigurēšana Amazon izstrādātāja konsolē:

Alexa prasmju konfigurēšana Amazon izstrādātāju konsolē
Alexa prasmju konfigurēšana Amazon izstrādātāju konsolē
Alexa prasmju konfigurēšana Amazon izstrādātāju konsolē
Alexa prasmju konfigurēšana Amazon izstrādātāju konsolē
Alexa prasmju konfigurēšana Amazon izstrādātāju konsolē
Alexa prasmju konfigurēšana Amazon izstrādātāju konsolē

dodieties uz amazon izstrādātāja konsoli un pierakstieties, izmantojot amazon kontu.

dodieties uz izstrādātāja konsoli un noklikšķiniet uz cilnes ALEXA. Lai sāktu darbu, noklikšķiniet uz alexa prasmju komplekta.

izveidot pielāgotu prasmju veidu, norādīt prasmei vārdu un uzaicinājuma nosaukumu. attiecīgie nodomi un izteicienu paraugi ir norādīti kodā.

konfigurācijas cilnē atlasiet HTTPS kā pakalpojuma beigu punkta tipu, aizpildiet noklusējuma URL ar API vietrādi backendless. SSL sertifikāta noklusējuma galapunkta sertifikātā atlasiet otro opciju. Jūs varat arī pārbaudīt prasmes, izmantojot testa simulatoru.

Pēc pārbaudes pabeigšanas jūs varat publicēt prasmi ar nepieciešamo publicēšanas informāciju.

9. solis: galīgā iestatīšana un pabeigšana

Galīgā iestatīšana un pabeigšana!
Galīgā iestatīšana un pabeigšana!
Galīgā iestatīšana un pabeigšana!
Galīgā iestatīšana un pabeigšana!

Izveidojiet ķēdes savienojumu, kā parādīts attēlā.

Dažreiz ESP8266 nedarbojas nepietiekamas strāvas dēļ. Tātad, lai gan tas ir minēts ķēdē, ieteicams ESP8266 barot no atsevišķa 3,3 V avota. Ja izmantojat strāvas banku, noteikti samaziniet spriegumu no 5v līdz 3.3v, izmantojot 3.3v sprieguma regulatoru. Augšupielādējiet programmu uz ESP8266 un arduino. Esmu parādījis savienojumu ar spuldzi, to pašu var attiecināt arī uz ventilatoru vai citām ierīcēm. Visbeidzot, izmantojiet amazon echo vai echosim.io, lai pārbaudītu savas prasmes.

Jums jāaktivizē prasme, izmantojot uzaicinājuma nosaukumu (kā tas ir manā gadījumā - "myhome"). Dažreiz tas nedarbosies, ja to izmantos bez uzaicinājuma nosaukuma, kā esmu pāris reizes parādījis savā videoklipā

Ceru, ka jums patika apmācība!

Paldies!

Ieteicams: