Sisukord:

TinyLiDAR teie garaažis!: 10 sammu
TinyLiDAR teie garaažis!: 10 sammu

Video: TinyLiDAR teie garaažis!: 10 sammu

Video: TinyLiDAR teie garaažis!: 10 sammu
Video: Установка ванны. Все секреты. Экран. Скрытый люк. #40 2024, November
Anonim
TinyLiDAR teie garaažis!
TinyLiDAR teie garaažis!

DIY WiFi garaažiukse avamisprojekt

IoT maailm hakkab alles plahvatama - iga tehnoloogiaettevõte üle maailma püüab välja mõelda, kuidas nad sellesse uude maailma sobituvad. See on lihtsalt nii suur võimalus! Nii et selle juhendatava jaoks vaatame selle IoT teemaga kooskõlas, kuidas saate teha oma enda IoT demonstraatori, mis on tegelikult kasulik;)

TL; DR kokkuvõte

  • seadistage usaldusväärne töövoog ESP32 WiFi mooduli kodeerimiseks
  • välk seda
  • pange see oma leivalauale kokku
  • laadige alla meie rakenduse kood ja pakkige see lahti
  • lisage oma WiFi volikirjad ja staatiline IP
  • ühendage see oma WiFi -võrguga
  • muutke künniseid ja paigaldage see oma garaaži
  • ühendage see garaažiukse avamise kontaktidega
  • ja klõpsa eemale!
  • JUOTMIST EI OLE VAJALIK (välja arvatud vajadusel purunemisplaatide tihvtid)

Vajalikud osad

  • tinyLiDAR lennukaugusanduri mooduli aeg
  • Wipy3.0 või sarnane ESP32 -põhine WiFi -plaat
  • Optiliselt isoleeritud tahkisrelee (Omron G3VM-201AY1) garaažiukse avaja juhtimiseks
  • 470 oomi takisti (5% 1/8 vatti või suurem on okei)
  • Hetkeline nupuvajutus BOOT (GPIO0) tihvti jaoks, et uuendada ESP32 tahvli püsivara
  • USB -seeriadongle koodi üleslaadimiseks ja ESP32 -ga REPL -iga suhtlemiseks (kasutage versiooni 3.3v I/O)
  • Leivalaud + juhtmed
  • Toide: 3,3 V kuni 5 V 500 mA või rohkem. Leivaplaadi ühendamiseks saate toiteallika ja microUSB katkestusplaadi jaoks kasutada microUSB mobiiltelefoni laadijat.

Samm 1: IoT Mis?

IoT Mida?
IoT Mida?

Kahtlemata olete praeguseks mõiste IoT kuulnud kogu meedias, kuid mida see tähendab?

Lahtiselt öeldes tähendab see igasuguste andurite ja juhitavate asjade ühendamist Internetiga. Nendel päevadel on Internet traadita ühenduse sünonüüm ja seega on meil kõik elektrooniline, mis äkki muutub traadita ühenduseks mingisuguse traadita ühenduse kaudu, nagu WiFi/BT/LoRa/SigFox jne. Kui oleme Internetiga ühendatud, saame aru ja/või juhtida need asjad meie lemmik -mobiilikontrollerilt, näiteks meie mobiiltelefonilt, või automatiseerida need mõne rakenduse kaudu, mis töötab kusagil serveris (st pilves).

Kuigi suuremad ettevõtted on viimasel ajal turundanud rohkem hääljuhtimist, tehisintellekti ja pilveühendust; selle tegemise põhitõed on ikka samad. Enne kui mõni neist mõistetest on võimalik, peate oma "asja" traadita ühendusega ühendama. Alustame siis põhitõdedest ja õpime, kuidas ühendada tilluke LiDAR lennukaugusandur odava WiFi -mooduliga ja seejärel näidata, kuidas andmeid edasi -tagasi saata kogu võrgus. Selle juhendi lõpuks on teil oma töötav garaažiukse WiFi -toega kaugjuhtimispult koos reaalajas monitoriga, et kontrollida, kas uks on avatud või suletud.

Tehniliselt võttes, nagu on näidatud ülaltoodud plokkskeemil, rakendab see projekt ESP32 WiFi -moodulil töötavat mikropythoni veebiserverit, mis kasutab sideprotokolli „websockets”, et edastada andmeid edasi -tagasi mis tahes mobiilibrauserist. Sellele lisandub pisikese LiDAR -i lennukaugusanduri aeg mõõtmisi teha, et saaksite kontrollida, kas garaažiuks jäi lahti.

2. samm: proovige - tõesti mitte, proovige kohe

Proovige - tõesti mitte, proovige kohe
Proovige - tõesti mitte, proovige kohe

See kõik on elektroonikas suhteliselt uus valdkond, nii et asjade õigeks toimimiseks on vaja palju eksperimenteerida. Loodame, et saate sellele koodibaasile tugineda ja teha ise mõne huvitavama IoT -projekti.

Kogu käesolevas artiklis kasutatud kood töötas selle kirjutamise ajal hästi. Kuna aga asjade Interneti ruumi uuenduste määr suureneb, võivad asjad selle lugemise ajaks muutunud olla. Igal juhul viib probleemide lahendamine ja oma tarbeks kohandamine vähemalt pea sellesse põnevasse uude ruumi ja hakkab mõtlema IoT -inseneri moodi!

Valmis? Alustame oma stabiilse arenduskeskkonna loomise esimese sammuga.

Samm: Micropython ja ESP32

Micropython ja ESP32
Micropython ja ESP32

ESP32 WiFi moodulid lõi Espressif ja need on palju paranenud pärast nende paari aasta tagust esimese põlvkonna ESP8266 mooduleid. Nendel uutel versioonidel on palju rohkem mälu, tugevam protsessor ja rohkem funktsioone kui algsetel moodulitel ning need on endiselt madalad. Ülaltoodud diagramm annab teile aimu, kui palju nad suutsid sellesse väikesesse ESP32 kiibi kokku pakkida. ESP32 IC ise on kahetuumaline mikrokontroller, millel on 802.11b/g/n WiFi -raadio ja ka Bluetooth 4.2 raadio. ESP32 -põhised moodulid lisavad tavaliselt antenni, täiendavat FLASH -mälu ja toiteregulaatoreid.

Pange tähele, et kui me selles juhendis ütleme ESP32 moodulit, peame silmas Pycom Wipy3.0 tahvleid, mis põhinevad ESP32 kiibil/moodulil. Meie kogemuste põhjal näib, et Pycomi plaadid on kõrgema ehituskvaliteediga kui tüüpilised odavad ESP32 moodulid. Arendamisel on alati kasulik vähendada võimalikult palju muutujaid, seega otsustasime odavate geneeriliste ravimite asemel valida Pycomi plaadid.

OEM -rakenduste puhul toimub ESP32 kodeerimine tavaliselt C -keeles, kuid õnneks on meil ka palju võimalusi valida, nii et te ei pea selle madalale tasemele laskuma, kui te seda ei soovi. Selles juhendis valisime kogu kodeerimiseks mikropütoni.

Micropython, nagu võisite arvata, on kogu Pythoni programmeerimiskeele alamhulk, mis toetab mõningaid vähem tuntud otsingumootoreid ja veebisaite, nagu Google, YouTube ja Instagram;)

Micropython-logo
Micropython-logo

Micropython sai alguse käivitusprojektina algselt STM32 protsessori jaoks, kuid on nüüd muutunud väga populaarseks paljude erinevate mikrokontrollerite jaoks. Kasutame siin viimast ametlikku Pycom ESP32 mikropüütli porti.

4. samm: kiirem tee

Kiirem tee
Kiirem tee

Mikropüütoni koodil on lihtne kasutajaliides GUI, mida nimetatakse REPL, mis tähistab "Read – Eval – Print Loop". ESP32 REPL töötab tavaliselt 115,2 kbaud, kuna sellele on jadaporti kaudu juurdepääs. Ülaltoodud pilt näitab seda REPL -i viipa, mida tähistavad kolm noolt, mis ootavad otseseid käske. See on lihtne viis meie lihtsate käskude proovimiseks ja enamik kodeerijaid kasutab seda oma tarkvara arendamiseks, kuid leidsime, et see on valusalt aeglane tee. Seetõttu otsustasime selle õpetatava jaoks teha teisiti …

Kuna ESP32 moodulitel on kiire WiFi -ühendus, peame lihtsalt pääsema moodulile WiFi kaudu FTP -serveri kaudu, mis on juba sisse lülitatud tavalise mikropüütoni koodi sisse. See võimaldab meil kasutada oma FTP -kliente, nagu FileZilla, lihtsalt oma koodi ESP32 -le lohistamiseks.

Selleks peame esmalt teie WiFi -võrku saama ESP32 mooduli. Wipy3.0 moodulitel on sisselülitamisel vaikimisi väike pääsupunkt, nii et saate nendega otse sülearvutist ühenduse luua aadressil 192.168.4.1. Kui teile see meetod meeldib, vaadake siit lisateavet.

Töötame oma laboris lauaarvutitega, nii et soovisime, et ESP32 moodulid ühenduksid hoopis meie võrguga. Selleks peame andma moodulile staatilise IP -aadressi ja parooliteabe, et meie WiFi -võrku sisse logida.

Samm: laadige kohe alla

Lae alla nüüd
Lae alla nüüd
Lae alla nüüd
Lae alla nüüd
Lae alla nüüd
Lae alla nüüd
Lae alla nüüd
Lae alla nüüd

Laadige rakenduse kood kohe alla ja pakkige failid arvutisse ajutisse kausta. Seejärel hakake oma WiFi -võrgu mandaadiga redigeerima skripti mywifi.txt ja boot.py.

Btw - meie lemmik tekstiredaktor on endiselt SublimeText. Selle saab alla laadida siit.

Samuti peaksite kohe alla laadima TeraTerm terminalitarkvara ja FileZilla FTP tarkvara, kui teil seda veel arvutis pole.

Peate FileZilla seadistama, nagu ülaltoodud piltidel näidatud. Ka saidihalduris peate ESP32 sisselogimiseks uue saidi lisama, kasutades valitud staatilist IP -aadressi, nagu ülal näidatud. Kasutaja on "mikro" ja parool on "python". Oluline on kasutada passiivset FTP -d ja piirata seda ainult üksikute ühendustega. Leidsime, et üleslaadimiskiiruse piiramine aitas ära hoida ka üleslaadimise hangumist. Kuigi piltidel seda pole näidatud, oleks kasulik siduda failitüüpide jaoks programm SublimeText, et saaksite koodi muuta, topeltklõpsates FTP -ekraani vasakul küljel. Selleks minge lihtsalt menüüsse Seaded ja sisestage failide redigeerimise/failitüübi seostesse iga seose jaoks oma SublimeText exe -faili asukoht. Näiteks meie oma oli:

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

Kopeerige selle juhendi jaoks ekstraheeritud rakendusefailid oma arvutis uude kausta nimega "FTP", nagu me tegime. Hiljem on siit FileZilla sees lihtsam lohistada.

Tavaliselt on hea mõte, et ESP32 -l töötab uusim püsivara. Pycom -moodulite uuendamine uusima mikropüütoni kasutamiseks on väga lihtne ja seda saab teha umbes 3 minutiga nende püsivara värskendamise tööriista abil.

Lihtsalt seadke oma USB-port COM-port jadaliidesele ja tühistage kiirrežiimi valik, nagu on näidatud ülaltoodud pildil "Side". Meie oma oli COM -port 2. Pange tähele, et ESP32 moodulite sellesse täiendamisrežiimi viimiseks peate vajutama nuppu GPIO0/Boot (P2 tihvtil), samal ajal vajutades ja vabastades nuppu Reset.

6. samm: riistvara aeg

Riistvara aeg
Riistvara aeg
Riistvara aeg
Riistvara aeg

Nüüd oleks õige aeg riistvara leivaplaadile ühendada, nagu on näidatud ülaltoodud skemaatilisel skeemil.

Pärast seda, kui see kõik on lõpetatud. Käivitage terminali tarkvara USB -jadaliidese dongle jaoks sobiva COM -pordiga, määrake see 115,2Kbaud -le.

Sisselülitamisel peaks moodul näitama tuttavat REPL -i viipa, mis näitab kolme noolt ">>>".

Nüüd minge oma redigeeritud faili mywifi.txt ja kopeerige kogu sisu (CTRL+C). Seejärel minge terminali REPL ekraanile ja vajutage lõikamis- ja kleepimisrežiimi sisenemiseks klahvikombinatsiooni CTRL+E. Seejärel paremklõpsake sisu kleepimiseks REPL -i ekraanile ja seejärel vajutage CTRL+D -klahve, et kleepida.

See peaks kohe alustama loendamist, öeldes, et üritab teie WiFi -võrguga ühendust luua. Ülaltoodud ekraanipilt näitab edukat ühenduse sõnumit.

Kui olete ühenduse loonud, saate FileZilla abil moodulites FTP -serveriga ühenduse luua staatilise IP -aadressiga, mille valisite juba failides mywifi.txt ja boot.py.

7. samm: kas olete endiselt meiega?

Ikka meiega?
Ikka meiega?
Ikka meiega?
Ikka meiega?

Kui siiani on kõik korras, siis hea teile! Raske töö on tehtud:) Nüüd läheb sujuvalt purjetamiseks - piisab hunniku lõikamisest ja kleepimisest ning olete töövalmis, et saaksite selle oma garaaži paigaldada.

Mis tahes koodi muutmiseks võite topeltklõpsata FileZilla FTP akna vasakul küljel ja see käivitab SublimeText. Salvestage muudatused ja lohistage see seejärel paremale küljele, mis on ESP32 aken.

Praegu lohistage failid lihtsalt FileZilla vasakult küljelt paremale, et laadida iga fail eraldi ESP32 moodulisse. See võtab vaid mõne sekundi minutite asemel nagu tavaline REPL -meetod. Pange tähele, et kõik failid peaksid olema Pycomi plaadi sees oleva juurkataloogi nimega "flash". FileZillale saate järjehoidja teha, et oleks lihtsam järgmisel korral siia tagasi tulla.

Kui teil tekib kunagi probleem, kus FileZilla hangub ja üleslaadimise aeg aegub, märkate ESP32 poolel faili, millel on 0 baiti. Selle üle kirjutamine võib teid hulluks ajada, kuna see ei lõpe kunagi, olenemata sellest, mida proovite! See on väga kummaline seisund ja seda juhtub väga sageli. Parim lahendus selleks on kustutada 0 -baidine fail ja lülitada moodul sisse. Seejärel hankige lähtefaili VÄRSKE koopia, et see uuesti ESP32 moodulisse üles laadida. Pange tähele, et siin on võti värske koopia. Kuidagi ei laadita lähtefaili korralikult üles, kui see ripub niimoodi isegi üks kord.

Leidsime, et see aitab iga faili eraldi lohistada ESP32 moodulisse algusega boot.py. See esimene fail vastutab teie mooduli võrku jõudmise eest, nii et te ei pea enam lõikamist ja kleepimist REPL -is tegema. Siiski võite haarata www -kausta ja lohistada selle ühe hooga üle. See on meie arendamisel alati töötanud. Kõik need failid salvestatakse ESP32 mooduli pardal olevasse püsimällu, nii et need on pärast toite eemaldamist olemas. Lihtsalt fyi - main.py käivitatakse pärast boot.py iga kord, kui moodul sisse lülitatakse.

8. samm: häkkimisnõuanded

Häkkimise näpunäited
Häkkimise näpunäited

Vaadake kogu koodi ja proovige Google'ist märksõnu, mida te ei tunne. Kui kõik on töökorras, võite proovida muuta seda, mida tunnete, et näha, mida see teeb.

Kui midagi läheb valesti, saate alati koodi kustutada ja/või mooduli uuesti välgutada umbes 3 minuti jooksul, nagu olete juba varem teinud.

Välgu vormindamiseks ja kogu koodi kustutamiseks ühe võttega võite sisestada REPL -i järgmise:

import os

os.mkfs ('/flash')

Seejärel tehke toitenupp või vajutage Wipy plaadil lähtestusnuppu.

Pange tähele, et on ka teine võimalus boot.py & main.py -st mööda minna, kui asjad lähevad teile meelest. Lihtsalt ühendage tihvt P12 ajutiselt 3,3 V väljundpistikuga ja vajutage Reset nuppu, nagu ülal näidatud. See möödub kogu teie koodist ja läheb üks kord otse REPL -i, et saaksite asjad selgeks teha ilma kogu koodi välklambist kustutamata.

Kui olete kõik failid üles laadinud, klõpsake selle taaskäivitamiseks lihtsalt ESP32 mooduli nuppu Lähtesta.

Näete tuttavat loendurit REPL -terminali ekraanil, kui see uuesti teie WiFi -võrku sisse logib. Erinevus seisneb selles, et see kood töötab seekord failist boot.py.

Samm 9: Veebilehed

Veebilehed
Veebilehed
Veebilehed
Veebilehed
Veebilehed
Veebilehed
Veebilehed
Veebilehed

Mikroveebiserver peaks ESP32 -s nüüd töötama, nii et proovige seda oma lauaarvuti brauseri või mobiilseadme abil.

Minge lihtsalt oma staatilisele IP -aadressile ja peaksite nägema ülaltoodud sarnast ekraani.

Meie ESP32 -ga töötavas mikroveebiserveris serveeritakse kahte veebilehte.

Esimene neist on vaikimisi leht index.html, mis annab teile lihtsa nupu AVA/SULGE, et simuleerida olemasolevat garaažiukseavaja tüüpi. Kui vajutate seda oma veebibrauseris, näete suurt sinist hammasrattaikooni. See on kinnitus, et veebipistikuühendus on edukalt loodud ja olete saanud serverilt kinnituse, et teie käsk "vajutage" võeti õigesti vastu. Selle nupu vajutamisel peaksite nägema ka Pycomi tahvlil helerohelist LED -i. Veebipistikute ühendus edastab nupu olekuid, saates lihtsaid tekstisõnumeid "vajutage", kui vajutate seda ja "vajutage", kui vabastate selle. Kinnituseks saadab mikroveebiserver selle teksti tagasi, kuid lisab sellele märgi „_OK”, et öelda, et sai selle õigesti.

Kui olete optiliselt isoleeritud tahkisrelee (SSR) klemmid oma garaažiukseavajaga ühendanud (vaadake pildilist skemaatilist diagrammi), siis nupule vajutamine avab/sulgeb ka ukse.

Andke sellele mõni sekund ja proovige uuesti, kui te ei näe sinist hammasrattaikooni, kuna see võib taaskäivitada või midagi. Pange tähele, et veebipistik sulgub automaatselt umbes 20 sekundi pärast, kui te seda lukustuste vältimiseks ei kasuta. Pange tähele ka seda, et veebipistikud on ühendusele orienteeritud, nii et lehtede vahetamiseks peate veebipistiku peatama, vastasel juhul ei pruugi te enam uuesti ühenduse luua enne, kui klõpsate ESP32 mooduli lähtestamist. Meie näidiskoodi jaoks on meil mõned viisid veebipistiku peatamiseks: puudutage oleku teksti, pöörlevaid punkte või hüperlingi, et liikuda järgmisele lehele.

Teine veebileht on kaugusemõõtmiste lugemiseks pisikesest lennukauguse andurist LiDAR. Vajutage lihtsalt nuppu üks kord ja see hakkab kaugusnäitu teie mobiilseadmesse voogesitama umbes 20 sekundiks. Kui vajutate alla, süttib see Pycomi plaadil punane LED, nii et saate aru, et see saab lehelt nupuvajutuse käsu.

Mõlemad leheküljed näitavad, kas uks on avatud või suletud, lugedes kaugust tinyLiDARist. Muutuja doorThreshold tuleb skriptiosa mõlemasse html -faili seada, nagu siin näidatud:

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

// **** Reguleeri vastavalt vajadusele **** var doorThreshold = 100; // kaugus cm var ws_timeout = 20000; // ukse avamise/sulgemise maksimaalne aeg ms-des on vaikimisi 20 sekundit // -------------------------- // --- -----------------------

Peate seda garaaži seadistamise läve muutma, et see tuvastaks, millal garaažiuks on kokku rullitud ja seega AVATUD või alla rullitud ja seega SULETUD. Kui olete mõlemas html -failis oma läve muutnud, laadige need html -failid uuesti üles ja taaskäivitage, et veenduda, kas kõik töötab endiselt hästi.

Kui kõik on korras, võite nüüd minna ja paigaldada laud tagurpidi oma garaaži, nagu on näidatud ülaltoodud pildil. Ühendage SSR -i tihvtid 3 ja 4 ka oma garaažiukseavaja külge. Polaarsus pole oluline, kuna kasutame SSR -i MOSFET -i versiooni - see peab ainult kontaktid lühikeseks tegema, et simuleerida garaažiukse põhiseadme nupuvajutust.

Samm: ja see on kõik

Ja see ongi kõik!
Ja see ongi kõik!

Palju õnne! Garaažiukse avamine on nüüd sama lihtne kui telefoni puudutamine ja pisikese LiDARiga reaalajas mõõtmisi tehes saate kontrollida, kas see jäi lahti või mitte.

Nüüd saate kasutada ESP32 koos veebipistikutega WiFi kaudu peaaegu kõike, mida soovite. Kui te pole nendega tuttav, lugege lähemalt "veebipistikute" kohta - need on tõesti üsna kiired ja hõlpsasti kasutatavad.

TinyLiDARi rakendamine ESP32 -ga oli samuti ülilihtne, kuigi andur oli algselt loodud töötama Arduino UNO -ga. Meil on terminali graafilise kasutajaliidese täpsem beetaversioon, mis käivitab enamiku pisikesi LiDAR -käske ESP32 mikropütonis - vt ülaltoodud pilti. See on saadaval meie allalaadimiste jaotises koos viitejuhendiga jne.

Vaadake läbi kogu meie kood, et mõista, kuidas kõik kokku tuleb, ja proovige asju ümber teha, et saaksite selle põhjal teha kõike, mida soovite.

Palun pidage meeles, et siin ei mainitud turvalisust. Turvalisus on IoT -s tohutu valdkond ja seda tuleks tõsiselt võtta. Kui soovite seda projekti oma garaažis kasutada, peaksite hoidma oma WiFi -võrgu paroolid tugevad ja turvalised. Veebis on palju teavet turvalisuse kohta, seega lugege kindlasti uusimat teavet ja olge sellega kursis.

Täname lugemise eest ja head häkkimist! Tervist.

Soovitan: