Turinys:

Išmanusis namų stebėjimas naudojant „Alexa“ir „Arduino“: 9 žingsniai (su paveikslėliais)
Išmanusis namų stebėjimas naudojant „Alexa“ir „Arduino“: 9 žingsniai (su paveikslėliais)

Video: Išmanusis namų stebėjimas naudojant „Alexa“ir „Arduino“: 9 žingsniai (su paveikslėliais)

Video: Išmanusis namų stebėjimas naudojant „Alexa“ir „Arduino“: 9 žingsniai (su paveikslėliais)
Video: Woneligo ID208 BT Smartwatch Review: The Complete Guide! 2024, Liepa
Anonim
Image
Image
Medžiagų surinkimas
Medžiagų surinkimas

Dabartiniame pasaulyje žmonės daugiau laiko praleidžia darbe, o ne namuose. Todėl reikia namų stebėjimo sistemos, kurioje žmonės dirbdami galėtų susipažinti su namo sąlygomis. Būtų dar geriau, jei darbo metu būtų galima tiesiog paklausti „kažko“apie savo namus. Tai galima padaryti naudojant „Amazon Alexa“kaip asistentą, kuris gali suteikti vartotojui reikalingą informaciją apie savo namus.

Ne tik darbo vieta vartotojai gali susipažinti su namo būkle bet kurioje pasaulio vietoje, jei tik turi interneto ryšį ir „Amazon Alexa“.

Šiame projekte įgyvendinamos šios funkcijos:

1) Valdykite buitinius prietaisus, tokius kaip ventiliatorius ir šviesa

2) Nurodo įrenginių būseną

3) Nurodo oro sąlygas namuose (temperatūra ir drėgmė)

4) Jei reikia, naudotojui per „Gmail“siunčia namo interjero vaizdą.

5) siunčia pranešimą, jei -

* Įsibrovėlis (taip pat siunčia nuotrauką)

* Ugnis

* Svečias (taip pat siunčia nuotrauką)

1 žingsnis: Surinkite medžiagas

Medžiagų surinkimas
Medžiagų surinkimas
Medžiagų surinkimas
Medžiagų surinkimas
Medžiagų surinkimas
Medžiagų surinkimas

Reikalingos medžiagos

Arduino Uno

ESP8266 „Wifi“modulis

„Linkit Smart 7688 Duo“

DHT11

Relės

IR kliūčių jutiklis

Internetinė kamera

„Amazon Echo Dot“

Duonos lentos ir jungiamieji laidai

Programinė įranga ir internetinės paslaugos:

Thingspeak.com

„Arduino IDE“

„Amazon Alexa“įgūdžių rinkinys

„Amazon Alexa Echosim.io“(įgūdžių tikrinimui)

Be galo

„PushingBox“

2 žingsnis: „Arduino“ir ESP8266 programavimas

„Arduino“ir ESP8266 programavimas
„Arduino“ir ESP8266 programavimas
„Arduino“ir ESP8266 programavimas
„Arduino“ir ESP8266 programavimas

Atsisiųskite „Arduino IDE“iš oficialios svetainės:

Atidarykite „Arduino IDE“ir eikite į failų-> nuostatų-> papildomo valdytojo URL tipą-https://arduino.esp8266.com/stable/package_esp8266…

Eikite į įrankiai -> lentos -> Lentų tvarkyklė ir pagaliau įdiekite rastą paketą esp8266.

Norėdami užprogramuoti arduino, tiesiog prijunkite USB kabelį iš arduino prie kompiuterio ir įrankių lentose pasirinkite Arduino/Genuino UNO. Taip pat įsitikinkite, kad pasirenkate teises į COM prievadus įrankiuose (COM prievado numerį rasite Įrenginių tvarkytuvėje). Parašykite reikiamą programą, sukompiliuokite ją ir spustelėkite „Įkelti“, jei nėra klaidų.

Norėdami užprogramuoti ESP8266, prijunkite, kaip parodyta diagramoje. prijunkite usb iš arduino prie kompiuterio. Įrankiuose-> lenta-> pasirinkite Generic ESP8266, taip pat pasirinkite tinkamą COM prievadą. Parašykite reikiamą programą, sukompiliuokite ją ir spustelėkite „Įkelti“, jei nėra klaidų. Įsitikinkite, kad prijungėte „Arduino RST“prie GND („arduino“veikia kaip programuotojas prie ESP8266).

Šiame projekte Pirmiausia ESP8266 yra užprogramuojamas, o tada grandinės jungtys pašalinamos. Tada grandinė vėl prijungiama, kaip parodyta paveikslėlyje pavadinimu „Grandinės jungtys“. Ir tada programuojamas arduino.

3 žingsnis: „Thingspeak.com“konfigūravimas

„Thingspeak.com“konfigūravimas
„Thingspeak.com“konfigūravimas

Sukurkite paskyrą thingspeak.com.

Mes naudojame kanalus „Speakup“, kad išsaugotume įrenginio valdymo informaciją ir nukreiptume ją į arduino/alexa. kanaluose taip pat saugome temperatūros ir drėgmės vertes. Tai tarsi informacijos saugojimo vieta.

Prisijunkite prie „Thingspeak“, eikite į kanalus „Mano kanalai“ir sukurkite naują kanalą. Nurodykite savo kanalų pavadinimą ir aprašymą. Mūsų projekte mums reikia 8 kanalų (galite atlikti darbą naudodami mažiau kanalų, tačiau programuojant tai bus šiek tiek sudėtinga). „Thingspeak“taip pat turi laiko apribojimą atnaujindamas kanalą. Tarp nuoseklaus konkretaus kanalo atnaujinimo turi būti 10–15 sek.

Toliau pateikiami aštuoni kanalai su jų vertėmis ir prasme

kanalo pavadinimas (reikšmė1 reikšmė, reikšmė2 reikšmė ir tt):

1) Įrenginio valdymas (0 šviesų, 1 šviesa išjungta, 2 ventiliatorius įjungtas, 3- ventiliatorius išjungtas)

2) šviesos būsena (0- šviesa išjungta, 1- įjungta)

3) ventiliatoriaus būsena (0- ventiliatorius išjungtas, 1 ventiliatorius įjungtas)

4) drėgmė (drėgmės vertė)

5) temperatūra (temperatūros vertė)

6) įsibrovėlio pranešimas (1- įsibrovėlio įspėjimas)

7) pranešimas apie gaisrą (1- įspėjimas apie gaisrą)

8) svečių pranešimas (1- svečių įspėjimas)

spustelėję bet kurį kanalą, galite pamatyti jo kanalo ID ir įrašyti API raktus skirtuke API raktai. kanalo ID reikalingas norint gauti informaciją/ vertę kanale. Ir norint įrašyti vertę į kanalą, reikalingas rašymo raktas.

http užklausa atnaujinti kanalą yra:

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

yra pakeičiamas atitinkamais kanalo rašymo klavišais ir gali būti (0/1, jei valdomas įrenginys arba temperatūros/drėgmės vertės)

http užklausa skaityti vertę iš kanalo:

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

yra pakeistas konkrečiu kanalo ID, iš kurio norime skaityti.

4 žingsnis: programa

Programa suskirstyta į 3 dalis:

A) „Arduino“programa: „arduino“programa yra labai paprasta. Jis serijiniu būdu gauna duomenis iš ESP8266 ir, remiantis gautais duomenimis, prietaisai yra valdomi. Daugiau informacijos apie programą rasite pačios programos komentaruose.

B) ESP8266 programa: ESP8266 programa apima 3 dalykus

1) temperatūros ir drėgmės atnaujinimas naudojant http užklausą

client.print (String ("GET") + "/update? key = & field1 =" + drėgmė + "HTTP/1.1 / r / n" + "Priegloba:" + host + "\ r / n" + "Ryšys: uždaryti / r / n / r / n "); // atnaujinti drėgmę

client.print (String ("GET") + "/update? key = & field1 =" + temperatūra + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Ryšys: uždaryti / r / n / r / n "); // atnaujinti temperatūrą

pakeičiamas atitinkamu rašymo klavišu, esančiu atitinkamai drėgmės ir temperatūros rašymo kanale. ir šeimininkas yra api.thingspeak.com.

atsisiųskite dht biblioteką iš:

2) skaitymas iš atitinkamų kalbėjimo kanalų ir valdymo įrenginys pagal gautas vertes: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Priimančioji: " + priegloba +" / r / n " +" Ryšys: uždaryti / r / n / r / n ");

kur pakeičiamas atitinkamu kanalo ID, esančiu „thingspeak“.

3) Įspėjimas siunčiamas esant aukštai temperatūrai per stumiamąją dėžę

Eilutės šeimininkas1 = "api.pushingbox.com";

client.print (String ("GET") + "/pushingbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Ryšys: uždaryti / r / n / r / n ");

kur „pushbox“pakeičia jūsų įrenginio ID.

5 veiksmas: „Linkit Smart 7688 Duo“ir „Webcam“konfigūravimas

„Linkit Smart 7688 Duo“ir „Webcam“konfigūravimas
„Linkit Smart 7688 Duo“ir „Webcam“konfigūravimas
„Linkit Smart 7688 Duo“ir „Webcam“konfigūravimas
„Linkit Smart 7688 Duo“ir „Webcam“konfigūravimas
„Linkit Smart 7688 Duo“ir „Webcam“konfigūravimas
„Linkit Smart 7688 Duo“ir „Webcam“konfigūravimas

Šiame projekte naudojama internetinė kamera ir „linkit smart 7688 duo“, norint užfiksuoti reikiamą nuotrauką ir nusiųsti ją vartotojui. Taip pat galite naudoti arduino kameros modulį ir sujungti jį su arduino arba naudoti bet kurią IP kamerą.

Paspauskite ir palaikykite „Wi -Fi“mygtuką „linkit smart 7688“20 sekundžių, kad iš naujo nustatytumėte plokštę. Tada iš naujo nustatę „Wi -Fi“nustatymus, belaidžio tinklo jungtyse galėsite matyti jo prieigos taško pavadinimą. Dabar prijunkite kompiuterį prie to tinklo. prijungę ją, atidarykite naršyklę ir adreso juostoje įveskite 192.168.100.1. Galėsite pamatyti jo portalą. nustatykite slaptažodį, kad prisijungtumėte prie savo portalo.

Prisijungę eikite į tinklo skirtuką ir pasirinkite Stoties režimas (mums to reikia (linkit smart 7688 duo), kad galėtumėte pasiekti internetą) ir prijunkite jį prie „Wifi“tinklo ir paspauskite „Konfigūruoti“ir paleiskite iš naujo.

Kai lenta bus paleista iš naujo, jai bus priskirtas vietinis IP adresas. Sužinokite adresą naudodami bet kokius IP įrankius arba maršrutizatoriaus portalą. Mano atveju tai buvo 192.168.1.4. Dabar naršyklės adreso juostoje įveskite vietinį IP adresą. įsitikinkite, kad kompiuteris prijungtas prie to paties tinklo kaip „linkit smart“. Jūsų bus paprašyta prisijungti dar kartą.

Norėdami įjungti srautinį perdavimą iš internetinės kameros, turite įjungti-j.webp

Prisijungę eikite į paslaugų skirtuką ir patikrinkite, ar įjungti-j.webp

Po sąrankos galite prijungti internetinę kamerą prie „linkit smart 7688 duo“USB prieglobos per OTG kabelį. Dabar, kad pamatytumėte srautą, atidarykite naršyklę ir įveskite: adreso juostoje. mano atveju tai yra 192.168.1.4:4400

kad padarytumėte momentinį vaizdą, įveskite komandą:? action = snapshot

Dabar šis vaizdas yra prieinamas vietoje, tačiau turime tai padaryti prieinamą stumiamųjų dėžių tarnybai. Norėdami tai pasiekti, turime atlikti uosto peradresavimą. Uosto persiuntimą galima atlikti maršrutizatoriaus portale. Proceso ID skirtingiems maršrutizatoriams skiriasi. Tiesiog „Google“sužinokite, kaip perkelti konkretų maršrutizatorių. Paprastai jis pasiekiamas naudojant NAT paslaugą. Po to, kai prievadas nukreipiamas į priekį, galite pasiekti šį prievadą (ty.. 4440) iš savo išorinio IP. Išorinį IP galima rasti įvedus „whats my ip“„Google“.

Turite nurodyti šį adresą

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

stumiamojoje dėžutėje (tai paaiškinta kitame žingsnyje), kad stumiamoji dėžutė galėtų pasiekti šį vaizdą ir pridėti jį prie laiško bei prireikus išsiųsti jums.

Vaizdą taip pat galite išsaugoti SD kortelėje, nes „Linkit smart 7688 duo“taip pat turi SD kortelės lizdą informacijai saugoti. Daugiau informacijos apie tai rasite:

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

6 veiksmas: „PushingBox“konfigūravimas

„PushingBox“konfigūravimas
„PushingBox“konfigūravimas

„push“dėžutė naudojama pranešimams apie skirtingus projekto įspėjimus siųsti „gmail“.

prisijungti prie „pushbox“naudojant „Google“paskyrą:

eikite į mano paslaugų pridėjimo paslaugą. yra daug paslaugų, iš kurių galima rinktis, pvz., „Gmail“, „Twitter“, „Android“tiesioginis pranešimas ir kt.

pasirinkite „Gmail“(nes mums reikia išsiųsti nuotrauką kaip priedą) ir užpildykite atitinkamą vartotojo „Gmail“vardo konfigūraciją ir „Gmail“ID, kuriam turi būti išsiųstas įspėjimas.

eikite į mano scenarijus ir sukurkite naują scenarijų. suteikti pavadinimą scenarijui (pvz., ALERT) pridėti anksčiau sukurtą paslaugą.

parašykite tinkamą temą ir laiško turinį ir įveskite URL, kad padarytumėte žiniatinklio kameros ekrano kopiją, kad galėtumėte pridėti nuotrauką. Sukurkite skirtingus scenarijus skirtingiems alerts.api, kaip vykdyti stumiamųjų dėžių scenarijų:

7 žingsnis: „Alexa Skill“kūrimas naudojant „Backendless“

„Alexa Skill“kūrimas naudojant „Backendless“
„Alexa Skill“kūrimas naudojant „Backendless“
„Alexa Skill“kūrimas naudojant „Backendless“
„Alexa Skill“kūrimas naudojant „Backendless“
„Alexa Skill“kūrimas naudojant „Backendless“
„Alexa Skill“kūrimas naudojant „Backendless“

backendless naudojamas alexa įgūdžiams kurti. Tai paprastas „drag and drop“programavimas, naudojamas „Alexa“įgūdžiams (arba bet kurioms programoms) sukurti, prie kurių galima prisijungti naudojant vidinę API.

susikurkite paskyrą „backendless“:

  • Prisijunkite prie savo paskyros be foninės paskyros. spustelėkite Sukurti programą ir pavadinkite savo programą
  • Spustelėkite verslo logikos piktogramą, esančią piktogramų juostoje kairėje. Pamatysite ekraną API APIE PASLAUGAS.
  • Norėdami sukurti naują paslaugą, spustelėkite „+“piktogramą. Iššokančiajame lange „Nauja paslauga“būtinai pasirinkite CODELESS. Įveskite paslaugos pavadinimą „AlexaService“. Spustelėkite mygtuką IŠSAUGOTI:
  • „Backendless“sukuria API paslaugą ir paragins jus sukurti paslaugos metodą. Tai bus metodas, kuris apdoros „Alexa“užklausas. Įveskite metodo pavadinimą „handleRequest“. REST operacijai būtinai pasirinkite POST ir deklaruokite argumentą pavadinimu „req“ir įveskite „Any Object“, kaip parodyta:
  • „Backendless“sukuria vietos kodą metodo be kodo logikai. Spustelėkite REDAGUOTI, kad pereitumėte prie „Codeless Logic Designer“. Sukurtame funkcijos vietos rezervavimo laukelyje spustelėkite sritį „doSomething“ir pakeiskite ją į „sendAlexaResponse“. Ši funkcija naudojama norint, kad alexa pasakytų kažką, ką galima perduoti kaip argumentą. Spustelėkite mygtuką SAVE, kad funkcija būtų išsaugota.
  • Spustelėkite krumpliaračio piktogramą, esančią violetiniame bloke šalia žodžio „Funkcija“. Pridėkite du argumentus vilkdami įvesties blokus, kaip parodyta paveikslėlyje žemiau. Priskirkite argumentų pavadinimus kaip „whatToSay“ir „waitForResponse“. Atkreipkite dėmesį, kad pridedant argumentus sritis Kontekstiniai blokai automatiškai užpildoma blokais, atspindinčiais argumentų reikšmes.
  • Pakeiskite funkcijos logiką, kad ji atrodytų kaip paveikslėlyje. Blokams „Sukurti objektus“naudokite krumpliaračio piktogramą, kad pakeistumėte objekto savybių pavadinimą. Nepamirškite išsaugoti savo darbų spustelėdami mygtuką IŠSAUGOTI.
  • Dabar, kai sukurta pasirinktinė funkcija, grįžkite prie „AlexaService“paslaugos metodo „handleRequest“. Kairėje esančioje įrankių juostoje spustelėkite pasirinktinių funkcijų kategoriją ir vilkite sendAlexaResponse bloką, kad prisijungtumėte prie savo paslaugų metodo grąžinimo jungties
  • Aukščiau nurodytus veiksmus taip pat galima rasti jų svetainėje:
  • Naršyklės skiltyje Funkcijos spustelėkite mazgą „Pridėti naują“. Sukurtame funkcijų vietos rezervavimo bloke spustelėkite sritį „doSomething“ir pakeiskite ją į „getIntentName“, pakeiskite blokus taip, kad funkcija atrodytų taip, kaip parodyta paveikslėlyje. ketinimo pavadinimą gaus pagal pavyzdžius. Grįžkite į API paslaugas-> tvarkykite užklausą naršyklės skiltyje. Kintamieji ir logika kuriami iš sistemos skyriaus. Sukurkite šiuos kintamuosius, rodomus paveikslėliuose.
  • toliau mes saugome ketinimo pavadinimą, kad pateiktume kintamąjį. Ir tada palyginkite su ketinimais. Pavyzdžiui, jei užklausa yra „įvadas“, atsakymo kintamasis yra „hi! I can control ……“. ir šį atsakymą pagaliau garsiai skaito alexa. pakeiskite bloką, kaip parodyta.
  • jei užklausa yra „LightsOn“, tada atnaujiname „thingspeak“kanalą į „0“naudodami „http get request“ir tuo pačiu atnaujiname įrenginio būseną (1/0, priklausomai nuo „On/Off“). Tas pats kartojasi su „LightsOff“, „FanOn“ir „FanOff“.
  • Dėl oro sąlygų mes skaitome iš temperatūros ir drėgmės kanalo ir išsaugome rezultatą atsako kintamajame. Kadangi kanalas pateikia tik vertes, pridedame tekstus, kad atsakymas būtų prasmingas
  • Norėdami pamatyti svetainės vaizdą, vykdome „push -box“scenarijų
  • dėl įrenginio būsenos mes skaitome informaciją iš daiktų kalbos būsenos kanalo:
  • pranešimams ir įspėjimams, kuriuos skaitome iš įspėjimo kanalų (ugnis, įsibrovėlis ir svečias):
  • remiantis reikšmėmis, kurias gauname iš pranešimo lauko, atitinkami įspėjamieji pranešimai saugomi kintamajame atsakyme. jei nėra pranešimo, tada pranešimas nėra saugomas.
  • kai pranešimas perskaitomas, pranešimų kanaluose atnaujinamas „0“, kad „Alexa“vėl neskaitytų to paties pranešimo. Pagaliau, remiantis užklausa, garsiai skaitomas kintamasis „0“/„atsakyti“.

8 veiksmas: „Alexa Skill“konfigūravimas „Amazon Developer Console“:

„Alexa Skill“konfigūravimas „Amazon Developer Console“
„Alexa Skill“konfigūravimas „Amazon Developer Console“
„Alexa Skill“konfigūravimas „Amazon Developer Console“
„Alexa Skill“konfigūravimas „Amazon Developer Console“
„Alexa Skill“konfigūravimas „Amazon Developer Console“
„Alexa Skill“konfigūravimas „Amazon Developer Console“

eikite į „Amazon“kūrėjų pultą ir prisijunkite naudodami „Amazon“paskyrą.

eikite į kūrėjo konsolę ir spustelėkite skirtuką ALEXA. Norėdami pradėti, spustelėkite alexa įgūdžių rinkinį.

sukurti pasirinktinį įgūdžių tipą, suteikti įgūdžiui vardą ir pašaukimo pavadinimą. atitinkami ketinimai ir pavyzdiniai posakiai pateikiami kode.

konfigūracijos skirtuke pasirinkite HTTPS kaip paslaugos pabaigos taško tipą, užpildykite numatytąjį URL su API URL iš backendless. Pasirinkite antrąją parinktį SSL sertifikato numatytojo galinio taško sertifikate. Taip pat galite išbandyti įgūdžius naudodami testavimo simuliatorių.

Baigę testą, galite paskelbti įgūdžius su reikalinga paskelbimo informacija.

9 veiksmas: galutinė sąranka ir pabaiga

Galutinė sąranka ir pabaiga!
Galutinė sąranka ir pabaiga!
Galutinė sąranka ir pabaiga!
Galutinė sąranka ir pabaiga!

Prijunkite grandinę, kaip parodyta.

Kartais ESP8266 sugenda dėl nepakankamos srovės. Taigi, nors tai paminėta grandinėje, rekomenduojama maitinti ESP8266 iš atskiro 3,3 V šaltinio. Jei naudojate maitinimo banką, būtinai sumažinkite įtampą nuo 5 V iki 3,3 V naudodami 3,3 V įtampos reguliatorių. Įkelkite programą į ESP8266 ir arduino. Aš parodžiau ryšį su lempute, tą patį galima išplėsti ir ventiliatoriui ar bet kokiems įrenginiams. Galiausiai naudokite „Amazon echo“arba „echosim.io“, kad patikrintumėte savo įgūdžius.

Turite suaktyvinti įgūdžius naudodami šaukimo pavadinimą (kaip mano atveju - „myhome“). Kartais tai neveiks, jei jis bus naudojamas be pašaukimo pavadinimo, kaip aš keletą kartų parodžiau savo vaizdo įraše

Tikimės, kad jums patiko pamoka!

Ačiū!

Rekomenduojamas: