Sadržaj:

IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani): 11 koraka
IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani): 11 koraka

Video: IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani): 11 koraka

Video: IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani): 11 koraka
Video: CS50 2014 – 9-я неделя 2024, Lipanj
Anonim
IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani)
IOT relejni prekidač s glasovnim upravljanjem temeljen na Arduinu (Google Home i Alexa podržani)

Ovaj projekt opisuje kako napraviti IOT relejni prekidač baziran na Arduinu, glasovnim upravljanjem. 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 upravljati glasom pomoću Google Home -a i/ili Alexa. Pokriti ćemo sve korake potrebne za stvaranje uređaja, povezivanje aplikacije i povezivanje u različitim IOT uslugama.

Pribor

  • Wemos D1 Mini Lite ESP8285 (nekoliko dolara na Amazonu)
  • 5V relejni modul za Arduino/Raspberry Pi
  • 2N2222 NPN tranzistor
  • Otpor 47K ohma
  • 1K ohmski 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 shemu i tradicionalni dijagram ožičenja, ovisno na što 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 tiskanu kutiju za projekte.

Relej je optički izoliran relej H/L 5V, što znači da je prvo sklop okidača optički izoliran od same aktivacije releja, čime se uklanja svaki potencijalni problem s povratnom spregom iz releja natrag u mikrokontroler Wemos. Lijepu sigurnost za imati. 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). Wemos sam š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, možete upotrijebiti relej od 3,3 V i ukloniti komponentu pojačala tranzistora u krugu i otić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 što radite, kvalificirani ste i poduzimate li odgovarajuće mjere opreza. Ako nije, nemojte ovo koristiti za upravljanje aplikacijama mrežnog napona.

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

Zaboravio sam snimiti svoj privremeni krug na 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 kruga tako da možete vidjeti kako je ožičen, u slučaju da trebate neke uvide ili vam je potrebna preglednost pojedinih 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. Ovdje ipak postoji nekoliko koraka.

  1. Instalirajte upravljačke programe Wemos na računalo 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 je drugačije od "testa treptanja")
  5. Nabavite kod aplikacije od Blynka
  6. Ažurirajte Wemos/Arduino kôd s Blynk podacima
  7. Prenesite 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 datoteku u direktorij i pokrenite aplikaciju "SETUP" da biste je instalirali.

Kad sam to učinio prvi put, dobio sam neku čudnu pogrešku u vezi s njenim instaliranjem. Vidio sam tuđu bilješku o ovome i njihovom rješenju, što mi je uspjelo. Stoga, ako dobijete pogrešku, pokušajte upotrijebiti gumb "Deinstaliraj", a zatim ponovno 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 github stranici.

    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 ploče. Možete dodati više URL -ova, odvajajući ih zarezima.
  4. Otvorite Upravitelj ploča putem Alati> Ploča> Upravitelj ploča (pri vrhu), potražite "esp8266" i instalirajte navedenu platformu esp8266.
  5. Na ovom ćete mjestu vidjeti 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. Spojite USB kabel između računala 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 odemo dalje, moramo se pobrinuti da možemo komunicirati s Wemos pločom i da sve izgleda u redu. Najlakši način za to je priključiti USB kabel i pokušati poslati jednostavan program na Wemos. Blink je najjednostavniji 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 treperavu skicu za Wemos uređaj
  2. Sastavite i prenesite skicu

Ako plava LED dioda počne treptati 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 s paketom ploče za ESP8266 i morao sam ga potpuno deinstalirati i ponovo instalirati zbog nečeg čudnog s verzijama koje su se događale. 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 sklopa koji smo stvorili.

  1. Preuzmite aplikaciju i stvorite račun (besplatan)
  2. Izradite novi projekt
  3. Odaberite Wemos D1 kao hardver u odjeljku Odabir uređaja
  4. Dajte projektu naziv i zadržite tip priključka kao WiFi
  5. Pritisnite Stvori projekt
  6. U ovom trenutku token autorizacije bit će poslan e -poštom na adresu e -pošte koju ste koristili prilikom stvaranja svog Blynk računa. Spremite to za kasnije, u sljedećem ćemo koraku umetnuti vrijednosti u skicu.
  7. Kad dođete do praznog platnenog zaslona, samo prijeđite prstom ulijevo 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 te 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 raditi, sve dok skicu ne učitamo i konfiguriramo, što je sljedeći korak!

Korak 7: Programiranje Wemosa - instaliranje Blynk knjižnice

Da bismo mogli prenijeti skicu temeljenu na Blynku, moramo instalirati njihovu biblioteku. Pojedinosti se mogu 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 to bilo u / user / Documents / Arduino. Tamo je već postojala mapa pod nazivom "knjižnice". Zip datoteka sadrži direktorij "library" i "tools". Kada ga raspakirate u Arduino direktorij, on dodaje njegov sadržaj u knjižnice i stvara alate ako već nisu postojali.

Korak 8: Programiranje Wemosa - skica

Skoro smo gotovi u ovom trenutku. Skica je prilično jednostavna, izravna je s Blynka i u biti 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.

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

Najnoviju biblioteku Blynk preuzmite ovdje: https://github.com/blynkkk/blynk-library/releases/latest Blynk je platforma s 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 Biblioteka Blynk licencirana je 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 ispise i uštedjeli prostor*/ #define BLYNK_PRINT Serijski #include #include // Trebali biste dobiti Auth Token u aplikaciji Blynk. // Idite na Postavke projekta (ikona matice). char auth = "YourAuthToken"; // Vaše WiFi vjerodajnice. // Postavi 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 Virtual 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 u Terminal Widget upišete "Marco" - odgovorit će: "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 pogrešaka Serial.begin (9600); Blynk.begin (auth, ssid, pass); // Također možete navesti poslužitelj: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress (192, 168, 1, 100), 8080); // Ovo će ispisati verziju softvera Blynk na widget terminala kada se // vaš hardver spoji na terminal Brynk poslužitelja.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 što drugo i vratite ga natrag.")); terminal.flush (); } void loop () {Blynk.run (); }

Korak 9: Programiranje Wemosa - posljednji korak

Image
Image

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

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

Zatim kliknite gumb! Trebali biste čuti kako relej klikne, a statusne LED diode 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. Posljednje što moramo učiniti je povezati IFTTT i koristiti Google ili Alexa za kontrolu Blynk sustava kako to ne bismo morali činiti iz naše aplikacije Blynk.

Korak 10: Upravljanje Blynkom pomoću IFTTT -a i Google Homea 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. Izradite novi applet u IFTTT -u
  2. Odaberite Google pomoćnik kao "Ako je ovo", a kao okidač upotrijebite "Jednostavnu frazu". Za mene, budući da će se time uključiti ili isključiti moj kamin, moja je rečenica bila "uključi kamin"
  3. Za dio "Onda to" potražite i upotrijebite Webhooks
  4. Odaberite "Učini web zahtjev"
  5. Za URL koji želite koristiti:

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

  6. Metodu postavite na GET, vrstu sadržaja na urlenkodirano, a BODY možete ostaviti prazno, a zatim spremiti

Pričekajte nekoliko minuta, a zatim isprobajte svoju frazu s google kućnim uređajem. Primijetila sam da je potrebno oko dvije minute da bude spremna.

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 oko jedan dan da shvatim da numeriranje GPIO pinova i numeriranje na ploči nije isto. 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 tu prilagodbu, sve je radilo prekrasno!

Spajanje 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 glasovnim upravljanjem koji koristi Wemos D1 mini lite. Uživajte i sretno!

Ponovno, struja je opasna pa poduzmite odgovarajuće mjere opreza, a ako niste kvalificirani, nemojte.

Preporučeni: