Cuprins:

TinyLiDAR în garajul tău !: 10 pași
TinyLiDAR în garajul tău !: 10 pași

Video: TinyLiDAR în garajul tău !: 10 pași

Video: TinyLiDAR în garajul tău !: 10 pași
Video: Introducing tinyLiDAR 2024, Noiembrie
Anonim
TinyLiDAR în garajul tău!
TinyLiDAR în garajul tău!

Proiect DIY Deschidere ușă garaj WiFi

Lumea IoT abia începe să explodeze - fiecare companie de tehnologie din întreaga lume încearcă să-și dea seama cum se vor potrivi în această nouă lume. Este doar o mare oportunitate! Deci, pentru acest instructiv, în concordanță cu această temă IoT, vom trece în revistă modul în care vă puteți face propriul demonstrator IoT care este de fapt util;)

TL; rezumat DR

  • configurați un flux de lucru fiabil pentru codificarea modulului WiFi ESP32
  • flash-l
  • asamblați-l pe panoul dvs.
  • descărcați codul aplicației noastre și dezarhivați-l
  • adăugați acreditările WiFi și IP static
  • conectați-l la rețeaua dvs. WiFi
  • editați pragurile și montați-le în garajul dvs.
  • conectați-l la contactele deschizătorului ușii de garaj
  • și faceți clic!
  • FARA SOLDARE NECESARA

Piese necesare

  • Modul senzor de timp tinyLiDAR al distanței de zbor
  • Placă WiFi Wipy3.0 sau similară bazată pe ESP32
  • Releu de stare solidă izolat optic (Omron G3VM-201AY1) pentru a controla deschizătorul ușii garajului
  • Rezistor 470ohm (5% 1 / 8watt sau mai mare este în regulă)
  • Comutator momentan cu buton pentru pinul BOOT (GPIO0) pentru a actualiza firmware-ul de pe placa ESP32
  • USB to Serial dongle pentru a încărca cod și a interacționa cu REPL pe ESP32 (utilizați versiunea I / O 3.3v)
  • Panou + fire
  • Sursa de alimentare: 3,3V la 5V la 500mA sau mai mult. Puteți utiliza un încărcător de telefon mobil microUSB pentru alimentarea cu energie și placa de rupere microUSB pentru a vă conecta la placa dvs.

Pasul 1: IoT Ce?

IoT Ce?
IoT Ce?

Fără îndoială că ați auzit de termenul IoT până acum în toate mass-media, dar ce înseamnă?

Vorbind liber, înseamnă a conecta tot felul de senzori și lucruri controlabile conectate la Internet. În prezent, Internetul este sinonim cu wireless și, prin urmare, avem totul electronic, devenind brusc conectat wireless printr-un fel de legătură wireless, cum ar fi WiFi / BT / LoRa / SigFox etc. Odată conectat la Internet, putem simți și / sau controla aceste lucruri de la controlerul nostru mobil preferat, cum ar fi telefonul mobil sau le automatizează prin intermediul unei aplicații care rulează undeva pe un server (adică cloud).

Deși companiile mai mari au comercializat mai mult control vocal, AI și conectivitate cloud în ultima vreme; elementele de bază pentru ca toate acestea să se întâmple sunt în continuare aceleași. Trebuie să vă conectați „chestia” la o legătură fără fir înainte ca oricare dintre aceste concepte să fie posibile. Așadar, să începem cu elementele de bază și să învățăm cum să conectăm senzorul de distanță de timp tinyLiDAR la un modul WiFi cu cost redus și apoi să arătăm să trimitem date înainte și înapoi prin rețea. La sfârșitul acestei instrucțiuni, veți avea propria telecomandă funcțională pentru ușa de garaj activată WiFi, cu un monitor în timp real, pentru a verifica dacă ușa este deschisă sau închisă.

Din punct de vedere tehnic, așa cum se arată în diagrama bloc de mai sus, acest proiect implementează un server web de micropitoni care rulează pe un modul WiFi ESP32 utilizând protocolul de comunicație „websockets” pentru a transmite date înainte și înapoi de pe orice browser web mobil. În plus, avem senzorul timpului de distanță de zbor tinyLiDAR care efectuează măsurători la cerere, astfel încât să puteți verifica dacă ușa garajului a fost lăsată deschisă.

Pasul 2: Încercați - Nu chiar, încercați acum

Încercați - Nu chiar, încercați acum
Încercați - Nu chiar, încercați acum

Acesta este un domeniu relativ nou în electronică, așa că va fi nevoie de multă experimentare pentru ca lucrurile să funcționeze corect. Speranța noastră este că veți putea să vă bazați pe această bază de cod și să creați câteva proiecte IoT mai interesante.

Tot codul utilizat în acest articol a funcționat bine în momentul scrierii acestui articol. Cu toate acestea, pe măsură ce rata de inovație în spațiul IoT crește, este posibil ca lucrurile să se fi schimbat până când ați citit acest lucru. În orice caz, rezolvarea problemelor și adaptarea la propria utilizare vă va aduce cel puțin capul în acest nou spațiu interesant și veți începe să gândiți ca un inginer IoT!

Gata? Să începem cu primul pas al configurării propriului mediu stabil de dezvoltare.

Pasul 3: Micropython și ESP32

Micropython și ESP32
Micropython și ESP32

Modulele ESP32 WiFi au fost create de Espressif și s-au îmbunătățit mult de la prima generație de module ESP8266 de acum doar câțiva ani. Aceste noi versiuni au mult mai multă memorie, procesor mai puternic și mai multe caracteristici decât modulele originale și sunt încă cu costuri reduse. Diagrama de mai sus vă dă sensul cât de mult au reușit să împacheteze în acest mic cip ESP32. ESP32 IC în sine este un microcontroler dual core cu un radio WiFi 802.11b / g / n și, de asemenea, un radio Bluetooth 4.2 integrat. Modulele bazate pe ESP32 vor adăuga de obicei o antenă, memorie FLASH suplimentară și regulatoare de putere.

Rețineți că, atunci când spunem modul ESP32 în acest instructable, ne referim la plăcile Pycom Wipy3.0 care se bazează pe cipul / modulul ESP32. Din experiența noastră, plăcile Pycom par să aibă o calitate a construcției mai mare decât modulele tipice ESP32 disponibile cu costuri reduse. Când ne dezvoltăm, este întotdeauna util să reducem cât mai multe variabile posibil, așa că am optat pentru plăcile Pycom în loc de generice cu costuri reduse.

Pentru aplicațiile OEM, codarea ESP32 se face de obicei în limbajul C, dar, din fericire, există și o mulțime de opțiuni dintre care putem alege, astfel încât nu va trebui să coborâți la acest nivel scăzut dacă nu doriți. Am ales să folosim micropitonul pentru toate codările noastre în acest instructable.

Micropython, după cum ați presupus, este un subset al limbajului complet de programare Python care alimentează unele motoare de căutare și site-uri web mai puțin cunoscute precum Google, YouTube și Instagram;)

Micropython-logo
Micropython-logo

Micropython a început ca un proiect kickstarter inițial pentru procesorul STM32, dar a devenit foarte popular pentru multe microcontrolere diferite acum. Aici folosim cel mai recent port Pycom ESP32 de micropiton.

Pasul 4: calea mai rapidă

Calea mai rapidă
Calea mai rapidă

Codul micropitonului are o interfață grafică simplă GUI, denumită REPL, care înseamnă „Read-Eval – Print Loop”. REPL-ul ESP32 rulează în mod normal la 115,2 Kbaud de când este accesat prin portul serial. Imaginea de mai sus arată acest prompt REPL semnificat de cele trei săgeți care așteaptă comenzi directe. Este o modalitate ușoară de a încerca comenzile noastre simple, iar majoritatea programatorilor îl folosesc pentru a dezvolta software-ul, dar am găsit că este o cale dureroasă de urmat. Prin urmare, am decis să o facem într-un mod diferit pentru acest instructabil …

Deoarece modulele ESP32 au conectivitate WiFi rapidă, trebuie doar să accesăm modulul prin WiFi printr-un server FTP care este deja încorporat în codul standard de micropiton. Acest lucru ne va permite apoi să folosim clienți FTP, cum ar fi FileZilla, pentru a trage și plasa codul nostru pe ESP32.

Deci, pentru a face acest lucru, trebuie mai întâi să introducem modulul ESP32 în rețeaua dvs. WiFi. Modulele Wipy3.0 rulează un punct de acces mic în mod implicit la pornire, astfel încât să vă puteți conecta direct la acestea de la un laptop la 192.168.4.1. Consultați mai multe detalii aici dacă vă place această metodă.

Lucrăm pe desktopuri în laboratorul nostru, așa că am dorit ca modulele ESP32 să se conecteze la rețeaua noastră. Pentru a face acest lucru, trebuie doar să oferim modulului o adresă IP statică și informații despre parolă pentru a ne conecta la rețeaua noastră WiFi.

Pasul 5: Descărcați acum

Descarcă acum
Descarcă acum
Descarcă acum
Descarcă acum
Descarcă acum
Descarcă acum
Descarcă acum
Descarcă acum

Descărcați codul aplicației acum și dezarhivați fișierele într-un folder temporar de pe computer. Apoi începeți editarea fișierelor script mywifi.txt și boot.py cu propriile acreditări de rețea WiFi.

Btw - editorul nostru de text preferat este încă SublimeText. Poate fi descărcat de aici.

De asemenea, ar trebui să descărcați software-ul terminalului TeraTerm și software-ul FileZilla FTP acum dacă nu le aveți deja pe computer.

Va trebui să configurați FileZilla așa cum se arată în imaginile de mai sus. De asemenea, în managerul site-ului trebuie să „adăugați un site nou” pentru autentificarea ESP32 folosind adresa IP statică pe care ați ales-o așa cum se arată mai sus. Utilizatorul este „micro” și Parola este „python”. Este important să utilizați FTP pasiv și să îl limitați la conexiuni simple. Am găsit că limitarea vitezei de încărcare a ajutat și la prevenirea blocărilor de încărcare. Deși nu este afișat în imagini, ar fi util să asociați programul SublimeText pentru tipurile de fișiere, astfel încât să puteți edita codul făcând dublu clic pe partea stângă a ecranului FTP. Pentru a face acest lucru, trebuie doar să accesați meniul Setări și în asociațiile Editare fișier / Tip de fișier introduceți locația fișierului exe SublimeText pentru fiecare asociere. De exemplu, a noastră a fost:

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"

Copiați fișierele de aplicații extrase pentru acest instructabil într-un folder nou numit „FTP” de pe computer, așa cum am făcut noi. Mai târziu va fi mai ușor să trageți de aici în FileZilla.

În mod normal, este o idee bună să aveți cel mai recent firmware care rulează pe ESP32. Actualizarea modulelor Pycom pentru a utiliza cel mai recent micropiton este foarte simplă și se poate face în aproximativ 3 minute cu instrumentul lor de actualizare firmware.

Doar asigurați-vă că setați portul COM pentru USB-ul dvs. la dongle serial și deselectați modul de viteză mare, așa cum se arată în imaginea „Comunicare” de mai sus. Al nostru a fost portul COM 2. Rețineți că pentru a introduce modulele ESP32 în acest mod de actualizare, va trebui să apăsați butonul GPIO0 / Boot (pe pinul P2) în timp ce apăsați și eliberați butonul Reset.

Pasul 6: Timp hardware

Timp hardware
Timp hardware
Timp hardware
Timp hardware

Acum ar fi un moment bun pentru a conecta hardware-ul pe o placă, așa cum se arată în diagrama schematică de mai sus.

După ce totul este finalizat. Porniți software-ul terminalului cu portul COM adecvat pentru dongle-ul USB la Serial, setați-l la 115,2 Kbaud.

La pornire, modulul ar trebui să afișeze promptul REPL familiar, care dă trei săgeți „>>>”.

Acum, accesați fișierul mywifi.txt editat și copiați tot conținutul (CTRL + C). Apoi accesați ecranul terminalului REPL și apăsați CTRL + E pentru a intra în modul tăiere și lipire. Apoi faceți clic dreapta pentru a lipi conținutul în ecranul REPL și apoi apăsați tastele CTRL + D pentru a executa ceea ce ați lipit.

Ar trebui să înceapă numărătoarea inversă imediat pentru a spune că încearcă să se conecteze la rețeaua WiFi. Captura de ecran de mai sus arată un mesaj de conexiune reușit.

Odată conectat, puteți utiliza FileZilla pentru a vă conecta la serverul FTP din module la adresa IP statică pe care ați ales-o deja în fișierele mywifi.txt și boot.py.

Pasul 7: încă cu noi?

Încă alături de noi?
Încă alături de noi?
Încă alături de noi?
Încă alături de noi?

Dacă ați făcut-o bine până acum, bine pentru dvs.! Munca grea este terminată:) Acum va fi o navigație lină - doar o grămadă de tăieturi și paste și veți fi în funcțiune, astfel încât să o puteți monta în garajul dvs.

Pentru a edita oricare dintre coduri, puteți face dublu clic pe partea stângă a ferestrei FTP din FileZilla și va lansa SublimeText. Salvați modificările și apoi trageți-le în partea dreaptă, care este fereastra ESP32.

Deocamdată, trebuie doar să trageți fișierele din partea stângă în partea dreaptă a FileZilla pentru a încărca fiecare fișier separat în modulul ESP32. Acest lucru durează doar câteva secunde în loc de minute, așa cum o face metoda normală REPL. Vă rugăm să rețineți că toate fișierele ar trebui să se afle în directorul rădăcină numit „flash” din placa Pycom. Puteți crea un marcaj în FileZilla pentru a vă întoarce mai ușor aici pentru data viitoare.

Dacă aveți vreodată o problemă în care FileZilla se blochează și expiră pentru încărcare, veți observa un fișier în partea ESP32 care are 0 octeți. Încercarea de a scrie peste asta te poate înnebuni, deoarece nu se termină niciodată, indiferent de ce ai încerca! Este o stare foarte ciudată și se întâmplă foarte frecvent. Cea mai bună soluție pentru aceasta este să ștergeți fișierul de 0 octeți și să alimentați modulul. Apoi, obțineți o copie FRESH a fișierului sursă pentru a o încărca din nou în modulul ESP32. Rețineți că o copie nouă este cheia aici. Într-un fel, fișierul sursă pur și simplu nu se va încărca corect dacă se blochează astfel chiar și o singură dată.

Am găsit că ajută să trageți fiecare fișier individual pe modulul ESP32 începând cu boot.py. Acest prim fișier este responsabil pentru introducerea modulului dvs. în rețea, deci nu va mai trebui să faceți tăierea și lipirea în REPL. Cu toate acestea, puteți apuca folderul www și trageți-l într-o singură fotografie. Acest lucru a funcționat întotdeauna pentru noi în dezvoltarea noastră. Toate aceste fișiere sunt stocate în memoria flash non-volatilă de la modulul ESP32, astfel încât vor fi acolo după ce alimentarea este scoasă. Doar fyi - main.py va fi executat după boot.py de fiecare dată când modulul este pornit.

Pasul 8: sfaturi de piratare

Sfaturi de hacking
Sfaturi de hacking

Aruncați o privire la tot codul și încercați să utilizați Google pentru cuvinte cheie pe care nu le recunoașteți. Odată ce totul este în funcțiune, puteți încerca să schimbați orice doriți să vedeți ce face.

Dacă ceva nu merge bine, puteți oricând să ștergeți codul și / sau să repetați modulul în aproximativ 3 minute, așa cum ați făcut deja mai devreme.

Pentru a reformata blițul și a șterge tot codul într-o singură fotografie, puteți tasta următoarele în REPL:

import os

os.mkfs ('/ flash')

Apoi efectuați un ciclu de alimentare sau apăsați butonul de resetare de pe placa Wipy.

Rețineți că există, de asemenea, un alt mod de a ocoli boot.py & main.py, dacă lucrurile devin mentale. Conectați temporar pinul P12 la pinul de ieșire de 3,3V și apăsați butonul Reset așa cum se arată mai sus. Vă va ocoli tot codul și va merge direct la REPL o singură dată, astfel încât să puteți afla lucrurile fără a șterge tot codul dvs. din bliț.

După ce ați încărcat toate fișierele, apăsați butonul Resetare de pe modulul ESP32 pentru a-l reporni.

Veți vedea numărătoarea inversă familiară pe ecranul terminalului REPL când se conectează din nou la rețeaua WiFi. Diferența este că acest cod rulează acum din fișierul boot.py de data aceasta.

Pasul 9: pagini web

Pagini web
Pagini web
Pagini web
Pagini web
Pagini web
Pagini web
Pagini web
Pagini web

Microwebserver-ul ar trebui să fie pornit și să ruleze acum pe ESP32, așa că încercați-l folosind browserul desktop sau dispozitivul mobil.

Accesați adresa IP statică și ar trebui să vedeți un ecran similar celui de mai sus.

Există două pagini web care sunt difuzate de la microwebserver-ul nostru care rulează pe ESP32.

Prima este pagina implicită index.html, care vă oferă un simplu buton OPEN / CLOSE pentru a simula tipul de clicker al deschizătorului de uși de garaj pe care îl aveți. Când îl apăsați pe browserul dvs. web, veți vedea o pictogramă roată albastră mare care apare. Aceasta este o confirmare a faptului că conexiunea websocket a fost realizată cu succes și ați primit o confirmare de la server că comanda dvs. de „apăsare” a fost recepționată corect. De asemenea, ar trebui să vedeți un LED verde aprins pe placa Pycom când apăsați acest buton. Conexiunea websocket transmite stările butonului prin trimiterea de mesaje text simple de „apăsare” când îl apăsați și „apăsare” când îl eliberați. Pentru confirmare, microwebserver-ul trimite înapoi acest text, dar adaugă „_OK” pentru a spune că l-a primit corect.

Odată ce ați conectat terminalele releului solid state izolate optic (SSR) la deschizătorul ușii de garaj (consultați diagrama schematică a imaginii), atunci apăsarea butonului va deschide / închide fizic ușa.

Acordați-i câteva secunde și încercați din nou dacă nu vedeți pictograma roată albastră care apare, deoarece poate reporni sau altceva. Rețineți că priza web se va închide automat în aproximativ 20 de secunde dacă nu o utilizați pentru a preveni blocarea. Rețineți, de asemenea, că websocket-urile sunt orientate spre conexiune, deci trebuie să opriți websocket-ul pentru a schimba paginile sau altfel este posibil să nu vă mai puteți conecta din nou până când nu apăsați resetarea de pe modulul ESP32. Pentru exemplul nostru de cod, avem câteva modalități de oprire a websocket-ului: atingeți textul de stare, punctele care se rotesc sau hyperlinkul pentru a merge la pagina următoare.

Cea de-a doua pagină web este pentru citirea măsurătorilor distanței de la senzorul de timp tinyLiDAR al distanței de zbor. Doar apăsați butonul o dată și va începe să transmiteți lecturile de distanță pe dispozitivul dvs. mobil timp de aproximativ 20 de secunde. Pe măsură ce apăsați în jos, acesta va aprinde un LED roșu pe placa Pycom, astfel încât să puteți spune că primește comanda de apăsare a butonului de pe această pagină.

Ambele pagini indică faptul că ușa este deschisă sau închisă citind distanța de la tinyLiDAR. Variabila doorThreshold trebuie setată în ambele fișiere html din secțiunea script, așa cum se arată aici:

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

// **** Reglați după cum este necesar **** var doorThreshold = 100; // distanță în cm var ws_timeout = 20000; // timpul maxim în ms pentru a permite deschiderea / închiderea ușii este 20sec // -------------------------- // --- -----------------------

Va trebui să modificați acest prag pentru configurarea garajului dvs., astfel încât să poată detecta când ușa garajului este rulată și, prin urmare, DESCHISĂ sau rulată în jos și, prin urmare, ÎNCHISĂ. După ce ați făcut modificările pentru pragul dvs. în ambele fișiere html, încărcați din nou aceste fișiere html și reporniți-le pentru a verifica dacă totul funcționează bine.

Dacă totul este bun, acum puteți merge mai departe și puteți monta placa cu capul în jos în garajul dvs., așa cum se arată în imaginea de mai sus. Conectați pinii 3 și 4 din SSR și la deschizătorul ușii de garaj. Polaritatea nu este importantă, deoarece utilizăm o versiune MOSFET a SSR - trebuie doar să scurteze contactele pentru a simula un clic pe buton pe unitatea de bază a ușii de garaj.

Pasul 10: Și atât

Si asta e!
Si asta e!

Felicitări! Deschiderea ușii de garaj este acum la fel de ușoară ca atingerea telefonului și puteți verifica dacă a fost lăsată deschisă sau nu luând măsurători în timp real cu tinyLiDAR:)

De asemenea, puteți utiliza acum ESP32 cu prize web prin WiFi pentru aproape orice doriți. Citiți mai multe despre „websockets” dacă nu sunteți familiarizați cu ele - acestea sunt într-adevăr destul de rapide și ușor de utilizat.

Implementarea tinyLiDAR cu ESP32 a fost foarte ușoară, deși senzorul a fost inițial conceput pentru a rula pe un Arduino UNO. Avem o versiune beta mai elaborată a terminalului GUI care rulează majoritatea comenzilor tinyLiDAR în micropiton pe ESP32 - vezi imaginea de mai sus. Este disponibil în secțiunea de descărcări împreună cu manualul de referință etc.

Aruncați o privire în tot codul nostru pentru a înțelege cum se reunesc totul și încercați să schimbați lucrurile din jur, astfel încât să puteți construi pe el pentru a face tot ce doriți.

Rețineți că nu a fost menționată securitatea aici. Securitatea este o zonă imensă în IoT și ar trebui luată în serios. Dacă doriți să utilizați acest proiect în garajul dvs., ar trebui să păstrați parolele rețelei WiFi puternice și sigure. Există multe informații pe web despre securitate, deci asigurați-vă că citiți cele mai recente și rămâneți la curent.

Vă mulțumim pentru lectură și hacking fericit! Noroc.

Recomandat: