Obsah:
- Krok 1: IoT Čo?
- Krok 2: Skúste to - nie, vyskúšajte to teraz
- Krok 3: Micropython a ESP32
- Krok 4: Rýchlejšia cesta
- Krok 5: Prevziať teraz
- Krok 6: Čas hardvéru
- Krok 7: Stále s nami?
- Krok 8: Tipy na hackovanie
- Krok 9: Webové stránky
- Krok 10: A je to
Video: TinyLiDAR vo vašej garáži!: 10 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
DIY WiFi projekt otvárania garážových brán
Svet IoT práve začína explodovať - každá technologická spoločnosť na celom svete sa snaží prísť na to, ako sa zmestí do tohto nového sveta. Je to taká veľká príležitosť! Takže pre tento návod, v súlade s touto témou IoT, sa pozrieme na to, ako si môžete vytvoriť svoj vlastný demonštrátor IoT, ktorý je v skutočnosti veľmi užitočný;)
Súhrn TL; DR
- nastavte spoľahlivý pracovný tok na kódovanie modulu WiFi ESP32
- blesk to
- zostavte si ho na doske na chlieb
- stiahnite si náš kód aplikácie a rozbaľte ho
- pridajte svoje poverenia WiFi a statickú IP
- pripojte ho k sieti WiFi
- upravte prahy a namontujte ho do svojej garáže
- zapojte ho do kontaktov otvárača garážovej brány
- a kliknite preč!
- NIE JE POTREBNÉ PÁJANIE (okrem kolíkov na oddeľovacích doskách, ak je to potrebné)
Potrebné diely
- tinyLiDAR modul snímača vzdialenosti letu
- Doska WiFi Wipy3.0 alebo podobná doska WiFi založená na ESP32
- Opticky izolované polovodičové relé (Omron G3VM-201AY1) na ovládanie otvárača garážových brán
- Odpor 470 ohmov (5% 1/8 W alebo viac je v poriadku)
- Momentálny tlačidlový spínač pre kolík BOOT (GPIO0) na aktualizáciu firmvéru na doske ESP32
- Kľúč USB na sériový prenos na nahranie kódu a interakciu s REPL na ESP32 (použite verziu 3.3 V I/O)
- Breadboard + drôty
- Napájanie: 3,3 V až 5 V pri 500 mA alebo viac. Na napájací panel a napájaciu dosku microUSB môžete použiť nabíjačku na microUSB mobilný telefón.
Krok 1: IoT Čo?
Nepochybne ste už o pojme IoT počuli vo všetkých médiách, ale čo to znamená?
Voľne povedané, znamená to, že sú k internetu pripojené všetky druhy senzorov a ovládateľných vecí. V dnešnej dobe je internet synonymom bezdrôtového pripojenia, a preto máme zrazu všetko elektronické, bezdrôtovo prepojené prostredníctvom nejakého druhu bezdrôtového spojenia, ako je WiFi/BT/LoRa/SigFox atď. Po pripojení k internetu dokážeme vnímať a/alebo ovládať tieto veci z nášho obľúbeného mobilného ovládača, ako je náš mobilný telefón, alebo ich zautomatizujte prostredníctvom nejakej aplikácie bežiacej niekde na serveri (tj. Cloud).
Aj keď v poslednej dobe väčšie spoločnosti predávajú viac hlasového ovládania, AI a cloudového pripojenia; základy toho, aby sa to všetko stalo, sú stále rovnaké. Predtým, ako budete môcť realizovať ktorýkoľvek z týchto konceptov, musíte svoju „vec“pripojiť k bezdrôtovému spojeniu. Začnime teda od základov a naučme sa, ako pripojiť snímač času vzdialenosti tinyLiDAR k lacnému modulu WiFi a potom ukážte, ako odosielať údaje tam a späť v celej sieti. Na konci tohto pokynu budete mať vlastné funkčné diaľkové ovládanie garážových brán s podporou WiFi s monitorom v reálnom čase, ktoré skontroluje, či sú dvere otvorené alebo zatvorené.
Technicky povedané, ako je uvedené v blokovom diagrame vyššie, tento projekt implementuje mikropythonový webový server spustený na WiFi module ESP32 pomocou komunikačného protokolu „websockets“na prenos údajov tam a späť z akéhokoľvek mobilného webového prehliadača. Okrem toho máme k dispozícii malý snímač času letovej vzdialenosti tinyLiDAR, ktorý vykonáva merania na požiadanie, aby ste mohli skontrolovať, či garážové brány neboli otvorené.
Krok 2: Skúste to - nie, vyskúšajte to teraz
Toto je všetko relatívne nová oblasť v elektronike, takže aby veci správne fungovali, bude potrebné veľa experimentovania. Dúfame, že budete môcť stavať na tejto základni kódu a vytvárať ďalšie vlastné zaujímavé projekty IoT.
Všetok kód použitý v tomto článku fungoval v čase písania tohto článku dobre. Ako sa však miera inovácií v oblasti internetu vecí zvyšuje, veci sa môžu zmeniť, kým si to prečítate. V každom prípade riešenie problémov a ich prispôsobenie na vlastné použitie prinesie aspoň to, aby ste sa dostali do tohto vzrušujúceho nového priestoru a začali premýšľať ako IoT Engineer!
Pripravený? Začnime prvým krokom nastavenia vlastného stabilného vývojového prostredia.
Krok 3: Micropython a ESP32
Moduly WiFi ESP32 boli vytvorené spoločnosťou Espressif a od svojej prvej generácie modulov ESP8266 spred niekoľkých rokov sa veľa zlepšili. Tieto nové verzie majú oveľa viac pamäte, silnejší procesor a viac funkcií ako pôvodné moduly a sú stále lacné. Vyššie uvedený diagram vám dáva predstavu o tom, koľko boli schopní zabaliť do tohto malého čipu ESP32. Samotný ESP32 IC je dvojjadrový mikrokontrolér s WiFi rádiom 802.11b/g/n a integrovaným rádiom Bluetooth 4.2. Moduly založené na ESP32 zvyčajne pridávajú anténu, extra pamäť FLASH a regulátory výkonu.
Všimnite si toho, že keď v tomto návode hovoríme modul ESP32, máme na mysli dosky Pycom Wipy3.0, ktoré sú založené na čipe/module ESP32. Podľa našich skúseností sa zdá, že dosky Pycom majú vyššiu kvalitu zostavenia ako dostupné lacné moduly ESP32 s nízkymi nákladmi. Pri vývoji je vždy užitočné obmedziť čo najviac premenných, a tak sme namiesto lacných generík siahli po doskách Pycom.
V prípade aplikácií OEM sa kódovanie ESP32 zvyčajne vykonáva v jazyku C, ale našťastie existuje aj veľa možností, z ktorých si môžeme vyberať, takže sa nebudete musieť dostať na túto nízku úroveň, ak nechcete. Rozhodli sme sa použiť mikropython pre všetky naše kódovania v tomto návode.
Mikropython, ako ste si možno mysleli, je podmnožinou úplného programovacieho jazyka Python, ktorý poháňa niektoré menej známe vyhľadávače a webové stránky ako Google, YouTube a Instagram;)
Micropython začal ako projekt kickstarter pôvodne pre procesor STM32, ale teraz sa stal veľmi populárnym pre mnoho rôznych mikrokontrolérov. Tu používame najnovší oficiálny port mikropythonu Pycom ESP32.
Krok 4: Rýchlejšia cesta
Mikropythonový kód má jednoduché front -endové GUI, ktoré sa nazýva REPL, čo znamená „slučka čítania – ovania – tlače“. REPL ESP32 bežne beží na 115,2Kbaud, pretože je prístupný cez sériový port. Na obrázku vyššie je táto výzva REPL označená tromi šípkami čakajúcimi na priame príkazy. Je to jednoduchý spôsob, ako vyskúšať naše jednoduché príkazy a väčšina programátorov ho používa na vývoj softvéru, ale zistili sme, že je to bolestne pomalá cesta. Preto sme sa rozhodli urobiť to inak pre tento inštrukčný …
Pretože moduly ESP32 majú rýchle pripojenie WiFi, stačí, aby sme k modulu pristupovali cez WiFi prostredníctvom servera FTP, ktorý je už zabudovaný v štandardnom mikropythonovom kóde. To nám potom umožní použiť klientov FTP ako FileZilla na jednoduché pretiahnutie kódu do ESP32.
Aby sme to urobili, musíme najskôr dostať modul ESP32 do vašej siete WiFi. Moduly Wipy3.0 štandardne pri zapnutí používajú malý prístupový bod, takže sa k nim môžete pripojiť priamo z prenosného počítača na adrese 192.168.4.1. Ak sa vám táto metóda páči, pozrite sa tu na ďalšie podrobnosti.
V našom laboratóriu pracujeme na stolných počítačoch, takže sme chceli, aby sa moduly ESP32 namiesto toho pripojili k našej sieti. Aby sme to mohli urobiť, stačí, aby sme modulu poskytli statickú IP adresu a informácie o hesle, aby sme sa mohli prihlásiť do našej siete WiFi.
Krok 5: Prevziať teraz
Stiahnite si kód aplikácie teraz a rozbaľte súbory do dočasného priečinka v počítači. Potom začnite upravovať súbory skriptov mywifi.txt a boot.py pomocou vlastných poverení siete WiFi.
Btw - náš obľúbený textový editor je stále SublimeText. Dá sa stiahnuť tu.
Ak ich ešte nemáte v počítači, mali by ste si teraz stiahnuť softvér terminálu TeraTerm a softvér FTP FileZilla.
Budete musieť nastaviť FileZilla, ako je znázornené na obrázkoch vyššie. V správcovi stránok musíte tiež „pridať novú stránku“na prihlásenie do ESP32 pomocou zvolenej statickej adresy IP, ako je to znázornené vyššie. Používateľ je „mikro“a heslo je „python“. Je dôležité používať pasívny FTP a obmedziť ho iba na jednotlivé pripojenia. Zistili sme, že obmedzenie rýchlosti nahrávania tiež pomohlo zabrániť zablokovaniu nahrávania. Aj keď to nie je znázornené na obrázkoch, bolo by užitočné priradiť program SublimeText k typom súborov, aby ste mohli kód upravovať dvojitým kliknutím na ľavú stranu obrazovky FTP. Ak to chcete urobiť, choďte do ponuky Nastavenia a do asociácií Úpravy súborov/Typy súborov zadajte umiestnenie svojho exe súboru SublimeText pre každé priradenie. Náš napríklad bol:
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 Textová zostava 3065 x64 / sublime_text.exe "css" C: / Sublime Textová zostava 3065 x64 / sublime_text.exe"
Skopírujte extrahované súbory aplikácie pre tento návod do nového priečinka s názvom „FTP“vo vašom počítači, ako sme to urobili my. Neskôr sa odtiaľto bude jednoduchšie presúvať dovnútra FileZilla.
Obvykle je dobré mať na ESP32 spustený najnovší firmvér. Inovácia modulov Pycom na najnovší mikropython je veľmi jednoduchá a pomocou nástroja na aktualizáciu firmvéru sa dá vykonať asi za 3 minúty.
Nezabudnite nastaviť port COM pre hardvérový kľúč USB na sériový kľúč a deaktivovať vysokorýchlostný režim, ako je to znázornené na obrázku „Komunikácia“vyššie. Náš bol COM port 2. Všimnite si toho, že aby ste dostali moduly ESP32 do tohto režimu aktualizácie, budete musieť stlačiť tlačidlo GPIO0/Boot (na pine P2) a súčasne stlačiť a uvoľniť tlačidlo Reset.
Krok 6: Čas hardvéru
Teraz by bolo načase zapojiť hardvér na dosku, ako je to znázornené na vyššie uvedenom schematickom diagrame.
Potom, čo je toto všetko dokončené. Spustite softvér terminálu so správnym portom COM pre váš USB to Serial dongle a nastavte ho na 115,2 kBaud.
Pri zapnutí by modul mal zobraziť známu výzvu REPL, ktorá dáva tri šípky „>>>“.
Teraz prejdite do upraveného súboru mywifi.txt a skopírujte celý obsah (CTRL+C). Potom prejdite na obrazovku terminálu REPL a stlačením klávesov CTRL+E sa dostanete do režimu vystrihovania a prilepenia. Potom pravým tlačidlom myši vložíte obsah na obrazovku REPL a stlačením klávesov CTRL+D vykonáte to, čo ste vložili.
Malo by okamžite začať odpočítavanie a povedať, že sa pokúša pripojiť k vašej sieti Wi -Fi. Snímka obrazovky vyššie zobrazuje správu o úspešnom pripojení.
Po pripojení sa môžete pomocou FileZilla pripojiť k serveru FTP v moduloch na statickú adresu IP, ktorú ste už vybrali v súboroch mywifi.txt a boot.py.
Krok 7: Stále s nami?
Ak je to zatiaľ v poriadku, je to pre teba dobré! Tvrdá práca je hotová:) Teraz to bude plynulá plavba - stačí kopa vystrihnúť a prilepiť a budete v prevádzke, aby ste si ju potom mohli namontovať do svojej garáže.
Ak chcete upraviť ktorýkoľvek z kódov, dvakrát kliknite na ľavú stranu okna FTP v programe FileZilla a spustí sa SublimeText. Uložte zmeny a potom ich presuňte na pravú stranu, ktorou je okno ESP32.
Zatiaľ iba potiahnite súbory z ľavej strany na pravú stranu programu FileZilla a nahrajte každý súbor samostatne do modulu ESP32. Trvá to len niekoľko krátkych sekúnd namiesto minút, ako to robí normálna metóda REPL. Upozorňujeme, že všetky súbory by mali byť v koreňovom adresári s názvom „flash“vo vnútri dosky Pycom. V programe FileZilla si môžete vytvoriť záložku, aby ste sa sem mohli jednoduchšie vrátiť aj nabudúce.
Ak niekedy narazíte na problém, pri ktorom FileZilla visí a vypršal časový limit na odoslanie, všimnete si na strane ESP32 súbor, ktorý má 0 bajtov. Keď to skúsite napísať, môže vás to vyviesť z miery, pretože to nikdy neskončí, bez ohľadu na to, čo vyskúšate! Je to veľmi zvláštny stav a stáva sa to veľmi často. Najlepším riešením je vymazať 0 bajtový súbor a napájať modul. Potom získajte ČERSTVÚ kópiu zdrojového súboru, ktorý chcete znova nahrať do modulu ESP32. Upozorňujeme, že kľúčom je nová kópia. Zdrojový súbor sa nejakým spôsobom nenačíta správne, ak visí takto dokonca aj jedenkrát.
Zistili sme, že pomáha presúvať každý súbor jednotlivo do modulu ESP32 začínajúcim na boot.py. Tento prvý súbor je zodpovedný za to, že sa váš modul dostane do siete, takže už nebudete musieť vystrihovať a vkladať súbory v REPL. Môžete však uchopiť priečinok www a pretiahnuť ho jedným záberom. To sa nám pri našom vývoji vždy osvedčilo. Všetky tieto súbory sú uložené v energeticky nezávislom úložisku Flash v module ESP32, takže budú k dispozícii aj po odpojení napájania. Len fyi - main.py sa spustí po boot.py pri každom zapnutí modulu.
Krok 8: Tipy na hackovanie
Pozrite sa na celý kód a skúste vyhľadať na Googli kľúčové slová, ktoré nepoznáte. Keď je všetko v poriadku, môžete sa pokúsiť zmeniť čokoľvek, na čo máte chuť, aby ste videli, čo to robí.
Ak sa niečo pokazí, môžete vždy vymazať kód a/alebo modul znova flashnúť asi za 3 minúty, ako ste to urobili predtým.
Ak chcete naformátovať blesk a vymazať celý kód na jeden záber, do príkazu REPL môžete napísať nasledujúce:
import os
os.mkfs ('/flash')
Potom vypnite napájanie alebo stlačte tlačidlo reset na doske Wipy.
Všimnite si toho, že existuje aj ďalší spôsob, ako obísť súbor boot.py & main.py, ak sa vám veci stanú mentálne. Stačí dočasne pripojiť kolík P12 k výstupnému kolíku 3,3 V a stlačiť tlačidlo Reset, ako je uvedené vyššie. Obíde celý váš kód a prejde raz priamo na REPL, aby ste na to mohli prísť bez toho, aby ste celý svoj kód vymazali z programu Flash.
Po dokončení nahrávania všetkých súborov stačí reštartovať počítač stlačením tlačidla Reset na module ESP32.
Keď sa znova prihlásite do svojej siete WiFi, na obrazovke terminálu REPL uvidíte známe odpočítavanie. Rozdiel je v tom, že tento kód je teraz spustený zo súboru boot.py.
Krok 9: Webové stránky
Mikrowebserver by mal byť teraz spustený na ESP32, takže ho vyskúšajte pomocou prehliadača na počítači alebo mobilného zariadenia.
Prejdite na svoju statickú adresu IP a mala by sa vám zobraziť obrazovka podobná tej vyššie.
Z nášho mikrowebservera, ktorý beží na ESP32, sú obsluhované dve webové stránky.
Prvá stránka je predvolená stránka index.html, ktorá vám poskytuje jednoduché tlačidlo OTVORIŤ/ZATVORIŤ, čím simulujete typ klikacieho mechanizmu, ktorý máte. Keď ho stlačíte vo webovom prehliadači, zobrazí sa veľká modrá ikona ozubeného kolieska. Toto je potvrdenie, že pripojenie k webovej zásuvke bolo úspešne vykonané a že ste od servera dostali potvrdenie, že váš príkaz „stlačte“bol prijatý správne. Keď stlačíte toto tlačidlo, mali by ste tiež vidieť jasne zelenú LED diódu na doske Pycom. Pripojenie websocket prenáša stavy tlačidla odoslaním jednoduchých textových správ „stlačte“pri stlačení a „stlačené“pri uvoľnení. Na potvrdenie mikrowebový server odosiela tento text späť, ale dodáva k nemu „_OK“, aby uviedol, že ho prijal správne.
Akonáhle pripojíte opticky izolované polovodičové reléové (SSR) svorky k svojmu otváraču garážových brán (pozri obrázkový schematický diagram), stlačením tlačidla sa dvere taktiež fyzicky otvoria/zatvoria.
Skúste to znova. Ak sa modrá ikona ozubeného kolieska nezobrazuje, pravdepodobne sa reštartuje alebo čo. Všimnite si toho, že websocket sa automaticky zatvorí asi za 20 sekúnd, ak ho nepoužívate, aby ste zabránili zablokovaniu. Upozorňujeme, že webové zásuvky sú zamerané na pripojenie, takže na zmenu stránok musíte webovú zásuvku zastaviť. V opačnom prípade sa možno nebudete môcť znova pripojiť, kým v module ESP32 nezačnete resetovať. V prípade nášho ukážkového kódu máme niekoľko spôsobov. zastavenia webovej zásuvky: klepnutím na stavový text, otáčaním bodiek alebo hypertextovým odkazom prejdete na nasledujúcu stránku.
Druhá webová stránka je na čítanie meraní vzdialenosti zo senzora času letovej vzdialenosti tinyLiDAR. Stačí raz stlačiť tlačidlo a údaje o vzdialenosti sa začnú streamovať do vášho mobilného zariadenia asi na 20 sekúnd. Keď stlačíte nadol, rozsvieti sa červená dióda LED na doske Pycom, aby ste mohli povedať, že prijíma príkaz na stlačenie tlačidla z tejto stránky.
Obe strany naznačujú, že dvere sú otvorené alebo zatvorené, a to podľa vzdialenosti čítania od tinyLiDAR. Premennú doorThreshold je potrebné nastaviť v oboch súboroch html v sekcii skriptu, ako je to znázornené tu:
//--------------------------
// **** Upravte podľa potreby **** var doorThreshold = 100; // vzdialenosť v cm var ws_timeout = 20000; // maximálny čas v ms na umožnenie otvorenia/zatvorenia dverí je predvolene 20 sekúnd // -------------------------- // --- -----------------------
Tento prah budete musieť pri nastavení garáže upraviť tak, aby dokázal zistiť, či sú garážové brány zrolované, a teda OTVORENÉ alebo sklopené, a teda ZATVORENÉ. Po úprave prahovej hodnoty v oboch súboroch html tieto súbory html znova nahrajte a reštartujte, aby ste sa presvedčili, že všetko funguje správne.
Ak je všetko v poriadku, môžete pokračovať a namontovať dosku hore dnom vo svojej garáži, ako je znázornené na obrázku vyššie. Pripojte tiež kolíky 3 a 4 SSR k otváraču garážových brán. Polarita nie je dôležitá, pretože používame verziu SSR MOSFET - musí iba skratovať kontakty, aby simulovali kliknutie na základnú jednotku garážovej brány.
Krok 10: A je to
Gratulujem Otváranie garážových brán je teraz také jednoduché, ako ťuknutím na telefón a pomocou merania tinyLiDAR v reálnom čase môžete skontrolovať, či zostali otvorené alebo nie:)
Teraz môžete tiež používať ESP32 s webovými zásuvkami cez WiFi na čokoľvek, čo chcete. Prečítajte si viac o „webových zásuvkách“, ak ich nepoznáte - ich použitie je skutočne veľmi rýchle a jednoduché.
Implementácia tinyLiDAR s ESP32 bola tiež veľmi jednoduchá, aj keď bol snímač pôvodne navrhnutý tak, aby fungoval na Arduino UNO. Máme prepracovanejšie beta vydanie terminálu GUI, ktoré spúšťa väčšinu príkazov tinyLiDAR v mikropythone na ESP32 - viď obrázok vyššie. Je k dispozícii v sekcii na stiahnutie spolu s referenčným manuálom atď.
Pozrite sa na celý náš kód, aby ste pochopili, ako sa všetko spája, a pokúste sa veci zmeniť, aby ste na nich mohli stavať a robiť čokoľvek chcete.
Majte na pamäti, že tu nebola žiadna zmienka o zabezpečení. Zabezpečenie je v oblasti internetu vecí obrovskou oblasťou a treba ho brať vážne. Ak chcete tento projekt používať vo svojej garáži, mali by ste hesla svojej siete WiFi udržiavať silné a bezpečné. Na webe je veľa informácií o zabezpečení, takže si prečítajte najnovšie a buďte vždy nad vecou.
Ďakujeme za prečítanie a prajeme príjemné hackovanie! Na zdravie
Odporúča:
Premena vašej robota Roomba na vozítko Mars: 5 krokov
Premena vašej robota Roomba na vozítko Mars:
Výstraha pred vodou - zariadenie na záchranu vašej lode: 5 krokov (s obrázkami)
Výstraha pred vodou - zariadenie na záchranu vašej lode: Ak ste majiteľom lode, je tu konečne pohodlie dostať loď na suchú zem. Nemôže sa tam potopiť. Všade inde stojí pred neustálou bitkou o prekonanie tendencie vkĺznuť pod vlny a zmiznúť. Cez zimu tu na Aljaške
Eyeballing Predpis vašej očnej bulvy: projekt BME60B: 9 krokov
Predĺženie očnej bulvy: Projekt BME60B: Autor: Hannah Silos, Sang Hee Kim, Thomas Vazquez, Patrick Viste Podľa Michiganskej technologickej univerzity je dioptria jedným z
Talos, zaistenie vašej bezpečnosti počas dochádzania: 5 krokov
Talos, zaistenie vašej bezpečnosti počas dochádzania: Byť obeťou obťažovania počas dochádzania je pre mnohých ľudí, obzvlášť pre ženy, pomerne bežná vec. Bez ohľadu na krajinu sa verejná doprava často rovná vedeniu, že vás môže sexuálne obťažovať alebo dokonca nasledovať pešo domov. V týchto
Príprava vašej nástenky na IoT AppShed: 5 krokov
Príprava vašej nástenky na IoT AppShed: V tejto krátkej lekcii sa pozrieme na to, ako rozbaliť váš NodeMCU pomocou firmvéru AppShed IoT, ktorý ho umožní používať s platformou AppShed IoT a zbierkou aplikácií. Platforma AppShed IoT je platforma, ktorá používateľom umožňuje Qu