Sadržaj:

Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (Google Home i Alexa podržani): 11 koraka
Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (Google Home i Alexa podržani): 11 koraka

Video: Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (Google Home i Alexa podržani): 11 koraka

Video: Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (Google Home i Alexa podržani): 11 koraka
Video: Домашняя автоматизация: изменение направления вращения двигателя постоянного тока с помощью 2 реле и Arduino - Robojax 2024, Novembar
Anonim
Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (Google Home i Alexa podržani)
Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (Google Home i Alexa podržani)

Ovaj projekt opisuje kako napraviti IOT relejni prekidač zasnovan na Arduinu, glasom upravljan. Ovo je relej koji možete daljinski uključiti i isključiti pomoću aplikacije za iOS i Android, kao i povezati ga s IFTTT -om i kontrolirati glasom pomoću Google Home -a i/ili Alexa. Pokriti ćemo sve korake potrebne za kreiranje uređaja, povezivanje aplikacije i povezivanje s različitim IOT uslugama.

Supplies

  • Wemos D1 Mini Lite ESP8285 (nekoliko dolara na Amazonu)
  • 5V relejni modul za Arduino/Raspberry Pi
  • 2N2222 NPN tranzistor
  • Otpor 47K ohma
  • 1K ohm otpornik

Korak 1: Izgradite krug

Izgradite krug
Izgradite krug
Izgradite krug
Izgradite krug
Izgradite krug
Izgradite krug

Prvi korak je ožičenje kruga. Uključio sam šemu i tradicionalni dijagram ožičenja, ovisno o tome na šta ste navikli. Napravio sam svoj prvi krug na ploči za izradu prototipa, a zatim sam ga premjestio na PCB za trajnije postavljanje i smjestio u 3D štampanu kutiju za projekte.

Relej je optički izoliran relej H/L 5V, što znači da je prvo krug okidača optički izoliran od same aktivacije releja, čime se uklanjaju svi potencijalni problemi s povratnom vezom iz releja natrag u mikrokontroler Wemos. Imati lijepu sigurnost. Drugo, može se preklopiti na visoku/nisku razinu, što znači da se može konfigurirati pomicanjem žutog kratkospojnika koji vidite na slikama, od aktiviranja kada je signal visok (+5 V) ili okidanja kada je signal nizak (0 V). Sam Wemos šalje 3.3V sa svojih digitalnih pinova, a mi koristimo D1 kao izvor okidača, što znači da ga moramo malo pojačati, tako da se približimo +5V digitalnom signalu za aktiviranje releja. Alternativno, mogli biste koristiti relej od 3,3 V i eliminirati komponentu pojačala tranzistora u krugu i ići ravno od D1 do signalnog pina na releju. Nisam imao releje od 3,3 V, pa koristimo češći relej od 5 V i krug pojačala.

DC+ i DC- na releju spajaju se na 5V i GND pinove Wemosa, što daje potreban napon za rad releja. Relej ima nazivnu vrijednost od malih napona pa sve do mrežnog napona, ali ovo koristim za kontrolu primjene niskonaponskog ožičenja. Ako ovo koristite za kontrolu mrežnog napona, provjerite znate li šta radite, kvalificirani ste i poduzimate odgovarajuće mjere opreza. Ako nije, nemojte ovo koristiti za upravljanje aplikacijama mrežnog napona.

Pin D1 na Wemosu spaja se na otpornik od 47K ohma koji se napaja u bazu NPN tranzistora. Odašiljač se veže za tlo. Kolektor je spojen na ulaz signala na releju. Relej je postavljen tako da se aktivira na niskom stupnju, pa kada D1 daje signal, signal od 3,3 V se pojačava na približno 5 V, a relej je otvoren. Kada D1 padne, signal releja opada, a relej se zatvara i dovršava krug.

Zaboravio sam snimiti svoj privremeni krug na matičnoj ploči za izradu prototipa, ali izgledao je točno kao gornji dijagram Fritzinga, ako je od pomoći. Uključio sam brojne slike svog posljednjeg stalnog kola tako da možete vidjeti kako je ožičen, u slučaju da vam je potreban neki uvid ili vam je potrebna preglednost određenih komponenti koje koristim.

Korak 2: Programiranje Wemosa - Pregled

Jedna od stvari koja mi se sviđa kod Wemosa je ta što se mogu programirati baš poput Arduina, koristeći isti IDE. Ipak, ovdje postoji nekoliko koraka.

  1. Instalirajte upravljačke programe Wemos na računar, možete razgovarati s Wemosom
  2. Ažurirajte Arduino IDE tako da Wemos ploča bude dostupna
  3. Napravite brzi "Blink" test kako biste bili sigurni da sve radi ispravno
  4. Postavite se s Blynkom (znam da je zbunjujuće, ali zapravo se razlikuje od "testa treptanja")
  5. Nabavite kod aplikacije od Blynka
  6. Ažurirajte Wemos/Arduino kôd pomoću Blynk informacija
  7. Otpremite kôd u svoju postavku Wemos.

Korak 3: Programiranje Wemosa - Instalirajte upravljačke programe

Programiranje Wemosa - Instalirajte upravljačke programe
Programiranje Wemosa - Instalirajte upravljačke programe

Idite ovdje (čini se da se ova veza povremeno mijenja, pokušat ću je ažurirati):

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

I preuzmite odgovarajući paket upravljačkih programa za vaš OS. Zatim ekstrahirajte zip u direktorij i pokrenite aplikaciju "SETUP" da biste ga instalirali.

Kad sam to učinio prvi put, dobio sam neku čudnu grešku u vezi s njenim instaliranjem. Vidio sam tuđu bilješku o ovome i njihovom rješenju, koja mi je uspjela. Dakle, ako dobijete grešku, pokušajte koristiti dugme "Deinstaliraj", a zatim ponovo upotrijebite "Instaliraj". Nadam se da je to riješilo problem kao što je to bio slučaj sa mnom.

Korak 4: Programiranje Wemosa - Ažurirajte Arduino IDE

Programiranje Wemosa - Ažurirajte Arduino IDE
Programiranje Wemosa - Ažurirajte Arduino IDE
Programiranje Wemosa - Ažurirajte Arduino IDE
Programiranje Wemosa - Ažurirajte Arduino IDE
Programiranje Wemosa - Ažurirajte Arduino IDE
Programiranje Wemosa - Ažurirajte Arduino IDE

Ako niste instalirali Arduino IDE, pravo je vrijeme da to učinite sada. Možete ga preuzeti sa www.arduino.cc

Evo reference za ono što ćemo učiniti u ovom koraku.

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

  1. Instalirajmo novu ploču tako da se pojavi kao opcija u Arduino IDE -u. Koraci 2 - 4 izvedeni su iz vodiča za instalaciju na sljedećoj stranici github -a.

    github.com/esp8266/Arduino

  2. Pokrenite Arduino IDE i otvorite prozor Preferences.
  3. Unesite "https://arduino.esp8266.com/stable/package_esp8266com_index.json" u polje Dodatni URL -ovi upravitelja odbora. Možete dodati više URL -ova, odvajajući ih zarezima.
  4. Otvorite Boards Manager iz Tools> Board> Boards Manager (pri vrhu), potražite "esp8266" i instalirajte navedenu esp8266 platformu.
  5. Na ovom mjestu ćete vidjeti Wemos ploče u Alati → Ploča: xxx Odaberite Wemos D1 Mini. U mom slučaju, kao što vidite sa slike, specifičan naziv je bio "LOLIN (WEMOS) D1 R2 & mini"
  6. Povežite USB kabl između računara i Wemosa
  7. Potvrdite da je "Port" sada aktivan u izborniku Alati i da izgleda ispravno.

Korak 5: Programiranje Wemosa - Blink Test

Programiranje Wemosa - Blink Test
Programiranje Wemosa - Blink Test

Prije nego idemo dalje, moramo biti sigurni da možemo komunicirati s Wemos pločom i da sve izgleda u redu. Najlakši način za to je da priključite USB kabel i pokušate prebaciti jednostavan program na Wemos. Blink je najlakši primjer i uštedio mi je mnogo muka pri radu s novim pločama, da to uvijek radim prvi.

  1. Idite na: Datoteka> Primjeri> ESP8266> Trepni i učitaj treptajuću skicu za Wemos uređaj
  2. Sastavite i otpremite skicu

Ako plava LED dioda počne treperiti otprilike jednom u sekundi, dobro je da prijeđete na sljedeći korak! Ako ne, vratite se i riješite prethodne korake. Provjerite ima li problema s upravljačkim programima i upraviteljem ploče. Imao sam nekih problema sa paketom ploče za ESP8266 i morao sam ga potpuno deinstalirati i ponovo instalirati zbog nečeg čudnog u verzijama koje su se dešavale. Ne odustajte, a internetske pretrage mogu vam biti prijatelji!

Pod pretpostavkom da je sve u redu, prijeđite na sljedeći korak.

Korak 6: Programiranje Wemosa - postavljanje Blynka

Programiranje Wemosa - postavljanje Blynka
Programiranje Wemosa - postavljanje Blynka
Programiranje Wemosa - postavljanje Blynka
Programiranje Wemosa - postavljanje Blynka
Programiranje Wemosa - postavljanje Blynka
Programiranje Wemosa - postavljanje Blynka

U sljedećim koracima moramo postaviti račun kod Blynka i dobiti token koji ćemo koristiti za kontrolu kola koje smo stvorili.

  1. Preuzmite aplikaciju i kreirajte račun (besplatan)
  2. Kreirajte novi projekat
  3. Odaberite Wemos D1 kao hardver u okviru Odabir uređaja
  4. Dajte projektu naziv i zadržite tip konektora kao WiFi
  5. Kliknite na Kreiraj projekat
  6. U ovom trenutku token autorizacije bit će poslan e -poštom na adresu e -pošte koju ste koristili prilikom stvaranja vašeg Blynk računa. Sačuvajte to za kasnije, u sljedećem koraku ćemo umetnuti vrijednosti u skicu.
  7. Kada dođete na prazan platneni ekran, samo prevucite lijevo i dobit ćete izbornik widgeta. Odaberite "Button" da biste dodali "button" u projekt
  8. Odaberite gumb, a zatim konfigurirajte pin tako da ga kliknete i odaberete "Digital" i "D1" kao pi i kliknite "OK"
  9. U ovom trenutku sve bi trebalo biti spremno. Da biste ovo učinili aktivnim, željeli biste odabrati ikonu trokuta u gornjem desnom kutu, ali to još neće funkcionirati, sve dok skicu ne učitamo i konfiguriramo, što je sljedeći korak!

Korak 7: Programiranje Wemosa - Instaliranje Blynk biblioteke

Da bismo mogli učitati skicu zasnovanu na Blynku, moramo instalirati njihovu biblioteku. Detalje možete pronaći ovdje.

github.com/blynkkk/blynk-library/releases

Također, za pozadinu, pogledajte njihovu glavnu web stranicu ovdje (https://blynk.io/en/getting-started)

Ovo mi je u početku bilo zbunjujuće, ali je mnogo lakše nego što zvuči. Samo raspakirajte datoteku u svoj Arduino direktorij. Za mene je ovo bilo u / user / Documents / Arduino. Tamo je već postojao folder pod nazivom "biblioteke". Zip datoteka sadrži direktorij "library" i "tools". Kada ga raspakirate u Arduino direktorij, on dodaje njegov sadržaj u biblioteke i stvara alate ako već nisu postojali.

Korak 8: Programiranje Wemosa - skica

Skoro smo završili u ovom trenutku. Skica je prilično jednostavna, izravno je iz Blynka i u osnovi povezuje Blynk servis i ploču. Njihov graditelj možete koristiti ovdje:

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

Ili možete upotrijebiti ovaj uzorak koji bi vam trebao odgovarati. Samo provjerite jeste li zamijenili vrijednosti tokena za autorizaciju i svoje vjerodajnice za svoju WiFi mrežu.

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

Preuzmite najnoviju biblioteku Blynk ovdje: https://github.com/blynkkk/blynk-library/releases/latest Blynk je platforma sa iOS i Android aplikacijama za kontrolu Arduina, Raspberry Pi i sličnih putem Interneta. Možete jednostavno izgraditi grafička sučelja za sve svoje projekte jednostavnim povlačenjem i ispuštanjem widgeta. Preuzimanja, dokumenti, vodiči: https://www.blynk.cc Generator skica: https://examples.blynk.cc Blynk zajednica: https://community.blynk.cc Pratite nas: https://www.fb. com/blynkapp Blynk biblioteka je licencirana pod MIT licencom Ovaj primjer koda je u javnoj domeni. ************************************************** *********** Možete slati/primati bilo koje podatke pomoću objekta WidgetTerminal. Postavljanje projekta aplikacije: widget terminala priključen na Virtual Pin V1 *************************************** **********************//*Komentirajte ovo kako biste onemogućili ispis i uštedjeli prostor*/ #define BLYNK_PRINT Serijski #include #include // Trebali biste dobiti Auth Token u aplikaciji Blynk. // Idite na Postavke projekta (ikona oraha). char auth = "YourAuthToken"; // Vaši WiFi akreditivi. // Postavite lozinku na "" za otvorene mreže. char ssid = "Ime vaše mreže"; char pass = "Vaša lozinka"; // Priključite virtualni serijski terminal na terminal za virtualni pin V1 WidgetTerminal (V1); // Možete poslati naredbe s terminala na svoj hardver. Samo upotrijebite // isti virtualni pin kao i vaš terminalni widget BLYNK_WRITE (V1) {// ako upišete "Marco" u terminalski widget - on će odgovoriti: "Polo:" if (String ("Marco") == param.asStr ()) {terminal.println ("Rekli ste: 'Marko'"); terminal.println ("rekao sam: 'Polo'"); } else {// Pošaljite natrag terminal.print ("Rekli ste:"); terminal.write (param.getBuffer (), param.getLength ()); terminal.println (); } // Osigurajte da je sve poslano terminal.flush (); } void setup () {// Konzola za otklanjanje grešaka Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Možete navesti i server: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); // Ovo će odštampati Blynk Software verziju na Terminal Widget -u // kada se vaš hardver poveže na terminal Brynk Server.println (F ("Blynk v" BLYNK_VERSION ": Uređaj je pokrenut")); terminal.println (F ("-------------")); terminal.println (F ("Upišite 'Marco' i primite odgovor ili upišite")); terminal.println (F ("bilo šta drugo i odštampajte ga nazad.")); terminal.flush (); } void loop () {Blynk.run (); }

Korak 9: Programiranje Wemosa - posljednji korak

Image
Image

Kada se skica učita, sastavite i otpremite skicu i trebali biste biti spremni za testiranje vašeg postavljanja!

Otvorite aplikaciju Blynk, kliknite trokut u gornjem desnom kutu za vaš Wemos projekt

Zatim kliknite na dugme! Trebali biste čuti kako relej klikće, a LED diode statusa na ploči releja pokazuju da je relej promijenio stanje.

Sada možete spojiti relej na bilo koju niskonaponsku aplikaciju koja zahtijeva jednostavan prekidač i upravljati njime iz vaše aplikacije Blynk. Zadnja stvar koju moramo učiniti je povezati IFTTT i koristiti Google ili Alexa za kontrolu Blynk sistema, tako da to ne moramo raditi iz naše aplikacije Blynk.

Korak 10: Kontrola Blynka pomoću IFTTT -a i Google Home -a ili Alexa

Pretpostavljam da u ovom trenutku poznajete IFTTT. Ako ne, postoje neki izvrsni vodiči koji će vam pomoći da naučite kako koristiti i poboljšati IFTTT. Vrlo je moćan i nešto što ćete htjeti naučiti ako već niste upoznati.

  1. Kreirajte novi aplet u IFTTT -u
  2. Odaberite Google pomoćnik kao "Ako je ovo" i upotrijebite "Jednostavnu frazu" kao okidač. Za mene, budući da će ovo uključiti ili isključiti moj kamin, moja fraza je bila "uključi kamin"
  3. Za dio "Onda to" potražite i koristite Webhooks
  4. Odaberite "Učini web zahtjev"
  5. Za URL koji želite koristiti:

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

  6. Metod postavite na GET, tip sadržaja na urlenkodiran i možete ostaviti BODY prazno, a zatim spremiti

Pričekajte nekoliko minuta, a zatim isprobajte svoju frazu sa svojim Google kućnim uređajem. Primijetio sam da je potrebno oko dvije minute da bude spreman.

NAPOMENA: ovdje treba obratiti pažnju na još jednu stvar. Primijetite da koristim "d5" u svom API pozivu, ali spojio sam se na pin D1 na ploči. Trebalo mi je otprilike dan da shvatim da numeriranje GPIO pinova i ekranski odštampano numerisanje na ploči nisu isti. Nakon promjene vrijednosti izravnim URL pozivima i testiranja napona na različitim pinovima pomoću mjerača volta, mogao sam primijetiti da je poziv d1 putem API -ja promijenio napon, ali ne i na D1 na ploči. d5/GPIO 5 zapravo odgovara D1 na ploči. Kad sam napravio to prilagođavanje, sve je funkcioniralo prekrasno!

Povezivanje Alexa identično je Googleovoj kući, samo umjesto toga koristite uslugu Alexa na IFTTT -u.

Korak 11: Zaključak

U ovom trenutku trebali biste imati funkcionalan IOT relej s glasovnom kontrolom koji koristi Wemos D1 mini lite. Uživajte i sretno!

Ponovo, električna energija je opasna, stoga preduzmite odgovarajuće mjere opreza, a ako niste kvalificirani, nemojte.

Preporučuje se: