Turinys:

Valdomas balsu jungiklis naudojant „Alexa“ir „Arduino“: 10 žingsnių (su paveikslėliais)
Valdomas balsu jungiklis naudojant „Alexa“ir „Arduino“: 10 žingsnių (su paveikslėliais)

Video: Valdomas balsu jungiklis naudojant „Alexa“ir „Arduino“: 10 žingsnių (su paveikslėliais)

Video: Valdomas balsu jungiklis naudojant „Alexa“ir „Arduino“: 10 žingsnių (su paveikslėliais)
Video: Dulkių siurblys robotas Xiaomi Dreame L10 Pro 2024, Liepa
Anonim
Valdomas balsu jungiklis naudojant „Alexa“ir „Arduino“
Valdomas balsu jungiklis naudojant „Alexa“ir „Arduino“

Pagrindinis šio projekto tikslas yra naudoti temperatūros jutiklį valdyti jungiklį (relę), kad įjungtumėte arba išjungtumėte įrenginį.

Medžiagų sąrašas

  1. 12 V relės modulis ==> 4,2 USD
  2. „Arduino uno“==> 8 USD
  3. DHT11 temperatūros jutiklis ==> 3 USD
  4. ESP8266 modulis ==> 4,74 USD
  5. N26 optronas ==> 0,60 USD
  6. LM1117 įtampos reguliatorius ==> 0,60 USD
  7. Duonos lenta ==> 2,2 USD
  8. Trumpieji laidai ==> 2,5 USD
  9. Paspauskite mygtuką ==> 2,5 USD

Bendra projekto kaina yra apie 30 USD. Šis projektas yra padalintas į tris dalis. Pirma, programai sukurti naudojame heroku. Antra, mes kuriame „Amazon Alexa“įgūdžius savo darbui įgyvendinti (svarbiausia dalis). Trečia, mes nustatome savo aparatinę įrangą ir programuojame ją naudodami „Arduino IDE“.

1 veiksmas: susiekite „Heroku“su „GitHub“

„Heroku“susiejimas su „GitHub“
„Heroku“susiejimas su „GitHub“
„Heroku“susiejimas su „GitHub“
„Heroku“susiejimas su „GitHub“
„Heroku“susiejimas su „GitHub“
„Heroku“susiejimas su „GitHub“

„Heroku“yra debesų platforma kaip paslauga („PaaS“), palaikanti kelias programavimo kalbas ir naudojama kaip žiniatinklio programų diegimo modelis. Pirmiausia eikite į heroku svetainę, sukurkite naują paskyrą arba prisijunkite ten. Nuoroda pateikta žemiau

„Heroku“svetainė

Pradėkime nuo naujos programos kūrimo. Kai diegiate programą, daviau savo programos pavadinimą „iottempswitch“, sukuriama nuoroda.

Kai programa bus sukurta, eikite į „GitHub. GitHub“/

Prisijunkite ten arba prisiregistruokite, jei neturite paskyros. Prisijungę sukurkite naują saugyklą. Suteikite norimą pasirinkti vardą ir paspauskite sukurti saugyklą. Kitame puslapyje spustelėkite README, šiame puslapyje pateikite aprašymą, kurį norite bendrinti su kitais. Po to spustelėkite Įdiegti naują failą. Tada spustelėkite įkėlimo mygtuką.

Yra dvi parinktys: vilkite ir numeskite aplanką arba pasirinkite failą. Atsisiųskite reikiamus failus iš apačios. Pasirinkę failus paspauskite atlikti pakeitimus. Atidarykite programą, kurią sukūrėte „Heroku“, tada eikite į diegimo skyrių. Po to spustelėkite „GitHub“. Pateikite saugyklos pavadinimą, kurį sukūrėte „GitHub“pusėje. Mano atveju tai yra „Smart-Relay“. Nukopijuokite ir įklijuokite čia. Kai rodoma jūsų nuoroda, spustelėkite prisijungti. Tada spustelėkite dislokuoti šaką (vadovas). Įdiegus galite pamatyti nuorodą kūrimo žurnale arba nuorodą nustatymuose. Šios nuorodos mums prireiks vėliau, kai darysime „Amazon“įgūdžius.

2 žingsnis: „Amazon“

„Amazon“
„Amazon“
„Amazon“
„Amazon“
„Amazon“
„Amazon“

Naujausi „Alexa“įgūdžių vaizdai

„Amazon Developer“svetainėje mes naudojame „Amazon“įgūdžius valdyti jungiklio paleidiklį, nustatydami temperatūrą ir drėgmę.

Eikite į „Amazon“kūrėjų svetainę. Nuoroda pateikta žemiau.

„Amazon“kūrėjų svetainė

  • Eikite į kūrėjo konsolę viršuje dešinėje, kaip parodyta i4 paveiksle
  • Eikite į „Alexa“, tada pasirinkite „Alexa Skill Kit“ir sukurkite naujus įgūdžius spustelėdami „Pridėti naują įgūdį“.

Kai pridėsite naujų įgūdžių, pamatysite įgūdžių informacijos puslapį.

1. Įgūdžių informacija (kaip parodyta paveikslėlyje i7)

mes turime pateikti įgūdžių tipą, kalbą, vardą, pašaukimo pavadinimą.

Įgūdžio tipas ==> pasirinkite pasirinktinį

  • Pavadinimas ==> pasirinkite bet kokį vardą.
  • Kvietimo pavadinimas ==> kurį naudojate bendraudami su „Alexa“. Pavyzdžiui;- „Alexa“, paprašykite jutiklio įjungti jungiklio gaiduką arba „Alexa“, paklauskite, ar čia yra šaukimo pavadinimai: jutiklis ir šviesa.
  • Kalba ==> anglų (Indija). Pasirinkite pagal savo šalį

spustelėkite išsaugoti, tada kitą

2. Sąveikos modelis

Čia mes naudosime įgūdžių kūrimo priemonę. Taigi, spustelėkite Launch Skill Builder. pamatysite puslapį, kaip parodyta paveikslėlyje i8.

Pirmiausia sukuriame naujus ketinimus. Spustelėkite Pridėti (kairėje pusėje) ir nurodykite norimą pavadinimą „smartswitch“

  • Nurodykite lizdo tipo pavadinimą „Matavimo_ tipas“ir lizdo reikšmes „Temperatūra“ir „Drėgmė“, kaip parodyta paveikslėlyje i9.
  • Po to pridėkite lizdo tipo pavadinimą „query“, o lizdo reikšmės yra „kas“ir „yra“, kaip parodyta paveikslėlyje i10.
  • Po to pridėkite lizdo tipą „switchstate“, o lizdo vertės yra „įjungtos“ir „išjungtos“, kaip parodyta paveikslėlyje i11.
  • Pridėkite kitą lizdo tipą „tempscale“, o laiko reikšmės yra „fahrenheit“ir „celcuis“, kaip parodyta paveikslėlyje i12.
  • Po to čia pridėkite naują lizdo tipą, mes naudojame esamą lizdo tipą, kuriam turime spustelėti naudoti esamą lizdą. Esamame lizde ieškokite „amazon.number“ir pasirinkite tai ir pridėkite. Pridėję jį pamatysite lizdų tipus, kaip parodyta paveikslėlyje i13.

Taigi, mes baigėme lizdo tipus, bendras mūsų naudojamas lizdo tipas yra 5. Dabar pereikite prie kito žingsnio. Spustelėkite mūsų sukurtą ketinimą, mano atveju tai yra išmanusis jungiklis. Dešinėje pusėje pamatysite ketinimo angą, kaip parodyta paveikslėlyje i14.

  • Sukurkite naują lizdą, suteikite jam pavadinimą „Switch_State“ir susiekite jį su „switchstate“naudodami išskleidžiamąjį mygtuką, kaip parodyta paveikslėlyje i15.
  • Sukurkite naują lizdą, suteikite jam pavadinimą „Sensor_Values“ir susiekite jį su „mõõt_type“, kaip parodyta paveikslėlyje i16.
  • Sukurkite naują lizdą, suteikite jam pavadinimą „query“ir susiekite jį su „query“, kaip parodyta paveikslėlyje i17.
  • Po to sukurkite naują laiko tarpsnį „tmp_scale“ir susiekite jį su „tempscale“, kaip parodyta paveikslėlyje i18.
  • Sukurkite naują lizdą „Skaičiai“ir susiekite jį su „Amazon. Numbers“, kaip parodyta paveikslėlyje i19.

Dabar mes baigėme „Intent“lizdus. Mes naudojame 5 tikslinius lizdus. Po to pereiname prie pavyzdžių, kaip parodyta paveikslėlyje i20.

Pridėkite šiuos sakinių pavyzdžius.

nustatykite jungiklio aktyviklį į {Numbers} proc. {tmp_scale}

{query} yra perjungimo būsena

{Switch_State} jungiklio aktyviklis

nustatykite jungiklio aktyviklį į {Numbers} laipsnį {tmp_scale}

pasukti jungiklį {Switch_State}

{query} switch {Switch_State}

{query} yra dabartinis {Sensor_Values}

Po to išsaugokite modelį ir sukurkite. Palaukite, kol modelis bus sukurtas po to, spustelėkite konfigūraciją. Sukūrę pamatysite pranešimą, kaip parodyta paveikslėliuose i21 ir i22.

3. Konfigūracija

Pasirinkite HTTPS ir pridėkite nuorodą, kuri buvo sukurta kuriant „heroku“programą. Mano atveju tai yra https://iottempswitch.herokuapp.com/. Pridėję nuorodą spustelėkite toliau, kaip parodyta paveikslėlyje i23.

4. SSL sertifikatasPasirinkite antrąją parinktį ir spustelėkite kitą, kaip parodyta paveikslėlyje i24.

mes sėkmingai sukūrėme savo įgūdžius.

3 žingsnis: „Arduino“

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Atidarykite „Arduino IDE“. Tada eikite į Failas ==> Nuostatos

Papildomų lentų tvarkytuvėje nukopijuokite ir įklijuokite URL ir spustelėkite gerai, kaip parodyta paveikslėlyje i26.

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

  • Atidarykite „Board Manager“, eidami į Tools ==> Board ==> Board Manager.
  • Atidarykite lentų tvarkytuvę ir ieškokite „nodemcu“, kaip parodyta paveikslėlyje i27.
  • Po to atsisiųskite ESP8266WiFi biblioteką. Atidarykite bibliotekos tvarkyklę: Eskizas ==> Įtraukti biblioteką ==> Tvarkyti bibliotekas.
  • Ieškokite ESP8266WiFi bibliotekos ir ją įdiekite.
  • Pasirinkite plokštę ==> Bendrasis ESP8266 modulis.
  • Prieš įkeliant kodą mums reikia trijų bibliotekų.

Reikalingos bibliotekos

Perkelkite šias bibliotekas į „Arduino“bibliotekų aplanką

Turite pakeisti tris dalykus kodo SSID, PWD ir savo heroku programos nuorodoje. Po to įkelkite kodą. Jei norite įkelti ESP modulį, įkeldami kodą turite paspausti blykstės mygtuką, tada vieną kartą paspauskite atstatymo mygtuką ir tada atleiskite blykstės mygtuką. Įkėlę kodą, atidarykite terminalą. pamatysite išvestį.

4 žingsnis: komponento aprašymas

Komponento aprašymas
Komponento aprašymas
Komponento aprašymas
Komponento aprašymas
Komponento aprašymas
Komponento aprašymas
Komponento aprašymas
Komponento aprašymas

1. Kas yra relė

Relė yra elektromagnetinis įtaisas, naudojamas elektra izoliuoti dvi grandines ir jas magnetiškai sujungti. Jie yra labai naudingi prietaisai ir leidžia vienai grandinei perjungti kitą, kol jie yra visiškai atskirti. Jie dažnai naudojami prijungti elektroninę grandinę (dirbančią esant žemai įtampai) prie elektros grandinės, kuri veikia esant labai aukštai įtampai. Pavyzdžiui, relė gali sudaryti 5 V nuolatinės srovės akumuliatoriaus grandinę, kad perjungtų 230 V kintamosios srovės tinklo grandinę.

Kaip tai veikia

Relės jungiklį galima suskirstyti į dvi dalis: įvestį ir išėjimą. Įvesties skyriuje yra ritė, kuri generuoja magnetinį lauką, kai į ją įvedama maža įtampa iš elektroninės grandinės. Ši įtampa vadinama darbine įtampa. Dažniausiai naudojamos relės yra įvairių konfigūracijų, pvz., 6V, 9V, 12V, 24V ir tt. Išėjimo sekciją sudaro kontaktoriai, kurie mechaniškai jungiami arba atjungiami. Pagrindinėje relėje yra trys kontaktoriai: paprastai atidarytas (NO), paprastai uždarytas (NC) ir bendras (COM). Jei nėra įvesties būsenos, COM yra prijungtas prie NC. Įjungus darbinę įtampą, relės ritė įjungiama ir COM pakeičia kontaktą į NO. Galimos įvairios relių konfigūracijos, tokios kaip SPST, SPDT, DPDT ir kt., Kurios turi skirtingą perjungimo kontaktų skaičių. Naudojant tinkamą kontaktorių derinį, elektros grandinę galima įjungti ir išjungti. Gaukite vidinę informaciją apie relės jungiklio struktūrą.

COM terminalas yra bendras terminalas. Jei COIL gnybtai maitinami vardine įtampa, COM ir NO gnybtai turi tęstinumą. Jei COIL gnybtuose nėra įtampos, COM ir NO gnybtai neturi tęstinumo.

NC terminalas yra paprastai uždarytas terminalas. Tai yra terminalas, kurį galima įjungti, net jei relė negauna jokios įtampos arba jos nepakanka.

NO terminalas yra normaliai atidarytas terminalas. Tai yra terminalas, kuriame įdedate norimą išvestį, kai relė gauna nominalią įtampą. Jei COIL gnybtuose nėra įtampos arba nepakankama įtampa, išėjimas yra atidarytas ir negauna įtampos. Kai COIL gnybtai gauna nominalią įtampą arba šiek tiek žemiau, NO terminalas gauna pakankamai įtampos ir gali įjungti įrenginį išvestyje.

2. DHT temperatūros jutiklis

DHT11 yra drėgmės ir temperatūros jutiklis, generuojantis kalibruotą skaitmeninę išvestį. DHT11 gali būti sąsaja su bet kokiu mikrovaldikliu, pvz., „Arduino“, „Raspberry Pi“ir kt., Ir gauti momentinius rezultatus. DHT11 yra nebrangus drėgmės ir temperatūros jutiklis, užtikrinantis aukštą patikimumą ir ilgalaikį stabilumą.

3. ESP8266 Visas aprašymas

ESP8266 „WiFi“modulis yra savarankiškas SOC su integruotu TCP/IP protokolo paketu, kuris gali suteikti bet kokiam mikrovaldikliui prieigą prie jūsų „WiFi“tinklo. ESP8266 gali priimti kitos programos programų tinklo funkcijas. Kiekvienas ESP8266 modulis yra iš anksto užprogramuotas naudojant AT komandą.

ESP8266 palaiko APSD, skirtą VoIP programoms ir „Bluetooth“bendro egzistavimo sąsajoms, jame yra savaime sukalibruotas RF, leidžiantis veikti bet kokiomis darbo sąlygomis, ir nereikia jokių išorinių RF dalių.

funkcijos

  • 802.11 b/g/n
  • „Wi-Fi Direct“(P2P),
  • „Soft-API“integruotas TCP/IP protokolo krūva
  • Integruotas TR jungiklis, balun, LNA, galios stiprintuvas ir tinkantis tinklas
  • Integruoti PLL, reguliatoriai, DCXO ir energijos valdymo įrenginiai
  • +19,5 dBm išėjimo galia 802.11b režimu
  • Išjunkite nuotėkio srovę <10uA
  • 1 MB „Flash“atmintis
  • Integruotas mažos galios 32 bitų procesorius gali būti naudojamas kaip programų procesorius
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU ir A-MSDU agregacija ir 0,4 ms apsaugos intervalas
  • Pabusk ir perduok paketus per <2ms
  • Energijos suvartojimas budėjimo režimu <1,0 mW (DTIM3)

Smeigtuko aprašymas, kaip parodyta paveikslėlyje i34.

Norėdami prijungti ESP modulį prie „Arduino UNO“, mums reikia Lm1117 3.3 įtampos reguliatoriaus arba bet kurio reguliatoriaus, nes „Arduino“negali tiekti 3.3 v ESP8266.

Pastaba:- Įkeldami kodą, paspauskite blykstės mygtuką, tada vieną kartą paspauskite atstatymo mygtuką, tada atleiskite blykstės mygtuką, kaip parodyta paveikslėlyje i29.

DHT11 jutiklio ir relės prijungimui naudojame du ESP8266 modulio GPIO kaiščius. Įkėlę kodą, galite atjungti RX, TX, GPIO0 kaiščius. Aš naudoju GPIO0 DHT11 jutikliui ir GPIO2 relėms. DHT11 jutiklis puikiai veikia su ESP8266, tačiau relėms mums reikia vieno papildomo dalyko, ty opto izoliatoriaus arba opto jungties. Žr. Vaizdus i30, i31, i32 ir i33.

5 žingsnis: jungtys

ESP8266 ===> DHT11GPIO0 ===> Išvesties kaištis

ESP8266 ===> RelayGPIO2 ===> Įvestis

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Atstatymo mygtukas ===> RST

„Flash“mygtukas ===> GPIO0

6 žingsnis: patikrinkite visus dalykus

Visų dalykų tikrinimas
Visų dalykų tikrinimas
Visų dalykų tikrinimas
Visų dalykų tikrinimas
Visų dalykų tikrinimas
Visų dalykų tikrinimas
Visų dalykų tikrinimas
Visų dalykų tikrinimas

Mes sėkmingai sukūrėme savo programą, įgūdžius ir aparatūra yra paruošta. Taigi, laikas patikrinti.

Tam jūsų ESP8266 įjungtas, nes mūsų serveris veikia ESP8266. Čia aš neprijungiau jokio jutiklio prie ESP8266. Aš tik tikrinu, ar jis veikia, ar ne, bet jūs galite prijungti jutiklį, relę prie ESP8266. Kai jis bus prijungtas prie „Heroku“, pamatysite jį prijungtą. Norėdami patikrinti, eikite į „Amazon“įgūdžius, kuriuos sukūrėte, tada spustelėkite bandymo puslapį. Kai bus patikrinta, ar jis veikia, prijungsiu jutiklį prie ESP8266. Rezultatus galite matyti, kaip parodyta paveikslėliuose i35, i36, 37, 38, 39, 40.

Jei jį naudosite neprijungę ESP8266, gausite šią klaidą, kaip parodyta paveikslėlyje i41.

Utterance galite naudoti

nustatykite jungiklio aktyviklį į {Numbers} proc. {tmp_scale}

pvz.:- nustatykite jungiklio gaiduką į 50 procentų drėgmę

{query} yra perjungimo būsena

ex- on/off yra jungiklio būsena

{Switch_State} jungiklio aktyviklis

ex -on/off jungiklio paleidiklis

nustatykite jungiklio aktyviklį į {Numbers} laipsnį {tmp_scale}

ex - nustatykite jungiklio gaiduką iki 76 laipsnių pagal Celsijų

ex - nustatykite jungiklio gaiduką į 24 laipsnių Celsijų

pasukti jungiklį {Switch_State}

ex - įjunkite/išjunkite jungiklį

Norėdami gauti rezultatų, žiūrėkite paveikslėlius nuo i41 iki i46.

Kalbėdami su „AlexaAlexa“, paprašykite arduino įjungti/išjungti jungiklio gaiduką

Alexa, paprašykite arduino nustatyti jungiklio gaiduką iki 24 laipsnių Celsijaus.

Alexa, paprašykite arduino nustatyti jungiklio gaiduką iki 50 procentų drėgmės

Alexa, paprašyk arduino įjungti/išjungti jungiklį

7 veiksmas: VUI (balso vartotojo sąsaja) diagrama

VUI (balso vartotojo sąsaja) diagrama
VUI (balso vartotojo sąsaja) diagrama

8 žingsnis: demonstracija

Image
Image

1. Nustatykite temperatūros ir drėgmės gaiduką.

2. Nustatykite gaiduką iki 20 laipsnių Celsijaus.

3. Nustatykite trigerį iki 80 procentų drėgmės.

9 žingsnis: schema

Rekomenduojamas: