Sadržaj:

Glasovno upravljani prekidač pomoću Alexa i Arduina: 10 koraka (sa slikama)
Glasovno upravljani prekidač pomoću Alexa i Arduina: 10 koraka (sa slikama)

Video: Glasovno upravljani prekidač pomoću Alexa i Arduina: 10 koraka (sa slikama)

Video: Glasovno upravljani prekidač pomoću Alexa i Arduina: 10 koraka (sa slikama)
Video: CS50 2014 – 9-я неделя 2024, Novembar
Anonim
Glasovno kontrolirani prekidač pomoću Alexa i Arduina
Glasovno kontrolirani prekidač pomoću Alexa i Arduina

Glavni cilj ovog projekta je korištenje senzora temperature za upravljanje prekidačem (relejem) za uključivanje ili isključivanje uređaja.

Lista materijala

  1. 12V relejni modul ==> 4,2 USD
  2. Arduino uno ==> 8 USD
  3. Senzor temperature DHT11 ==> 3 USD
  4. ESP8266 modul ==> 4,74 USD
  5. N26 optoelement ==> 0,60 USD
  6. LM1117 regulator napona ==> 0,60 USD
  7. Oglasna ploča ==> 2,2 USD
  8. Kratkospojne žice ==> 2,5 USD
  9. Pritisnite dugme ==> 2,5 USD

Ukupni troškovi projekta su oko 30 dolara. Ovaj projekat podijeljen je u tri dijela. Prvo, heroku koristimo za kreiranje aplikacije. Drugo, razvijamo Amazon Alexa vještinu za implementaciju našeg rada (najvažniji dio). Treće, postavljamo svoj hardver i programiramo ga pomoću Arduino IDE -a.

Korak 1: Povežite Heroku s GitHubom

Povezivanje Herokua s GitHubom
Povezivanje Herokua s GitHubom
Povezivanje Herokua s GitHubom
Povezivanje Herokua s GitHubom
Povezivanje Herokua s GitHubom
Povezivanje Herokua s GitHubom

Heroku je oblačna platforma kao usluga (PaaS) koja podržava nekoliko programskih jezika koja se koristi kao model implementacije web aplikacija. Prvo idite na heroku web lokaciju i kreirajte novi račun ili se tamo prijavite. Link je dat ispod

Heroku web stranica

Počnimo s stvaranjem nove aplikacije. Ja sam svojoj aplikaciji dao ime "iottempswitch" kada postavite aplikaciju, generira se veza.

Nakon što je aplikacija napravljena, idite na GitHub. GitHub/

Prijavite se tamo ili se registrirajte ako nemate račun. Nakon što ste prijavljeni, stvorite novo spremište. Dajte bilo koje ime koje želite izabrati, a zatim pritisnite kreiraj spremište. Na sljedećoj stranici kliknite na README, na ovoj stranici dajte opis koji želite podijeliti s drugima. Nakon toga kliknite na urezivanje nove datoteke. Zatim kliknite na dugme za otpremanje.

Postoje dvije opcije ili povlačenjem i ispuštanjem mape ili odabirom datoteke. Preuzmite potrebne datoteke odozdo. Nakon odabira datoteka pritisnite urezivanje promjena. Otvorite aplikaciju koju ste kreirali na Heroku -u, a zatim idite na odjeljak za implementaciju. Nakon toga kliknite na GitHub. Give ime spremišta koje ste kreirali na strani GitHub. U mom slučaju to je Smart-Relej. Kopirajte to i zalijepite ovdje. Kada se vaša veza prikaže, kliknite na Connect. Zatim kliknite na deploy branch (manual). Nakon implementacije možete vidjeti vezu u dnevniku izgradnje ili vezu u postavkama. Ova veza će nam trebati kasnije kada budemo stjecali Amazon vještine.

Korak 2: Amazon

Amazon
Amazon
Amazon
Amazon
Amazon
Amazon

Najnovije slike Alexa vještine

Na Amazon Developer web stranici koristimo Amazon vještinu za upravljanje okidačem prekidača postavljanjem temperature i vlažnosti.

Idite na web lokaciju Amazon Developer. Link je dat ispod.

Amazonova web stranica za programere

  • Idite na Developer console u gornjem desnom kutu kao što je prikazano na slici i4
  • Idite na Alexa, zatim odaberite Alexa Skill Kit, a zatim stvorite novu vještinu klikom na Dodaj novu vještinu.

Kada dodate novu vještinu, vidjet ćete stranicu s informacijama o vještinama.

1. Informacije o vještinama (kao što je prikazano na slici i7)

moramo navesti vrstu vještine, jezik, ime, naziv poziva.

Vrsta vještine ==> odaberite prilagođeno

  • Ime ==> odaberite bilo koje ime.
  • Naziv poziva ==> koji koristite za komunikaciju s Alexa. Na primjer;- Alexa, zamolite senzor da uključi prekidač za uključivanje ili Alexa, pitajte svjetlo ovdje. Nazivi poziva su senzor i svjetlo.
  • Jezik ==> Engleski (Indija). Odaberite prema vašoj zemlji

kliknite spremi, a zatim sljedeće

2. Model interakcije

Ovdje ćemo koristiti graditelj vještina. Dakle, kliknite na Launch Skill Builder. vidjet ćete stranicu kao što je prikazano na slici i8.

Prvo stvaramo nove namjere. Pritisnite Dodaj (s lijeve strane) i dajte bilo koje ime koje sam koristio "smartswitch"

  • Dajte imenu tipa utora "mjerenje_vrsta" i vrijednosti utora "temperatura" i "vlažnost" kao što je prikazano na slici i9.
  • Nakon toga dodajte naziv tipa slota "query", a vrijednosti utora su "what" i "is" kao što je prikazano na slici i10.
  • Nakon toga dodajte utor tipa "switchstate" i vrijednosti utora su "uključeno" i "isključeno" kao što je prikazano na slici i11.
  • Dodajte još jedan utor tipa "tempscale", a vrijednosti utora su "fahrenheit" i "celcuis" kao što je prikazano na slici i12.
  • Nakon toga dodajemo novi tip utora, ovdje koristimo postojeći tip utora za koji moramo kliknuti na upotrijebi postojeći utor. U postojećem utoru potražimo amazon.number, izaberemo ovo i dodamo ga. Nakon dodavanja vidjet ćete ga u vrstama utora kao što je prikazano na slici i13.

Dakle, završili smo s vrstama utora. Ukupni tip utora koji koristimo je 5. Sada, prijeđite na sljedeći korak. Kliknite na namjeru koju smo stvorili, u mom slučaju to je smartswitch. Na desnoj strani ćete vidjeti utor za namjeru kao što je prikazano na slici i14.

  • Kreirajte novi slot, dajte mu ime "Switch_State" i preslikajte ga u "switchstate" pomoću padajućeg dugmeta kao što je prikazano na slici i15.
  • Kreirajte novi utor, dajte mu ime "Sensor_Values" i preslikajte ga u "mjerenje_vrsta" kao što je prikazano na slici i16.
  • Kreirajte novi slot, dajte mu ime "query" i preslikajte ga u "query" kao što je prikazano na slici i17.
  • Nakon toga kreirajte novi utor "tmp_scale" i preslikajte ga u "tempscale" kao što je prikazano na slici i18.
  • Kreirajte novi slot "Brojevi" i mapirajte ga u "Amazon. Numbers" kao što je prikazano na slici i19.

Sada smo završili s utorima namjere. Koristimo 5 mjesta za namjere. Nakon toga prelazimo na Uzorke uvjerenja kako je prikazano na slici i20.

Dodajte ovaj uzorak iskaza.

postavite okidač prekidača na {Numbers} posto {tmp_scale}

{query} je stanje prebacivanja

Okidač prekidača {Switch_State}

postavite okidač prekidača na {Numbers} stepen {tmp_scale}

okrenite prekidač {Switch_State}

{query} prebacivanje {Switch_State}

{query} je trenutni {Sensor_Values}

Nakon toga sačuvajte model i izgradite ga. Sačekajte da se model izgradi nakon toga kliknite na konfiguraciju. Nakon izgradnje vidjet ćete poruku kao što je prikazano na slikama i21 i i22.

3. Konfiguracija

Odaberite HTTPS i dodajte vezu koja je generirana prilikom stvaranja heroku aplikacije. U mom slučaju to je https://iottempswitch.herokuapp.com/. Nakon dodavanja veze kliknite na sljedeće kao što je prikazano na slici i23.

4. SSL certifikatOdaberite drugu opciju i kliknite na sljedeće kao što je prikazano na slici i24.

uspješno smo stvorili svoju vještinu.

Korak 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Otvorite Arduino IDE. Zatim idite na Datoteka ==> Postavke

U Dodatnom upravitelju ploča kopirajte i zalijepite URL i kliknite u redu kao što je prikazano na slici i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Otvorite Upravitelja odbora tako što ćete otići na Alati ==> Odbor ==> Upravitelj odbora.
  • Otvorite Upravitelj ploča i potražite nodemcu kao što je prikazano na slici i27.
  • Nakon toga preuzmite ESP8266WiFi biblioteku. Otvorite Upravitelj biblioteke: Sketch ==> Include library ==> Manage Libraries.
  • Potražite biblioteku ESP8266WiFi i instalirajte je.
  • Odaberite ploču ==> Opći ESP8266 modul.
  • Prije postavljanja koda potrebne su nam tri biblioteke.

Potrebne biblioteke

Premjestite ove biblioteke u mapu biblioteka na Arduinu

Morate promijeniti tri stvari u kodu SSID, OSI i vašoj heroku aplikacijskoj vezi. Nakon toga prenesite kôd. Za ESP modul morate pritisnuti dugme za blic dok učitavate kôd, a zatim pritisnuti taster za resetovanje jednom, a zatim otpustiti dugme za blic. Nakon učitavanja koda otvorite terminal. vidjet ćete izlaz.

Korak 4: Opis komponente

Opis komponente
Opis komponente
Opis komponente
Opis komponente
Opis komponente
Opis komponente
Opis komponente
Opis komponente

1. Šta je relej

Relej je elektromagnetski uređaj koji se koristi za električno izoliranje dva kruga i njihovo magnetsko povezivanje. Vrlo su korisni uređaji i dopuštaju da jedan krug prebaci drugi dok su potpuno odvojeni. Često se koriste za povezivanje elektroničkog kruga (koji radi na niskom naponu) s električnim krugom koji radi na vrlo visokom naponu. Na primjer, relej može stvoriti krug akumulatora od 5 V DC za prebacivanje mrežnog kruga od 230 V AC.

Kako radi

Relejni prekidač može se podijeliti na dva dijela: ulazni i izlazni. Ulazni dio ima zavojnicu koja stvara magnetsko polje kada se na nju primijeni mali napon iz elektroničkog kola. Ovaj napon se naziva radni napon. Uobičajeno korišteni releji dostupni su u različitim konfiguracijama radnih napona kao što su 6V, 9V, 12V, 24V itd. Izlazni dio sastoji se od kontaktora koji se mehanički spajaju ili isključuju. U osnovnom releju postoje tri kontaktora: normalno otvoreni (NO), normalno zatvoreni (NC) i zajednički (COM). Bez stanja ulaza, COM je spojen na NC. Kada se primijeni radni napon, relejni svitak se napaja i COM mijenja kontakt u NO. Dostupne su različite konfiguracije releja, poput SPST, SPDT, DPDT itd., Koje imaju različit broj kontakata za prebacivanje. Pravilnom kombinacijom kontaktora električno kolo se može uključiti i isključiti. Dobijte unutarnje detalje o strukturi relejnog prekidača.

COM terminal je uobičajeni terminal. Ako su stezaljke COIL napajane nazivnim naponom, stezaljke COM i NO imaju kontinuitet. Ako priključci COIL nisu pod naponom, tada priključci COM i NO nemaju kontinuitet.

NC terminal je normalno zatvoreni terminal. Terminal se može uključiti čak i ako relej ne prima nikakav ili dovoljan napon za rad.

NO terminal je normalno otvoreni terminal. To je terminal na koji postavljate željeni izlaz kada relej primi nazivni napon. Ako nema napona na stezaljkama COIL ili nema dovoljno napona, izlaz je otvoren i ne prima napon. Kada priključci COIL dobiju nazivni napon ili malo ispod, NO terminal prima dovoljan napon i može uključiti uređaj na izlazu.

2. DHT senzor temperature

DHT11 je senzor vlažnosti i temperature, koji generira kalibrirani digitalni izlaz. DHT11 može biti sučelje sa bilo kojim mikro kontrolerom poput Arduina, Raspberry Pi itd. I dobiti trenutne rezultate. DHT11 je jeftin senzor vlažnosti i temperature koji pruža visoku pouzdanost i dugoročnu stabilnost.

3. ESP8266 Potpuni opis

WiFi modul ESP8266 je samostalni SOC sa integriranim nizom TCP/IP protokola koji može omogućiti svakom mikrokontroleru pristup vašoj WiFi mreži. ESP8266 je sposoban ili ugostiti mrežne funkcije aplikacija iz druge aplikacije. Svaki ESP8266 modul dolazi unaprijed programiran s AT naredbom.

ESP8266 podržava APSD za VoIP aplikacije i Bluetooth sučelja za koegzistenciju, sadrži samokalibrirani RF koji mu omogućuje rad u svim radnim uvjetima i ne zahtijeva vanjske RF dijelove.

Karakteristike

  • 802.11 b/g/n
  • Wi-Fi Direct (P2P),
  • soft-API integrirani TCP/IP protokol
  • Integrirani TR prekidač, balun, LNA, pojačalo snage i odgovarajuća mreža
  • Integrirani PLL -ovi, regulatori, DCXO i jedinice za upravljanje napajanjem
  • +19,5 dBm izlazne snage u načinu rada 802.11b
  • Isključivanje struje curenja <10uA
  • 1 MB fleš memorije
  • Integrirani 32-bitni CPU male snage mogao bi se koristiti kao aplikacijski procesor
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU i A-MSDU agregacija i interval zaštite od 0,4 ms
  • Probudite se i prenesite pakete za <2ms
  • Potrošnja energije u stanju pripravnosti <1,0mW (DTIM3)

Pin opis kao što je prikazano na slici i34.

Za povezivanje ESP modula s Arduino UNO -om potreban nam je Lm1117 3.3 regulator napona ili bilo koji regulator jer Arduino ne može napajati 3.3 V na ESP8266.

Napomena:- Prilikom učitavanja koda pritisnite dugme za blic, a zatim pritisnite dugme za resetovanje jednom, a zatim otpustite dugme za blic kao što je prikazano na slici i29.

Za povezivanje DHT11 senzora i releja koristimo dva GPIO pina modula ESP8266. Nakon učitavanja koda možete odspojiti RX, TX, GPIO0 pinove. Koristio sam GPIO0 za DHT11 senzor i GPIO2 za releje. DHT11 senzor radi dobro s ESP8266, ali za releje nam je potrebna jedna dodatna stvar, odnosno optički izolator ili optička spojnica. Pogledajte slike i30, i31, i32 i i33.

Korak 5: Veze

ESP8266 ===> DHT11GPIO0 ===> Izlazni pin

ESP8266 ===> RelejGPIO2 ===> Ulaz

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Dugme za poništavanje ===> RST

Dugme za blic ===> GPIO0

Korak 6: Provjerite sve stvari

Provjera svih stvari
Provjera svih stvari
Provjera svih stvari
Provjera svih stvari
Provjera svih stvari
Provjera svih stvari
Provjera svih stvari
Provjera svih stvari

Uspješno smo stvorili našu aplikaciju, vještinu i naš hardver je spreman. Dakle, vrijeme je za provjeru.

Zbog toga je vaš ESP8266 uključen jer naš server radi na ESP8266. Ovdje nisam spojio nijedan senzor na ESP8266, samo provjeravam radi li ili ne, ali možete spojiti senzor, relej na ESP8266. Nakon što se poveže s Herokuom, vidjet ćete povezano. Za testiranje idite na Amazon vještinu koju ste stvorili, a zatim kliknite na testnu stranicu. Kad se provjeri da radi, spojit ću senzor na ESP8266. Možete vidjeti rezultate kako je prikazano na slikama i35, i36, 37, 38, 39, 40.

Ako ga koristite bez povezivanja ESP8266, dobit ćete ovu grešku kao što je prikazano na slici i41.

Izraz koji možete koristiti

postavite okidač prekidača na {Numbers} posto {tmp_scale}

ex:- postavite okidač prekidača na 50 posto vlažnosti

{query} je stanje prebacivanja

ex-on/off je stanje prekidača

Okidač prekidača {Switch_State}

okidač prekidača za uključivanje/isključivanje

postavite okidač prekidača na {Numbers} stepen {tmp_scale}

ex - okidač prekidača postavite na 76 stepeni Fahrenheita

ex - okidač prekidača postavite na 24 stepena Celzijusa

okrenite prekidač {Switch_State}

ex - uključite/isključite prekidač

Za rezultate pogledajte sliku od i41 do i46.

Dok razgovarate s AlexaAlexom, zamolite arduino da uključi/isključi okidač

Alexa, zamoli arduino da postavi okidač prekidača na 24 stepena Celzijusa.

Alexa, zatraži od arduina da postavi okidač prekidača na 50 posto vlažnosti

Alexa, zamoli arduino da uključi/isključi prekidač

Korak 7: Dijagram VUI (glasovno korisničko sučelje)

VUI (glasovno korisničko sučelje) dijagram
VUI (glasovno korisničko sučelje) dijagram

Korak 8: Demo

Image
Image

1. Postavite okidač za temperaturu i vlažnost.

2. Postavite okidač na 20 stepeni Celzijusa.

3. Postavite okidač na 80 posto vlažnosti.

Korak 9: Šema

Preporučuje se: