Obsah:

TinyLiDAR ve vaší garáži!: 10 kroků
TinyLiDAR ve vaší garáži!: 10 kroků

Video: TinyLiDAR ve vaší garáži!: 10 kroků

Video: TinyLiDAR ve vaší garáži!: 10 kroků
Video: ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! Советы и Хитрости Мастеров по Дому, Которые Действительно Помогают 2024, Červenec
Anonim
TinyLiDAR ve vaší garáži!
TinyLiDAR ve vaší garáži!

DIY WiFi projekt otevírání garážových vrat

Svět IoT právě začíná explodovat - každá technologická společnost na celém světě se snaží zjistit, jak zapadnou do tohoto nového světa. Je to prostě velká příležitost! Takže pro tento návod, v souladu s tímto tématem IoT, se podíváme na to, jak můžete vytvořit svůj vlastní demonstrátor IoT, který je ve skutečnosti užitečný;)

Souhrn TL; DR

  • nastavte spolehlivý pracovní postup pro kódování WiFi modulu ESP32
  • blesk to
  • sestavte si ho na prkénko
  • stáhněte si kód naší aplikace a rozbalte jej
  • přidejte své WiFi pověření a statickou IP
  • připojte jej k vaší WiFi síti
  • upravte prahové hodnoty a namontujte je do své garáže
  • připojte jej ke kontaktům otvírače garážových vrat
  • a klikni pryč!
  • NENÍ POTŘEBA PÁJECÍ (kromě kolíků na odlamovací desky, je -li požadováno)

Požadované díly

  • tinyLiDAR modul senzoru vzdálenosti letu
  • Wipy3.0 nebo podobná WiFi deska založená na ESP32
  • Opticky izolované polovodičové relé (Omron G3VM-201AY1) pro ovládání otvírače garážových vrat
  • Rezistor 470 ohmů (5% 1/8watt nebo větší je v pořádku)
  • Momentální tlačítkový spínač pro pin BOOT (GPIO0) pro upgrade firmwaru na desce ESP32
  • Dongle USB to Serial pro nahrání kódu a interakci s REPL na ESP32 (použijte verzi 3.3 V I/O)
  • Breadboard + dráty
  • Napájení: 3,3 V až 5 V při 500 mA nebo více. Nabíječku mobilního telefonu microUSB můžete použít pro napájecí zdroj a desku microUSB pro připojení k prkénku.

Krok 1: IoT Co?

IoT Co?
IoT Co?

Nepochybně jste již slyšeli o pojmu IoT ve všech médiích, ale co to znamená?

Volně řečeno to znamená připojení všech druhů senzorů a ovladatelných věcí k internetu. V dnešní době je internet synonymem bezdrátového připojení, a tak máme všechno elektronické najednou bezdrátové připojení prostřednictvím jakéhokoli bezdrátového spojení, jako je WiFi/BT/LoRa/SigFox atd. Jakmile jsme připojeni k internetu, můžeme cítit a/nebo ovládat tyto věci z našeho oblíbeného mobilního ovladače, jako je náš mobilní telefon, nebo je zautomatizovat prostřednictvím nějaké aplikace běžící někde na serveru (tj. cloudu).

Ačkoli větší společnosti v poslední době prodávají více hlasového ovládání, AI a cloudového připojení; základy toho, aby se to všechno stalo, jsou stále stejné. Než budete moci realizovat některý z těchto konceptů, musíte svou „věc“připojit k bezdrátovému spojení. Začněme tedy od základů a naučíme se, jak připojit snímač doby letu tinyLiDAR k levnému modulu WiFi a poté ukázat odesílání dat tam a zpět po síti. Na konci tohoto pokynu budete mít vlastní funkční dálkové ovládání garážových vrat s povolenou WiFi s monitorem v reálném čase, který zkontroluje, zda jsou dveře otevřené nebo zavřené.

Technicky vzato, jak je uvedeno v blokovém schématu výše, tento projekt implementuje webový server s mikropythonem běžící na WiFi modulu ESP32 pomocí komunikačního protokolu 'websockets' pro přenos dat tam a zpět z libovolného mobilního webového prohlížeče. Kromě toho máme k dispozici maličký snímač času letové vzdálenosti tinyLiDAR, který provádí měření na vyžádání, takže můžete zkontrolovat, zda garážová vrata zůstala otevřená.

Krok 2: Vyzkoušejte - opravdu ne, vyzkoušejte to hned

Vyzkoušejte - opravdu ne, vyzkoušejte to hned
Vyzkoušejte - opravdu ne, vyzkoušejte to hned

Všechno je to relativně nové pole v elektronice, takže bude muset hodně experimentovat, aby věci správně fungovaly. Doufáme, že budete moci stavět na této základně kódu a vytvářet další vlastní zajímavé projekty IoT.

Veškerý kód použitý v tomto článku fungoval v době psaní tohoto článku dobře. Jak se však míra inovací v prostoru IoT zvyšuje, věci se mohou změnit, až si to přečtete. V každém případě zpracování problémů a jejich přizpůsobení pro vlastní potřebu alespoň dostane vaši hlavu do tohoto vzrušujícího nového prostoru a začnete přemýšlet jako IoT Engineer!

Připraveni? Začněme prvním krokem nastavení vlastního stabilního vývojového prostředí.

Krok 3: Micropython a ESP32

Mikropython a ESP32
Mikropython a ESP32

Moduly WiFi ESP32 byly vytvořeny společností Espressif a od první generace modulů ESP8266 před několika lety se hodně zlepšily. Tyto nové verze mají mnohem více paměti, silnější procesor a více funkcí než původní moduly a jsou stále levné. Výše uvedený diagram vám dává představu o tom, kolik byli schopni zabalit do tohoto malého čipu ESP32. Samotný ESP32 IC je dvoujádrový mikrokontrolér s WiFi rádiem 802.11b/g/n a integrovaným rádiem Bluetooth 4.2. Moduly založené na ESP32 obvykle přidají anténu, extra paměť FLASH a regulátory výkonu.

Všimněte si toho, že když v tomto instruktu řekneme modul ESP32, máme na mysli desky Pycom Wipy3.0, které jsou založeny na čipu/modulu ESP32. Podle našich zkušeností se zdá, že desky Pycom mají vyšší kvalitu sestavení než typické levné dostupné moduly ESP32. Při vývoji je vždy užitečné omezit co nejvíce proměnných, a tak jsme místo levných generik sáhli po deskách Pycom.

U aplikací OEM se kódování ESP32 obvykle provádí v jazyce C, ale naštěstí máme také mnoho možností, z nichž si můžeme vybírat, takže se nebudete muset dostat na tuto nízkou úroveň, pokud nechcete. Rozhodli jsme se použít mikropython pro všechna naše kódování v tomto instruktu.

Micropython, jak jste možná tušili, je podmnožinou úplného programovacího jazyka Python, který pohání některé méně známé vyhledávače a weby jako Google, YouTube a Instagram;)

Logo Micropython
Logo Micropython

Micropython začínal jako projekt kickstarter původně pro procesor STM32, ale nyní se stal velmi oblíbeným pro mnoho různých mikrokontrolérů. Zde používáme nejnovější oficiální port Pycom ESP32 pro mikropython.

Krok 4: Rychlejší cesta

Rychlejší cesta
Rychlejší cesta

Mikropythonový kód má jednoduché front -endové GUI, kterému se říká REPL, což znamená „Read – Eval – Print Loop“. REPL ESP32 normálně běží na 115.2Kbaud od jeho přístupu přes sériový port. Výše uvedený obrázek ukazuje tuto výzvu REPL označenou jejími třemi šipkami čekajícími na přímé příkazy. Je to snadný způsob, jak vyzkoušet naše jednoduché příkazy a většina kodérů jej používá k vývoji svého softwaru, ale zjistili jsme, že je to bolestně pomalá cesta. Proto jsme se rozhodli udělat to jinak pro tento instrukovatelný…

Vzhledem k tomu, že moduly ESP32 mají rychlé připojení WiFi, potřebujeme k modulu přistupovat přes WiFi prostřednictvím serveru FTP, který je již integrován do standardního mikropythonového kódu. To nám pak umožní používat klienty FTP, jako je FileZilla, jednoduše přetáhnout náš kód na ESP32.

Abychom to mohli udělat, musíme nejprve dostat modul ESP32 do vaší WiFi sítě. Moduly Wipy3.0 standardně po zapnutí používají malý přístupový bod, takže se k nim můžete připojit přímo z notebooku na adrese 192.168.4.1. Pokud se vám tato metoda líbí, podívejte se zde na další podrobnosti.

Pracujeme na stolních počítačích v naší laboratoři, takže jsme chtěli, aby se moduly ESP32 místo toho připojily k naší síti. K tomu stačí modulu poskytnout statickou IP adresu a informace o hesle, abychom se mohli přihlásit do naší WiFi sítě.

Krok 5: Stáhnout nyní

Stáhnout teď
Stáhnout teď
Stáhnout teď
Stáhnout teď
Stáhnout teď
Stáhnout teď
Stáhnout teď
Stáhnout teď

Stáhněte si kód aplikace hned teď a rozbalte soubory do dočasné složky v počítači. Poté začněte upravovat soubory skriptů mywifi.txt a boot.py pomocí vlastních pověření sítě WiFi.

Btw - náš oblíbený textový editor je stále SublimeText. Lze jej stáhnout zde.

Měli byste si také stáhnout terminálový software TeraTerm a FTP software FileZilla, pokud je ještě nemáte v počítači.

Budete muset nastavit FileZilla, jak je znázorněno na obrázcích výše. Také ve správci webu musíte „přidat nový web“pro přihlášení do ESP32 pomocí statické IP adresy, kterou jste vybrali, jak je uvedeno výše. Uživatel je „mikro“a heslo je „python“. Je důležité používat pasivní FTP a omezit jej pouze na jednotlivá připojení. Zjistili jsme, že omezení rychlosti nahrávání také pomohlo zabránit zablokování nahrávání. Ačkoli to není na obrázcích uvedeno, bylo by užitečné přiřadit program SublimeText pro typy souborů, abyste mohli kód upravit dvojitým kliknutím na levou stranu obrazovky FTP. Chcete -li to provést, přejděte do nabídky Nastavení a v přidružení úprav souborů/typů souborů zadejte umístění vašeho exe souboru SublimeText pro každé přidružení. Náš byl například:

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

Zkopírujte extrahované soubory aplikace pro tento instruktáž do nové složky s názvem „FTP“ve vašem počítači, jako jsme to udělali my. Odtud bude později snazší přetáhnout se do FileZilla.

Obvykle je dobré mít na ESP32 spuštěn nejnovější firmware. Upgradování modulů Pycom na nejnovější mikropython je velmi jednoduché a lze je provést přibližně za 3 minuty pomocí nástroje pro aktualizaci firmwaru.

Ujistěte se, že jste nastavili COM port pro USB na sériový dongle a zrušíte vysokorychlostní režim, jak je znázorněno na obrázku „Komunikace“výše. Náš byl COM port 2. Všimněte si toho, že abyste dostali moduly ESP32 do tohoto režimu upgradu, budete muset stisknout tlačítko GPIO0/Boot (na pinu P2) a současně stisknout a uvolnit tlačítko Reset.

Krok 6: Hardwarový čas

Čas hardwaru
Čas hardwaru
Čas hardwaru
Čas hardwaru

Nyní by bylo vhodné připojit hardware na prkénko, jak je znázorněno na výše uvedeném schematickém diagramu.

Poté, co je vše dokončeno. Spusťte software terminálu se správným portem COM pro váš USB to Serial dongle a nastavte jej na 115.2Kbaud.

Při zapnutí by modul měl zobrazit známou výzvu REPL, která dává tři šipky „>>>“.

Nyní přejděte do upraveného souboru mywifi.txt a zkopírujte veškerý obsah (CTRL+C). Poté přejděte na obrazovku terminálu REPL a stisknutím kláves CTRL+E se dostanete do režimu vyjmutí a vložení. Potom pravým tlačítkem myši vložíte obsah na obrazovku REPL a stisknutím kláves CTRL+D spustíte to, co jste vložili.

Okamžitě by mělo začít odpočítávání, aby se řeklo, že se pokouší připojit k vaší síti WiFi. Na výše uvedeném snímku obrazovky je zpráva o úspěšném připojení.

Po připojení se můžete pomocí FileZilla připojit k serveru FTP v modulech na statické adrese IP, kterou jste již vybrali ve svých souborech mywifi.txt a boot.py.

Krok 7: Stále s námi?

Stále s námi?
Stále s námi?
Stále s námi?
Stále s námi?

Pokud je to zatím v pořádku, pak je to pro vás dobré! Těžká práce je hotová:) Nyní to bude plynulá plavba - jen spousta střihu a lepení a budete v provozu, abyste ji mohli namontovat do své garáže.

Chcete -li upravit jakýkoli kód, můžete dvakrát kliknout na levou stranu okna FTP v aplikaci FileZilla a spustí se SublimeText. Uložte změny a poté je přetáhněte na pravou stranu, což je okno ESP32.

Prozatím stačí přetáhnout soubory z levé strany na pravou stranu programu FileZilla a nahrát každý soubor samostatně do modulu ESP32. To trvá jen několik krátkých sekund místo minut, jako to dělá normální metoda REPL. Vezměte prosím na vědomí, že všechny soubory by měly být pod kořenovým adresářem s názvem „flash“uvnitř desky Pycom. V aplikaci FileZilla si můžete vytvořit záložku, abyste se sem snadněji vrátili příště.

Pokud se někdy vyskytne problém, kdy FileZilla visí a vyprší časový limit pro odeslání, všimnete si souboru na straně ESP32, který má 0 bajtů. Pokus o přepsání vás může zbláznit, protože nikdy nekončí, ať se snažíte cokoli! Je to velmi zvláštní stav a stává se velmi často. Nejlepším řešením je odstranit 0bajtový soubor a vypnout modul. Poté získejte ČERSTVOU kopii zdrojového souboru a znovu ji nahrajte do modulu ESP32. Zde je klíčem nová kopie. Zdrojový soubor se nějak nenačte správně, pokud takto visí i jednou.

Zjistili jsme, že pomáhá přetáhnout každý soubor jednotlivě do modulu ESP32 počínaje boot.py. Tento první soubor je zodpovědný za přenos vašeho modulu do sítě, takže již nebudete muset provádět vyjímání a vkládání do REPL. Můžete však uchopit složku www a přetáhnout ji v jednom záběru. To se nám při našem vývoji vždy osvědčilo. Všechny tyto soubory jsou uloženy v palubním energeticky nezávislém flash úložišti v modulu ESP32, takže tam budou po odpojení napájení. Jen fyi - main.py bude spuštěn po boot.py při každém zapnutí modulu.

Krok 8: Tipy na hackování

Tipy na hackování
Tipy na hackování

Podívejte se na celý kód a zkuste Google vyhledat klíčová slova, která nepoznáte. Jakmile je vše v pořádku, můžete zkusit změnit vše, na co máte chuť, abyste viděli, co to dělá.

Pokud se něco pokazí, můžete vždy vymazat kód a/nebo znovu zablikat modul asi za 3 minuty, jako jste to již udělali dříve.

Chcete -li přeformátovat blesk a vymazat celý kód v jednom záběru, můžete do REPL zadat následující:

import os

os.mkfs ('/flash')

Poté proveďte cyklus napájení nebo stiskněte tlačítko reset na desce Wipy.

Všimněte si, že existuje také další způsob, jak obejít boot.py & main.py, pokud se vám věci stanou mentální. Stačí dočasně připojit pin P12 k výstupnímu kolíku 3,3 V a stisknout tlačítko Reset, jak je uvedeno výše. Obejde veškerý váš kód a jednou přejde rovnou k REPL, abyste mohli věci vyřešit, aniž byste celý svůj kód vymazali z flash.

Jakmile dokončíte nahrávání všech souborů, stačí stisknout tlačítko Reset na modulu ESP32 a restartovat jej.

Když se znovu přihlásíte do vaší WiFi sítě, uvidíte na obrazovce terminálu REPL známé odpočítávání. Rozdíl je v tom, že tento kód nyní nyní běží ze souboru boot.py.

Krok 9: Webové stránky

Webové stránky
Webové stránky
Webové stránky
Webové stránky
Webové stránky
Webové stránky
Webové stránky
Webové stránky

Mikrowebserver by měl být nyní spuštěn na ESP32, takže to vyzkoušejte pomocí prohlížeče na počítači nebo mobilního zařízení.

Přejděte na svou statickou IP adresu a měla by se vám zobrazit obrazovka podobná té výše.

Z našeho mikrowebserveru, který běží na ESP32, jsou obsluhovány dvě webové stránky.

První z nich je výchozí stránka index.html, která vám poskytuje jednoduché tlačítko OTEVŘÍT/ZAVŘÍT, abyste simulovali typ klikového otvírače garážových vrat, který máte. Když jej stisknete ve webovém prohlížeči, zobrazí se velká modrá ikona ozubeného kola. Toto je potvrzení, že připojení k webové zásuvce bylo úspěšně provedeno a že jste obdrželi potvrzení od serveru, že váš příkaz „stiskněte“byl přijat správně. Když stisknete toto tlačítko, měli byste také vidět jasně zelenou LED na desce Pycom. Připojení websocket přenáší stavy tlačítka odesláním jednoduchých textových zpráv „stiskněte“, když jej stisknete, a „stisknete“, když jej uvolníte. Pro potvrzení mikrowebserver odesílá zpět tento text, ale přidává k němu „_OK“, což znamená, že jej přijal správně.

Jakmile připojíte opticky izolované polovodičové reléové (SSR) svorky k otvírači garážových vrat (viz obrázkový schematický diagram), stisknutím tlačítka se dveře také fyzicky otevřou/zavřou.

Dejte tomu několik sekund a zkuste to znovu, pokud se nezobrazuje modrá ikona ozubeného kola, protože se může restartovat nebo tak něco. Všimněte si toho, že websocket se automaticky zavře asi za 20 sekund, pokud jej nepoužíváte, abyste zabránili zablokování. Všimněte si také, že websockety jsou orientované na připojení, takže pro změnu stránek musíte websocket zastavit, jinak se možná nebudete moci znovu připojit, dokud nenačtete reset na modulu ESP32. Pro náš ukázkový kód máme několik způsobů zastavení webové zásuvky: klepnutím na stavový text, otáčením teček nebo hypertextovým odkazem přejdete na další stránku.

Druhá webová stránka slouží ke čtení měření vzdálenosti ze senzoru času letové vzdálenosti tinyLiDAR. Stačí jednou stisknout tlačítko a začne se načítat naměřené vzdálenosti do vašeho mobilního zařízení asi na 20 sekund. Když stisknete dolů, rozsvítí se červená kontrolka LED na desce Pycom, abyste mohli říci, že přijímá příkaz pro stisknutí tlačítka z této stránky.

Obě stránky indikují otevření nebo zavření dveří podle vzdálenosti čtení z tinyLiDAR. Proměnnou doorThreshold je třeba nastavit v obou souborech html v části skriptu, jak je znázorněno zde:

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

// **** Upravte podle potřeby **** var doorThreshold = 100; // vzdálenost v cm var ws_timeout = 20000; // maximální doba v ms, aby se dveře mohly otevřít/zavřít, výchozí nastavení je 20 s // -------------------------- // --- -----------------------

Tuto prahovou hodnotu budete muset upravit pro nastavení garáže, aby dokázala detekovat, kdy jsou garážová vrata srolována a tedy OTEVŘENA nebo sklopena, a proto ZAVŘENA. Jakmile provedete úpravy prahové hodnoty v obou souborech html, nahrajte tyto soubory html znovu a restartujte je, abyste ověřili, že vše stále funguje správně.

Pokud je vše v pořádku, můžete nyní pokračovat a namontovat desku vzhůru nohama v garáži, jak je znázorněno na obrázku výše. Připojte také kolíky 3 a 4 SSR k otvírači garážových vrat. Polarita není důležitá, protože používáme verzi SSR MOSFET - pouze musí zkrátit kontakty, aby simulovalo kliknutí na tlačítko na základní jednotce garážových vrat.

Krok 10: A je to

A to je vše!
A to je vše!

Gratulujeme! Otevření garážových vrat je nyní stejně snadné jako poklepání na telefon a můžete měřit v reálném čase měřením s tinyLiDAR, zda zůstalo otevřené nebo ne:)

Nyní můžete také používat ESP32 s webovými zásuvkami přes WiFi téměř pro cokoli chcete. Přečtěte si více o „webových zásuvkách“, pokud je neznáte - jsou opravdu velmi rychlé a snadno se používají.

Implementace tinyLiDAR s ESP32 byla také velmi snadná, i když byl senzor původně navržen pro běh na Arduino UNO. Máme propracovanější beta verzi Terminal GUI, která spouští většinu příkazů tinyLiDAR v mikropythonu na ESP32 - viz obrázek výše. Je k dispozici v sekci ke stažení spolu s referenční příručkou atd.

Prohlédněte si celý náš kód, abyste pochopili, jak se vše spojuje, a zkuste věci změnit, abyste na něm mohli stavět a dělat, co chcete.

Mějte prosím na paměti, že zde nebyla zmínka o zabezpečení. Zabezpečení je v oblasti IoT obrovskou oblastí a mělo by se brát vážně. Pokud chcete tento projekt používat ve své garáži, měli byste svá hesla k WiFi síti udržovat silná a bezpečná. Na webu je spousta informací o zabezpečení, takže si určitě přečtěte nejnovější a mějte přehled.

Děkujeme za přečtení a přejeme šťastné hackování! Na zdraví.

Doporučuje: