Tartalomjegyzék:

TinyLiDAR a garázsban!: 10 lépés
TinyLiDAR a garázsban!: 10 lépés

Videó: TinyLiDAR a garázsban!: 10 lépés

Videó: TinyLiDAR a garázsban!: 10 lépés
Videó: Дешевое отопление из чайника 2024, November
Anonim
TinyLiDAR a garázsban!
TinyLiDAR a garázsban!

DIY WiFi garázskapu -nyitó projekt

Az IoT világ most kezd robbanni - a világ minden technológiai vállalata megpróbálja kitalálni, hogyan illeszkednek ebbe az új világba. Ez csak egy nagy lehetőség! Tehát ehhez az oktathatóhoz, ennek az IoT témának megfelelően, áttekintjük, hogyan készíthet saját IoT -demonstrátort, amely valóban hasznos;)

TL; DR összefoglaló

  • állítson be megbízható munkafolyamatot az ESP32 WiFi modul kódolásához
  • villanjon fel
  • szerelje össze a kenyeretábláján
  • töltse le alkalmazáskódunkat, és bontsa ki
  • adja hozzá WiFi hitelesítő adatait és statikus IP -címét
  • csatlakoztassa a WiFi hálózathoz
  • módosítsa a küszöbértékeket, és szerelje be a garázsba
  • csatlakoztassa a garázskapu nyitó érintkezőihez
  • és kattintson!
  • NEM KELL FORRASZTANI (kivéve a kitörő táblák csapjait, ha szükséges)

Alkatrészek szükségesek

  • tinyLiDAR repülési távolság érzékelő modul ideje
  • Wipy3.0 vagy hasonló ESP32 alapú WiFi kártya
  • Optikailag szigetelt szilárdtest relé (Omron G3VM-201AY1) a garázskapu nyitó vezérléséhez
  • 470ohm ellenállás (5% 1/8 watt vagy nagyobb rendben van)
  • Pillanatnyi nyomógombos kapcsoló a BOOT (GPIO0) csaphoz az ESP32 kártya firmware -jének frissítéséhez
  • USB -soros hardverkulcs a kód feltöltéséhez és a REPL -lel való interakcióhoz az ESP32 készüléken (használja a 3.3v I/O verziót)
  • Kenyeretábla + vezetékek
  • Tápellátás: 3,3–5 V 500 mA vagy annál nagyobb feszültség mellett. Használhat microUSB mobiltelefon -töltőt a tápegységhez és a microUSB megszakítópanelhez, hogy csatlakoztassa a kenyértáblához.

1. lépés: IoT Mi?

IoT Mi?
IoT Mi?

Kétségtelen, hogy már hallott az IoT kifejezésről az összes médiában, de mit jelent?

Lazán szólva azt jelenti, hogy mindenféle érzékelőt és szabályozható dolgot csatlakoztatni kell az internethez. Napjainkban az Internet a vezeték nélküli kapcsolat szinonimája, és így minden elektronikus eszközünk hirtelen vezeték nélküli kapcsolatba kerül valamilyen vezeték nélküli kapcsolaton keresztül, például WiFi/BT/LoRa/SigFox stb. ezeket a dolgokat a kedvenc mobilvezérlőnkről, például a mobiltelefonunkról, vagy automatizálhatja őket valamilyen alkalmazásban, amely valahol egy szerveren fut (például a felhőben).

Bár a nagyobb vállalatok az utóbbi időben több hangvezérlést, mesterséges intelligenciát és felhőalapú kapcsolatot forgalmaznak; ennek megvalósításának alapjai továbbra is ugyanazok. Mielőtt e fogalmak bármelyikét megvalósítaná, csatlakoztatnia kell "dolgát" egy vezeték nélküli kapcsolathoz. Kezdjük tehát az alapokkal, és tanuljuk meg, hogyan kapcsolhatjuk össze az apróLiDAR repülési távolság -érzékelőt egy olcsó WiFi modullal, majd mutassuk meg az adatokat oda -vissza küldésre a hálózaton keresztül. Ennek az utasításnak a végére saját, működő WiFi -kompatibilis garázskapu -távirányítója lesz, valós idejű monitorral, hogy ellenőrizze, hogy az ajtó nyitva vagy zárva van -e.

Technikailag, amint azt a fenti blokkdiagram is mutatja, ez a projekt egy ESP32 WiFi modulon futó mikropiton webszervert valósít meg, amely a „websockets” kommunikációs protokollt használja az adatok oda -vissza továbbítására bármely mobil webböngészőből. Ehhez hozzáadjuk az apróLiDAR időtartamú repülési távolság érzékelőt, amely igény szerint méréseket végez, így ellenőrizheti, hogy a garázskapu nyitva maradt -e.

2. lépés: Próbálja ki - Nem, próbálja ki most

Próbálja ki - Nem igazán, próbálja ki most
Próbálja ki - Nem igazán, próbálja ki most

Ez egy viszonylag új terület az elektronikában, így sok kísérletezésre lesz szükség ahhoz, hogy a dolgok megfelelően működjenek. Reméljük, hogy erre a kódbázisra építhet, és saját érdekesebb IoT -projekteket készíthet.

A cikkben használt összes kód jól működött az írás idején. Mivel azonban az innovációs ráta az IoT térben növekszik, a dolgok megváltozhattak, mire ezt elolvasta. Mindenesetre, ha megoldja a problémákat, és saját használatra adaptálja, akkor legalább belevág a fejébe ebbe az izgalmas új térbe, és elkezd IoT -mérnökként gondolkodni!

Kész? Kezdjük a saját stabil fejlesztői környezet létrehozásának első lépésével.

3. lépés: Micropython és ESP32

Micropython és ESP32
Micropython és ESP32

Az ESP32 WiFi modulokat az Espressif készítette, és sokat fejlődtek az első generációs, néhány évvel ezelőtti ESP8266 modulok óta. Ezek az új verziók sokkal több memóriával, erősebb processzorral és több funkcióval rendelkeznek, mint az eredeti modulok, és még mindig alacsony költségűek. A fenti ábra érzékelteti, hogy mennyit tudtak bepakolni ebbe a kis ESP32 chipbe. Az ESP32 IC maga kétmagos mikrokontroller, 802.11b/g/n WiFi rádióval és Bluetooth 4.2 rádióval. Az ESP32 alapú modulok jellemzően antennát, extra FLASH memóriát és teljesítményszabályozókat adnak hozzá.

Ne feledje, hogy amikor ebben az utasításban ESP32 modult mondunk, akkor a Pycom Wipy3.0 lapokra gondolunk, amelyek az ESP32 chipen/modulon alapulnak. Tapasztalataink szerint a Pycom táblák magasabb minőségűek, mint a rendelkezésre álló tipikus, alacsony költségű ESP32 modulok. A fejlesztés során mindig hasznos a lehető legtöbb változó csökkentése, ezért a Pycom táblákat választottuk az alacsony költségű generikusok helyett.

Az OEM alkalmazások esetében az ESP32 kódolás általában C nyelven történik, de szerencsére számos lehetőség közül választhatunk, így ha nem akarja, nem kell lejjebb jutnia erre az alacsony szintre. Úgy döntöttünk, hogy a mikropythont használjuk minden kódolásunkhoz ebben az utasításban.

A Micropython, ahogy sejtette, a teljes Python programozási nyelv egy részhalmaza, amely néhány kevésbé ismert keresőmotort és webhelyet, például a Google -t, a YouTube -ot és az Instagramot működteti;)

Micropython logó
Micropython logó

A Micropython kickstarter projektként indult eredetileg az STM32 processzor számára, de nagyon népszerűvé vált sok különböző mikrokontroller számára. Itt a legújabb hivatalos Pycom ESP32 mikropiton portot használjuk.

4. lépés: A gyorsabb út

A gyorsabb út
A gyorsabb út

A micropython kódnak van egy egyszerű kezelőfelülete, amelyet REPL -nek hívnak, ami „Read – Eval – Print Loop”. Az ESP32 REPL rendszerint 115,2 Kbaud -on fut, amióta a soros porton keresztül hozzáfér. A fenti képen ez a REPL felszólítás látható, amelyet a három nyíl jelez, amelyek közvetlen parancsokra várnak. Ez egy egyszerű módja annak, hogy kipróbáljuk egyszerű parancsainkat, és a legtöbb kódoló használja szoftverük fejlesztéséhez, de azt találtuk, hogy ez fájdalmasan lassú út. Ezért úgy döntöttünk, hogy másképp csináljuk ezt az oktathatót…

Mivel az ESP32 modulok gyors WiFi -kapcsolattal rendelkeznek, csak WiFi -n keresztül kell elérnünk a modult egy FTP -kiszolgálón keresztül, amely már be van ágyazva a szabványos mikropython -kódba. Ez lehetővé teszi számunkra, hogy olyan FTP -ügyfeleket használjunk, mint a FileZilla, hogy egyszerűen áthúzzuk a kódunkat az ESP32 -re.

Ehhez először be kell vinnünk az ESP32 modult a WiFi hálózatba. A Wipy3.0 modulok alapértelmezés szerint egy kis hozzáférési ponton futnak, amikor bekapcsolnak, így közvetlenül csatlakozhat hozzájuk laptopról a 192.168.4.1 címen. További részleteket itt talál, ha tetszik ez a módszer.

Laboratóriumunkban asztali számítógépeken dolgozunk, ezért azt akartuk, hogy az ESP32 modulok csatlakozzanak a hálózatunkhoz. Ehhez csak meg kell adnunk a modulnak egy statikus IP -címet és jelszavunkat, hogy bejelentkezhessünk a WiFi hálózatunkba.

5. lépés: Töltse le most

Letöltés most
Letöltés most
Letöltés most
Letöltés most
Letöltés most
Letöltés most
Letöltés most
Letöltés most

Töltse le most az alkalmazáskódot, és csomagolja ki a fájlokat a számítógép egy ideiglenes mappájába. Ezután kezdje el szerkeszteni a mywifi.txt és a boot.py szkriptfájlokat saját WiFi hálózati hitelesítő adataival.

Btw - kedvenc szövegszerkesztőnk továbbra is a SublimeText. Letölthető innen.

Töltse le most a TeraTerm terminálszoftvert és a FileZilla FTP szoftvert is, ha még nincs ilyen a számítógépén.

Be kell állítania a FileZillát a fenti képeken látható módon. Szintén a webhelykezelőben "új webhelyet kell hozzáadnia" az ESP32 bejelentkezéshez a fentiek szerint választott statikus IP -címmel. A felhasználó "mikro", a jelszó pedig "python". Fontos, hogy passzív FTP -t használjon, és csak egyetlen kapcsolatra korlátozza. Úgy találtuk, hogy a feltöltési sebesség korlátozása segíthet a feltöltési lefagyások megelőzésében is. Bár nem látható a képeken, hasznos lehet a SublimeText program társítása a fájltípusokhoz, hogy az FTP képernyő bal oldalán duplán kattintva szerkeszthesse a kódot. Ehhez csak lépjen a Beállítások menübe, és a Fájlszerkesztés/Filetype társítások mezőben adja meg a SublimeText exe fájl helyét minden egyes társításhoz. Például a miénk volt:

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 Szövegkészítés 3065 x64 / sublime_text.exe "css" C: / Sublime Text Build 3065 x64 / sublime_text.exe"

Másolja az ehhez az utasításhoz tartozó kibontott alkalmazásfájlokat egy új "FTP" nevű mappába a számítógépén, mint mi. Később könnyebb lesz innen húzni a FileZilla belsejében.

Általában jó ötlet, ha a legfrissebb firmware fut az ESP32 -en. A Pycom modulok frissítése a legújabb micropython használatára nagyon egyszerű, és körülbelül 3 perc alatt elvégezhető a firmware frissítő eszközzel.

Csak győződjön meg arról, hogy az USB COM-portját soros dongle-re állítja, és szüntesse meg a nagysebességű üzemmód kiválasztását a fenti "Kommunikáció" képen látható módon. A miénk a COM 2. port volt. Ne feledje, hogy ahhoz, hogy az ESP32 modulok ebbe a frissítési módba kerüljenek, meg kell nyomnia a GPIO0/Boot gombot (a P2 érintkezőn), miközben lenyomva tartja a Reset gombot.

6. lépés: Hardveridő

Hardveridő
Hardveridő
Hardveridő
Hardveridő

Most lenne itt az ideje, hogy a hardvert egy kenyeretáblára kösse, ahogyan az a fenti ábrán látható.

Miután mindez befejeződött. Indítsa el a terminálszoftvert az USB -soros hardverkulcs megfelelő COM -portjával, állítsa 115,2Kbaud értékre.

Bekapcsoláskor a modulnak meg kell jelenítenie az ismerős REPL parancssort, amely három nyilat mutat ">>>".

Most lépjen a szerkesztett mywifi.txt fájlba, és másolja le az összes tartalmat (CTRL+C). Ezután lépjen a REPL terminál képernyőjére, és nyomja meg a CTRL+E billentyűkombinációt a vágás és beillesztés módba való belépéshez. Ezután jobb gombbal kattintva illessze be a tartalmat a REPL képernyőre, majd nyomja le a CTRL+D billentyűket a beillesztett fájl végrehajtásához.

Azonnal el kell kezdenie a visszaszámlálást, ha azt szeretné mondani, hogy megpróbál csatlakozni a WiFi hálózatához. A fenti képernyőkép sikeres csatlakozási üzenetet mutat.

A csatlakoztatás után a FileZilla segítségével csatlakozhat az FTP -szerverhez a modulokban, a statikus IP -címen, amelyet már a mywifi.txt és a boot.py fájlban választott.

7. lépés: Még mindig velünk?

Még mindig velünk?
Még mindig velünk?
Még mindig velünk?
Még mindig velünk?

Ha eddig rendben volt, akkor jó neked! A kemény munka befejeződött:) Most sima lesz a vitorlázás - csak egy csomó vágás és beillesztés, és készen áll a használatra, hogy aztán felszerelhesse a garázsában.

A kód bármelyikének szerkesztéséhez kattintson duplán a FileZilla FTP ablakának bal oldalára, és elindul a SublimeText. Mentse el a módosításokat, majd húzza át a jobb oldalra, amely az ESP32 ablak.

Egyelőre csak húzza a fájlokat a FileZilla bal oldaláról a jobb oldalára, hogy minden fájlt külön töltsön fel az ESP32 modulba. Ez csak néhány rövid másodpercet vesz igénybe percek helyett, mint a normál REPL módszer. Kérjük, vegye figyelembe, hogy az összes fájlnak a Pycom fórumon belül a "flash" nevű gyökérkönyvtár alatt kell lennie. Könyvjelzőt készíthet a FileZillában, hogy könnyebben visszatérhessen ide legközelebb.

Ha bármikor problémát tapasztal, amikor a FileZilla lefagy és időzít a feltöltésre, akkor észrevesz egy fájlt az ESP32 oldalán, amely 0 bájtot tartalmaz. Ha megpróbál ráírni, megőrülhet, hiszen soha nem ér véget, bármit is próbál! Nagyon furcsa állapot, és nagyon ritkán fordul elő. A legjobb megoldás erre a 0 bájtos fájl törlése és a modul bekapcsolása. Ezután szerezzen be egy friss példányt a forrásfájlból, és töltse fel újra az ESP32 modulba. Vegye figyelembe, hogy itt a friss másolat a kulcs. Valahogy a forrásfájl nem fog megfelelően feltöltődni, ha akár egyetlen alkalommal is így lóg.

Megállapítottuk, hogy segít minden fájlt egyenként áthúzni az ESP32 modulba a boot.py -vel kezdődően. Ez az első fájl felelős a modul hálózatba juttatásáért, így többé nem kell kivágnia és beillesztenie a REPL -be. Azonban megragadhatja a www mappát, és egy mozdulattal áthúzhatja. Ez mindig is működött a fejlődésünkben. Mindezek a fájlok az ESP32 modul fedélzeti nem felejtő flash tárolójában vannak tárolva, így a tápellátás megszüntetése után is ott lesznek. Csak fyi - a main.py a boot.py után kerül végrehajtásra minden alkalommal, amikor a modul be van kapcsolva.

8. lépés: Tippek a hackeléshez

Hackelési tippek
Hackelési tippek

Vessen egy pillantást az összes kódra, és próbálja meg a Google -t olyan kulcsszavakra keresni, amelyeket nem ismer fel. Amint minden rendben van, megpróbálhatja megváltoztatni bármit, amihez kedve van, hogy lássa, mit tesz.

Ha valami baj történik, akkor bármikor törölheti a kódot és/vagy újra villogtathatja a modult körülbelül 3 perc alatt, mint korábban.

A vaku újraformázásához és az összes kód törléséhez egyetlen felvétel során írja be a következőt a REPL parancsba:

importál

os.mkfs ('/flash')

Ezután végezzen bekapcsolási ciklust, vagy nyomja meg a Wipy kártyán található reset gombot.

Ne feledje, hogy van egy másik módja is a boot.py & main.py megkerülésének, ha a dolgok mentálisak. Csak ideiglenesen csatlakoztassa a P12 csapot a 3,3 V -os kimeneti tüskéhez, és nyomja meg a Reset gombot a fentiek szerint. Megkerüli az összes kódot, és egyszer egyenesen a REPL -hez megy, így kitalálhatja a dolgokat anélkül, hogy törölné az összes kódot a flashről.

Miután befejezte az összes fájl feltöltését, nyomja meg az ESP32 modul Reset gombját az újraindításhoz.

Látni fogja az ismerős visszaszámlálást a REPL terminál képernyőjén, amikor ismét bejelentkezik a WiFi hálózatra. A különbség az, hogy ez a kód ezúttal a boot.py fájlból fut.

9. lépés: Weblapok

Weboldalak
Weboldalak
Weboldalak
Weboldalak
Weboldalak
Weboldalak
Weboldalak
Weboldalak

A mikrokiszolgálónak már működőképesnek kell lennie az ESP32 készüléken, ezért próbálja ki asztali böngészőjével vagy mobileszközével.

Csak lépjen a statikus IP -címére, és a fentihez hasonló képernyőt kell látnia.

Az ESP32 -en futó mikrohálózati szerverünkről két weboldalt szolgálunk ki.

Az első az alapértelmezett index.html oldal, amely egy egyszerű NYITÁS/ZÁR gomb megnyomásával szimulálja a garázskapu nyitó típusát. Amikor megnyomja a böngészőben, megjelenik egy nagy kék fogaskerék ikon. Ez egy megerősítés arról, hogy a websocket kapcsolat sikeresen létrejött, és a szervertől visszaigazolást kapott arról, hogy a "press" parancs helyesen érkezett. Ennek a gombnak a megnyomásakor egy világos zöld LED -nek kell világítania a Pycom táblán. A websockets kapcsolat a gomb állapotát továbbítja azáltal, hogy egyszerű szöveges üzeneteket küld: "nyomja meg", amikor megnyomja, és "nyomja meg", amikor elengedi. Nyugtázásképpen a mikrokiszolgáló visszaküldi ezt a szöveget, de "_OK" -ot ad hozzá, hogy azt mondja, helyesen kapta.

Miután csatlakoztatta az optikailag szigetelt szilárdtest relé (SSR) terminálokat a garázskapu -nyitóhoz (lásd a képi kapcsolási rajzot), majd a gomb megnyomása fizikailag is kinyitja/bezárja az ajtót.

Adjon neki néhány másodpercet, és próbálja újra, ha nem látja a kék fogaskerék ikont, mert az újraindul, vagy valami hasonló. Ne feledje, hogy a webes aljzat körülbelül 20 másodperc múlva automatikusan bezáródik, ha nem használja a zárolás megakadályozására. Vegye figyelembe azt is, hogy a websocketek kapcsolatközpontúak, ezért le kell állítania a websocketet az oldalak megváltoztatásához, különben előfordulhat, hogy nem tud újra csatlakozni, amíg meg nem nyomja az ESP32 modul alaphelyzetbe állítását. Példakódunknak néhány módja van a websocket leállítása: érintse meg az állapotszöveget, a pörgő pontokat vagy a hiperhivatkozást a következő oldalra lépéshez.

A második weboldal a távolságmérések leolvasására szolgál az apró LiDAR repülési távolság -érzékelőből. Csak nyomja meg egyszer a gombot, és körülbelül 20 másodpercre megkezdi a távolság leolvasását a mobileszközére. Miközben lenyomja, piros LED világít a Pycom táblán, így jelezheti, hogy megkapja a gombnyomási parancsot erről az oldalról.

Mindkét oldal jelzi, hogy az ajtó nyitva vagy csukva van, az olvasási távolságtól a tinyLiDAR -tól. A doorThreshold változót be kell állítani a szkript szakasz mindkét html fájljában, ahogy az itt látható:

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

// **** Állítsa be szükség szerint **** var doorThreshold = 100; // távolság cm -ben var ws_timeout = 20000; // a maximális idő ms-ban, hogy az ajtó kinyíljon/becsukódjon, alapértelmezés szerint 20 másodperc // -------------------------- // --- -----------------------

Ezt a küszöbértéket módosítania kell a garázs beállításához, hogy érzékelje, amikor a garázskapu fel van gördülve, ezért NYITVA vagy lehajtva, és ezért ZÁRVA. Miután elvégezte a küszöbérték módosítását mindkét html fájlban, töltse fel újra ezeket a html fájlokat, és indítsa újra, hogy ellenőrizze, minden továbbra is rendben van -e.

Ha minden rendben van, akkor most lépjen előre, és fejjel lefelé szerelje fel a táblát a garázsába, amint az a fenti képen látható. Csatlakoztassa az SSR 3. és 4. csapját a garázskapu -nyitóhoz is. A polaritás nem fontos, mivel az SSR MOSFET verzióját használjuk - csak rövidre kell zárnia az érintkezőket, hogy szimulálja a garázskapu -alapegység gombnyomását.

10. lépés: És ennyi

És ez az!
És ez az!

Gratulálunk! A garázskapu kinyitása olyan egyszerű, mint a telefon megérintése, és a tinyLiDAR segítségével valós idejű mérésekkel ellenőrizheti, hogy nyitva maradt -e vagy sem.

Mostantól szinte bármire használhatja az ESP32 -t webes aljzatokkal WiFi -n keresztül. Olvasson többet a "websocket" -ről, ha nem ismeri őket - valóban meglehetősen gyorsak és könnyen használhatók.

A tinyLiDAR megvalósítása az ESP32 -vel is rendkívül egyszerű volt, annak ellenére, hogy az érzékelőt eredetileg egy Arduino UNO -n való használatra tervezték. Van egy bonyolultabb béta kiadásunk a terminál grafikus felületéről, amely az apróLiDAR parancsok többségét futtatja az ESP32 -es mikropitonban - lásd a fenti képet. Ez elérhető a letöltési szakaszunkban, a ref kézikönyvvel stb.

Vessen egy pillantást az összes kódunkra, hogy megértse, hogyan áll össze minden, és próbálja megváltoztatni a dolgokat, hogy építhessen arra, hogy azt tegyen, amit akar.

Kérjük, ne feledje, hogy itt nem volt szó a biztonságról. A biztonság hatalmas terület az IoT -ban, és komolyan kell venni. Ha ezt a projektet garázsában szeretné használni, akkor erős és biztonságos legyen a WiFi hálózati jelszava. Az interneten sok információ található a biztonságról, ezért feltétlenül olvassa el a legfrissebbeket, és maradjon a tetején.

Köszönöm, hogy elolvastad és jó hackelést! Egészségére.

Ajánlott: