Kazalo:

TinyLiDAR v vaši garaži!: 10 korakov
TinyLiDAR v vaši garaži!: 10 korakov

Video: TinyLiDAR v vaši garaži!: 10 korakov

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

DIY projekt odpiranja garažnih vrat WiFi

Svet IoT šele začenja eksplodirati - vsako tehnološko podjetje po vsem svetu poskuša ugotoviti, kako se bodo prilegali temu novemu svetu. To je tako velika priložnost! Zato bomo v skladu s to temo IoT poučili, kako lahko naredite svojega lastnega demonstratorja IoT, ki je dejansko zelo uporaben;)

TL; povzetek DR

  • nastavite zanesljiv potek dela za kodiranje modula WiFi ESP32
  • utripaj
  • sestavite na svojo mizo
  • prenesite našo kodo aplikacije in jo razpakirajte
  • dodajte poverilnice WiFi in statični IP
  • povežite z omrežjem WiFi
  • uredite pragove in ga namestite v garažo
  • priklopite na stike za odpiranje garažnih vrat
  • in kliknite stran!
  • NI POTREBNO LETLJENJA (razen čepov na odmičnih ploščah, če je potrebno)

Potrebni deli

  • tinyLiDAR modul senzorja razdalje leta
  • Wipy3.0 ali podobna plošča WiFi na osnovi ESP32
  • Optično izoliran polprevodniški rele (Omron G3VM-201AY1) za upravljanje odpiranja garažnih vrat
  • 470ohmski upor (5% 1/8 vatov ali več je v redu)
  • Momentalno stikalo za gumb BOOT (GPIO0) za nadgradnjo vdelane programske opreme na plošči ESP32
  • USB v serijski ključ za nalaganje kode in interakcijo z REPL na ESP32 (uporabite V/I različico 3.3v)
  • Okvir + žice
  • Napajanje: 3,3 V do 5 V pri 500 mA ali več. Za priključitev na vašo ploščo lahko uporabite polnilnik za mobilni telefon microUSB za napajanje in odklopno ploščo microUSB.

1. korak: IoT Kaj?

IoT Kaj?
IoT Kaj?

Za izraz IoT ste nedvomno že slišali v vseh medijih, toda kaj to pomeni?

Ohlapno rečeno to pomeni, da so na internet povezane vse vrste senzorjev in stvari, ki jih je mogoče nadzorovati. Danes je internet sinonim za brezžično povezavo, zato imamo vse elektronsko naenkrat brezžično povezano prek neke vrste brezžične povezave, kot je WiFi/BT/LoRa/SigFox itd. Ko smo povezani z internetom, lahko zaznamo in/ali nadziramo te stvari iz našega najljubšega mobilnega krmilnika, kot je naš mobilni telefon, ali pa jih avtomatizirajte prek neke aplikacije, ki deluje nekje na strežniku (tj. v oblaku).

Čeprav večja podjetja v zadnjem času tržijo več glasovnega nadzora, AI in povezljivost v oblaku; osnove, da se vse to zgodi, so še vedno enake. Preden je možen kateri koli od teh konceptov, morate svojo "stvar" povezati z brezžično povezavo. Zato začnimo z osnovami in se naučimo, kako povezati senzor razdalje tinyLiDAR časa letenja z nizkocenovnim modulom WiFi, nato pa pokazati, da podatke pošiljamo naprej in nazaj po omrežju. Do konca tega navodila boste imeli svoj delujoč daljinski upravljalnik garažnih vrat, ki podpira WiFi, z monitorjem v realnem času, da preverite, ali so vrata odprta ali zaprta.

Tehnično gledano, kot je prikazano na zgornjem blokovnem diagramu, ta projekt izvaja spletni strežnik micropython, ki deluje na modulu WiFi ESP32 s komunikacijskim protokolom „websockets“za posredovanje podatkov iz katerega koli mobilnega spletnega brskalnika. Temu dodamo še majhen senzor časa letenja LIDAR, ki na zahtevo meri, tako da lahko preverite, ali so garažna vrata ostala odprta.

2. korak: Poskusite - res ne, preizkusite zdaj

Poskusite - res ne, preizkusite zdaj
Poskusite - res ne, preizkusite zdaj

Vse to je relativno novo področje elektronike, zato bo potrebno veliko eksperimentiranja, da bodo stvari delovale pravilno. Upamo, da boste na tej osnovi kode lahko gradili in ustvarili še nekaj bolj zanimivih projektov IoT.

Vsa koda, uporabljena v tem članku, je v času pisanja dobro delovala. Ker pa se stopnja inovativnosti v prostoru IoT povečuje, so se stvari morda spremenile, ko ste to prebrali. Vsekakor pa boste z odpravljanjem težav in prilagajanjem za lastno uporabo vsaj z glavo prišli v ta razburljiv nov prostor in začeli razmišljati kot inženir IoT!

Pripravljen? Začnimo s prvim korakom vzpostavitve lastnega stabilnega razvojnega okolja.

3. korak: Micropython & ESP32

Micropython in ESP32
Micropython in ESP32

Module WiFi ESP32 je ustvaril Espressif in so se od svoje prve generacije modulov ESP8266 pred nekaj leti precej izboljšali. Te nove različice imajo veliko več pomnilnika, močnejši procesor in več funkcij kot prvotni moduli in so še vedno nizke cene. Zgornji diagram vam daje občutek, koliko so lahko spakirali v ta mali čip ESP32. IC ESP32 IC je dvojedrni mikrokrmilnik z radijskim sprejemnikom 802.11b/g/n WiFi in vgrajenim radijem Bluetooth 4.2. Moduli, ki temeljijo na ESP32, običajno dodajo anteno, dodatni pomnilnik FLASH in regulatorje moči.

Upoštevajte, da ko v tem navodilu rečemo modul ESP32, mislimo na plošče Pycom Wipy3.0, ki temeljijo na čipu/modulu ESP32. Po naših izkušnjah se zdi, da so plošče Pycom višje kakovosti izdelave od tipičnih poceni razpoložljivih modulov ESP32. Pri razvoju je vedno koristno zmanjšati čim več spremenljivk, zato smo namesto nizkocenovnih generikov izbrali plošče Pycom.

Za aplikacije OEM je kodiranje ESP32 običajno izvedeno v jeziku C, na srečo pa imamo na izbiro tudi veliko možnosti, tako da vam ne bo treba spuščati na tako nizko raven, če tega ne želite. Za vse naše kodiranje v tem navodilu smo se odločili uporabiti mikropython.

Kot ste morda domnevali, je Micropython podmnožica celotnega programskega jezika Python, ki poganja nekatere manj znane iskalnike in spletna mesta, kot so Google, YouTube in Instagram;)

Micropython-logotip
Micropython-logotip

Micropython se je začel kot kickstarter projekt prvotno za procesor STM32, vendar je postal zelo priljubljen za veliko različnih mikrokrmilnikov. Tukaj uporabljamo najnovejša uradna vrata Pycom ESP32 za mikropython.

4. korak: Hitrejša pot

Hitrejša pot
Hitrejša pot

Koda mikropythona ima preprost grafični vmesnik, ki se imenuje REPL, kar pomeni "Read -Eval -Print Loop". REPL ESP32 običajno deluje pri 115,2 Kbaud, odkar dostopate prek serijskih vrat. Na zgornji sliki je prikazan ta poziv REPL, označen s tremi puščicami, ki čakajo na neposredne ukaze. To je preprost način, da preizkusite naše preproste ukaze in večina kodirnikov ga uporablja za razvoj svoje programske opreme, vendar smo ugotovili, da je to zelo boleča pot. Zato smo se za to navodilo odločili narediti drugače …

Ker imajo moduli ESP32 hitro povezavo WiFi, moramo do modula dostopati prek WiFi prek strežnika FTP, ki je že vgrajen v standardno kodo mikropitona. To nam bo nato omogočilo, da uporabnike FTP, kot je FileZilla, preprosto povlečemo in spustimo svojo kodo na ESP32.

Zato moramo za to najprej vnesti modul ESP32 v omrežje WiFi. Moduli Wipy3.0 privzeto izvajajo majhno dostopno točko, tako da se lahko neposredno povežete z njimi iz prenosnega računalnika na 192.168.4.1. Če vam je ta metoda všeč, si oglejte več podrobnosti tukaj.

V našem laboratoriju delamo na namiznih računalnikih, zato smo želeli, da se moduli ESP32 povežejo z našim omrežjem. Če želite to narediti, moramo modulu dati samo statični naslov IP in podatke o geslu za prijavo v naše omrežje WiFi.

5. korak: Prenesite zdaj

Prenesi zdaj
Prenesi zdaj
Prenesi zdaj
Prenesi zdaj
Prenesi zdaj
Prenesi zdaj
Prenesi zdaj
Prenesi zdaj

Prenesite kodo aplikacije zdaj in razpakirajte datoteke v začasno mapo v računalniku. Nato začnite urejati skriptne datoteke mywifi.txt in boot.py z lastnimi poverilnicami za omrežje WiFi.

Btw - naš najljubši urejevalnik besedil je še vedno SublimeText. Lahko ga prenesete tukaj.

Prav tako morate prenesti terminalsko programsko opremo TeraTerm in FTP FileZilla FTP, če teh še nimate v računalniku.

FileZilla boste morali nastaviti, kot je prikazano na zgornjih slikah. Tudi v upravitelju spletnega mesta morate za prijavo v ESP32 "dodati novo mesto" z uporabo statičnega naslova IP, ki ste ga izbrali, kot je prikazano zgoraj. Uporabnik je "mikro", geslo pa "python". Pomembno je, da uporabite pasivni FTP in ga omejite samo na posamezne povezave. Ugotovili smo, da je omejevanje hitrosti nalaganja pomagalo preprečiti tudi zadrževanje nalaganja. Čeprav na slikah ni prikazano, bi bilo koristno povezati program SublimeText za vrste datotek, tako da lahko kodo uredite tako, da dvokliknete na levi strani zaslona FTP. Če želite to narediti, pojdite v meni Nastavitve in v meniju Urejanje datotek/vrste datotek vnesite lokacijo svoje datoteke SublimeText exe za vsako povezavo. Na primer naš je bil:

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 Besedilo Build 3065 x64 / sublime_text.exe "css" C: / Sublime Text Build 3065 x64 / sublime_text.exe"

Kopirajte izvlečene datoteke aplikacij za to navodilo v novo mapo z imenom "FTP" na vašem računalniku, kot smo to storili mi. Kasneje bo lažje povleči od tu znotraj FileZilla.

Običajno je dobra ideja, da na ESP32 deluje najnovejša vdelana programska oprema. Nadgradnja modulov Pycom za uporabo najnovejšega mikropythona je zelo preprosta in jo je mogoče z orodjem za posodobitev vdelane programske opreme narediti v približno 3 minutah.

Prepričajte se, da vrata COM za vaš USB nastavite na serijski ključ in prekličete izbiro načina visoke hitrosti, kot je prikazano na zgornji sliki "Komunikacija". Naš je bil vrata COM 2. Upoštevajte, da boste morali za preklop modulov ESP32 v ta način nadgradnje pritisniti gumb GPIO0/zagon (na zatiču P2), medtem ko pritisnete in spustite gumb za ponastavitev.

6. korak: čas strojne opreme

Čas strojne opreme
Čas strojne opreme
Čas strojne opreme
Čas strojne opreme

Zdaj bi bil pravi čas, da priključite strojno opremo na ploščo, kot je prikazano na zgornji slikovni shemi.

Ko je vse to končano. Zaženite programsko opremo terminala z ustreznimi vrati COM za USB do serijskega ključa in ga nastavite na 115,2 KB.

Pri vklopu mora modul prikazati znani poziv REPL, ki daje tri puščice ">>>".

Zdaj pojdite na urejeno datoteko mywifi.txt in kopirajte vso vsebino (CTRL+C). Nato pojdite na zaslon terminala REPL in pritisnite CTRL+E, da preklopite v način izrezivanja in lepljenja. Nato z desno tipko miške kliknite, da prilepite vsebino na zaslon REPL, nato pa pritisnite tipki CTRL+D, da izvedete, kar ste prilepili.

Takoj bi moral začeti odštevanje, če želite povedati, da se poskuša povezati z vašim omrežjem WiFi. Zgornji posnetek prikazuje sporočilo o uspešni povezavi.

Ko ste povezani, se lahko z datoteko FileZilla povežete s strežnikom FTP v modulih na statičnem naslovu IP, ki ste ga izbrali že v datotekah mywifi.txt in boot.py.

7. korak: Še vedno z nami?

Še vedno z nami?
Še vedno z nami?
Še vedno z nami?
Še vedno z nami?

Če je bilo do sedaj vse v redu, je dobro zate! Trdo delo je opravljeno:) Zdaj bo gladko jadranje - samo nekaj rezanja in lepljenja in zagotovo boste delovali, da ga boste lahko nato namestili v svojo garažo.

Če želite urediti katero koli kodo, lahko dvokliknete na levi strani okna FTP v FileZilla in zagnalo se bo SublimeText. Shranite spremembe in jih nato povlecite na desno stran, ki je okno ESP32.

Zaenkrat samo povlecite datoteke z leve strani na desno stran FileZilla, da naložite vsako datoteko posebej v modul ESP32. To traja le nekaj kratkih sekund namesto minut, kot to počne običajna metoda REPL. Upoštevajte, da morajo biti vse datoteke v korenskem imeniku, imenovanem "flash", v notranjosti plošče Pycom. V datoteki FileZilla lahko ustvarite zaznamek, da se boste naslednjič lažje vrnili sem.

Če boste kdaj imeli težave, ko FileZilla visi in čas za nalaganje preneha, boste na strani ESP32 opazili datoteko, ki ima 0 bajtov. Poskus, da bi ga zapisal, vas lahko zmeša, saj se nikoli ne konča, ne glede na to, kaj poskusite! To je zelo čudno stanje in se pojavlja zelo pogosto. Najboljša rešitev za to je, da izbrišete 0 -bajtno datoteko in vklopite modul. Nato dobite SVEŽO kopijo izvorne datoteke, da jo znova naložite v modul ESP32. Upoštevajte, da je tukaj ključna nova kopija. Nekako se izvorna datoteka preprosto ne bo pravilno naložila, če tako visi tudi enkrat.

Ugotovili smo, da lahko vsako datoteko posebej povlečete v modul ESP32, začenši z boot.py. Ta prva datoteka je odgovorna za prenos vašega modula v omrežje, zato vam ne bo treba več izrezati in prilepiti v REPL. Lahko pa zgrabite mapo www in jo povlečete v enem posnetku. To nam je vedno pomagalo pri razvoju. Vse te datoteke so shranjene v vgrajenem nehlapnem pomnilniku flash v modulu ESP32, zato bodo tam po izklopu napajanja. Samo fyi - main.py se bo izvedel po boot.py vsakič, ko se modul vklopi.

8. korak: Nasveti za krampanje

Nasveti za hekanje
Nasveti za hekanje

Oglejte si vso kodo in poskusite poiskati ključne besede, ki jih ne prepoznate. Ko je vse pripravljeno, lahko poskusite spremeniti vse, kar želite, da vidite, kaj počne.

Če gre kaj narobe, lahko vedno izbrišete kodo in/ali znova utripate modul v približno 3 minutah, kot ste to storili že prej.

Če želite znova formatirati bliskavico in izbrisati vso kodo v enem posnetku, lahko v REPL vnesete naslednje:

uvoz os

os.mkfs ('/flash')

Nato izvedite cikel vklopa ali pritisnite gumb za ponastavitev na plošči Wipy.

Upoštevajte, da obstaja tudi drug način, da se izognete boot.py & main.py, če vam gre na misel. Samo začasno priključite nožico P12 na izhodni pin 3.3V in pritisnite gumb za ponastavitev, kot je prikazano zgoraj. Zaobšel bo vso vašo kodo in enkrat šel naravnost v REPL, tako da boste lahko ugotovili stvari, ne da bi izbrisali vso kodo iz bliskavice.

Ko naložite vse datoteke, pritisnite gumb Ponastavi na modulu ESP32, da ga znova zaženete.

Ko se znova prijavi v omrežje WiFi, boste na zaslonu terminala REPL videli znano odštevanje. Razlika je v tem, da se ta koda tokrat izvaja iz datoteke boot.py.

9. korak: Spletne strani

Spletne strani
Spletne strani
Spletne strani
Spletne strani
Spletne strani
Spletne strani
Spletne strani
Spletne strani

Zdaj bi moral biti na spletnem mestu ESP32 zagnan mikrospletni strežnik, zato ga preizkusite v namiznem brskalniku ali mobilni napravi.

Pojdite na statični naslov IP in videli boste podoben zaslon kot zgoraj.

Z našega mikrospletnega strežnika, ki deluje na ESP32, strežeta dve spletni strani.

Prva je privzeta stran index.html, ki vam ponuja preprost gumb ODPRI/ZAPRI, da simulirate tipko za odpiranje garažnih vrat, ki jo imate. Ko ga pritisnete v spletnem brskalniku, se prikaže velika modra ikona zobnika. To je potrditev, da je bila povezava websocket uspešno vzpostavljena in ste od strežnika prejeli potrditev, da je bil vaš ukaz "press" pravilno sprejet. Ko pritisnete ta gumb, bi morali na plošči Pycom zasvetiti tudi svetlo zelena LED. Povezava websockets prenaša stanje gumba s pošiljanjem preprostih besedilnih sporočil »pritisni«, ko pritisnete, in »pritisnete«, ko ga spustite. V potrditev mikrospletni strežnik pošlje to besedilo nazaj, vendar mu doda "_OK", da pove, da ga je pravilno prejel.

Ko priključite optično izolirane priključke polprevodniškega releja (SSR) na odpirač garažnih vrat (glejte slikovno shemo), se s pritiskom na gumb vrata tudi fizično odprejo/zaprejo.

Dajte nekaj sekund in poskusite znova, če se ne prikaže modra ikona zobnika, ki se morda znova zažene ali kaj podobnega. Upoštevajte, da se bo websocket samodejno zaprl v približno 20 sekundah, če ga ne uporabljate za preprečevanje zaklepanja. Upoštevajte tudi, da so spletne vtičnice usmerjene v povezavo, zato morate ustaviti spletno vtičnico, če želite spremeniti strani, sicer se ne boste mogli znova povezati, dokler ne pritisnete na ponastavitev na modulu ESP32. Za naš primer kode imamo nekaj načinov ustavitve spletnega vtičnice: dotaknite se besedila stanja, vrtečih se pik ali hiperpovezave, da se pomaknete na naslednjo stran.

Druga spletna stran je namenjena branju meritev razdalje s senzorja razdalje malega leta LiDAR. Samo enkrat pritisnite gumb in ta bo približno 20 sekund začel prenašati odčitke razdalje na vašo mobilno napravo. Ko pritisnete navzdol, bo na plošči Pycom zasvetila rdeča LED, tako da lahko ugotovite, da s te strani prejema ukaz za pritisk gumba.

Obe strani označujeta, da so vrata odprta ali zaprta z razdaljo branja od tinyLiDAR. Spremenljivko doorThreshold je treba nastaviti v obeh datotekah html v razdelku skript, kot je prikazano tukaj:

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

// **** Po potrebi prilagodite **** var doorThreshold = 100; // razdalja v cm var ws_timeout = 20000; // največji čas v ms, ki omogoča odpiranje/zapiranje vrat privzeto je 20 sekund // -------------------------- // --- -----------------------

Ta prag boste morali urediti za svojo garažno nastavitev, da bo lahko zaznala, kdaj so garažna vrata zavihana in zato ODPRTA ali zvita in zato ZAPRTA. Ko ste uredili svoj prag v obeh datotekah html, jih znova naložite in znova zaženite, da preverite, ali vse še vedno deluje.

Če je vse v redu, lahko zdaj namestite ploščo na glavo v svoji garaži, kot je prikazano na zgornji sliki. Nožice 3 in 4 SSR priključite tudi na odpirač garažnih vrat. Polarnost ni pomembna, saj uporabljamo MOSFET različico SSR - le kratke stike je treba simulirati s klikom gumba na osnovni enoti garažnih vrat.

10. korak: In to je to

In to je to!
In to je to!

Čestitamo! Odpiranje garažnih vrat je zdaj tako preprosto, kot če se dotaknete telefona in lahko preverite, ali so bila vrata odprta ali ne, tako da v majhnem merilniku v realnem času merite z tinyLiDAR:)

Zdaj lahko uporabite tudi ESP32 s spletnimi vtičnicami prek WiFi za skoraj vse, kar želite. Preberite več o "spletnih vtičnicah", če jih ne poznate - res so precej hitri in enostavni za uporabo.

Izvajanje tinyLiDAR -a z ESP32 je bilo zelo enostavno, čeprav je bil senzor prvotno zasnovan za delovanje na Arduino UNO. Imamo bolj dovršeno beta različico grafičnega vmesnika Terminal, ki izvaja večino ukazov tinyLiDAR v mikropythonu na ESP32 - glejte zgornjo sliko. Na voljo je v našem razdelku za prenos skupaj z navodili za uporabo itd.

Oglejte si vso našo kodo, da razumete, kako se vse skupaj sestavi, in poskusite stvari spremeniti, da boste lahko na njej gradili, da boste počeli vse, kar želite.

Upoštevajte, da varnost tukaj ni bila omenjena. Varnost je ogromno področje interneta stvari, zato ga je treba jemati resno. Če želite ta projekt uporabiti v svoji garaži, naj bodo gesla za omrežje WiFi močna in varna. Na spletu je veliko informacij o varnosti, zato preberite najnovejše in bodite na tekočem.

Hvala za branje in srečno vdiranje! Na zdravje.

Priporočena: