Kazalo:
- 1. korak: Zbiranje materialov
- 2. korak: Programiranje Arduina in ESP8266
- 3. korak: Konfiguriranje Thingspeak.com
- 4. korak: Program
- 5. korak: Konfiguriranje Linkit Smart 7688 Duo in spletne kamere
- 6. korak: Konfiguriranje PushingBox
- 7. korak: Ustvarjanje Alexa spretnosti z uporabo Backendless
- 8. korak: Konfiguriranje Alexa Skill v konzoli za razvijalce Amazon:
- 9. korak: Končna nastavitev in dokončanje
Video: Nadzor pametnega doma z Alexa in Arduino: 9 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
V sedanjem svetu ljudje preživijo več časa na delovnem mestu kot doma. Zato obstaja potreba po sistemu za nadzor doma, kjer lahko ljudje spoznajo razmere v hiši, medtem ko so v službi. Še bolje bi bilo, če bi lahko med delovnim časom samo »nekoga« vprašali o svojem domu. To je mogoče doseči z uporabo Amazon Alexa kot pomočnika, ki lahko uporabniku da potrebne informacije o svojem domu.
Ne le delovno mesto. Uporabniki lahko spoznajo stanje hiše kjer koli na svetu, če imajo internetno povezavo in Amazon Alexa.
V tem projektu se izvajajo naslednje funkcije:
1) Upravljajte gospodinjske naprave, kot sta ventilator in luč
2) Pove stanje naprave
3) Pove vremenske razmere v hiši (temperatura in vlaga)
4) Po potrebi uporabniku po Gmailu pošlje posnetek notranjosti hiše.
5) Pošlje obvestilo v primeru -
* Vsiljivec (pošlje tudi fotografijo)
* Požar
* Gost (pošlje tudi fotografijo)
1. korak: Zbiranje materialov
Potrebni materiali
Arduino Uno
ESP8266 Wifi modul
Linkit Smart 7688 Duo
DHT11
Releji
Senzor IR ovir
Spletna kamera
Amazon Echo Dot
Breadboard in mostične žice
Programska oprema in spletne storitve:
Thingspeak.com
Arduino IDE
Komplet spretnosti Amazon Alexa
Amazon Alexa Echosim.io (za preizkušanje spretnosti)
Brez zaledja
PushingBox
2. korak: Programiranje Arduina in ESP8266
Prenesite Arduino IDE z uradne spletne strani:
Odprite Arduino IDE in pojdite na file-> preferences-> v dodatni URL URL upravitelja plošče-https://arduino.esp8266.com/stable/package_esp8266…
Pojdite na orodja -> plošče -> Upravitelj plošč in namestite končno najden paket esp8266.
Za programiranje arduina samo priključite kabel USB iz arduina v računalnik in izberite Arduino/Genuino UNO v orodjih-> ploščah. Prav tako v orodjih izberite prava COM (številka vrat COM je na voljo v upravitelju naprav). Napišite zahtevan program, ga sestavite in kliknite naloži, če ni napak.
Za programiranje ESP8266 vzpostavite povezavo, kot je prikazano na diagramu. priključite USB iz arduina na računalnik. V orodju-> plošča-> izberite Generic ESP8266 in izberite tudi desna vrata COM. Napišite zahtevan program, ga sestavite in kliknite naloži, če ni napak. Arduino RST priključite na GND (arduino deluje kot programer na ESP8266).
V tem projektu se najprej programira ESP8266, nato pa se odstranijo povezave vezja. Nato se vezje ponovno poveže, kot je prikazano na sliki z imenom "Povezave vezja". In potem je arduino programiran.
3. korak: Konfiguriranje Thingspeak.com
Ustvarite račun na thingspeak.com.
uporabljamo kanale v Thingspeak za shranjevanje podatkov o nadzoru naprave in jih usmerimo na arduino/alexa. V kanale shranimo tudi vrednosti temperature in vlažnosti. Je kot mesto za shranjevanje informacij.
Prijavite se v Thingspeak, pojdite na kanale moje kanale in ustvarite nov kanal. Dajte ime in opis svojim kanalom. V našem projektu potrebujemo 8 kanalov (delo lahko opravite z manj kanali, vendar bo to pri programiranju nekoliko zapleteno). Tudi Thingspeak ima časovno omejitev pri posodabljanju kanala. Med zaporednim posodabljanjem določenega kanala mora biti 10-15 sekund.
Spodaj je navedenih osem kanalov s svojimi vrednostmi in pomenom
ime kanala (vrednost1-pomen, vrednost2-pomen itd.):
1) Nadzor naprave (0 -lightON, 1- lightOff, 2 ventilator vklopljen, 3 ventilator izklopljen)
2) stanje luči (0- lučka ugasnjena, 1 lučka vklopljena)
3) stanje ventilatorja (0- ventilator izklopljen, 1 ventilator vklopljen)
4) vlažnost (vrednost vlažnosti)
5) temperatura (vrednost temperature)
6) obvestilo vsiljivca (opozorilo 1 vsiljivca)
7) obvestilo o požaru (1 požarno opozorilo)
8) obvestilo gosta (1 opozorilo gosta)
ko kliknete kateri koli kanal, si lahko ogledate njegov ID kanala in zapišete ključe API na zavihku ključi API. ID kanala je potreben za pridobivanje informacij/ vrednosti v kanalu. Za shranjevanje vrednosti v kanalu je potreben ključ za pisanje.
http zahteva za posodobitev kanala je:
api.thingspeak.com/update?api_key=&field1=
se nadomesti z ustreznimi tipkami za pisanje kanala in je lahko (0/1 v primeru nadzora naprave ali vrednosti temp/vlažnosti)
http zahteva za branje vrednosti iz kanala je:
api.thingspeak.com/channels//field/field1/last.html
se nadomesti z določenim ID -jem kanala, iz katerega želimo brati.
4. korak: Program
Program je razdeljen na 3 dele:
A) Program za Arduino: program za arduino je zelo preprost. Podatke od ESP8266 prejema zaporedno in na podlagi prejetih podatkov nadzoruje naprave. Več informacij o programu najdete v komentarjih v samem programu.
B) Program za ESP8266: program za ESP8266 vključuje 3 stvari
1) posodabljanje temperature in vlažnosti z zahtevo
client.print (String ("GET") + "/update? key = & field1 =" + vlažnost + "HTTP/1.1 / r / n" + "Gostitelj:" + gostitelj + "\ r / n" + "Povezava: zaprite / r / n / r / n "); // posodobitev vlažnosti
client.print (String ("GET") + "/update? key = & field1 =" + temperatura + "HTTP/1.1 / r / n" + "Gostitelj:" + gostitelj + "\ r / n" + "Povezava: zaprite / r / n / r / n "); // posodobitev temperature
se nadomesti z ustreznim ključem za zapis, ki ga najdemo v kanalu thingspeak za vlažnost oziroma temperaturo. in gostitelj je api.thingspeak.com.
Prenesite knjižnico dht s:
2) branje iz ustreznih kanalov predvajanja in krmilne naprave na podlagi pridobljenih vrednosti: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Gostitelj: " + gostitelj +" / r / n " +" Povezava: zaprite / r / n / r / n ");
kjer se nadomesti z ustreznim ID -jem kanala, ki ga najdemo v Thingspeak.
3) Pošiljanje opozorila v primeru visoke temperature prek potisne škatle
Niz host1 = "api.pushingbox.com";
client.print (String ("GET") + "/pushingbox? devid = HTTP/1.1 / r / n" + "Gostitelj:" + host1 + "\ r / n" + "Povezava: zaprite / r / n / r / n ");
kjer je v potisnem polju zamenjan z ID -jem vaše naprave.
5. korak: Konfiguriranje Linkit Smart 7688 Duo in spletne kamere
V tem projektu se spletna kamera in linkit smart 7688 duo uporabljata za zajemanje zahtevane fotografije in njeno pošiljanje uporabniku. Uporabite lahko tudi modul kamere arduino in ga povežete z arduinom ali pa uporabite katero koli IP kamero.
Pritisnite in držite gumb wifi na povezavi smart 7688 20 sekund, da ponastavite ploščo. Po ponastavitvi nastavitve wifi boste lahko v povezavah brezžičnega omrežja videli njeno ime dostopne točke. Zdaj povežite računalnik s tem omrežjem. ko ga povežete, odprite brskalnik in v naslovno vrstico vnesite 192.168.100.1. Videli boste lahko njegov portal. nastavite geslo za prijavo na svoj portal.
Ko se prijavite, pojdite na zavihek omrežje in izberite Način postaje (potrebujemo ga (linkit smart 7688 duo) za dostop do interneta) in ga povežite z omrežjem Wifi ter pritisnite Konfiguriraj in znova zaženite.
Po ponovnem zagonu plošče bo dodeljen lokalni naslov IP. Naslov poiščite s katerim koli orodjem IP ali portalom usmerjevalnika. V mojem primeru je bil 192.168.1.4. Zdaj v naslovno vrstico brskalnika vnesite lokalni naslov IP. poskrbite, da je računalnik povezan v isto omrežje kot linkit smart. Ponovno se boste morali prijaviti.
Če želite omogočiti pretakanje iz spletne kamere, morate omogočiti pretakanje -j.webp
Ko se prijavite, pojdite na zavihek storitev in preverite, ali je omogočeno pretakanje -j.webp
Po nastavitvi lahko spletno kamero povežete z gostiteljem linkit smart 7688 duo usb prek kabla OTG. Zdaj, da vidite Stream, odprite brskalnik in v naslovno vrstico vnesite: v mojem primeru je 192.168.1.4:4400
za posnetek posnetka vnesite ukaz:? action = snapshot
Zdaj je ta slika na voljo lokalno, vendar jo moramo dati na voljo storitvi pushing box. Da bi to dosegli, moramo posredovati vrata. Posredovanje vrat se lahko izvede na portalu usmerjevalnika. ID procesa je za različne usmerjevalnike drugačen. Če želite vedeti, kako prenesti naprej za določen usmerjevalnik, poiščite Google. Običajno je na voljo v storitvi NAT. Ko preusmerite vrata, lahko dostopate do teh vrat (tj. 4440) z vašega zunanjega IP -ja. Zunanji IP lahko najdete tako, da v google vnesete "whats my ip".
Ta naslov morate vnesti
tj.. https://::? action = posnetek
v potisnem polju (kar je razloženo v naslednjem koraku), tako da lahko potisni predal dostopa do te slike in jo priloži k pošti ter vam jo pošlje, kadar koli je to potrebno.
Sliko lahko shranite tudi na SD kartico, saj ima Linkit smart 7688 duo tudi režo za SD kartico za shranjevanje informacij. Več informacij o tem najdete na:
docs.labs.mediatek.com/resource/linkit-sm…
6. korak: Konfiguriranje PushingBox
pushhingbox se uporablja za pošiljanje obvestil o različnih opozorilih v projektu v gmail.
prijava v pushhingbox z google računom:
pojdi na moje storitve dodaj storitev. na izbiro je veliko storitev, kot so Gmail, twitter, potisno obvestilo za android itd …
izberite Gmail (ker moramo kot prilogo poslati fotografijo) in vnesite ustrezno konfiguracijo imena gmail in gmail ID uporabnika, ki mu je treba poslati opozorilo.
pojdite na moje scenarije in ustvarite nov scenarij. daj ime scenariju (npr.: ALERT) dodaj prej ustvarjeno storitev.
napišite primeren predmet in telo pošte ter vnesite url, da naredite posnetek zaslona spletne kamere za prilogo fotografije. Ustvarite različne scenarije za različna opozorila.api za izvajanje scenarija potisne škatle je:
7. korak: Ustvarjanje Alexa spretnosti z uporabo Backendless
backendless se uporablja za ustvarjanje veščine alexa. To je preprosto programiranje povleci in spusti, ki se uporablja za ustvarjanje spretnosti alexa (ali katerega koli programa), do katerega lahko dostopate z API -jem brez zaledja.
ustvarite račun v backendless:
- Prijavite se v svoj račun v računu brez zaledja. kliknite Ustvari aplikacijo in aplikaciji dajte ime
- Kliknite ikono Business Logic, ki se nahaja v vrstici z ikonami na levi. Prikazal se bo zaslon API STORITVE.
- Če želite ustvariti novo storitev, kliknite ikono »+«. V pojavnem oknu »Nova storitev« izberite CODELESS. Za ime storitve vnesite »AlexaService«. Kliknite gumb SHRANI:
- Backendless ustvari storitev API in vas bo pozval, da ustvarite metodo za storitev. To bo metoda obdelave zahtev Alexa. Za ime metode vnesite “handleRequest”. Za operacijo REST izberite POST in razglasite argument z imenom »req« in vnesite »Any Object«, kot je prikazano:
- Backendless ustvari nadomestno mesto za brezkodno logiko metode. Kliknite gumb Uredi za začetek preklopa na brezkodnega oblikovalca logike. V ustvarjenem bloku nadomestnih znakov funkcije kliknite območje z napisom "doSomething" in ga spremenite v "sendAlexaResponse". Ta funkcija se uporablja za to, da alexa pove nekaj, kar se lahko posreduje kot argument. Kliknite gumb SHRANI, da bo funkcija shranjena.
- Kliknite ikono zobnika v vijoličnem bloku tik ob besedi »Funkcija«. Dodajte dva argumenta tako, da povlečete vhodne bloke, kot je prikazano na spodnji sliki. Imena argumentom dodelite kot »whatToSay« in »waitForResponse«. Upoštevajte, da se med dodajanjem argumentov območje kontekstnih blokov samodejno naseli z bloki, ki predstavljajo vrednosti argumentov.
- Spremenite logiko funkcije, tako da bo videti kot na sliki. Za bloke »Ustvari predmete« z ikono zobnika spremenite ime lastnosti predmeta. Ne pozabite shraniti svojega dela s klikom na gumb SHRANI.
- Zdaj, ko je funkcija po meri zgrajena, preklopite nazaj na metodo handleRequest storitve AlexaService. Kliknite kategorijo Funkcije po meri v orodni vrstici na levi in povlecite blok sendAlexaResponse, da se povežete s povratnim priključkom vašega načina storitve
- Zgornje korake najdete tudi na njihovi spletni strani: https://backendless.com/developing-alexa-skill-wi…
- Kliknite na vozlišče »Dodaj novo« pod Funkcije v razdelku BROWSER. V ustvarjenem bloku nadomestnih znakov funkcije kliknite območje z napisom »doSomething« in ga spremenite v »getIntentName«, da spremenite bloke tako, da bo funkcija videti kot prikazana slika. bo dobil ime namena na podlagi vzorčnih izjav. Vrnite se na api services-> handle request v razdelku brskalnika. Spremenljivke in logika se ustvarijo iz sistemskega razdelka. Ustvarite naslednje spremenljivke, prikazane na slikah.
- nato shranimo ime namera, da zahteva spremenljivko. In potem primerjajte z nameni. na primer, če je zahteva "uvod", potem je spremenljivka odgovora nastavljena na "zdravo! Lahko nadziram ……." in ta odgovor Alexa končno glasno prebere. spremenite blok, kot je prikazano.
- če je zahteva LightsOn, potem s pomočjo http get request posodobimo kanal thingspeak na '0' in hkrati posodobimo stanje naprave (1/0, odvisno od Vklop/Izklop). Enako se ponovi za LightsOff, FanOn in FanOff.
- Za vreme beremo s kanala Temperatura in vlažnost in rezultat shranimo v spremenljivko response. Ker kanal daje samo vrednosti, dodajamo besedila, da bo odgovor smiseln
- za posnetek dnevne sobe izvedemo scenarij pushhingbox
- za stanje naprave beremo informacije iz statusnega kanala Thingspeak:
- za obvestila in opozorila, ki jih beremo z opozorilnih kanalov (požar, vsiljivec in gost):
- na podlagi vrednosti, ki jih dobimo iz polja za obvestila, so ustrezna opozorilna sporočila shranjena v spremenljivki response0. če ni obvestila, se ne shrani nobeno obvestilo.
- ko je obvestilo prebrano, se '0' posodobi v kanalih za obvestila, tako da alexa ne bo več brala istega obvestila. Nato se na podlagi zahteve na glas glasno prebere spremenljivka response0/response.
8. korak: Konfiguriranje Alexa Skill v konzoli za razvijalce Amazon:
pojdite na konzolo za razvijalce Amazon in se prijavite z računom Amazon.
pojdite na konzolo za razvijalce in kliknite zavihek ALEXA. Kliknite na komplet spretnosti alexa za začetek.
ustvarite vrsto spretnosti po meri, dajte ime in ime priklica spretnosti. ustrezni nameni in vzorčni izrazi so podani v kodi.
na zavihku konfiguracije izberite HTTPS kot vrsto končne točke storitve in izpolnite privzeti URL z URL -jem API -ja iz brez okolja. Izberite drugo možnost v potrdilu za privzeto končno točko v potrdilu SSL. Prav tako lahko preizkusite spretnost s testnim simulatorjem.
Po končanem testu lahko objavite spretnost z zahtevanimi informacijami o objavi.
9. korak: Končna nastavitev in dokončanje
Povežite vezje, kot je prikazano.
Včasih ESP8266 ne deluje pravilno zaradi nezadostnega toka. Torej, čeprav v tokokrogu ni omenjeno, je priporočljivo, da napajate ESP8266 iz ločenega vira 3,3 V. Če uporabljate power bank, zmanjšajte napetost s 5v na 3.3v z regulatorjem napetosti 3.3v. Program naložite na ESP8266 in arduino. Pokazal sem povezavo z žarnico, isto se lahko razširi na ventilator ali katero koli napravo. Na koncu uporabite amazon echo ali echosim.io, da preizkusite svoje sposobnosti.
Morate aktivirati spretnost z imenom priklica (kot je moj primer - "myhome"). Včasih ne bo delovalo, če se uporablja brez imena klica, kot sem nekajkrat pokazal v svojem videoposnetku
Upam, da ste uživali v vadnici!
Hvala vam!
Priporočena:
Naredite nadzorni sistem pametnega doma na disku STONE HMI: 23 korakov
Ustvarite sistem za nadzor pametnega doma na disku STONE HMI: Uvod v projekt Naslednja vadnica vam prikazuje, kako z uporabo modula na dotik STONE STVC050WT-01 narediti preprost sistem za upravljanje gospodinjskih aparatov
ESP8266 RGB LED STRIP WIFI Nadzor - NODEMCU Kot IR daljinski upravljalnik za LED trak, ki ga nadzira Wi -Fi - RGB LED STRIP Nadzor pametnega telefona: 4 koraki
ESP8266 RGB LED STRIP WIFI Nadzor | NODEMCU Kot IR daljinski upravljalnik za LED trak, ki ga nadzira Wi -Fi | RGB LED STRIP Smartphone Control: Pozdravljeni fantje, v tej vadnici se bomo naučili, kako uporabljati nodemcu ali esp8266 kot daljinski upravljalnik IR za nadzor LED traku RGB, Nodemcu pa bo preko wifi upravljal pametni telefon. V bistvu lahko s svojim pametnim telefonom upravljate RGB LED STRIP
Arduino sistem pametnega doma: 7 korakov
Arduino Smart Home System: V tem navodilu vam bomo pokazali, kako z MATLAB -jevim oblikovalcem aplikacij z rdečo ploščo Sparkfun ustvarite lasten sistem pametnega doma. Ta Instructable lahko uporabite za lažje razumevanje oblikovalca aplikacij MATLAB, pa tudi z uporabo fotoreporterja
Doma narejen hladilnik s funkcijo pametnega upravljanja (globoko zamrzovanje): 11 korakov (s slikami)
Doma narejen hladilnik s funkcijo pametnega upravljanja (globoki zamrzovalnik): Pozdravljeni prijatelji, to je drugi del hladilnika DIY, ki temelji na modulu peltier, v tem delu uporabljamo modul 2 peltierja namesto 1, za nastavitev želene temperature pa uporabljamo tudi termični regulator malo energije
Najenostavnejša avtomatizacija doma z uporabo Bluetootha, pametnega telefona Android in Arduina .: 8 korakov (s slikami)
Najenostavnejša avtomatizacija doma z uporabo Bluetootha, pametnega telefona Android in Arduina .: Pozdravljeni, ta projekt je namenjen izdelavi najbolj poenostavljene naprave za avtomatizacijo doma z uporabo arduina in modula bluetooth. Ta je zelo enostaven za gradnjo in ga je mogoče zgraditi v nekaj urah. V svoji različici, ki jo razlagam tukaj, lahko