INHOUDSOPGAWE:

Stembeheerde skakelaar met Alexa en Arduino: 10 stappe (met foto's)
Stembeheerde skakelaar met Alexa en Arduino: 10 stappe (met foto's)

Video: Stembeheerde skakelaar met Alexa en Arduino: 10 stappe (met foto's)

Video: Stembeheerde skakelaar met Alexa en Arduino: 10 stappe (met foto's)
Video: FrankEver FK_V02 - Zigbee kraan met opening aanpassing, overzicht, converter voor zigbee2mqtt 2024, Julie
Anonim
Stembeheerde skakelaar met Alexa en Arduino
Stembeheerde skakelaar met Alexa en Arduino

Die hoofdoel van hierdie projek is om temperatuursensor te gebruik om die skakelaar (relais) te beheer om die toestel aan of uit te skakel.

Lys van materiale

  1. 12V Relay Module ==> $ 4,2
  2. Arduino uno ==> $ 8
  3. DHT11 temperatuursensor ==> $ 3
  4. ESP8266 -module ==> $ 4,74
  5. N26 optokoppelaar ==> $ 0,60
  6. LM1117 spanningsreguleerder ==> $ 0,60
  7. Broodbord ==> $ 2.2
  8. Jumper drade ==> $ 2.5
  9. Drukknoppie ==> $ 2,5

Die totale koste van die projek is ongeveer $ 30 dollar. Hierdie projek is in drie dele verdeel. Eerstens gebruik ons heroku om 'n app te skep. Tweedens bou ons 'n Amazon Alexa -vaardigheid om ons werk te implementeer (die belangrikste deel). Derdens stel ons ons hardeware op en programmeer dit met behulp van Arduino IDE.

Stap 1: Koppel Heroku aan GitHub

Koppel Heroku met GitHub
Koppel Heroku met GitHub
Koppel Heroku met GitHub
Koppel Heroku met GitHub
Koppel Heroku met GitHub
Koppel Heroku met GitHub

Heroku is 'n wolkplatform as 'n diens (PaaS) wat verskeie programmeertale ondersteun wat as 'n ontplooiingsmodel vir webtoepassings gebruik word. Gaan eers na die heroku -webwerf, skep 'n nuwe rekening of meld u daar aan. Die skakel word hieronder gegee

Heroku webwerf

Laat ons begin met die skep van 'n nuwe app. Ek het my programnaam "iottempswitch" gegee toe u die app implementeer, 'n skakel word gegenereer.

Sodra die app gemaak is, gaan na GitHub. GitHub/

Meld daar aan of teken aan as u nie 'n rekening het nie. Sodra u ingeteken het, skep 'n nuwe repository. Gee enige naam wat u wil kies en druk dan op create repository. Klik op die volgende bladsy op README, gee op hierdie bladsy 'n beskrywing wat u met ander wil deel. Klik daarna op commit new file. Klik dan op die oplaai -knoppie.

Daar is twee opsies, óf u sleep en laat vou of kies lêer. Laai die vereiste lêers van onder af. Nadat u lêers gekies het, druk op commit veranderings. Maak die app oop wat u by Heroku geskep het en gaan dan na die afdeling implementeer. Klik daarna op GitHub. Gee die naam van die bewaarplek wat u aan die GitHub -kant geskep het. In my geval is dit Smart-Relay. Kopieer dit en plak dit hier. Sodra u skakel verskyn, klik op verbind. Klik vervolgens op die ontplooiingstak (handleiding). Nadat u dit geïmplementeer het, kan u die skakel in die bou -log sien, of u kan die skakel in die instellings sien. Ons benodig hierdie skakel later as ons Amazon -vaardighede maak.

Stap 2: Amazon

Amazon
Amazon
Amazon
Amazon
Amazon
Amazon

Nuutste beelde van Alexa -vaardigheid

Op die Amazon Developer -webwerf gebruik ons Amazon -vaardigheid om die skakelaar te beheer deur temperatuur en humiditeit in te stel.

Gaan na Amazon Developer Site. Die skakel word hieronder gegee.

Amazon -ontwikkelaarwebwerf

  • Gaan na die ontwikkelaarkonsole regs bo soos getoon in figuur i4
  • Gaan na Alexa, kies dan Alexa Skill Kit en skep nuwe vaardighede deur te klik op Voeg nuwe vaardigheid by.

As u nuwe vaardigheid byvoeg, sal u die vaardigheidsinligtingbladsy sien.

1. Vaardigheidsinligting (soos in prent i7 getoon)

ons moet die vaardigheidstipe, taal, naam, aanroepingsnaam verskaf.

Vaardigheidstipe ==> kies pasgemaak

  • Naam ==> kies enige naam.
  • Naam van aanroeping ==> wat u gebruik tydens kommunikasie met Alexa. Byvoorbeeld;- Alexa, vra sensor om die skakelaar aan te skakel of Alexa, vra lig hier, aanroepname is sensor en lig.
  • Taal ==> Engels (Indië). Kies volgens u land

klik op stoor en dan volgende

2. Interaksiemodel

Hier gebruik ons die vaardigheidsbouer. Klik dus op Launch Skill Builder. u sal die bladsy sien soos op die beeld i8.

Eerstens skep ons nuwe voornemens. Klik op Add (aan die linkerkant) en gee die naam wat u wil gebruik, "smartswitch"

  • Gee die gleuftipe naam "meting_tipe" en gleufwaardes "temperatuur" en "humiditeit" soos in prent i9 getoon.
  • Voeg daarna die naam "navraag" van die gleuf in, en die gleufwaardes is "wat" en "is", soos in die prent i10 getoon.
  • Voeg daarna die tipe slot "switchstate" by en slotwaardes is "aan" en "af" soos getoon in beeld i11.
  • Voeg 'n ander gleuf tipe "tempscale" by en die gleufwaardes is "fahrenheit" en "celcuis" soos in die prentjie i12 getoon.
  • Nadat ons 'n nuwe tipe slot hier bygevoeg het, gebruik ons die bestaande tipe slot, waarvoor ons op die bestaande slot moet klik. Nadat u dit bygevoeg het, sal u dit in gleuftipes sien, soos in beeld i13 getoon.

Ons is dus klaar met die totale tipe slot wat ons gebruik. 5. Gaan nou na die volgende stap. Klik op die bedoeling wat ons geskep het, in my geval is dit smartswitch. Aan die regterkant sal u die opsetgleuf sien soos in die prent i14 getoon.

  • Skep 'n nuwe gleuf, gee dit die naam "Switch_State" en plaas dit in die "switchstate" deur die afrolknoppie te gebruik, soos in die prent i15 getoon.
  • Skep 'n nuwe gleuf, gee dit die naam "Sensor_Values" en plaas dit in die "metingstipe", soos op die beeld i16 getoon.
  • Skep 'n nuwe gleuf, gee dit die naam "navraag" en gee dit 'navraag' soos in die prent i17.
  • Skep daarna 'n nuwe gleuf "tmp_scale" en plaas dit in 'tempscale' soos in die prentjie i18 getoon.
  • Skep 'n nuwe gleuf "Nommers" en plaas dit na "Amazon. Numbers" soos in die prentjie i19 getoon.

Nou is ons klaar met Intent slots. Ons gebruik 5 opsetgleuwe. Hierna gaan ons na Sample Uterances soos getoon in beeld i20.

Voeg hierdie voorbeelduitsprake by.

stel skakelaarskakelaar in op {Numbers} persent {tmp_scale}

{query} is die skakelaarstatus

{Switch_State} skakelaar sneller

stel die skakelaar na {Numbers} -graad {tmp_scale}

draai skakelaar {Switch_State}

{query} skakelaar {Switch_State}

{query} is die huidige {Sensor_Values}

Na hierdie stoor model en bou dit. Wag totdat die model gebou is, en klik dan op die konfigurasie.

3. Opset

Kies HTTPS en voeg 'n skakel by wat gegenereer is tydens die skep van 'n heroku -app. In my geval is dit https://iottempswitch.herokuapp.com/. Nadat u die skakel bygevoeg het, klik op die volgende, soos op die prent i23.

4. SSL -sertifikaat Kies die tweede opsie en klik op die volgende, soos in die prent i24.

ons het ons vaardigheid suksesvol geskep.

Stap 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Maak Arduino IDE oop. Gaan dan na File ==> Preference

Kopieer en plak die URL in Addisionele direksiebestuurder en klik op ok soos in die prent i26 getoon.

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

  • Maak raadbestuurder oop deur na Tools ==> Board ==> direksiebestuurder te gaan.
  • Maak die bestuurdersbestuur oop en soek na nodemcu soos getoon in beeld i27.
  • Laai daarna die ESP8266WiFi -biblioteek af. Open biblioteekbestuurder: Skets ==> Sluit biblioteek in ==> Bestuur biblioteke.
  • Soek die ESP8266WiFi -biblioteek en installeer dit.
  • Kies bord ==> Generiese ESP8266 -module.
  • Voordat ons die kode oplaai, benodig ons drie biblioteke.

Vereiste biblioteke

Beweeg hierdie biblioteke na die biblioteekmap van Arduino

U moet drie dinge verander in die kode SSID, PWD en die skakel van u heroku -app, en laai die kode daarna op. Vir die ESP -module moet u op die flitsknoppie druk terwyl u die kode oplaai, en dan een keer op die reset -knoppie druk en dan die flitsknoppie los. Nadat u die kode opgelaai het, maak die terminale oop. u sal uitset sien.

Stap 4: Beskrywing van die komponent

Komponentbeskrywing
Komponentbeskrywing
Komponentbeskrywing
Komponentbeskrywing
Komponentbeskrywing
Komponentbeskrywing
Komponentbeskrywing
Komponentbeskrywing

1. Wat is 'n aflos

Relais is 'n elektromagnetiese toestel wat gebruik word om twee stroombane elektries te isoleer en magneties aan mekaar te koppel. Dit is baie nuttige toestelle en laat een kring toe om 'n ander een te skakel terwyl hulle heeltemal apart is. Hulle word dikwels gebruik om 'n elektroniese stroombaan (met 'n lae spanning) te koppel aan 'n elektriese stroombaan wat werk met 'n baie hoë spanning. 'N Relais kan byvoorbeeld 'n 5V DC -batterykring maak om 'n 230V -wisselstroomkring oor te skakel.

Hoe dit werk

'N Relaisskakelaar kan in twee dele verdeel word: input en output. Die ingangsgedeelte het 'n spoel wat 'n magnetiese veld genereer wanneer 'n klein spanning van 'n elektroniese stroombaan daarop toegepas word. Hierdie spanning word die werkspanning genoem. Relais wat algemeen gebruik word, is beskikbaar in verskillende konfigurasies van werkspannings, soos 6V, 9V, 12V, 24V, ens. In 'n basiese relais is daar drie kontakors: normaalweg oop (NO), normaal gesluit (NC) en common (COM). By geen ingangstoestand is die COM gekoppel aan NC. As die werkspanning aangewend word, word die relaispoel aangeskakel en die COM verander kontak na NO. Verskillende relay -konfigurasies is beskikbaar, soos SPST, SPDT, DPDT, ens, wat 'n ander aantal skakelkontakte het. Deur die regte kombinasie van kontakors te gebruik, kan die elektriese stroombaan aan en afgeskakel word. Kry innerlike besonderhede oor die struktuur van 'n aflosskakelaar.

Die COM -terminale is die algemene terminaal. As die COIL -aansluitings met die nominale spanning gevoed word, het die COM- en die NO -terminale kontinuïteit. As die COIL -terminale nie gevoed is nie, het die COM- en die NO -terminale geen kontinuïteit nie.

Die NC -terminale is die normaal gesluit terminale. Dit is die terminaal wat aangeskakel kan word, selfs al ontvang die relais nie voldoende spanning nie.

Die NO -terminale is die normaalweg oop terminale. Dit is die terminaal waar u die uitset plaas wat u wil hê wanneer die relais die nominale spanning ontvang. As daar geen spanning na die COIL -terminale is nie of onvoldoende spanning, is die uitset oop en ontvang dit geen spanning nie. As die COIL -terminale die nominale spanning of 'n bietjie laer ontvang, ontvang die NO -terminal voldoende spanning en kan die toestel op die uitgang aangeskakel word.

2. DHT temperatuur sensor

DHT11 is 'n humiditeits- en temperatuursensor wat gekalibreerde digitale uitset genereer. DHT11 kan koppelvlak wees met enige mikrobeheerder soos Arduino, Raspberry Pi, ens. En kry onmiddellike resultate. DHT11 is 'n goedkoper humiditeits- en temperatuursensor wat hoë betroubaarheid en langtermynstabiliteit bied.

3. ESP8266 Volledige beskrywing

Die ESP8266 WiFi -module is 'n onafhanklike SOC met 'n geïntegreerde TCP/IP -protokolstapel wat enige mikrobeheerder toegang tot u WiFi -netwerk kan gee. Die ESP8266 kan óf 'n toepassingsnetwerkfunksie aanbied vanaf 'n ander toepassing Elke ESP8266-module is vooraf geprogrammeer met 'n AT-opdrag.

Die ESP8266 ondersteun APSD vir VoIP-toepassings en Bluetooth-saamleefkoppelvlakke, dit bevat 'n selfgekalibreerde RF wat dit in alle werksomstandighede kan laat werk en vereis geen eksterne RF-onderdele nie.

Kenmerke

  • 802.11 b/g/n
  • Wi-Fi Direct (P2P),
  • sagte-AP Geïntegreerde TCP/IP-protokolstapel
  • Geïntegreerde TR -skakelaar, balun, LNA, eindversterker en bypassende netwerk
  • Geïntegreerde PLL's, reguleerders, DCXO- en kragbestuurseenhede
  • +19,5 dBm uitsetkrag in die 802.11b -modus
  • Skakel lekstroom van <10uA af
  • 1 MB flitsgeheue
  • Geïntegreerde lae-krag 32-bis-SVE kan as toepassingsverwerker gebruik word
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU & A-MSDU-samevoeging & 0,4 ms beskermingsinterval
  • Word wakker en stuur pakkies in <2 ms
  • Standby -kragverbruik van <1,0mW (DTIM3)

Speldbeskrywing soos getoon in beeld i34.

Vir die aansluiting van die ESP -module met die Arduino UNO benodig ons Lm1117 3.3 spanningsreguleerder of enige reguleerder, omdat Arduino nie in staat is om 3.3 v aan ESP8266 te verskaf nie.

Nota:- Druk op die flitsknoppie terwyl u die kode oplaai, en druk dan een keer op die herstelknoppie en laat dan die flitsknoppie los soos in die beeld i29 getoon.

Vir die aansluiting van DHT11 -sensor en relais gebruik ons twee GPIO -penne van die ESP8266 -module. Nadat u die kode opgelaai het, kan u die RX-, TX-, GPIO0 -penne ontkoppel. Ek het GPIO0 gebruik vir DHT11 -sensor en GPIO2 vir aflosse. DHT11 -sensor werk goed met ESP8266, maar vir relais benodig ons een ekstra ding, dit wil sê opto -isolator of opto -koppelaar. Sien prent i30, i31, i32 en i33.

Stap 5: Verbindings

ESP8266 ===> DHT11GPIO0 ===> Uitvoerpen

ESP8266 ===> RelayGPIO2 ===> Invoer

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Herstelknoppie ===> RST

Flits knoppie ===> GPIO0

Stap 6: Gaan alles na

Kontroleer alles
Kontroleer alles
Kontroleer alles
Kontroleer alles
Kontroleer alles
Kontroleer alles
Kontroleer alles
Kontroleer alles

Ons het ons app, vaardigheid en ons hardeware suksesvol geskep. Dus, dit is tyd om te kyk.

Daarvoor is u ESP8266 aangeskakel omdat ons bediener op ESP8266 werk. Hier het ek geen sensor aan ESP8266 gekoppel nie; ek kyk net of dit werk of nie, maar u kan die sensor, die relais aan die ESP8266 koppel. Sodra dit aan Heroku gekoppel is, sien u verbonde. Gaan na die Amazon -vaardigheid wat u geskep het om te toets, en klik dan op die toetsbladsy. Sodra dit geverifieer is, sal ek my sensor aan ESP8266 koppel. U kan die resultate sien soos getoon in die beelde i35, i36, 37, 38, 39, 40.

As u dit gebruik sonder om ESP8266 aan te sluit, kry u hierdie fout soos getoon in beeld i41.

Uitering wat u kan gebruik

stel skakelaarskakelaar in op {Numbers} persent {tmp_scale}

bv:- stel die skakelaar in op 50 persent humiditeit

{query} is die skakelaarstatus

ex- aan/uit is die skakelaar toestand

{Switch_State} skakelaar sneller

ex -aan/af skakelaar sneller

stel die skakelaar na {Numbers} -graad {tmp_scale}

stel die skakelaarskakelaar in op 76 grade Fahrenheit

ex - stel die skakelaar in op 24 grade celcius

draai skakelaar {Switch_State}

ex - skakel die skakelaar aan/uit

Sien prent i41 tot i46 vir resultate.

Vra arduino terwyl u met AlexaAlexa praat om die skakelaar aan/uit te skakel

Alexa, vra arduino om die skakelaar op 24 grade Celsius te stel.

Alexa, vra arduino om die skakelaar op 50 persent humiditeit in te stel

Alexa, vra arduino om die skakelaar aan/uit te skakel

Stap 7: VUI (stemgebruikerskoppelvlak) -diagram

VUI (stemgebruikerskoppelvlak) -diagram
VUI (stemgebruikerskoppelvlak) -diagram

Stap 8: Demo

Image
Image

1. Stel die sneller vir temperatuur en humiditeit in.

2. Stel die sneller op 20 grade celsius.

3. Stel die sneller op 80 persent humiditeit.

Stap 9: Skematiese

Aanbeveel: