Turinys:

„Arduino“balsu valdomas IOT relės jungiklis (palaikomas „Google Home“ir „Alexa“): 11 žingsnių
„Arduino“balsu valdomas IOT relės jungiklis (palaikomas „Google Home“ir „Alexa“): 11 žingsnių

Video: „Arduino“balsu valdomas IOT relės jungiklis (palaikomas „Google Home“ir „Alexa“): 11 žingsnių

Video: „Arduino“balsu valdomas IOT relės jungiklis (palaikomas „Google Home“ir „Alexa“): 11 žingsnių
Video: High Density 2022 2024, Birželis
Anonim
„Arduino“balsu valdomas IOT relės jungiklis (palaikomas „Google Home“ir „Alexa“)
„Arduino“balsu valdomas IOT relės jungiklis (palaikomas „Google Home“ir „Alexa“)

Šiame projekte aprašoma, kaip sukurti „Arduino“pagrindu valdomą balsu valdomą IOT relės jungiklį. Tai relė, kurią galite įjungti ir išjungti nuotoliniu būdu naudodami „iOS“ir „Android“skirtą programą, taip pat susieti ją su IFTTT ir valdyti balsu naudodami „Google Home“ir (arba) „Alexa“. Mes apimsime visus veiksmus, kurių reikia norint sukurti įrenginį, prijungti programą ir prisijungti prie įvairių IOT paslaugų.

Prekės

  • „Wemos D1 Mini Lite ESP8285“(keli doleriai „Amazon“)
  • 5 V relės modulis „Arduino“/„Raspberry Pi“
  • 2N2222 NPN tranzistorius
  • 47K omų rezistorius
  • 1K omo rezistorius

1 žingsnis: sukurkite grandinę

Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę

Pirmasis žingsnis yra prijungti grandinę. Pridedu schemą ir tradicinę elektros instaliacijos schemą, priklausomai nuo to, prie ko esate įpratę. Savo pirmąją grandinę padariau ant prototipinės duonos lentos, o tada perkėliau ją į PCB, kad būtų pastoviau, ir įdėjau į 3D spausdintą projekto dėžutę.

Relė yra opto izoliuota H/L 5V relė, o tai reiškia, kad pirmiausia paleidimo grandinė yra optiškai izoliuota nuo pačios relės aktyvinimo, o tai pašalina bet kokias galimas problemas, susijusias su grįžtamuoju ryšiu iš relės atgal į „Wemos“mikrovaldiklį. Puikus saugumas. Antra, jis gali būti perjungiamas aukštai/žemai, o tai reiškia, kad jį galima sukonfigūruoti, perkeliant geltoną trumpiklį, kurį matote nuotraukose, nuo paleidimo, kai signalas yra aukštas (+5 V), arba suveikimą, kai signalas yra žemas (0 V). Pats „Wemos“iš savo skaitmeninių kaiščių siunčia 3,3 V įtampą, o kaip trigerio šaltinį naudojame D1, o tai reiškia, kad turime jį šiek tiek sustiprinti, kad pasiektume arti +5 V skaitmeninio signalo, kad suaktyvintume relę. Arba galite naudoti 3.3 V relę ir pašalinti grandinėje esantį tranzistoriaus stiprintuvo komponentą ir pereiti tiesiai iš D1 į relės signalo kaištį. Aš neturėjau 3,3 V relių, todėl mes naudojame labiau paplitusią 5 V relę ir stiprintuvo grandinę.

Relės DC+ ir DC- jungiasi prie „Wemos“5V ir GND kaiščių, kurie užtikrina reikiamą įtampą relės veikimui. Relė yra įvertinta nuo mažos įtampos iki linijos įtampos, tačiau aš ją naudoju žemos įtampos laidų valdymui. Jei naudojate tai tinklo įtampai valdyti, įsitikinkite, kad žinote, ką darote, esate kvalifikuotas ir imatės atitinkamų atsargumo priemonių. Jei ne, tada nenaudokite to, kad valdytumėte linijos įtampos programas.

„Wemos“kaištis D1 jungiasi prie 47K omų rezistoriaus, kuris tiekiamas į NPN tranzistoriaus pagrindą. Skleidėjas susiejamas su žeme. Kolektorius prijungtas prie relės signalo įvesties. Relė nustatyta, kad suveiktų žemai, todėl kai D1 duoda signalą, 3,3 V signalas sustiprinamas iki maždaug 5 V ir relė yra atidaryta. Kai D1 sumažėja, signalas į relę sumažėja, o relė užsidaro ir užbaigia grandinę.

Pamiršau nufotografuoti savo laikinąją grandinę prototipų kepimo plokštėje, tačiau ji atrodė lygiai taip pat, kaip aukščiau pateikta Fritzingo diagrama, jei tai naudinga. Įtraukiau keletą savo paskutinės nuolatinės grandinės nuotraukų, kad galėtumėte pamatyti, kaip ji prijungta, jei jums reikia tam tikrų įžvalgų ar matomumo dėl konkrečių naudojamų komponentų.

2 žingsnis: „Wemos“programavimas - apžvalga

Vienas iš dalykų, kurie man patinka „Wemos“, yra tai, kad juos galima užprogramuoti kaip „Arduino“, naudojant tą patį IDE. Tačiau čia yra keli žingsniai.

  1. Įdiekite „Wemos“tvarkykles į kompiuterį, kad galėtumėte kalbėtis su „Wemos“
  2. Atnaujinkite „Arduino IDE“, kad būtų prieinama „Wemos“lenta
  3. Atlikite greitą „mirksėjimo“testą, kad įsitikintumėte, jog viskas veikia tinkamai
  4. Nustatykite „Blynk“(žinau, kad tai painu, bet tai iš tikrųjų skiriasi nuo „mirksėjimo testo“)
  5. Gaukite programos kodą iš „Blynk“
  6. Atnaujinkite „Wemos“/„Arduino“kodą naudodami „Blynk“informaciją
  7. Įkelkite kodą į „Wemos“sąranką.

3 žingsnis: „Wemos“programavimas - įdiekite tvarkykles

„Wemos“programavimas - įdiekite tvarkykles
„Wemos“programavimas - įdiekite tvarkykles

Eikite čia (atrodo, kad ši nuoroda periodiškai keičiasi, bandysiu ją nuolat atnaujinti):

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

Ir atsisiųskite tinkamą OS tvarkyklės paketą. Tada išskleiskite ZIP failą į katalogą ir paleiskite programą „SETUP“, kad ją įdiegtumėte.

Kai tai padariau pirmą kartą, gavau keistą klaidą dėl neįdiegimo. Mačiau kažkieno užrašą apie tai ir jų sprendimą, kuris man pavyko. Taigi, jei gaunate klaidą, pabandykite naudoti mygtuką „Pašalinti“ir vėl naudokite „Įdiegti“. Tikiuosi, kad tai išspręs problemą, kaip ir man.

4 žingsnis: „Wemos“programavimas - atnaujinkite „Arduino IDE“

„Wemos“programavimas - atnaujinkite „Arduino IDE“
„Wemos“programavimas - atnaujinkite „Arduino IDE“
„Wemos“programavimas - atnaujinkite „Arduino IDE“
„Wemos“programavimas - atnaujinkite „Arduino IDE“
„Wemos“programavimas - atnaujinkite „Arduino IDE“
„Wemos“programavimas - atnaujinkite „Arduino IDE“

Jei neįdiegėte „Arduino IDE“, tinkamas laikas tai padaryti dabar. Ją galite atsisiųsti iš www.arduino.cc

Štai nuoroda, ką mes ketiname daryti šiame žingsnyje.

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

  1. Įdiekime naują plokštę, kad ji būtų rodoma kaip „Arduino IDE“parinktis. 2–4 veiksmai ištraukti iš diegimo vadovo kitame „Github“puslapyje.

    github.com/esp8266/Arduino

  2. Paleiskite „Arduino IDE“ir atidarykite nuostatų langą.
  3. Į lauką Papildomi valdytojo URL įveskite „https://arduino.esp8266.com/stable/package_esp8266com_index.json“. Galite pridėti kelis URL, atskirdami juos kableliais.
  4. Atidarykite „Boards Manager“iš „Tools“> „Board“> „Boards Manager“(viršuje), ieškokite „esp8266“ir įdiekite nurodytą platformą esp8266.
  5. Šiuo metu pamatysite „Wemos“plokštes skiltyje Įrankiai → Lenta: xxx Pasirinkite „Wemos D1 Mini“. Mano atveju, kaip matote iš paveikslėlio, konkretus pavadinimas buvo „LOLIN (WEMOS) D1 R2 & mini“
  6. Prijunkite USB kabelį tarp kompiuterio ir „Wemos“
  7. Patvirtinkite, kad „Prievadas“dabar yra aktyvus meniu Įrankiai ir atrodo teisingai.

5 veiksmas: „Wemos“- mirksėjimo testo programavimas

„Wemos“programavimas - mirksėjimo testas
„Wemos“programavimas - mirksėjimo testas

Prieš eidami toliau, turime įsitikinti, kad galime bendrauti su „Wemos“lenta ir viskas atrodo gerai. Lengviausias būdas tai padaryti yra prijungti USB kabelį ir pabandyti perkelti paprastą programą į „Wemos“. „Blink“yra paprasčiausias pavyzdys ir sutaupiau daug rūpesčių dirbant su naujomis lentomis, kad visada tai darau pirmiausia.

  1. Eikite į: Failas> Pavyzdžiai> ESP8266> Mirksėti ir įkelti „Wemos“įrenginio mirksėjimo eskizą
  2. Sudarykite ir įkelkite eskizą

Jei mėlynas šviesos diodas pradeda mirksėti maždaug kartą per sekundę, tuomet galite pereiti prie kito žingsnio! Jei ne, grįžkite ir pašalinkite ankstesnius veiksmus. Pažiūrėkite, ar nėra problemų su vairuotojais ir valdybos valdytoju. Turėjau tam tikrų problemų dėl ESP8266 plokštės paketo ir turėjau jį visiškai pašalinti ir iš naujo įdiegti dėl kažko keisto su versijomis. Nepasiduokite, o paieškos internete gali būti jūsų draugas!

Darant prielaidą, kad viskas gerai, pereikite prie kito žingsnio.

6 veiksmas: „Wemos“programavimas - „Blynk“nustatymas

„Wemos“programavimas - „Blynk“nustatymas
„Wemos“programavimas - „Blynk“nustatymas
„Wemos“programavimas - „Blynk“nustatymas
„Wemos“programavimas - „Blynk“nustatymas
„Wemos“programavimas - „Blynk“nustatymas
„Wemos“programavimas - „Blynk“nustatymas

Atlikdami šiuos kitus veiksmus, turime sukurti „Blynk“paskyrą ir gauti žetoną, kuriuo galėtume valdyti savo sukurtą grandinę.

  1. Atsisiųskite programą ir sukurkite paskyrą (ji nemokama)
  2. Sukurkite naują projektą
  3. Skiltyje „Pasirinkti įrenginį“kaip aparatūrą pasirinkite „Wemos D1“
  4. Suteikite projektui pavadinimą ir palikite jungties tipą kaip „WiFi“
  5. Spustelėkite Sukurti projektą
  6. Šiuo metu autentifikavimo ženklas bus išsiųstas el. Pašto adresu, kurį naudojote kurdami „Blynk“paskyrą. Išsaugokite tai vėlesniam laikui, kitame žingsnyje įterpsime reikšmes į eskizą.
  7. Kai pateksite į tuščią drobės ekraną, tiesiog braukite kairėn ir gausite valdiklio meniu. Pasirinkite „Mygtukas“, kad prie projekto pridėtumėte „mygtuką“
  8. Pasirinkite mygtuką, tada sukonfigūruokite smeigtuką spustelėdami jį ir pasirinkę „Skaitmeninis“ir „D1“kaip pi ir spustelėkite „Gerai“
  9. Šiuo metu viskas turėtų būti paruošta. Norėdami tai padaryti aktyviai, norite pasirinkti trikampio piktogramą viršutiniame dešiniajame kampe, tačiau ji kol kas neveiks, kol nesiųsime eskizo ir nesukonfigūruosime, o tai yra kitas žingsnis!

7 žingsnis: „Wemos“programavimas - „Blynk“bibliotekos įdiegimas

Kad galėtume įkelti „Blynk“eskizą, turime įdiegti jų biblioteką. Išsamią informaciją rasite čia.

github.com/blynkkk/blynk-library/releases

Be to, norėdami sužinoti daugiau, apsilankykite pagrindinėje jų svetainėje čia (https://blynk.io/en/getting-started)

Man iš pradžių tai sukėlė painiavą, bet tai daug lengviau nei atrodo. Tiesiog išpakuokite failą į „Arduino“katalogą. Man tai buvo / user / Documents / Arduino. Ten jau buvo aplankas pavadinimu „bibliotekos“. ZIP faile yra katalogas „biblioteka“ir „įrankiai“. Kai išpakuojate jį į „Arduino“katalogą, jis prideda jo turinį prie bibliotekų ir sukuria įrankius, jei jo dar nebuvo.

8 žingsnis: „Wemos“programavimas - eskizas

Šiuo metu mes beveik baigėme. Eskizas yra gana paprastas, jis yra tiesiai iš „Blynk“ir iš esmės jungia „Blynk“paslaugą ir lentą. Jų kūrėją galite naudoti čia:

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

Arba galite naudoti šį pavyzdį, kuris jums turėtų tikti. Tiesiog įsitikinkite, kad pakeisite autentifikavimo žetono reikšmes ir savo „Wi -Fi“tinklo kredencialus.

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

Atsisiųskite naujausią „Blynk“biblioteką čia: https://github.com/blynkkk/blynk-library/releases/latest „Blynk“yra platforma su „iOS“ir „Android“programomis, skirta valdyti „Arduino“, „Raspberry Pi“ir panašius dalykus internete. Galite lengvai sukurti grafines sąsajas visiems savo projektams tiesiog vilkdami ir numesdami valdiklius. Atsisiuntimai, dokumentai, vadovėliai: https://www.blynk.cc Eskizų generatorius: https://examples.blynk.cc Blynk bendruomenė: https://community.blynk.cc Sekite mus: https://www.fb. com/blynkapp „Blynk“biblioteka yra licencijuota pagal MIT licenciją. Šis pavyzdinis kodas yra viešai prieinamas. ************************************************* *********** Naudodami objektą WidgetTerminal galite siųsti/gauti bet kokius duomenis. Programos projekto sąranka: terminalo valdiklis prijungtas prie virtualios PIN1 V1 ************************************** **********************//*Pakomentuokite tai, kad išjungtumėte spausdinimą ir sutaupytumėte vietos*/ #define BLYNK_PRINT Serial #include #include // Turėtumėte gauti Auth Ženklas programoje „Blynk“. // Eikite į projekto nustatymus (veržlės piktograma). char auth = "YourAuthToken"; // Jūsų „WiFi“prisijungimo duomenys. // Atviriems tinklams nustatykite slaptažodį į „“. char ssid = "Jūsų tinklo pavadinimas"; char pass = "Jūsų slaptažodis"; // Pridėti virtualų nuoseklųjį terminalą prie Virtual Pin V1 WidgetTerminal terminal (V1); // Galite siųsti komandas iš terminalo į aparatinę įrangą. Tiesiog naudokite // tą patį virtualųjį kaištį kaip ir jūsų terminalo valdiklis BLYNK_WRITE (V1) {// jei įvedate „Marco“į terminalo valdiklį - jis atsakys: „Polo:“if (String („Marco“) == param.asStr ()) {terminal.println ("Jūs sakėte:" Marco ""); terminal.println ("Aš pasakiau:" Polo ""); } else {// Siųsti atgal terminal.print ("You said:"); terminal.write (param.getBuffer (), param.getLength ()); terminal.println (); } // Įsitikinkite, kad viskas išsiųsta terminal.flush (); } void setup () {// Derinimo pultas Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Taip pat galite nurodyti serverį: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin:(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); // Tai išspausdins „Blynk“programinės įrangos versiją į terminalo valdiklį, kai // jūsų aparatinė įranga bus prijungta prie „Blynk Server“terminalo.println (F ("Blynk v" BLYNK_VERSION ": Įrenginys paleistas")); terminal.println (F ("-------------")); terminal.println (F ("Įveskite" Marco "ir gaukite atsakymą arba įveskite")); terminal.println (F ("visa kita ir atspausdinti".)); terminal.flush (); } void loop () {Blynk.run (); }

9 žingsnis: „Wemos“programavimas - paskutinis žingsnis

Image
Image

Kai eskizas bus įkeltas, sukompiliuokite ir įkelkite eskizą ir būsite pasiruošę išbandyti savo sąranką!

Atidarykite „Blynk“programą, spustelėkite trikampį viršutiniame dešiniajame „Wemos“projekto kampe

Tada spustelėkite mygtuką! Turėtumėte išgirsti relės spragtelėjimą, o būsenos šviesos diodai ant relės plokštės rodo, kad relė pakeitė būseną.

Dabar galite prijungti relę prie bet kurios žemos įtampos programos, kuriai reikalingas paprastas jungiklis, ir valdyti ją iš savo „Blynk“programos. Paskutinis dalykas, kurį turime padaryti, yra susieti IFTTT ir naudoti „Google“arba „Alexa“, kad valdytume „Blynk“sistemą, kad mums nereikėtų to daryti naudojant „Blynk“programą.

10 veiksmas: „Blynk“valdymas naudojant IFTTT ir „Google Home“arba „Alexa“

Aš darau prielaidą, kad šiuo metu esate susipažinęs su IFTTT. Jei ne, yra keletas puikių vadovėlių, kurie padės išmokti naudotis IFTTT ir jį panaudoti. Tai labai galingas dalykas, kurį norėtumėte išmokti, jei dar nesate susipažinęs.

  1. Sukurkite naują programėlę IFTTT
  2. Pasirinkite „Google Assistant“kaip „Jei tai“ir naudokite „paprastą frazę“. Man, kadangi tai turėjo įjungti arba išjungti mano židinį, mano frazė buvo „įjunkite židinį“
  3. Norėdami rasti dalį „Tada tai“, ieškokite ir naudokite „Webhooks“
  4. Pasirinkite „Pateikti žiniatinklio užklausą“
  5. URL, kurį norite naudoti:

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

  6. Nustatykite metodą GET, turinio tipą - urlenkoduotą, o BODY galite palikti tuščią ir išsaugoti

Palaukite kelias minutes, tada eikite į priekį ir išbandykite savo frazę naudodami „Google“namų įrenginį. Pastebėjau, kad reikia maždaug dviejų minučių, kol jis bus paruoštas.

PASTABA: čia reikia atkreipti dėmesį į dar vieną dalyką. Atkreipkite dėmesį, kad API skambutyje naudoju „d5“, bet aš prisijungiau prie plokštės D1 kaiščio. Prireikė maždaug dienos, kol supratau, kad GPIO kaiščių numeracija ir ekrano spausdinta numeracija lentoje nėra tas pats. Pakeitus vertes naudojant tiesioginius URL skambučius ir išbandžius įtampą skirtinguose kaiščiuose voltmetru, galėjau pastebėti, kad skambutis d1 per API pakeitė įtampą, bet ne D1 lentoje. d5/GPIO 5 iš tikrųjų atitiko D1 lentoje. Kai aš padariau tą koregavimą, viskas puikiai veikė!

„Alexa“prijungimas yra identiškas „Google“pagrindui, tiesiog naudokite „Alexa“paslaugą IFTTT.

11 žingsnis: Išvada

Šiuo metu turėtumėte turėti veikiančią balsu valdomą IOT relę, naudodamiesi „Wemos D1 mini lite“. Mėgaukitės ir sėkmės!

Vėlgi, elektra yra pavojinga, todėl prašome imtis atitinkamų atsargumo priemonių, o jei nesate kvalifikuoti, nedarykite to.

Rekomenduojamas: