Indholdsfortegnelse:

Arduino-baseret stemmestyret IOT-relækontakt (Google Home og Alexa understøttet): 11 trin
Arduino-baseret stemmestyret IOT-relækontakt (Google Home og Alexa understøttet): 11 trin

Video: Arduino-baseret stemmestyret IOT-relækontakt (Google Home og Alexa understøttet): 11 trin

Video: Arduino-baseret stemmestyret IOT-relækontakt (Google Home og Alexa understøttet): 11 trin
Video: Clock Shield для Arduino, собери себе часы, пятничный DIY 2024, November
Anonim
Arduino-baseret stemmestyret IOT-relækontakt (Google Home og Alexa understøttes)
Arduino-baseret stemmestyret IOT-relækontakt (Google Home og Alexa understøttes)

Dette projekt beskriver, hvordan man laver en Arduino-baseret, stemmestyret IOT-relækontakt. Dette er et relæ, som du kan tænde og slukke eksternt ved hjælp af en app til iOS og Android, samt knytte den til IFTTT og også styre den med din stemme ved hjælp af Google Home og/eller Alexa. Vi dækker alle trin, der er nødvendige for at oprette enheden, forbinde appen og oprette forbindelse til de forskellige IOT -tjenester.

Forbrugsvarer

  • Wemos D1 Mini Lite ESP8285 (et par dollars på Amazon)
  • 5V relæmodul til Arduino/Raspberry Pi
  • 2N2222 NPN transistor
  • 47K ohm modstand
  • 1K ohm modstand

Trin 1: Byg kredsløbet

Byg kredsløbet
Byg kredsløbet
Byg kredsløbet
Byg kredsløbet
Byg kredsløbet
Byg kredsløbet

Det første trin er at tilslutte kredsløbet. Jeg har inkluderet et skematisk og et traditionelt ledningsdiagram, afhængigt af hvad du er vant til. Jeg lavede mit første kredsløb på et prototypet brødbræt og flyttede det derefter over til et printkort for en mere permanent opsætning og husede det i en 3D -printet projektboks.

Relæet er et opto-isoleret H/L 5V relæ, hvilket betyder, at triggerkredsløbet først er optisk isoleret fra selve relæaktiveringen, hvilket fjerner ethvert potentielt problem med feedback fra relæet tilbage til Wemos-mikrokontrolleren. En god sikkerhed at have. For det andet er det høj/lav omskiftelig, hvilket betyder, at det kan konfigureres ved at flytte den gule jumper, du ser på billederne, fra at udløse når signalet er højt (+5V) eller udløse når signalet er lavt (0V). Wemos selv sender 3,3V fra sine digitale ben, og vi bruger D1 som vores trigger -kilde, hvilket betyder, at vi skal forstærke det lidt, så vi kommer tæt på et +5V digitalt signal for at udløse relæet. Alternativt kan du bruge et 3,3V relæ og fjerne transistorforstærkerkomponenten i kredsløbet og gå direkte fra D1 til signalstiften på relæet. Jeg havde ikke 3,3V relæer, så vi bruger et mere almindeligt 5V relæ og forstærkerkredsløbet.

DC+ og DC- på relæet tilsluttes 5V- og GND-benene på Wemos, som giver den nødvendige spænding til at betjene relæet. Relæet er vurderet fra små spændinger helt til netspænding, men jeg bruger dette til at styre et lavspændingsledningsapplikation. Hvis du bruger dette til at styre netspænding, skal du sørge for at vide, hvad du laver, du er kvalificeret og tager de nødvendige forholdsregler. Hvis ikke, skal du ikke bruge dette til at styre netværksspændingsapplikationer.

Pin D1 på Wemos forbinder til 47K ohm -modstanden, der føder ind i basen på NPN -transistoren. Emitteren binder tilbage til jorden. Kollektoren er forbundet til signalindgangen på relæet. Relæet er indstillet til at udløse ved lav, så når D1 afgiver et signal, forstærkes 3,3v signalet til ca. 5V, og relæet er åbent. Når D1 går lavt, går signalet til relæet lavt, og relæet lukker og fuldender et kredsløb.

Jeg glemte at tage billeder af mit midlertidige kredsløb på prototypebordet, men det lignede nøjagtigt Fritzing -diagrammet ovenfor, hvis det er nyttigt. Jeg inkluderede et antal billeder af mit sidste permanente kredsløb, så du kan se, hvordan det er forbundet, hvis du har brug for nogle indsigter eller har brug for synlighed på de specifikke komponenter, jeg bruger.

Trin 2: Programmering af Wemos - Oversigt

En af de ting, jeg kan lide ved Wemos er, at de kan programmeres ligesom en Arduino ved hjælp af den samme IDE. Der er dog et par trin her.

  1. Installer Wemos -driverne på computeren kan tale med Wemos
  2. Opdater Arduino IDE, så Wemos -kortet er tilgængeligt
  3. Lav en hurtig "Blink" test for at sikre, at alt fungerer korrekt
  4. Bliv konfigureret med Blynk (jeg ved, det er forvirrende, men det er faktisk anderledes end "blinktesten")
  5. Få en ansøgningskode fra Blynk
  6. Opdater Wemos/Arduino -koden med Blynk -informationen
  7. Upload koden til din Wemos -opsætning.

Trin 3: Programmering af Wemos - Installer drivere

Programmering af Wemos - Installer drivere
Programmering af Wemos - Installer drivere

Gå her (dette link ser ud til at ændre sig med jævne mellemrum, jeg prøver at holde det opdateret):

www.wemos.cc/en/latest/ch340_driver.html

Og download den korrekte driverpakke til dit operativsystem. Udpak derefter zip'en til et bibliotek, og kør programmet "SETUP" for at installere det.

Da jeg gjorde dette første gang, fik jeg en underlig fejl om, at det ikke blev installeret. Jeg så en andens note om dette og deres løsning, som fungerede for mig. Så hvis du får en fejl, kan du prøve at bruge knappen "Afinstaller" og derefter bruge "Installer" igen. Forhåbentlig løser det problemet som det gjorde for mig.

Trin 4: Programmering af Wemos - Opdater Arduino IDE

Programmering af Wemos - Opdater Arduino IDE
Programmering af Wemos - Opdater Arduino IDE
Programmering af Wemos - Opdater Arduino IDE
Programmering af Wemos - Opdater Arduino IDE
Programmering af Wemos - Opdater Arduino IDE
Programmering af Wemos - Opdater Arduino IDE

Hvis du ikke har installeret Arduino IDE, er det et godt tidspunkt at gøre det nu. Du kan downloade den fra www.arduino.cc

Her er en reference til, hvad vi skal gøre i dette trin.

wiki.wemos.cc/tutorials:get_started:get_st…

  1. Lad os installere det nye bord, så det vises som en mulighed i Arduino IDE. Trin 2 - 4 uddrages fra installationsguiden på den følgende github -side.

    github.com/esp8266/Arduino

  2. Start Arduino IDE, og åbn vinduet Indstillinger.
  3. Indtast "https://arduino.esp8266.com/stable/package_esp8266com_index.json" i feltet Yderligere bestyrelsesleder -URL'er. Du kan tilføje flere webadresser og adskille dem med kommaer.
  4. Åbn Boards Manager fra Værktøjer> Board> Boards Manager (øverst), søg efter "esp8266" og installer den listede esp8266 -platform.
  5. På dette tidspunkt vil du se Wemos -tavler i Værktøjer → Board: xxx Vælg Wemos D1 Mini. I mit tilfælde, som du kan se på billedet, var det specifikke navn "LOLIN (WEMOS) D1 R2 & mini"
  6. Tilslut et USB -kabel mellem computeren og Wemos
  7. Bekræft, at "Port" nu er aktiv i menuen Værktøjer og ser korrekt ud.

Trin 5: Programmering af Wemos - Blink -testen

Programmering af Wemos - Blink -test
Programmering af Wemos - Blink -test

Inden vi går videre, skal vi sikre os, at vi kan kommunikere med Wemos -kortet, og alt ser ok ud. Den nemmeste måde at gøre dette på er at tilslutte et USB -kabel og prøve at skubbe et enkelt program til Wemos. Blink er det letteste eksempel og har sparet mig en masse besvær, når jeg arbejder med nye boards, at jeg altid gør dette først.

  1. Gå til: Filer> Eksempler> ESP8266> Blink, og indlæs blinkskitsen for en Wemos -enhed
  2. Kompiler og upload skitsen

Hvis den blå LED begynder at blinke cirka en gang i sekundet, er du god til at gå videre til næste trin! Hvis ikke, skal du gå tilbage og fejlfinde de foregående trin. Se om der er et problem med driverne og bestyrelseslederen. Jeg havde nogle problemer med brætpakken til ESP8266 og måtte afinstallere den helt og geninstallere den på grund af noget underligt med versioner, der skete. Giv ikke op, og internetsøgninger kan være din ven!

Forudsat at alt er godt, skal du gå til det næste trin.

Trin 6: Programmering af Wemos - Opsætning af Blynk

Programmering af Wemos - Opsætning af Blynk
Programmering af Wemos - Opsætning af Blynk
Programmering af Wemos - Opsætning af Blynk
Programmering af Wemos - Opsætning af Blynk
Programmering af Wemos - Opsætning af Blynk
Programmering af Wemos - Opsætning af Blynk

I disse næste trin skal vi oprette en konto hos Blynk og få et token, som vi kan bruge til at styre det kredsløb, vi har oprettet.

  1. Download appen, og opret en konto (den er gratis)
  2. Opret et nyt projekt
  3. Vælg Wemos D1 som hardware under Vælg enhed
  4. Giv projektet et navn, og bevar stikketypen som WiFi
  5. Klik på Opret projekt
  6. På dette tidspunkt vil Auth Token blive sendt til den e -mailadresse, du brugte, da du oprettede din Blynk -konto. Gem det til senere, vi vil indsætte værdierne i skitsen i det næste trin.
  7. Når du kommer til den tomme lærredskærm, skal du bare stryge til venstre, og du får widgetmenuen. Vælg "Knap" for at tilføje en "knap" til projektet
  8. Vælg knappen, og konfigurer derefter nålen ved at klikke på den og vælge "Digital" og "D1" som pi og klik på "Ok"
  9. På dette tidspunkt skal alt være klar. For at gøre dette aktivt vil du vælge trekantikonet øverst til højre, men det fungerer ikke lige endnu, før vi får uploadet og konfigureret skitsen, hvilket er det næste trin!

Trin 7: Programmering af Wemos - Installation af Blynk -biblioteket

For at kunne uploade en Blynk -baseret skitse skal vi installere deres bibliotek. Detaljerne kan findes her.

github.com/blynkkk/blynk-library/releases

Tjek også deres baggrund for deres baggrund her (https://blynk.io/en/getting-started)

Dette var forvirrende for mig i starten, men det er meget lettere end det lyder. Bare pak filen ud til dit Arduino -bibliotek. For mig var dette i / user / Documents / Arduino. Der var allerede en mappe kaldet "biblioteker" der. Zip -filen indeholder et bibliotek og et værktøjskatalog. Når du pakker det ud til Arduino -biblioteket, tilføjer det dets indhold til biblioteker og opretter værktøjer, hvis det ikke allerede eksisterede.

Trin 8: Programmering af Wemos - skitsen

Vi er næsten færdige på dette tidspunkt. Skitsen er ret enkel, den er lige fra Blynk og forbinder hovedsageligt Blynk -tjenesten og tavlen. Du kan bruge deres bygherre her:

examples.blynk.cc/?board=WeMos%20D1&shield=ESP8266%20WiFi&example=Widgets%2FTerminal

Eller du kan bruge denne prøve, som burde fungere for dig. Sørg bare for, at du erstatter værdierne for auth -token og dine legitimationsoplysninger til dit wifi -netværk.

/*************************************************************

Download det nyeste Blynk-bibliotek her: https://github.com/blynkkk/blynk-library/releases/latest Blynk er en platform med iOS- og Android-apps til at styre Arduino, Raspberry Pi og lignende over internettet. Du kan nemt bygge grafiske grænseflader til alle dine projekter ved blot at trække og slippe widgets. Downloads, docs, tutorials: https://www.blynk.cc Sketch generator: https://examples.blynk.cc Blynk community: https://community.blynk.cc Følg os: https://www.fb. com/blynkapp Blynk -biblioteket er licenseret under MIT -licens Denne eksempelkode er i det offentlige domæne. ************************************************** ************ Du kan sende/modtage data ved hjælp af WidgetTerminal -objekt. App -projektopsætning: Terminalwidget knyttet til Virtual Pin V1 *************************************** **********************//*Kommenter dette for at deaktivere udskrifter og spare plads*/ #define BLYNK_PRINT Serial #include #include // Du bør få Auth Token i Blynk -appen. // Gå til Projektindstillinger (møtrikikon). char auth = "YourAuthToken"; // Dine WiFi -legitimationsoplysninger. // Indstil adgangskode til "" for åbne netværk. char ssid = "DitNetværksnavn"; char pass = "YourPassword"; // Vedhæft virtuel seriel terminal til Virtual Pin V1 WidgetTerminal terminal (V1); // Du kan sende kommandoer fra Terminal til din hardware. Brug bare // den samme virtuelle pin som din terminalwidget BLYNK_WRITE (V1) {// hvis du skriver "Marco" i Terminal Widget - vil den svare: "Polo:" if (String ("Marco") == param.asStr ()) {terminal.println ("Du sagde: 'Marco'"); terminal.println ("Jeg sagde: 'Polo'"); } andet {// Send det tilbage terminal.print ("Du sagde:"); terminal.write (param.getBuffer (), param.getLength ()); terminal.println (); } // Sørg for, at alt er sendt terminal.flush (); } ugyldig opsætning () {// Debug -konsol Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Du kan også angive server: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); // Dette udskriver Blynk Software -version til Terminal Widget, når // din hardware får forbindelse til Blynk Server terminal.println (F ("Blynk v" BLYNK_VERSION ": Enhed startet")); terminal.println (F ("-------------")); terminal.println (F ("Skriv 'Marco' og få et svar, eller skriv")); terminal.println (F ("alt andet og få det udskrevet tilbage.")); terminal.flush (); } void loop () {Blynk.run (); }

Trin 9: Programmering af Wemos - sidste trin

Image
Image

Når skitsen er indlæst, skal du kompilere og uploade skitsen, og du skal være klar til at teste din opsætning!

Åbn Blynk -appen, klik på trekanten i øverste højre hjørne for dit Wemos -projekt

Klik derefter på knappen! Du skal høre reliklikket og status -LED'erne på relækortet angiver, at relæet har ændret tilstand.

Nu kan du tilslutte relæet til enhver lavspændingsapplikation, der kræver en simpel switch og styre det fra din Blynk -app. Den sidste ting, vi skal gøre, er at binde IFTTT og bruge Google eller Alexa til at styre Blynk -systemet, så vi ikke behøver at gøre det fra vores Blynk -app.

Trin 10: Kontrol af Blynk med IFTTT og Google Home eller Alexa

Jeg antager på dette tidspunkt, at du har en vis fortrolighed med IFTTT. Hvis ikke, er der nogle fremragende selvstudier derude, som hjælper dig med at lære at bruge og udnytte IFTTT. Det er meget kraftfuldt og noget, du gerne vil lære, hvis du ikke allerede kender det.

  1. Opret en ny applet i IFTTT
  2. Vælg Google Assistant som "If This", og brug en "Simple Phrase" som udløser. For mig, da dette skulle tænde eller slukke for min pejs, var min sætning "tænd for pejsen"
  3. Søg efter og brug Webhooks i delen "Så det"
  4. Vælg "Foretag en webanmodning"
  5. For den webadresse, du vil bruge:

    "https://blynk-cloud.com/XXXXYYYYZZZZZ/update/d5?value=1"

  6. Indstil metoden til GET, indholdstypen til urlenkodet, og du kan efterlade KROPPEN tom og derefter gemme

Vent et par minutter, og prøv derefter din sætning med din Google Home -enhed. Jeg lagde mærke til, at det tager cirka to minutter, før det er klar.

BEMÆRK: en anden ting at være opmærksom på her. Bemærk, at jeg bruger "d5" i mit API -opkald, men jeg tilsluttede pin D1 på kortet. Det tog mig cirka en dag at finde ud af, at GPIO -pin -nummereringen og den skærmtrykte nummerering på tavlen ikke er det samme. Efter at have ændret værdier med direkte URL -opkald og testet spændingerne på forskellige stifter med en voltmåler, kunne jeg bemærke, at et opkald til d1 via API ændrede spændingen, men ikke ved D1 på tavlen. d5/GPIO 5 svarede faktisk til D1 på tavlen. Når jeg lavede den justering, fungerede alt smukt!

Tilslutning af Alexa er identisk med Google home, bare ved hjælp af Alexa -tjenesten på IFTTT i stedet.

Trin 11: Konklusion

På dette tidspunkt skal du have et fungerende stemmestyret IOT-relæ ved hjælp af Wemos D1 mini lite. Nyd og held og lykke!

Igen er elektricitet farligt, så tag passende forholdsregler, og hvis du ikke er kvalificeret, skal du ikke gøre det.

Anbefalede: