Cuprins:

Comutator controlat prin voce folosind Alexa și Arduino: 10 pași (cu imagini)
Comutator controlat prin voce folosind Alexa și Arduino: 10 pași (cu imagini)

Video: Comutator controlat prin voce folosind Alexa și Arduino: 10 pași (cu imagini)

Video: Comutator controlat prin voce folosind Alexa și Arduino: 10 pași (cu imagini)
Video: Au Uitat Să Oprească Camera De FILMAT! Momente Incredibile Filmate În LIVE 2024, Noiembrie
Anonim
Comutator controlat prin voce folosind Alexa și Arduino
Comutator controlat prin voce folosind Alexa și Arduino

Scopul principal al acestui proiect este de a utiliza senzorul de temperatură pentru a controla comutatorul (releul) pentru a porni sau opri dispozitivul.

Lista materialelor

  1. Modul releu 12V ==> $ 4.2
  2. Arduino uno ==> $ 8
  3. Senzor de temperatură DHT11 ==> 3 USD
  4. Modul ESP8266 ==> 4,74 USD
  5. Optocuplator N26 ==> 0,60 USD
  6. Regulator de tensiune LM1117 ==> 0,60 USD
  7. Breadboard ==> 2,2 USD
  8. Sârme jumper ==> 2,5 USD
  9. Apăsați butonul ==> 2,5 USD

Costul total al proiectului este de aproximativ 30 de dolari. Acest proiect este împărțit în trei părți. În primul rând, folosim heroku pentru a crea o aplicație. În al doilea rând, construim o abilitate Amazon Alexa pentru a ne implementa munca (partea cea mai importantă). În al treilea rând, ne configurăm hardware-ul și îl programăm folosind Arduino IDE.

Pasul 1: Legarea Heroku cu GitHub

Conectarea Heroku cu GitHub
Conectarea Heroku cu GitHub
Conectarea Heroku cu GitHub
Conectarea Heroku cu GitHub
Conectarea Heroku cu GitHub
Conectarea Heroku cu GitHub

Heroku este o platformă cloud ca serviciu (PaaS) care acceptă mai multe limbaje de programare care este utilizată ca model de implementare a aplicației web. Mai întâi, accesați site-ul heroku creați un cont nou sau conectați-vă acolo. Linkul este dat mai jos

Site-ul Heroku

Să începem cu crearea unei noi aplicații. Am dat numele aplicației mele „iottempswitch” atunci când implementați aplicația, se generează linkul.

Odată ce aplicația este creată, accesați GitHub. GitHub /

Conectați-vă acolo sau înscrieți-vă dacă nu aveți un cont. Odată conectat, creați un depozit nou. Dați orice nume doriți să alegeți și apoi apăsați creați depozit. În pagina următoare faceți clic pe README, pe această pagină dați descrierea pe care doriți să o împărtășiți cu alții. După aceea, faceți clic pe commit new file. Apoi, faceți clic pe butonul de încărcare.

Există două opțiuni fie să trageți și să plasați dosarul, fie să alegeți fișierul. Descărcați fișierele necesare de mai jos. După selectarea fișierelor, apăsați commit changes. Deschideți aplicația pe care ați creat-o la Heroku, apoi accesați secțiunea de implementare. După aceea, faceți clic pe GitHub. Dați numele depozitului pe care l-ați creat în partea GitHub. În cazul meu este Smart-Relay. Copiați-l și lipiți-l aici. Odată ce linkul dvs. este afișat, faceți clic pe conectare. Apoi, faceți clic pe deploy branch (manual). După implementare, puteți vedea linkul în jurnalul de compilare sau puteți vedea linkul în setări. Avem nevoie de acest link mai târziu, când dezvoltăm competența Amazon.

Pasul 2: Amazon

Amazon
Amazon
Amazon
Amazon
Amazon
Amazon

Ultimele imagini ale abilității Alexa

Pe site-ul Amazon Developer folosim abilitățile Amazon pentru a controla declanșatorul comutatorului prin setarea temperaturii și umidității.

Accesați site-ul dezvoltatorului Amazon. Linkul este dat mai jos.

Site-ul web pentru dezvoltatori Amazon

  • Accesați Consola pentru dezvoltatori din dreapta sus, așa cum se arată în figura i4
  • Accesați Alexa, apoi selectați Alexa Skill Kit și apoi creați o nouă abilitate făcând clic pe Adăugați o abilitate nouă.

Când adăugați abilități noi, veți vedea pagina cu informații despre abilități.

1. Informații despre abilități (așa cum se arată în imaginea i7)

trebuie să furnizăm tipul de abilitate, limba, numele, numele invocației.

Tipul abilităților ==> selectați personalizat

  • Nume ==> selectați orice nume.
  • Numele invocării ==> pe care îl utilizați atunci când comunicați cu Alexa. De exemplu; - Alexa, cereți senzorului să activeze declanșatorul sau Alexa, cereți lumina aici Numele invocării sunt senzor și lumină.
  • Limba ==> engleză (India). Selectați în funcție de țara dvs.

faceți clic pe salvare și apoi pe următor

2. Model de interacțiune

Aici, vom folosi pricepere. Așadar, faceți clic pe Lansați Skill Builder. veți vedea pagina așa cum se arată în imaginea i8.

Mai întâi creăm noi intenții. Faceți clic pe Adăugare (în partea stângă) și dați orice nume doriți, am folosit „smartswitch”

  • Dați numele tipului de slot „tip_măsurare” și valorile slotului „temperatură” și „umiditate” așa cum se arată în imaginea i9.
  • După aceasta adăugați numele de tip slot „interogare” și valorile slotului sunt „ce” și „este” așa cum se arată în imaginea i10.
  • După aceea, adăugați slotul „switchstate” și valorile slotului sunt „on” și „off”, așa cum se arată în imaginea i11.
  • Adăugați un alt tip de slot „tempscale”, iar valorile slotului sunt „fahrenheit” și „celcuis” așa cum se arată în imaginea i12.
  • După aceea, adăugați un nou tip de slot aici, vom folosi tipul de slot existent pentru care trebuie să faceți clic pe Utilizare slot existent. În slotul existent căutați amazon.number și selectați acest lucru și adăugați-l. După adăugare, îl veți vedea în tipuri de sloturi, așa cum se arată în imaginea i13.

Așa că am terminat cu tipurile de sloturi tipul total de sloturi pe care îl folosim este 5. Acum, treceți la pasul următor. Faceți clic pe intenția pe care am creat-o, în cazul meu este smartswitch. În partea dreaptă veți vedea slotul de intenție așa cum se arată în imaginea i14.

  • Creați un nou slot, dați-i numele „Switch_State” și mapați-l la „switchstate” utilizând butonul vertical așa cum se arată în imaginea i15.
  • Creați un nou slot, dați-i numele „Sensor_Values” și mapați-l la „type_măsurare” așa cum se arată în imaginea i16.
  • Creați un nou slot, dați-i numele „interogare” și mapați-l la „interogare” așa cum se arată în imaginea i17.
  • După aceea creați un nou slot „tmp_scale” și mapați-l la „tempscale” așa cum se arată în imaginea i18.
  • Creați un nou slot „Numere” și mapați-l la „Amazon. Numbers” așa cum se arată în imaginea i19.

Acum am terminat cu sloturile Intent. Folosim 5 sloturi de intenție. După aceasta, trecem la Exemple de enunțuri, așa cum se arată în imaginea i20.

Adăugați acest exemplu de enunțuri.

setați declanșatorul comutatorului la {Numere} procente {tmp_scale}

{interogare} este starea comutatorului

Comutator declanșator {Switch_State}

setați declanșatorul comutatorului la {Numere} grad {tmp_scale}

comutator rotativ {Switch_State}

{query} switch {Switch_State}

{interogare} este {Sensor_Values} curent

După aceasta salvați modelul și construiți-l. Așteptați ca modelul să fie construit după acel clic pe configurație. După construire veți vedea mesajul așa cum se arată în imaginile i21 și i22.

3. Configurare

Selectați HTTPS și adăugați linkul care a fost generat în timp ce creați aplicația Heroku. În cazul meu este https://iottempswitch.herokuapp.com/. După adăugarea linkului, faceți clic pe Următorul, așa cum se arată în imaginea i23.

4. Certificat SSL Selectați a doua opțiune și faceți clic pe următorul după cum se arată în imaginea i24.

ne-am creat cu succes abilitățile.

Pasul 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Deschideți Arduino IDE. Apoi accesați Fișier ==> Preferință

În Managerul de panouri suplimentare, copiați și lipiți adresa URL și faceți clic pe OK așa cum se arată în imaginea i26.

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

  • Deschideți Board Board accesând Tools ==> Board ==> Board Manager.
  • Deschideți Managerul de panouri și căutați nodemcu așa cum se arată în imaginea i27.
  • După aceea descărcați biblioteca ESP8266WiFi. Deschideți Manager bibliotecă: Schiță ==> Includeți biblioteca ==> Gestionați bibliotecile.
  • Căutați biblioteca ESP8266WiFi și instalați-o.
  • Selectați placa ==> Modul ESP8266 generic.
  • Înainte de a încărca codul, avem nevoie de trei biblioteci.

Biblioteci obligatorii

Mutați aceste biblioteci în dosarul bibliotecilor Arduino

Trebuie să schimbați trei lucruri în codul SSID, PWD și link-ul aplicației Heroku. După aceea, încărcați codul. Pentru modulul ESP trebuie să apăsați butonul bliț în timp ce încărcați codul și apoi apăsați butonul de resetare o dată și apoi eliberați butonul bliț. După încărcarea codului, deschideți terminalul. veți vedea ieșirea.

Pasul 4: Descrierea componentei

Descrierea componentei
Descrierea componentei
Descrierea componentei
Descrierea componentei
Descrierea componentei
Descrierea componentei
Descrierea componentei
Descrierea componentei

1. Ce este un releu

Releul este un dispozitiv electromagnetic care este utilizat pentru a izola electric două circuite și a le conecta magnetic. Sunt dispozitive foarte utile și permit unui circuit să comute altul în timp ce sunt complet separate. Acestea sunt adesea folosite pentru a interfața un circuit electronic (care funcționează la o tensiune scăzută) cu un circuit electric care funcționează la o tensiune foarte mare. De exemplu, un releu poate face un circuit de baterie de 5V DC pentru a comuta un circuit de alimentare de 230V AC.

Cum functioneaza

Un comutator de releu poate fi împărțit în două părți: intrare și ieșire. Secțiunea de intrare are o bobină care generează câmp magnetic atunci când i se aplică o mică tensiune dintr-un circuit electronic. Această tensiune se numește tensiune de funcționare. Releele utilizate în mod obișnuit sunt disponibile în diferite configurații ale tensiunilor de funcționare, cum ar fi 6V, 9V, 12V, 24V etc. Secțiunea de ieșire este formată din contacte care se conectează sau se deconectează mecanic. Într-un releu de bază există trei contacte: normal deschis (NO), normal închis (NC) și comun (COM). La nici o stare de intrare, COM este conectat la NC. Când se aplică tensiunea de funcționare, bobina releului devine energizată și COM schimbă contactul la NO. Sunt disponibile diferite configurații de relee, cum ar fi SPST, SPDT, DPDT etc., care au un număr diferit de contacte de comutare. Prin utilizarea unei combinații adecvate de contactoare, circuitul electric poate fi pornit și oprit. Obțineți detalii interioare despre structura unui comutator de releu.

Terminalul COM este terminalul comun. Dacă bornele COIL sunt alimentate cu tensiunea nominală, terminalele COM și NO au continuitate. Dacă bornele COIL nu sunt alimentate, atunci terminalele COM și NO nu au continuitate.

Terminalul NC este terminalul normal închis. Este terminalul care poate fi alimentat chiar dacă releul nu primește nici o tensiune suficientă sau suficientă pentru a funcționa.

Terminalul NO este terminalul normal deschis. Este terminalul pe care plasați ieșirea pe care o doriți atunci când releul primește tensiunea nominală. Dacă nu există tensiune la bornele COIL sau tensiune insuficientă, ieșirea este deschisă și nu primește tensiune. Când terminalele COIL primesc tensiunea nominală sau puțin sub, terminalul NO primește suficientă tensiune și poate porni dispozitivul la ieșire.

2. Senzor de temperatură DHT

DHT11 este un senzor de umiditate și temperatură, care generează ieșire digitală calibrată. DHT11 poate fi interfață cu orice microcontroler precum Arduino, Raspberry Pi etc. și poate obține rezultate instantanee. DHT11 este un senzor de umiditate și temperatură cu costuri reduse, care oferă fiabilitate ridicată și stabilitate pe termen lung.

3. Descriere completă ESP8266

Modulul ESP8266 WiFi este un SOC autonom cu stivă de protocol TCP / IP integrată care poate oferi acces oricărui microcontroler la rețeaua dvs. WiFi. ESP8266 este capabil să găzduiască o aplicație funcții de rețea de la o altă aplicație Fiecare modul ESP8266 este pre-programat cu o comandă AT.

ESP8266 acceptă APSD pentru aplicații VoIP și interfețe de coexistență Bluetooth, conține un RF autocalibrat care îi permite să funcționeze în toate condițiile de operare și nu necesită piese RF externe.

Caracteristici

  • 802.11 b / g / n
  • Wi-Fi Direct (P2P),
  • soft-AP Stivă de protocol TCP / IP integrată
  • Comutator TR integrat, balun, LNA, amplificator de putere și rețea de potrivire
  • PLL-uri integrate, regulatoare, DCXO și unități de gestionare a energiei
  • + 19,5dBm putere de ieșire în modul 802.11b
  • Opriți curentul de scurgere <10uA
  • 1 MB memorie flash
  • Procesorul integrat pe 32 de biți de mică putere ar putea fi folosit ca procesor de aplicație
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU și agregare A-MSDU și interval de protecție de 0,4 ms
  • Trezește-te și transmite pachete în <2ms
  • Consum de energie de așteptare <1,0mW (DTIM3)

Pin Descriere așa cum se arată în imaginea i34.

Pentru conectarea modulului ESP cu Arduino UNO avem nevoie de regulator de tensiune Lm1117 3.3 sau de orice regulator, deoarece Arduino nu este capabil să furnizeze 3,3 v ESP8266.

Notă: - În timp ce încărcați codul, apăsați butonul flash, apoi apăsați butonul de resetare o dată și apoi eliberați butonul flash, așa cum se arată în imaginea i29.

Pentru conectarea senzorului și releului DHT11 folosim doi pini GPIO ai modulului ESP8266. După încărcarea codului, puteți deconecta pinii RX, TX, GPIO0. Am folosit GPIO0 pentru senzorul DHT11 și GPIO2 pentru relee. Senzorul DHT11 funcționează bine cu ESP8266, dar pentru relee avem nevoie de un lucru suplimentar, adică izolator opto sau cuplaj opto. A se vedea imaginea i30, i31, i32 și i33.

Pasul 5: Conexiuni

ESP8266 ===> DHT11GPIO0 ===> Pin de ieșire

ESP8266 ===> RelayGPIO2 ===> Intrare

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Buton Reset ===> RST

Buton Flash ===> GPIO0

Pasul 6: Verificarea tuturor lucrurilor

Verificarea tuturor lucrurilor
Verificarea tuturor lucrurilor
Verificarea tuturor lucrurilor
Verificarea tuturor lucrurilor
Verificarea tuturor lucrurilor
Verificarea tuturor lucrurilor
Verificarea tuturor lucrurilor
Verificarea tuturor lucrurilor

Ne-am creat cu succes aplicația, abilitățile și hardware-ul nostru este gata. Deci, este timpul să verificați.

Pentru aceasta, ESP8266 este pornit, deoarece serverul nostru rulează pe ESP8266. Aici nu am conectat niciun senzor la ESP8266. Verific doar dacă funcționează sau nu, dar puteți conecta senzorul, releu la ESP8266. Odată ce este conectat la Heroku, veți vedea conectat. Pentru testare, accesați abilitatea Amazon pe care ați creat-o, apoi faceți clic pe pagina de testare. Odată verificat funcționarea acestuia, îmi voi conecta senzorul la ESP8266. Puteți vedea rezultatele așa cum se arată în imaginile i35, i36, 37, 38, 39, 40.

Dacă îl utilizați fără a conecta ESP8266, veți primi această eroare așa cum se arată în imaginea i41.

Enunț pe care îl puteți folosi

setați declanșatorul comutatorului la {Numere} procente {tmp_scale}

ex: - setați declanșatorul comutatorului la 50% umiditate

{interogare} este starea comutatorului

ex-on / off este starea comutatorului

Comutator declanșator {Switch_State}

declanșator comutator ex-on / off

setați declanșatorul comutatorului la {Numbers} grade {tmp_scale}

ex-setează declanșatorul comutatorului la 76 de grade Fahrenheit

ex - setați declanșatorul comutatorului la 24 grade celcius

comutator rotativ {Switch_State}

ex - porniți / opriți comutatorul

A se vedea imaginea i41 la i46 pentru rezultate.

În timp ce vorbiți cu AlexaAlexa, rugați-l pe arduino să activeze / să dezactiveze declanșatorul comutatorului

Alexa, cere arduino să seteze declanșatorul comutatorului la 24 de grade Celsius.

Alexa, cere arduino să seteze declanșatorul comutatorului la 50% umiditate

Alexa, cere arduino să pornească / să oprească comutatorul

Pasul 7: Diagrama VUI (Voice User Interface)

Diagrama VUI (Voice User Interface)
Diagrama VUI (Voice User Interface)

Pasul 8: Demo

Image
Image

1. Setați declanșatorul pentru temperatură și umiditate.

2. Setați declanșatorul la 20 de grade Celsius.

3. Setați declanșatorul la 80% umiditate.

Pasul 9: Schematic

Recomandat: