Sadržaj:

TinyLiDAR u vašoj garaži!: 10 koraka
TinyLiDAR u vašoj garaži!: 10 koraka

Video: TinyLiDAR u vašoj garaži!: 10 koraka

Video: TinyLiDAR u vašoj garaži!: 10 koraka
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Novembar
Anonim
TinyLiDAR u vašoj garaži!
TinyLiDAR u vašoj garaži!

Projekt otvaranja bežičnih WiFi garažnih vrata

IoT svijet tek počinje eksplodirati - svaka tehnološka kompanija širom svijeta pokušava otkriti kako će se uklopiti u ovaj novi svijet. To je samo velika prilika! Dakle, za ovu pouku, u skladu s ovom IoT temom, razmotrit ćemo kako možete napraviti svog vlastitog IoT demonstratora koji je zapravo nekako koristan;)

TL; DR sažetak

  • postavite pouzdan tijek rada za kodiranje ESP32 WiFi modula
  • blic
  • sastavite na matičnoj ploči
  • preuzmite naš kod aplikacije i raspakirajte ga
  • dodajte svoje vjerodajnice za WiFi i statičku IP adresu
  • spojite na svoju WiFi mrežu
  • uredite pragove i postavite ga u svoju garažu
  • spojite ga na kontakte za otvaranje garažnih vrata
  • i kliknite daleko!
  • NIJE POTREBNO LEMLJENJE (osim igle na razbijačke ploče ako je potrebno)

Potrebni delovi

  • tinyLiDAR modul senzora udaljenosti leta
  • Wipy3.0 ili slična WiFi ploča zasnovana na ESP32
  • Optički izolirani poluprovodnički relej (Omron G3VM-201AY1) za upravljanje otvaračem garažnih vrata
  • Otpor 470ohm (5% 1/8 vati ili veće je u redu)
  • Trenutni prekidač za BOOT (GPIO0) pin za nadogradnju firmvera na ESP32 ploči
  • USB na serijski ključ za postavljanje koda i interakciju s REPL -om na ESP32 (koristite U/I verziju 3.3v)
  • Oglasna ploča + žice
  • Napajanje: 3.3V do 5V na 500mA ili više. Možete koristiti microUSB punjač za mobitele za napajanje i microUSB ploču za uključivanje u matičnu ploču.

Korak 1: IoT Šta?

IoT What?
IoT What?

Nesumnjivo ste do sada u svim medijima čuli za pojam IoT, ali šta on znači?

Slobodno rečeno, to znači povezivanje raznih vrsta senzora i stvari kojima se može upravljati na internet. Ovih dana, Internet je sinonim za bežičnu vezu i stoga imamo sve elektroničko odjednom postajući bežično povezani putem neke vrste bežične veze poput WiFi/BT/LoRa/SigFox itd. Nakon što se povežemo na Internet, možemo osjetiti i/ili kontrolirati te stvari s našeg omiljenog mobilnog kontrolera poput našeg mobitela ili ih automatizirajte putem neke aplikacije koja se negdje poslužuje na serveru (tj. u oblaku).

Iako veće kompanije u posljednje vrijeme plasiraju više glasovne kontrole, umjetne inteligencije i povezivanja u oblaku; osnove da se sve ovo dogodi su još uvijek iste. Morate spojiti svoju "stvar" na bežičnu vezu da bi bilo koji od ovih koncepata bio moguć. Pa počnimo s osnovama i naučimo kako spojiti tinyLiDAR senzor udaljenosti leta na jeftini WiFi modul, a zatim pokazati slanje podataka naprijed -natrag po mreži. Do kraja ovog uputstva imat ćete vlastiti radni daljinski upravljač za garažna vrata s omogućenim WiFi -em s monitorom u stvarnom vremenu za provjeru jesu li vrata otvorena ili zatvorena.

Tehnički gledano, kao što je prikazano na gornjoj blok shemi, ovaj projekt implementira mikropython web poslužitelj koji radi na ESP32 WiFi modulu koristeći komunikacijski protokol 'websockets' za prosljeđivanje podataka iz bilo kojeg mobilnog web preglednika. Dodano tome, imamo maleniLiDAR senzor udaljenosti leta koji mjeri mjerenja na zahtjev, tako da možete provjeriti jesu li garažna vrata ostala otvorena.

Korak 2: Isprobajte - ne stvarno, isprobajte sada

Isprobajte - ne stvarno, isprobajte sada
Isprobajte - ne stvarno, isprobajte sada

Ovo je sve relativno novo polje u elektronici pa će biti potrebno mnogo eksperimentiranja kako bi stvari radile kako treba. Nadamo se da ćete moći graditi na ovoj bazi koda i napraviti još neke svoje zanimljive IoT projekte.

Sav kôd korišten u ovom članku dobro je funkcionirao u vrijeme pisanja ovog teksta. Međutim, kako se stopa inovacija u IoT prostoru povećava, stvari su se mogle promijeniti do trenutka kada ovo pročitate. U svakom slučaju, rješavanje problema i prilagođavanje za vlastitu upotrebu barem će vam uvući glavu u ovaj uzbudljivi novi prostor i početi razmišljati poput IoT inženjera!

Spreman? Počnimo s prvim korakom postavljanja vlastitog stabilnog razvojnog okruženja.

Korak 3: Micropython i ESP32

Micropython & ESP32
Micropython & ESP32

ESP32 WiFi module stvorio je Espressif i oni su se znatno poboljšali od svoje prve generacije ESP8266 modula od prije samo nekoliko godina. Ove nove verzije imaju mnogo više memorije, jači procesor i više funkcija od originalnih modula, a i dalje su niske cijene. Gornji dijagram daje vam uvid u to koliko su uspjeli spakovati u ovaj mali ESP32 čip. Sam ESP32 IC je dvojezgreni mikrokontroler sa 802.11b/g/n WiFi radijem i integriranim Bluetooth 4.2 radiom. Moduli zasnovani na ESP32 obično će dodati antenu, dodatnu FLASH memoriju i regulatore snage.

Imajte na umu da kada kažemo ESP32 modul u ovom uputstvu, mislimo na Pycom Wipy3.0 ploče koje su zasnovane na ESP32 čipu/modulu. Prema našem iskustvu, izgleda da su Pycom ploče boljeg kvaliteta izrade od tipičnih jeftinih ESP32 modula koji su dostupni. Prilikom razvoja uvijek je korisno smanjiti što je moguće više varijabli pa smo se odlučili za Pycom ploče umjesto jeftinih generičkih sredstava.

Za OEM aplikacije, ESP32 kodiranje se obično radi na jeziku C, ali na sreću postoji i mnogo opcija koje možemo birati pa nećete morati silaziti na ovaj niski nivo ako ne želite. Odabrali smo korištenje micropythona za svo naše kodiranje u ovom uputstvu.

Možda ste pretpostavili da je Micropython podskup cijelog programskog jezika Python koji pokreće neke manje poznate tražilice i web stranice poput Googlea, YouTubea i Instagrama;)

Micropython-logo
Micropython-logo

Micropython je započeo kao kickstarter projekt prvobitno za STM32 procesor, ali je postao vrlo popularan za mnoge različite mikrokontrolere. Ovdje koristimo najnoviji službeni Pycom ESP32 port mikropythona.

Korak 4: Brži način

Brži način
Brži način

Kod mikropitona ima jednostavan prednji grafički interfejs koji se zove REPL, što znači "Read – Eval - Print Loop". ESP32 -ov REPL normalno radi na 115.2Kbaud jer mu se pristupa putem serijskog porta. Na gornjoj slici prikazan je REPL upit označen sa tri strelice koje čekaju direktne naredbe. To je jednostavan način isprobavanja naših jednostavnih naredbi i većina kodera koristi ga za razvoj svog softvera, ali otkrili smo da je to bolno spor način. Stoga smo odlučili da to učinimo na drugačiji način za ovu instrukciju …

Kako moduli ESP32 imaju brzu WiFi vezu, samo nam je potrebno pristupiti modulu putem WiFi -a putem FTP servera koji je već ugrađen u standardni mikropython kod. To će nam tada omogućiti da koristimo FTP klijente poput FileZilla za jednostavno povlačenje i ispuštanje našeg koda na ESP32.

Dakle, da bismo to učinili, prvo moramo postaviti ESP32 modul na vašu WiFi mrežu. Moduli Wipy3.0 prema zadanim postavkama pokreću malu pristupnu točku pri uključivanju, tako da se na njih možete direktno povezati s prijenosnog računara na 192.168.4.1. Više detalja provjerite ovdje ako vam se sviđa ova metoda.

Radimo na stolnim računarima u našoj laboratoriji pa smo htjeli da se moduli ESP32 umjesto toga povežu s našom mrežom. Da bismo to učinili, samo moramo dati modulu statičku IP adresu i podatke o lozinki za prijavu na našu WiFi mrežu.

Korak 5: Preuzmite sada

Preuzeti sada
Preuzeti sada
Preuzeti sada
Preuzeti sada
Preuzeti sada
Preuzeti sada
Preuzeti sada
Preuzeti sada

Odmah preuzmite kod aplikacije i otpakujte datoteke u privremenu fasciklu na svom računaru. Zatim počnite uređivati datoteke skripte mywifi.txt i boot.py s vlastitim vjerodajnicama za WiFi mrežu.

Btw - naš omiljeni uređivač teksta i dalje je SublimeText. Možete ga preuzeti ovdje.

Trebali biste odmah preuzeti i terminalni softver TeraTerm i FTP softver FileZilla, ako ih već nemate na računaru.

Morat ćete postaviti FileZilla kao što je prikazano na gornjim slikama. Također u upravitelju web mjesta morate "dodati novu web lokaciju" za prijavu na ESP32 koristeći statičku IP adresu koju ste odabrali kao što je prikazano gore. Korisnik je "mikro", a lozinka "python". Važno je koristiti pasivni FTP i ograničiti ga samo na pojedinačne veze. Utvrdili smo da je ograničavanje brzine prijenosa pomoglo i u sprječavanju prenošenja. Iako nije prikazano na slikama, bilo bi korisno povezati program SublimeText za vrste datoteka kako biste mogli urediti kôd dvostrukim klikom na lijevoj strani FTP ekrana. Da biste to učinili, samo idite na izbornik Postavke i u uređivanje datoteka/asocijacije vrsta datoteka unesite lokaciju svoje datoteke SublimeText exe za svaku asocijaciju. Na primjer, naš je bio:

js "C: / Sublime Text Build 3065 x64 / sublime_text.exe"

. "C: / Sublime Text Build 3065 x64 / sublime_text.exe" htm "C: / Sublime Text Build 3065 x64 / sublime_text.exe" html "C: / Sublime Text Build 3065 x64 / sublime_text.exe" py "C: / Sublime Izgradnja teksta 3065 x64 / sublime_text.exe "css" C: / Izgradnja uzvišenog teksta 3065 x64 / sublime_text.exe"

Kopirajte izdvojene datoteke aplikacija za ovu instrukciju u novu mapu pod nazivom "FTP" na vašem računaru kao što smo to učinili i mi. Kasnije će biti lakše prevući odavde unutar FileZille.

Uobičajeno je dobra ideja da najnoviji firmver radi na ESP32. Nadogradnja Pycom modula za korištenje najnovijeg mikropitona je vrlo jednostavna i može se obaviti za oko 3 minute pomoću njihovog alata za ažuriranje firmvera.

Samo obavezno postavite COM port za vaš USB na serijski ključ i poništite odabir načina velike brzine kao što je prikazano na gornjoj slici "Komunikacija". Naš je bio COM port 2. Imajte na umu da ćete za uvođenje modula ESP32 u ovaj način nadogradnje morati pritisnuti tipku GPIO0/Boot (na P2 pinu) dok pritisnete i otpustite tipku Reset.

Korak 6: Vrijeme hardvera

Vreme hardvera
Vreme hardvera
Vreme hardvera
Vreme hardvera

Sada bi bilo dobro vrijeme za povezivanje hardvera na ploču kao što je prikazano na gornjoj slikovnoj shemi.

Nakon što je sve ovo završeno. Pokrenite terminalni softver s odgovarajućim COM portom za USB na serijski ključ i postavite ga na 115,2 KB.

Prilikom uključivanja, modul bi trebao prikazati poznati REPL upit koji daje tri strelice ">>>".

Sada idite na uređenu datoteku mywifi.txt i kopirajte sav sadržaj (CTRL+C). Zatim idite na zaslon terminala REPL i pritisnite CTRL+E da biste prešli u način izrezivanja i lijepljenja. Zatim desnom tipkom miša kliknite da biste zalijepili sadržaj na zaslon REPL, a zatim pritisnite tipke CTRL+D da biste izvršili ono što ste zalijepili.

Trebalo bi odmah započeti odbrojavanje da kaže da se pokušava povezati na vašu WiFi mrežu. Gornji snimak prikazuje poruku uspješne veze.

Nakon povezivanja, možete koristiti FileZilla za povezivanje s FTP poslužiteljem u modulima na statičkoj IP adresi koju ste već odabrali u datotekama mywifi.txt i boot.py.

Korak 7: Još uvijek ste s nama?

Još ste sa nama?
Još ste sa nama?
Još ste sa nama?
Još ste sa nama?

Ako je do sada sve bilo u redu onda je dobro za vas! Naporni posao je obavljen:) Sada će se odvijati glatko - samo gomila izrezivanja i lijepljenja i bit ćete spremni za rad, pa ga možete montirati u svoju garažu.

Da biste uredili bilo koji kôd, možete dvaput kliknuti na lijevu stranu FTP prozora u FileZilla i on će pokrenuti SublimeText. Sačuvajte promene, a zatim ih prevucite preko desne strane koja je prozor ESP32.

Za sada samo povucite datoteke s lijeve strane na desnu stranu FileZille da biste svaku datoteku zasebno prenijeli na ESP32 modul. Ovo traje samo nekoliko kratkih sekundi umjesto minuta kao što to čini normalna metoda REPL. Imajte na umu da bi sve datoteke trebale biti u osnovnom direktoriju pod nazivom "flash" unutar Pycom ploče. Možete napraviti oznaku u FileZilla kako biste se sljedeći put lakše vratili ovdje.

Ako ikada naiđete na problem gdje FileZilla visi i čeka vrijeme za otpremanje, primijetit ćete datoteku na strani ESP32 koja ima 0 bajtova. Pokušaj pisanja preko njega može vas izluditi jer se nikad ne završi bez obzira na to što pokušali! To je vrlo čudno stanje i događa se vrlo često. Najbolje rješenje za ovo je brisanje 0 -bajtne datoteke i uključivanje modula. Zatim nabavite SVEŽU kopiju izvorne datoteke za ponovno učitavanje u ESP32 modul. Imajte na umu da je ovdje ključna nova kopija. Nekako se izvorna datoteka jednostavno neće ispravno učitati ako ovako visi čak i jednom.

Utvrdili smo da pomaže prevlačenje svake datoteke pojedinačno preko na ESP32 modul, počevši od boot.py. Ova prva datoteka odgovorna je za stavljanje vašeg modula na mrežu, tako da više nećete morati raditi rezanje i lijepljenje u REPL -u. Međutim, možete zgrabiti mapu www i prevući je u jednom kadru. To nam je uvijek išlo u prilog u našem razvoju. Sve ove datoteke pohranjene su u ugrađenoj neisparljivoj flash memoriji u modulu ESP32, tako da će biti tamo nakon što se napajanje isključi. Samo fyi - main.py će se izvršavati nakon boot.py svaki put kada se modul uključi.

Korak 8: Savjeti za hakiranje

Savjeti za hakiranje
Savjeti za hakiranje

Pogledajte sav kôd i pokušajte na Googleu pronaći ključne riječi koje ne prepoznajete. Kad sve bude pokrenuto, možete pokušati promijeniti sve što želite i vidjeti šta radi.

Ako nešto pođe po zlu, uvijek možete očistiti kôd i/ili ponovno bljeskati modul za otprilike 3 minute, kao što ste već učinili ranije.

Da biste formatirali blic i izbrisali sav kôd u jednom snimku, možete unijeti sljedeće u REPL:

import os

os.mkfs ('/flash')

Zatim napravite ciklus napajanja ili pritisnite tipku za poništavanje na Wipy ploči.

Imajte na umu da postoji i drugi način zaobilaženja boot.py & main.py ako vam stvari krenu na um. Samo privremeno spojite pin P12 na 3.3V izlazni pin i pritisnite tipku Reset kao što je prikazano gore. Zaobići će sav vaš kôd i jednom otići ravno u REPL, tako da možete shvatiti stvari bez brisanja cijelog koda iz flash -a.

Kada završite s učitavanjem svih datoteka, samo pritisnite dugme Reset na modulu ESP32 da biste ga ponovo pokrenuli.

Vidjet ćete poznato odbrojavanje na ekranu terminala REPL dok se ponovno prijavljuje na vašu WiFi mrežu. Razlika je u tome što se ovaj kod sada izvodi iz datoteke boot.py.

Korak 9: Web stranice

Web stranice
Web stranice
Web stranice
Web stranice
Web stranice
Web stranice
Web stranice
Web stranice

Mikrowebserver bi trebao biti pokrenut sada na ESP32 pa ga isprobajte pomoću preglednika na računaru ili mobilnog uređaja.

Samo idite na svoju statičku IP adresu i trebali biste vidjeti ekran sličan onom gore.

Dvije web stranice poslužuju se s našeg mikrowebservera koji radi na ESP32.

Prva je zadana index.html stranica koja vam daje jednostavno dugme OTVORI/ZATVORI da simulirate tipku za otvaranje garažnih vrata koju imate. Dok ga pritisnete na svom web pregledniku, vidjet ćete veliku plavu ikonu zupčanika. Ovo je potvrda da je websocket veza uspješno uspostavljena i da ste primili potvrdu od servera da je vaša naredba "press" pravilno primljena. Kada pritisnete ovo dugme, trebali biste vidjeti i svijetlo zeleno LED svjetlo na Pycom ploči. Veza websockets -a prenosi stanje dugmeta slanjem jednostavnih tekstualnih poruka "pritisnite" kada ga pritisnete i "pritisnuti" kada ga otpustite. Radi potvrde, mikrowebserver šalje ovaj tekst natrag, ali mu dodaje "_OK" kako bi rekao da ga je pravilno primio.

Nakon što spojite optički izolirane poluprovodničke releje (SSR) na stezaljke za otvaranje garažnih vrata (pogledajte slikovni shematski dijagram), pritiskom na dugme vrata će se i fizički otvoriti/zatvoriti.

Dajte mu nekoliko sekundi i pokušajte ponovo ako ne vidite da se prikazuje plava ikona zupčanika jer se možda ponovno pokreće ili nešto slično. Imajte na umu da će se websocket automatski zatvoriti za otprilike 20 sekundi ako ga ne koristite za sprječavanje zaključavanja. Također imajte na umu da su websocketi orijentirani na povezivanje, pa morate zaustaviti websocket da biste promijenili stranice ili se možda nećete moći ponovo povezati ako ne vratite reset na ESP32 modulu. Za naš primjer koda, imamo nekoliko načina zaustavljanja web -utičnice: dodirnite tekst statusa, okretne tačke ili hipervezu za prelazak na sljedeću stranicu.

Druga web stranica služi za očitavanje mjerenja udaljenosti sa tinyLiDAR senzora udaljenosti leta. Samo jednom pritisnite dugme i ono će početi prenositi očitavanja udaljenosti na vaš mobilni uređaj oko 20 sekundi. Dok pritisnete prema dolje, zasvijetlit će crvena LED lampica na Pycom ploči tako da možete reći da prima naredbu za pritiskanje gumba s ove stranice.

Obje stranice ukazuju na to da su vrata otvorena ili zatvorena udaljenošću čitanja od tinyLiDAR -a. Varijabla doorThreshold mora biti postavljena u obje html datoteke u odjeljku skripte kako je ovdje prikazano:

//--------------------------

// **** Podesite prema potrebi **** var doorThreshold = 100; // udaljenost u cm var ws_timeout = 20000; // maksimalno vrijeme u ms za omogućavanje otvaranja/zatvaranja vrata zadano je 20sec // -------------------------- // --- -----------------------

Morat ćete urediti ovaj prag za postavljanje svoje garaže kako bi mogao otkriti kada su garažna vrata namotana i stoga OTVORENA ili spuštena te stoga ZATVORENA. Nakon što ste unijeli izmjene za svoj prag u obje html datoteke, ponovo ih učitajte i ponovo pokrenite da biste provjerili radi li sve u redu.

Ako je sve u redu, sada možete nastaviti postavljati ploču naopako u svoju garažu kao što je prikazano na gornjoj slici. Igle 3 i 4 SSR -a povežite i sa otvaračem za garažna vrata. Polaritet nije bitan jer koristimo MOSFET verziju SSR -a - potrebno je samo skratiti kontakte kako bi simulirao klik tipkom na osnovnoj jedinici garažnih vrata.

Korak 10: I to je to

I to je to!
I to je to!

Čestitamo! Otvaranje garažnih vrata sada je jednostavno kao dodirivanje telefona, a možete provjeriti jesu li ostala otvorena ili ne mjerenjem u stvarnom vremenu pomoću tinyLiDAR -a:)

Sada također možete koristiti ESP32 sa web -utičnicama preko WiFi -a za gotovo sve što želite. Pročitajte više o "web -utičnicama" ako niste upoznati s njima - zaista su prilično brzi i laki za upotrebu.

Implementacija tinyLiDAR -a s ESP32 bila je vrlo jednostavna, iako je senzor izvorno dizajniran za rad na Arduino UNO. Imamo složenije beta izdanje Terminal GUI -a koje izvodi većinu tinyLiDAR naredbi u mikropythonu na ESP32 - pogledajte gornju sliku. Dostupno je u našem odjeljku za preuzimanje zajedno s referentnim priručnikom itd.

Pregledajte cijeli naš kôd da biste razumjeli kako se sve slaže i pokušajte promijeniti stvari kako biste mogli graditi na njemu da radite sve što želite.

Imajte na umu da ovdje nije bilo riječi o sigurnosti. Sigurnost je ogromno područje u IoT -u i treba je shvatiti ozbiljno. Ako želite koristiti ovaj projekt u svojoj garaži, trebali biste čuvati jake i sigurne lozinke za WiFi mrežu. Na internetu postoji mnogo informacija o sigurnosti pa svakako pročitajte najnovije informacije i budite na vrhu.

Hvala na čitanju i sretno hakiranje! Živjeli.

Preporučuje se: