Innehållsförteckning:

Röststyrd switch med Alexa och Arduino: 10 steg (med bilder)
Röststyrd switch med Alexa och Arduino: 10 steg (med bilder)

Video: Röststyrd switch med Alexa och Arduino: 10 steg (med bilder)

Video: Röststyrd switch med Alexa och Arduino: 10 steg (med bilder)
Video: 🏠 Best 10 Smart Home Thermostats of 2023 | Trends & Tips for Setup Home Automation Deals Unveiled! 2024, Juli
Anonim
Röststyrd switch med Alexa och Arduino
Röststyrd switch med Alexa och Arduino

Huvudsyftet med detta projekt är att använda temperaturgivare för att styra omkopplare (relä) för att slå på eller stänga av enheten.

Materialförteckning

  1. 12V relämodul ==> $ 4,2
  2. Arduino uno ==> $ 8
  3. DHT11 temperaturgivare ==> $ 3
  4. ESP8266 -modul ==> $ 4,74
  5. N26 optokopplare ==> $ 0,60
  6. LM1117 spänningsregulator ==> $ 0,60
  7. Brödbräda ==> $ 2,2
  8. Bygeltrådar ==> $ 2,5
  9. Tryckknapp ==> $ 2,5

Den totala kostnaden för projektet är cirka 30 dollar. Detta projekt är uppdelat i tre delar. Först använder vi heroku för att skapa en app. För det andra bygger vi en Amazon Alexa -färdighet för att genomföra vårt arbete (viktigaste delen). För det tredje konfigurerar vi vår hårdvara och programmerar den med Arduino IDE.

Steg 1: Länka Heroku till GitHub

Länka Heroku med GitHub
Länka Heroku med GitHub
Länkar Heroku med GitHub
Länkar Heroku med GitHub
Länkar Heroku med GitHub
Länkar Heroku med GitHub

Heroku är en molnplattform som en tjänst (PaaS) som stöder flera programmeringsspråk som används som en modell för distribution av webbapplikationer. Gå först till heroku -webbplatsen skapa ett nytt konto eller logga in där. Länken ges nedan

Herokus webbplats

Låt oss börja med att skapa en ny app. Jag har gett mitt appnamn "iottempswitch" när du distribuerar app, länk genereras.

När appen är klar går du till GitHub. GitHub/

Logga in där eller registrera dig om du inte har ett konto. När du är inloggad skapar du ett nytt förråd. Ge vilket namn du vill välja och tryck sedan på skapa lagringsplats. Klicka på README på nästa sida, på den här sidan ge en beskrivning som du vill dela med andra. Klicka sedan på begå ny fil. Klicka sedan på uppladdningsknappen.

Det finns två alternativ antingen du drar och släpper mapp eller väljer fil. Ladda ner nödvändiga filer nedan. När du har valt filer trycker du på begå ändringar. Öppna appen som du skapade på Heroku och gå sedan till distributionsavsnittet. Efter det Klicka på GitHub. Give lagringsnamn som du skapade på GitHub -sidan. I mitt fall är det Smart-Relay. Kopiera det och klistra in det här. När din länk visas klicka på anslut. Klicka sedan på distribuera gren (manuell). Efter distributionen kan du se länk i byggloggen eller så kan du se länk i inställningarna. Vi behöver denna länk senare när vi gör Amazon -skicklighet.

Steg 2: Amazon

Amazon
Amazon
Amazon
Amazon
Amazon
Amazon

Senaste bilderna på Alexa skicklighet

På Amazon Developer -sajten använder vi Amazon -skicklighet för att styra omkopplare genom att ställa in temperatur och luftfuktighet.

Gå till Amazon Developer Site. Länken ges nedan.

Amazons utvecklarwebbplats

  • Gå till utvecklarkonsolen uppe till höger som visas i figur i4
  • Gå till Alexa, välj sedan Alexa Skill Kit och skapa sedan ny färdighet genom att klicka på Lägg till ny skicklighet.

När du lägger till ny färdighet kommer du att se sidan med färdighetsinformation.

1. Färdighetsinformation (som visas i bild i7)

vi måste ange färdighetstyp, språk, namn, anropsnamn.

Färdighetstyp ==> välj anpassad

  • Namn ==> välj vilket namn som helst.
  • Åkallningsnamn ==> som du använder när du kommunicerar med Alexa. Till exempel;- Alexa, be sensorn att slå på omkopplaren eller Alexa, fråga ljuset på här är anropsnamn sensor och ljus.
  • Språk ==> engelska (Indien). Välj enligt ditt land

klicka på spara och sedan nästa

2. Interaktionsmodell

Här kommer vi att använda färdighetsbyggare. Så klicka på Launch Skill Builder. du kommer att se sidan som visas i bild i8.

Först skapar vi nya avsikter. Klicka på Lägg till (på vänster sida) och ange vilket namn du vill att jag använde "smartswitch"

  • Ge platstypnamn "mått_typ" och platsvärden "temperatur" och "luftfuktighet" enligt bilden i9.
  • Lägg sedan till platsplatsnamnet "fråga" och platsvärdena är "vad" och "är" som visas i bild i10.
  • Lägg sedan till platsen "switchstate" och slot -värdena "on" och "off" som visas i bild i11.
  • Lägg till en annan plats "tempscale" och platsvärdena är "fahrenheit" och "celcuis" som visas i bild i12.
  • Efter att lägga till ny slottyp här använder vi befintlig slottyp för det måste vi klicka på använd befintlig slot. I befintlig slot leta efter amazon.number och välj detta och lägg till det. Efter att du lagt till det kommer du att se det i kortplatser som visas i bild i13.

Så vi är klara med slottyperna totalt antal slots vi använder är 5. Gå nu till nästa steg. Klicka på avsikt som vi skapade, i mitt fall är det smartswitch. På höger sida kommer du att se intention slot som visas i bild i14.

  • Skapa en ny plats, ge den namnet "Switch_State" och mappa den till "switchstate" med hjälp av rullgardinsmenyn som visas i bild i15.
  • Skapa en ny plats, ge den namnet "Sensor_Values" och mappa den till "mått_typ" enligt bilden i16.
  • Skapa en ny plats, ge den namnet "fråga" och mappa den till "fråga" enligt bilden i17.
  • Efter det skapar du en ny plats "tmp_scale" och mappar den till "tempscale" enligt bilden i18.
  • Skapa ny plats "Numbers" och mappa den till "Amazon. Numbers" som visas i bild i19.

Nu är vi klara med Intent slots. Vi använder 5 avsiktsplatser. Efter detta går vi till Sample Utterances som visas i bild i20.

Lägg till detta exempeluttalanden.

ställ in switchutlösaren på {Numbers} procent {tmp_scale}

{query} är switchläget

{Switch_State} växelutlösare

ställ in switchutlösaren på {Numbers} -grad {tmp_scale}

vrid omkopplaren {Switch_State}

{query} switch {Switch_State}

{query} är den aktuella {Sensor_Values}

Efter detta spara modell och bygga den. Vänta på att modellen ska byggas efter det, klicka på konfigurationen. Efter att ha byggt ser du meddelandet som visas i bild i21 och i22.

3. Konfiguration

Välj HTTPS och lägg till länk som skapades när du skapade en heroku -app. I mitt fall är det https://iottempswitch.herokuapp.com/. När du har lagt till länken klickar du på nästa som visas i bild i23.

4. SSL -certifikat Välj det andra alternativet och klicka på nästa som visas i bild i24.

vi har framgångsrikt skapat vår skicklighet.

Steg 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Öppna Arduino IDE. Gå sedan till File ==> Preferens

I Extra Boards Manager, kopiera och klistra in webbadressen och klicka på ok som visas i bild i26.

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

  • Öppna Board Manager genom att gå till Tools ==> Board ==> Board Manager.
  • Öppna Boards Manager och sök efter nodemcu som visas i bild i27.
  • Efter det ladda ner ESP8266WiFi -bibliotek. Öppna bibliotekshanteraren: Sketch ==> Inkludera bibliotek ==> Hantera bibliotek.
  • Sök efter ESP8266WiFi -bibliotek och installera det.
  • Välj kort ==> Generisk ESP8266 -modul.
  • Innan vi laddar upp koden behöver vi tre bibliotek.

Obligatoriska bibliotek

Flytta detta bibliotek till biblioteksmappen i Arduino

Du måste ändra tre saker i kod SSID, PWD och din heroku -applänk. Efter det ladda upp koden. För ESP -modulen måste du trycka på blixtknappen medan du laddar upp koden och sedan trycka på återställningsknappen en gång och sedan släppa blixtknappen. När du har laddat upp koden öppnar du terminalen. du kommer att se utmatning.

Steg 4: Komponentbeskrivning

Komponent Beskrivning
Komponent Beskrivning
Komponent Beskrivning
Komponent Beskrivning
Komponent Beskrivning
Komponent Beskrivning
Komponent Beskrivning
Komponent Beskrivning

1. Vad är ett stafett

Relä är en elektromagnetisk enhet som används för att isolera två kretsar elektriskt och ansluta dem magnetiskt. De är mycket användbara enheter och tillåter en krets att byta en annan medan de är helt separata. De används ofta för att koppla en elektronisk krets (som arbetar vid låg spänning) till en elektrisk krets som fungerar med mycket hög spänning. Till exempel kan ett relä göra en 5V DC batterikrets för att växla en 230V AC nätkrets.

Hur det fungerar

En reläbrytare kan delas in i två delar: ingång och utgång. Ingångssektionen har en spole som genererar magnetfält när en liten spänning från en elektronisk krets appliceras på den. Denna spänning kallas driftspänning. Vanligt använda reläer finns i olika konfigurationer av driftspänningar som 6V, 9V, 12V, 24V etc. Utgångssektionen består av kontaktorer som mekaniskt ansluter eller kopplar ur. I ett grundrelä finns tre kontaktorer: normalt öppna (NO), normalt stängda (NC) och gemensamma (COM). Vid inget ingångsläge är COM ansluten till NC. När matningsspänningen appliceras får reläspolen ström och COM ändrar kontakten till NO. Olika reläkonfigurationer är tillgängliga som SPST, SPDT, DPDT etc, som har olika antal växlingskontakter. Genom att använda en korrekt kombination av kontaktorer kan den elektriska kretsen slås på och av. Få inre detaljer om strukturen hos en reläbrytare.

COM -terminalen är den gemensamma terminalen. Om COIL -terminalerna får ström med märkspänningen har COM- och NO -terminalerna kontinuitet. Om COIL -terminalerna inte är strömförsörjda har COM- och NO -terminalerna ingen kontinuitet.

NC -terminalen är den normalt stängda terminalen. Det är terminalen som kan slås på även om reläet inte får någon eller tillräcklig spänning för att fungera.

NO -terminalen är terminalen Normally Open. Det är terminalen där du placerar den utgång du vill ha när reläet får sin märkspänning. Om det inte finns någon spänning till COIL -terminalerna eller otillräcklig spänning är utgången öppen och får ingen spänning. När COIL -terminalerna mottar märkspänningen eller lite under, får NO -terminalen tillräcklig spänning och kan slå på enheten på utgången.

2. DHT temperaturgivare

DHT11 är en fukt- och temperatursensor som genererar kalibrerad digital utgång. DHT11 kan vara gränssnitt med alla mikrokontroller som Arduino, Raspberry Pi, etc. och få omedelbara resultat. DHT11 är en lågkostnadsfuktighet och temperatursensor som ger hög tillförlitlighet och långsiktig stabilitet.

3. ESP8266 Komplett beskrivning

ESP8266 WiFi -modulen är en fristående SOC med integrerad TCP/IP -protokollstack som kan ge alla mikrokontroller åtkomst till ditt WiFi -nätverk. ESP8266 kan antingen vara värd för en applikations nätverksfunktioner från en annan applikation Varje ESP8266-modul kommer förprogrammerad med ett AT-kommando.

ESP8266 stöder APSD för VoIP-applikationer och Bluetooth-samexistensgränssnitt, den innehåller en självkalibrerad RF som låter den fungera under alla driftförhållanden och kräver inga externa RF-delar.

Funktioner

  • 802,11 b/g/n
  • Wi-Fi Direct (P2P),
  • soft-APIntegrated TCP/IP protocol stack
  • Integrerad TR -switch, balun, LNA, effektförstärkare och matchande nätverk
  • Integrerade PLL, regulatorer, DCXO och energihanteringsenheter
  • +19,5 dBm uteffekt i 802.11b -läge
  • Stäng av läckström på <10uA
  • 1 MB flashminne
  • Integrerad 32-bitars CPU med låg effekt kan användas som applikationsprocessor
  • SDIO 1.1 / 2.0, SPI, UART
  • STBC, 1 × 1 MIMO, 2 × 1 MIMOA-MPDU & A-MSDU aggregation & 0.4ms guard interval
  • Vakna och skicka paket på <2 ms
  • Strömförbrukning i vänteläge på <1,0 mW (DTIM3)

Pin Beskrivning enligt bilden i34.

För att ansluta ESP -modulen till Arduino UNO behöver vi Lm1117 3.3 spänningsregulator eller någon regulator eftersom Arduino inte kan leverera 3,3 v till ESP8266.

Obs:- När du laddar upp koden, tryck på blixtknappen och tryck sedan på återställningsknappen en gång och släpp sedan blixtknappen enligt bilden i29.

För anslutning av DHT11 -sensor och relä använder vi två GPIO -stift i ESP8266 -modulen. När du har laddat upp koden kan du koppla bort RX-, TX-, GPIO0 -stiften. Jag har använt GPIO0 för DHT11 -sensor och GPIO2 för reläer. DHT11 -sensorn fungerar bra med ESP8266 men för reläer behöver vi en extra sak, dvs opto -isolator eller optokopplare. Se bild i30, i31, i32 och i33.

Steg 5: Anslutningar

ESP8266 ===> DHT11GPIO0 ===> Utgångsstift

ESP8266 ===> ReläGPIO2 ===> Ingång

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

Återställningsknapp ===> RST

Blixtknapp ===> GPIO0

Steg 6: Kontrollera alla saker

Kontrollerar alla saker
Kontrollerar alla saker
Kontrollerar alla saker
Kontrollerar alla saker
Kontrollerar alla saker
Kontrollerar alla saker
Kontrollerar alla saker
Kontrollerar alla saker

Vi har framgångsrikt skapat vår app, skicklighet och vår hårdvara är klar. Så det är dags att kolla.

Därför är din ESP8266 påslagen eftersom vår server körs på ESP8266. Här har jag inte anslutit någon sensor till ESP8266. Jag kontrollerar bara om den fungerar eller inte, men du kan ansluta sensor, relä till ESP8266. När den är ansluten till Heroku ser du ansluten. För testning gå till Amazon -skicklighet som du skapade, klicka sedan på testsidan. När det har verifierats fungerar det kommer jag att ansluta min sensor till ESP8266. Du kan se resultat som visas i bilderna i35, i36, 37, 38, 39, 40.

Om du använder det utan att ansluta ESP8266 får du det här felet som visas i bild i41.

Uttalande du kan använda

ställ in switchutlösaren på {Numbers} procent {tmp_scale}

ex:- ställ strömbrytaren på 50 procent luftfuktighet

{query} är switchläget

ex- på/av är omkopplarens tillstånd

{Switch_State} växelutlösare

ex -on/off switch trigger

ställ in switchutlösaren på {Numbers} -grad {tmp_scale}

ex - ställ in omkopplaren till 76 grader Fahrenheit

ex - ställ omkopplaren till 24 grader celsius

vrid omkopplaren {Switch_State}

ex - vrid strömbrytaren på/av

Se bild i41 till i46 för resultat.

Medan du pratar med AlexaAlexa, be arduino att slå på/av strömbrytaren

Alexa, be arduino att ställa in omkopplaren på 24 grader celsius.

Alexa, be arduino att ställa in omkopplaren på 50 procent luftfuktighet

Alexa, be arduino att slå på/av strömbrytaren

Steg 7: VUI (Voice User Interface) -diagram

VUI -diagram (röstanvändargränssnitt)
VUI -diagram (röstanvändargränssnitt)

Steg 8: Demo

Image
Image

1. Sätt avtryckaren för temperatur och luftfuktighet.

2. Sätt avtryckaren till 20 grader celsius.

3. Sätt utlösaren till 80 procent luftfuktighet.

Steg 9: Schematisk

Rekommenderad: