Sadržaj:
- Korak 1: IoT Što?
- Korak 2: Isprobajte - ne stvarno, isprobajte sada
- Korak 3: Micropython i ESP32
- Korak 4: Brži način
- Korak 5: Preuzmite sada
- Korak 6: Vrijeme hardvera
- Korak 7: Još uvijek ste s nama?
- Korak 8: Savjeti za hakiranje
- Korak 9: Web stranice
- Korak 10: I to je to
Video: TinyLiDAR u vašoj garaži!: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
DIY projekt otvaranja WiFi garažnih vrata
IoT svijet tek počinje eksplodirati - svaka tehnološka tvrtka diljem svijeta pokušava shvatiti 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; sažetak DR -a
- postavite pouzdan tijek rada za kodiranje ESP32 WiFi modula
- bljesnuti
- sastavite na svoju ploču
- preuzmite naš kod aplikacije i raspakirajte ga
- dodajte svoje vjerodajnice za WiFi i statički IP
- 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 LETLJENJE (osim igle na razvodne ploče ako je potrebno)
Potrebni dijelovi
- 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 tipku BOOT (GPIO0) za nadogradnju firmvera na ESP32 ploči
- USB na serijski ključ za prijenos 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 mobitel za napajanje i microUSB ploču za uključivanje u matičnu ploču.
Korak 1: IoT Što?
Nesumnjivo ste do sada u svim medijima čuli za pojam IoT, ali što 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 s internetom, možemo osjetiti i/ili kontrolirati te stvari s našeg omiljenog mobilnog kontrolera poput našeg mobitela ili ih automatizirati putem neke aplikacije koja se negdje poslužuje na poslužitelju (tj. u oblaku).
Iako veće tvrtke u posljednje vrijeme više plasiraju glasovno upravljanje, AI i povezivanje u oblaku; osnove da se sve ovo dogodi su još uvijek iste. Morate povezati svoju "stvar" s bežičnom vezom 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 prijenos podataka naprijed -natrag 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
Ovo je sve relativno novo područje u elektronici pa će biti potrebno mnogo eksperimentiranja kako bi stvari radile kako treba. Nadamo se da ćete se moći nadograditi 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 članka. 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šavanjem problema i prilagodbom za vlastitu uporabu barem ćete ući 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
WiFi module ESP32 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 puno više memorije, jači procesor i više mogućnosti od izvornih modula, a i dalje su niske cijene. Gornji dijagram daje vam uvid u to koliko su uspjeli spakovati u ovaj mali ESP32 čip. ESP32 IC sam je dvojezgreni mikrokontroler s 802.11b/g/n WiFi radijem i također integriranim Bluetooth 4.2 radiom. Moduli bazirani 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 se temelje na ESP32 čipu/modulu. Prema našem iskustvu, čini se da su Pycom ploče bolje kvalitete 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 mogućnosti koje možemo birati pa nećete morati silaziti na ovu nisku razinu ako ne želite. Odlučili smo se koristiti micropython za svo naše kodiranje u ovom uputstvu.
Možda ste pretpostavili da je Micropython podskup cjelovitog programskog jezika Python koji pokreće neke manje poznate tražilice i web stranice poput Googlea, YouTubea i Instagrama;)
Micropython je započeo kao kickstarter projekt izvorno za STM32 procesor, ali je postao vrlo popularan za mnoge različite mikrokontrolere. Ovdje koristimo najnoviji službeni Pycom ESP32 port mikropitona.
Korak 4: Brži način
Kôd mikropitona ima jednostavan grafički interfejs koji se naziva REPL, što znači "Read -Eval -Print Loop". ESP32 -ov REPL normalno radi na 115.2Kbaud jer mu se pristupa putem serijskog porta. Gornja slika prikazuje ovaj REPL upit označen s tri strelice koje čekaju izravne 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 to učiniti na drugačiji način za ovu pouku …
Kako moduli ESP32 imaju brzu WiFi vezu, samo nam je potrebno pristupiti modulu putem WiFi -a putem FTP poslužitelja koji je već ugrađen u standardni mikropython kod. To će nam tada omogućiti korištenje FTP klijenata poput FileZille 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 pa se možete izravno povezati s njima s prijenosnog računala na 192.168.4.1. Ovdje vam se sviđa više detalja ako vam se sviđa ova metoda.
Radimo na stolnim računalima u našem laboratoriju 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 zaporci za prijavu na našu WiFi mrežu.
Korak 5: Preuzmite sada
Odmah preuzmite kod aplikacije i otpakirajte datoteke u privremenu mapu na svom računalu. 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. Ovdje se može preuzeti.
Odmah biste trebali preuzeti i terminalni softver TeraTerm i FTP softver FileZilla, ako ih već nemate na računalu.
Morat ćete postaviti FileZilla kao što je prikazano na gornjim slikama. Također u upravitelju web mjesta morate "dodati novo mjesto" 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 zastoja prijenosa. Iako nije prikazano na slikama, bilo bi korisno povezati program SublimeText s vrstama datoteka kako biste mogli urediti kôd dvostrukim klikom na lijevoj strani FTP zaslona. Da biste to učinili, samo idite na izbornik Postavke i u uređivanju datoteka/asocijacijama 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 Konstrukcija teksta 3065 x64 / sublime_text.exe "css" C: / Sublime Text Build 3065 x64 / sublime_text.exe"
Kopirajte izdvojene datoteke aplikacija za ovu instrukciju u novu mapu pod nazivom "FTP" na vašem računalu kao 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 vrlo je jednostavna i može se obaviti za oko 3 minute pomoću njihovog alata za ažuriranje firmvera.
Samo obavezno postavite COM priključak 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
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 priključkom 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.
Odmah bi trebao započeti odbrojavanje kako bi rekao da se pokušava povezati s vašom WiFi mrežom. 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?
Ako je do sada sve bilo u redu onda je dobro za vas! Naporni posao je obavljen:) Sada će sve biti glatko - samo hrpa rezanog i zalijepljenog materijala i bit ćete spremni za rad pa ga možete montirati u svoju garažu.
Za uređivanje bilo kojeg koda, dvaput kliknite na lijevu stranu FTP prozora u FileZilla -i i pokrenut će se SublimeText. Spremite promjene, a zatim ih povucite 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 korijenskom 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 ikad naiđete na problem gdje FileZilla visi i čeka vrijeme za prijenos, primijetit ćete datoteku na strani ESP32 koja ima 0 bajtova. Pokušaj pisanja preko toga može vas izluditi jer 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 to je brisanje datoteke od 0 bajta i uključivanje modula u ciklus napajanja. Zatim nabavite SVJEŽ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 na ESP32 modul, počevši od boot.py. Ova prva datoteka odgovorna je za stavljanje vašeg modula na mrežu pa više nećete morati raditi izrezivanje i lijepljenje u REPL -u. Međutim, možete zgrabiti mapu www i povući je u jednom kadru. To nam je oduvijek išlo u razvoju. Sve ove datoteke pohranjene su u ugrađenoj neisparljivoj flash memoriji u modulu ESP32 pa će biti tamo nakon što se napajanje isključi. Samo fyi - main.py će se izvoditi nakon boot.py svaki put kada se modul uključi.
Korak 8: Savjeti za hakiranje
Pogledajte sav kôd i pokušajte Google potražiti ključne riječi koje ne prepoznajete. Kad sve bude pokrenuto, možete pokušati promijeniti što god želite da vidite što radi.
Ako bilo što pođe po zlu, uvijek možete izbrisati kôd i/ili ponovno bljeskati modul za otprilike 3 minute, kao što ste već učinili ranije.
Da biste formatirali bljeskalicu i izbrisali sav svoj kôd u jednom kadru, možete unijeti sljedeće u REPL:
uvoz os
os.mkfs ('/flash')
Zatim napravite ciklus napajanja ili pritisnite gumb za resetiranje 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 gumb Reset kao što je prikazano gore. Zaobići će sav vaš kôd i jednom otići ravno u REPL kako biste mogli shvatiti stvari bez brisanja cijelog koda iz bljeskalice.
Nakon što ste prenijeli sve datoteke, samo pritisnite gumb Reset na modulu ESP32 da biste ga ponovno pokrenuli.
Na ekranu terminala REPL vidjet ćete poznato odbrojavanje 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
Mikrowebserver trebao bi biti pokrenut sada na ESP32 pa ga isprobajte pomoću stolnog preglednika ili mobilnog uređaja.
Samo idite na svoju statičku IP adresu i trebali biste vidjeti zaslon sličan onom gore.
S našeg mikrowebservera koji radi na ESP32 poslužuju se dvije web stranice.
Prva je zadana index.html stranica koja vam daje jednostavan gumb OTVORI/ZATVORI da simulirate tipku za otvaranje garažnih vrata koju imate. Dok ga pritisnete na 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 poslužitelja da je vaša naredba "press" pravilno primljena. Kad pritisnete ovaj gumb, trebali biste vidjeti i svijetlu zelenu LED lampicu na Pycom ploči. Veza web -utičnica prenosi stanja gumba slanjem jednostavnih tekstualnih poruka "pritisnite" kada ga pritisnete i "pritisnete" kada ga otpustite. Za potvrdu, mikro web -poslužitelj šalje ovaj tekst natrag, ali mu dodaje "_OK" kako bi rekao da ga je ispravno primio.
Nakon što ste priključili optički izolirane poluprovodničke relejne (SSR) stezaljke na otvarač garažnih vrata (pogledajte slikovni shematski dijagram), pritiskom na gumb također ćete fizički otvoriti/zatvoriti vrata.
Dajte mu nekoliko sekundi i pokušajte ponovno 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 web -utičnice orijentirane na povezivanje pa morate zaustaviti web -utičnicu da biste promijenili stranice ili se možda nećete moći ponovno sigurnosno kopirati sve dok ne vratite reset na modulu ESP32. Za naš primjer koda, imamo nekoliko načina zaustavljanja web -utičnice: dodirnite tekst statusa, točke koje se okreću ili hipervezu za prelazak na sljedeću stranicu.
Druga web stranica služi za očitavanje mjerenja udaljenosti s tinyLiDAR osjetnika udaljenosti leta. Samo jednom pritisnite gumb i počet će strujati očitanja 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 pritisak gumba s ove stranice.
Obje stranice ukazuju na to da su vrata otvorena ili zatvorena udaljenošću čitanja od tinyLiDAR -a. Varijablu doorThreshold potrebno je postaviti u obje html datoteke u odjeljku skripte kako je ovdje prikazano:
//--------------------------
// **** Po potrebi prilagodite **** var doorThreshold = 100; // udaljenost u cm var ws_timeout = 20000; // maksimalno vrijeme u ms za omogućavanje otvaranja/zatvaranja vrata zadano je 20 sekundi // -------------------------- // --- -----------------------
Morat ćete urediti ovaj prag za postavljanje svoje garaže tako da može 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 prenesite te html datoteke i ponovno ga pokrenite kako 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 s otvaračem za garažna vrata. Polaritet nije važan budući da koristimo MOSFET verziju SSR -a - potrebno je samo skratiti kontakte kako bi simulirali klik tipke na osnovnoj jedinici garažnih vrata.
Korak 10: I to je to
Čestitamo! Otvaranje garažnih vrata sada je jednostavno kao dodirivanje telefona i možete provjeriti jesu li ostala otvorena ili ne mjerenjem u stvarnom vremenu pomoću tinyLiDAR -a:)
Sada također možete koristiti ESP32 s web -utičnicama putem WiFi -a za gotovo sve što želite. Pročitajte više o "web -utičnicama" ako ih ne poznajete - doista su brzi i jednostavni 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 na njemu mogli graditi 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 webu postoji mnogo informacija o sigurnosti pa svakako pročitajte najnovije informacije i budite na vrhu.
Hvala na čitanju i sretno hakiranje! Živjeli.
Preporučeni:
Pametni unutarnji nadzor biljaka - Saznajte kada vašoj biljci treba zalijevanje: 8 koraka (sa slikama)
Pametni unutarnji nadzor biljaka - Saznajte kada vašoj biljci treba zalijevanje: Prije nekoliko mjeseci napravio sam štap za praćenje vlažnosti tla koji se napaja iz baterije i može se zabiti u tlo u loncu vaše sobne biljke kako bih vam dao neke korisne informacije o tlu LED razine vlage i bljeskalice koje će vam reći kada treba
Izradite softver baze podataka Ms Access za pripremu plaće u vašoj tvrtki: 6 koraka
Izradite softver baze podataka Ms Access za pripremu plaće u vašoj tvrtki: Dat ću vam kratke upute za stvaranje sustava obračuna plaća pomoću MS pristupa za generiranje mjesečnih plaća i jednostavno ispisati uplatnice. Na ovaj način možete voditi evidenciju pojedinosti o mjesečnoj plaći u bazi podataka, a kasnije možete uređivati ili pregledavati
Arduino svjetlosni termin u vašoj kući: 8 koraka
Arduino svjetlosni termin u vašoj kući: Preoblikovanje arduinskog svjetlosnog termina s https://www.instructables.com/id/Arduino-Light-Th… Theremin je elektronički glazbeni uređaj koji može osjetiti položaj ruku izvođača i stvarati glazbene zvukove, a da izvođač uopće ne dotakne
Kako postaviti ispravljač pogrešaka jezgre sustava Windows na vašoj mreži: 6 koraka
Kako postaviti ispravljač pogrešaka jezgre sustava Windows preko svoje mreže: Otklanjanje pogrešaka popularan je alat koji se koristi za pronalaženje temeljnog uzroka greške. Greška se može loše manifestirati na mnogo različitih načina. može uzrokovati pad sustava (plavi zaslon/BSOD), može uzrokovati rušenje aplikacije, može uzrokovati zamrzavanje vašeg sustava kako bi imenovao fe
Pomoć pri parkiranju unatrag u garaži pomoću postojećeg sigurnosnog senzora i analognog kruga: 5 koraka
Pomoć pri parkiranju unatrag u garaži pomoću postojećeg sigurnosnog senzora i analognog kruga: Pretpostavljam da su mnogi izumi u povijesti čovječanstva napravljeni zbog žena koje se žale. Perilica rublja i hladnjak zasigurno se doimaju kao održivi kandidati. Moj mali "izum" opisano u ovom Instructable je elektronički