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, Studeni
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.

Popis materijala

  1. 12V relejni modul ==> 4,2 USD
  2. Arduino uno ==> 8 USD
  3. Senzor temperature DHT11 ==> 3 USD
  4. Modul ESP8266 ==> 4,74 USD
  5. Optička spojnica N26 ==> 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 gumb ==> 2,5 USD

Ukupna vrijednost projekta je oko 30 dolara. Ovaj projekt podijeljen je u tri dijela. Prvo, heroku koristimo za izradu aplikacije. Drugo, razvijamo vještinu Amazon Alexa za provedbu našeg rada (najvažniji dio). Treće, postavili smo svoj hardver i programirali 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 mjesto i stvorite novi račun ili se tamo prijavite. Link je dolje

Heroku web stranica

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

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

Prijavite se tamo ili se prijavite ako nemate račun. Nakon što ste prijavljeni, stvorite novo spremište. Dajte bilo koje ime koje želite odabrati, a zatim pritisnite stvoriti 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 gumb za prijenos.

Postoje dvije mogućnosti ili povlačenjem i ispuštanjem mape ili odabirom datoteke. Preuzmite potrebne datoteke odozdo. Nakon odabira datoteka pritisnite urezivanje promjena. Otvorite aplikaciju koju ste stvorili na Herokuu, a zatim idite na odjeljak za implementaciju. Nakon toga kliknite na GitHub. Give naziv spremišta koji ste stvorili na strani GitHub. U mom slučaju to je Smart-Relej. Kopirajte to i zalijepite ovdje. Nakon što se prikaže vaša veza kliknite na poveži. Zatim kliknite na granu implementacije (priručnik). Nakon implementacije možete vidjeti vezu u dnevniku izgradnje ili vezu u postavkama. Ova nam je veza potrebna 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 mjesto Amazon Developer. Link je dolje.

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.

Kad 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č ili Alexa, pitajte svjetlo ovdje. Nazivi za poziv 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 vrijednostima utora "temperatura" i "vlažnost" kao što je prikazano na slici i9.
  • Nakon toga dodajte naziv vrste utora "upit", a vrijednosti utora su "što" i "jest" 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š jednu vrstu utora "tempscale", a vrijednosti utora su "fahrenheit" i "celcuis" kao što je prikazano na slici i12.
  • Nakon toga dodajemo novu vrstu utora. Ovdje koristimo postojeću vrstu utora za koju moramo kliknuti na upotrijebi postojeći utor. U postojećem utoru potražite amazon.number, odaberite ovo i dodajte ga. Nakon dodavanja vidjet ćete ga u vrstama utora kao što je prikazano na slici i13.

Dakle, završili smo s vrstama utora. Ukupna vrsta utora koju koristimo je 5. Sada, prijeđite na sljedeći korak. Kliknite na namjeru koju smo stvorili, u mom slučaju to je pametni prekidač. S desne strane vidjet ćete utor za namjeru kao što je prikazano na slici i14.

  • Izradite novi utor, dajte mu ime "Switch_State" i preslikajte ga u "switchstate" pomoću padajućeg gumba kao što je prikazano na slici i15.
  • Napravite novi utor, dajte mu naziv "Sensor_Values" i preslikajte ga u "mjerenje_vrsta" kao što je prikazano na slici i16.
  • Napravite novo mjesto, dajte mu ime "upit" i preslikajte ga u "upit" kao što je prikazano na slici i17.
  • Nakon toga stvorite novi utor "tmp_scale" i preslikajte ga u "tempscale" kao što je prikazano na slici i18.
  • Napravite novi utor "Brojevi" i preslikajte ga u "Amazon. Brojevi" kao što je prikazano na slici i19.

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

Dodajte ovaj uzorak iskaza.

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

{query} je stanje prebacivanja

Okidač prekidača {Switch_State}

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

okrenite prekidač {Switch_State}

{query} prebacivanje {Switch_State}

{query} trenutačni je {Sensor_Values}

Nakon toga spremite model i izgradite ga. Prič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 tijekom 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 da odete na Alati ==> Uprava ==> Upravitelj odbora.
  • Otvorite Upravitelj ploča i potražite nodemcu kao što je prikazano na slici i27.
  • Nakon toga preuzmite ESP8266WiFi knjižnicu. Otvorite Upravitelj knjižnice: Sketch ==> Include library ==> Manage Libraries.
  • Potražite biblioteku ESP8266WiFi i instalirajte je.
  • Odaberite ploču ==> Opći modul ESP8266.
  • Prije učitavanja koda potrebne su nam tri knjižnice.

Potrebne knjižnice

Premjestite ove knjižnice u mapu knjižnica u Arduinu

Morate promijeniti tri stvari u kodu SSID, PWD i poveznici na heroku aplikaciju. Nakon toga prenesite kôd. Za ESP modul morate pritisnuti gumb bljeskalice dok učitavate kôd, a zatim pritisnuti tipku za resetiranje jednom, a zatim otpustiti gumb bljeskalice. 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. Što 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 napraviti 5V DC akumulatorski krug za prebacivanje mrežnog kruga 230V AC.

Kako radi

Relejni prekidač može se podijeliti na dva dijela: ulazni i izlazni. Ulazni dio ima zavojnicu koja generira magnetsko polje kada se na nju primijeni mali napon iz elektroničkog kruga. Taj napon naziva se radni napon. Uobičajeno korišteni releji dostupni su u različitim konfiguracijama radnih napona poput 6V, 9V, 12V, 24V itd. Izlazni dio sastoji se od kontaktora koji se mehanički spajaju ili odvajaju. U osnovnom releju postoje tri kontaktora: normalno otvoreni (NO), normalno zatvoreni (NC) i zajednički (COM). Bez ulaza, COM je spojen na NC. Kada se primijeni radni napon, relejna 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 promjenu. Pravilnom kombinacijom kontaktora električni krug 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, priključci COM i NO imaju kontinuitet. Ako priključci COIL nemaju napajanje, 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. Kad priključci COIL dobiju nazivni napon ili malo ispod njega, NO terminal prima dovoljan napon i može uključiti uređaj na izlazu.

2. DHT osjetnik temperature

DHT11 je osjetnik vlage i temperature koji generira kalibrirani digitalni izlaz. DHT11 može biti sučelje s 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 s integriranim nizom TCP/IP protokola koji može omogućiti svakom mikrokontroleru pristup vašoj WiFi mreži. ESP8266 je sposoban ugostiti mrežne funkcije aplikacija iz druge aplikacije. Svaki ESP8266 modul dolazi unaprijed programiran AT naredbom.

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

Značajke

  • 802,11 b/g/n
  • Wi-Fi Direct (P2P),
  • soft-API integrirani niz protokola TCP/IP
  • 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 flash 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 zaštitni interval od 0,4 ms
  • Probudite se i prenesite pakete za <2 ms
  • Potrošnja energije u stanju pripravnosti <1,0mW (DTIM3)

Opis pina 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:- Tijekom učitavanja koda pritisnite gumb bljeskalice, a zatim pritisnite tipku za poništavanje jednom, a zatim otpustite gumb bljeskalice kao što je prikazano na slici i29.

Za povezivanje DHT11 osjetnika i releja koristimo dva GPIO pina modula ESP8266. Nakon učitavanja koda možete odspojiti RX, TX, GPIO0 pinove. Koristio sam GPIO0 za senzor DHT11 i GPIO2 za releje. Senzor DHT11 radi dobro s ESP8266, ali za releje nam je potrebna jedna dodatna stvar, odnosno opto izolator ili opto 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

Gumb za poništavanje ===> RST

Tipka za bljeskalicu ===> 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š poslužitelj 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 pogrešku kao što je prikazano na slici i41.

Izraz koji možete upotrijebiti

okidač prekidača postavite 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

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

ex - okidač prekidača postavite na 76 stupnjeva celzijusa

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

okrenite prekidač {Switch_State}

ex - prekidač za uključivanje/isključivanje

Za rezultate pogledajte slike od i41 do i46.

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

Alexa, zamoli arduino da postavi okidač na 24 stupnja 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)

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

Korak 8: Demo

Image
Image

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

2. Okidač postavite na 20 stupnjeva Celzijusa.

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

Korak 9: Shematski prikaz

Preporučeni: