INHOUDSOPGAWE:

TinyLiDAR in u motorhuis !: 10 stappe
TinyLiDAR in u motorhuis !: 10 stappe

Video: TinyLiDAR in u motorhuis !: 10 stappe

Video: TinyLiDAR in u motorhuis !: 10 stappe
Video: Настоящий конструктор от Дэволт! Ремонт болгарки DeWALT - подробно! 2024, November
Anonim
TinyLiDAR in u motorhuis!
TinyLiDAR in u motorhuis!

DIY WiFi Garage Door Opener Project

Die IoT -wêreld begin net ontplof - elke tegnologieonderneming regoor die wêreld probeer uitvind hoe hulle in hierdie nuwe wêreld sal pas. Dit is net so 'n groot geleentheid! Daarom, in ooreenstemming met hierdie IoT -tema, gaan ons na hierdie instruksies, hoe u u eie IoT -demonstrator kan maak wat eintlik nuttig is;)

TL; DR opsomming

  • stel 'n betroubare werkstroom op vir die kodering van die ESP32 WiFi -module
  • flits dit
  • monteer dit op u broodbord
  • laai ons aansoekkode af en pak dit uit
  • voeg u WiFi -geloofsbriewe en statiese IP by
  • koppel dit aan u WiFi -netwerk
  • wysig drempels en monteer dit in u motorhuis
  • dra dit op na die kontakte van u motorhuisdeur
  • en klik weg!
  • GEEN VERKOOP nodig nie (behalwe die penne op uitbreekborde indien nodig)

Onderdele benodig

  • tinyLiDAR sensor van die vlugafstand sensor tyd
  • Wipy3.0 of soortgelyke ESP32 -gebaseerde WiFi -bord
  • Opties geïsoleerde vaste toestand-relais (Omron G3VM-201AY1) om die motordeuropening te beheer
  • Weerstand van 470ohm (5% 1/8 watt of groter is goed)
  • Kort drukknopskakelaar vir die BOOT (GPIO0) -pen om die firmware op die ESP32 -bord op te gradeer
  • USB na seriële dongle om kode op te laai en met REPL op die ESP32 te werk (gebruik die 3.3v I/O -weergawe)
  • Broodbord + drade
  • Kragtoevoer: 3.3V tot 5V by 500mA of meer. U kan 'n microUSB -selfoonlaaier vir die kragtoevoer en 'n microUSB -uitbreidingskaart gebruik om by u broodbord aan te sluit.

Stap 1: IoT Wat?

IoT Wat?
IoT Wat?

U het ongetwyfeld al in die media gehoor van die term IoT, maar wat beteken dit?

Losweg beteken dit dat allerhande sensors en beheerbare dinge aan die internet gekoppel word. Deesdae is die internet sinoniem met draadloos, en ons het alles elektronies wat skielik draadloos verbind word deur 'n soort draadlose skakel, soos WiFi/BT/LoRa/SigFox, ens. As ons aan die internet gekoppel is, kan ons voel en/of hierdie dinge van ons gunsteling mobiele beheerder, soos ons selfoon, of outomatiseer dit via 'n app wat êrens op 'n bediener loop (dws die wolk).

Alhoewel die groter ondernemings die afgelope tyd meer stembeheer, AI en wolkverbinding bemark; die basiese beginsels om dit alles te laat gebeur, is steeds dieselfde. U moet u 'ding' aan 'n draadlose skakel koppel voordat een van hierdie konsepte moontlik is. Laat ons dus begin met die basiese beginsels en leer hoe om die tinyLiDAR -vlugafstandsensor aan te sluit by 'n goedkoop WiFi -module en dan te wys hoe om data heen en weer oor die netwerk te stuur. Aan die einde van hierdie instruksies het u 'n werkende afstandsbediening vir motorhuisdeure met 'n werkende WiFi, met 'n intydse monitor om te kyk of die deur oop of toe is.

Tegnies gesproke, soos getoon in die blokdiagram hierbo, implementeer hierdie projek 'n mikropython -webbediener wat op 'n ESP32 WiFi -module loop, met behulp van die 'websockets' -kommunikasieprotokol om data heen en weer van enige mobiele webblaaier deur te gee. Hierbenewens het ons die tinyLiDAR -tydsensor vir vlugafstand, wat op aanvraag metings neem, sodat u kan kyk of die motorhuisdeur oopgelaat is.

Stap 2: Probeer dit - nee regtig, probeer dit nou

Probeer dit - nee regtig, probeer dit nou
Probeer dit - nee regtig, probeer dit nou

Dit is alles 'n relatief nuwe veld in elektronika, so daar sal baie eksperimente nodig wees om dinge reg te laat werk. Ons hoop dat u op hierdie kodebasis kan voortbou en 'n paar meer interessante IoT -projekte van u eie kan maak.

Al die kode wat in hierdie artikel gebruik is, het ten tyde van hierdie skrywe goed gewerk. Namate die tempo van innovasie in die IoT -ruimte toeneem, kan dinge egter verander het teen die tyd dat u dit lees. Hoe dan ook, deur probleme te werk en dit vir u eie gebruik aan te pas, kry u ten minste die hoof in hierdie opwindende nuwe ruimte en begin u soos 'n IoT -ingenieur dink!

Gereed? Kom ons begin met die eerste stap om u eie stabiele ontwikkelingsomgewing op te stel.

Stap 3: Micropython en ESP32

Micropython en ESP32
Micropython en ESP32

Die ESP32 WiFi -modules is deur Espressif geskep en het sedert die eerste generasie ESP8266 -modules van 'n paar jaar gelede baie verbeter. Hierdie nuwe weergawes het baie meer geheue, 'n sterker verwerker en meer funksies as die oorspronklike modules en is steeds goedkoop. Die diagram hierbo gee u 'n idee van hoeveel hulle in hierdie klein ESP32 -skyfie kon inpak. Die ESP32 IC self is 'n dubbelkern -mikrobeheerder met 'n 802.11b/g/n WiFi -radio en ook 'n geïntegreerde Bluetooth 4.2 -radio. Die op ESP32 gebaseerde modules sal tipies 'n antenna, ekstra FLASH -geheue en kragreguleerders byvoeg.

Let daarop dat as ons ESP32 -module in hierdie instruksies sê, ons verwys na die Pycom Wipy3.0 -borde wat gebaseer is op die ESP32 -chip/module. Volgens ons ervaring lyk dit asof die Pycom -borde van hoër boukwaliteit is as die tipiese lae koste ESP32 -modules wat beskikbaar is. By die ontwikkeling is dit altyd nuttig om soveel veranderlikes as moontlik te verminder.

Vir OEM -toepassings word die ESP32 -kodering gewoonlik in C -taal gedoen, maar gelukkig is daar ook baie opsies om van te kies, sodat u nie op hierdie lae vlak hoef te kom as u nie wil nie. Ons het gekies om micropython te gebruik vir al ons kodering in hierdie instruksies.

Micropython is, soos u waarskynlik vermoed het, 'n deelversameling van die volledige Python -programmeertaal wat sommige minder bekende soekenjins en webwerwe soos Google, YouTube en Instagram bevoordeel;)

Micropython-logo
Micropython-logo

Micropython het oorspronklik begin as 'n kickstarter -projek vir die STM32 -verwerker, maar het nou baie gewild geword vir baie verskillende mikrobeheerders. Ons gebruik die nuutste amptelike Pycom ESP32 -poort van micropython hier.

Stap 4: Die vinniger manier

Die vinniger manier
Die vinniger manier

Die mikropython -kode het 'n eenvoudige front -end GUI wat REPL genoem word, wat staan vir "Read – Eval - Print Loop". Die REPL van ESP32 loop normaalweg op 115.2Kbaud sedert dit via die seriële poort verkry is. Die foto hierbo toon hierdie REPL -aanwysing wat aangedui word deur die drie pyle wat op direkte opdragte wag. Dit is 'n maklike manier om ons eenvoudige opdragte te probeer, en die meeste kodeerders gebruik dit om hul sagteware te ontwikkel, maar ons het gevind dat dit 'n pynlik stadige pad is. Daarom het ons besluit om dit op 'n ander manier te doen vir hierdie instruksionele …

Aangesien die ESP32 -modules vinnige WiFi -verbinding het, hoef ons net via WiFi toegang tot die module te verkry via 'n FTP -bediener wat reeds in die standaard mikropython -kode ingebed is. Dit sal ons dan in staat stel om FTP -kliënte soos FileZilla te gebruik om ons kode eenvoudig na die ESP32 te sleep.

Om dit te kan doen, moet ons eers die ESP32 -module op u WiFi -netwerk kry. Die Wipy3.0 -modules het standaard 'n klein toegangspunt by aanvang, sodat u vanaf 'n skootrekenaar op 192.168.4.1 direk daaraan kan koppel. Kyk hier na meer besonderhede as u van hierdie metode hou.

Ons werk op ons rekenaars in ons laboratorium, so ons wou hê dat die ESP32 -modules eerder by ons netwerk konnekteer. Om dit te kan doen, moet ons die module 'n statiese IP -adres en ons wagwoordinligting gee om by ons WiFi -netwerk aan te meld.

Stap 5: Laai nou af

Laai nou af
Laai nou af
Laai nou af
Laai nou af
Laai nou af
Laai nou af
Laai nou af
Laai nou af

Laai die toepassingskode nou af en pak die lêers uit na 'n tydelike gids op u rekenaar. Begin dan met die redigering van mywifi.txt en boot.py script lêers met u eie WiFi -netwerkbewyse.

Btw - ons gunsteling teksredakteur is steeds SublimeText. Dit kan hier afgelaai word.

U moet ook nou die TeraTerm -terminalsagteware en FileZilla FTP -sagteware aflaai as u dit nie op u rekenaar het nie.

U moet FileZilla instel soos in die foto's hierbo getoon. Ook in die webwerfbestuurder moet u 'nuwe webwerf byvoeg' vir die ESP32 -aanmelding met behulp van die statiese IP -adres wat u gekies het, soos hierbo getoon. Gebruiker is 'mikro' en wagwoord is 'python'. Dit is belangrik om passiewe FTP te gebruik en dit slegs tot enkele verbindings te beperk. Ons het gevind dat die beperking van die oplaaisnelheid ook gehelp het om oplaai te voorkom. Alhoewel dit nie op die foto's verskyn nie, is dit nuttig om die SublimeText -program aan die lêertipes te koppel, sodat u die kode kan wysig deur te dubbelklik aan die linkerkant van die FTP -skerm. Om dit te doen, gaan net na die Instellings -kieslys en voer die ligging van u SublimeText -exe -lêer in elke vereniging in die lêerbewerkings-/filetipe -verenigings in. Ons s'n was byvoorbeeld:

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

Kopieer die uitgepakte toepassingslêers vir hierdie instruksies na 'n nuwe gids genaamd "FTP" op u rekenaar, net soos ons. Dit sal later makliker wees om van hier binne in FileZilla te sleep.

Dit is gewoonlik 'n goeie idee om die nuutste firmware op die ESP32 te laat loop. Die opgradering van die Pycom -modules om die nuutste mikropython te gebruik, is baie eenvoudig en kan binne ongeveer 3 minute met hul firmware -opdateringshulpmiddel gedoen word.

Maak seker dat u die COM-poort vir u USB op Seriële dongle stel en die hoëspoedmodus uitskakel, soos aangedui in die prentjie "Kommunikasie" hierbo. Ons het COM -poort 2. Let daarop dat om die ESP32 -modules in hierdie opgraderingsmodus te kry, u op die GPIO0/Boot -knoppie (op P2 -pen) moet druk terwyl u die Reset -knoppie ingedruk en loslaat.

Stap 6: Hardeware tyd

Hardeware tyd
Hardeware tyd
Hardeware tyd
Hardeware tyd

Dit is 'n goeie tyd om die hardeware op 'n broodbord aan te trek, soos getoon in die skematiese diagram hierbo.

Nadat dit alles voltooi is. Begin die terminale sagteware met die regte COM -poort vir u USB na Serial dongle, stel dit op 115.2Kbaud.

By aanvang moet die module die bekende REPL -aanwyser vertoon wat drie pyle ">>>" gee.

Gaan nou na u gewysigde mywifi.txt -lêer en kopieer al die inhoud (CTRL+C). Gaan dan na die REPL terminale skerm en druk CTRL+E om in die knip en plak modus te kom. Klik dan met die rechtermuisknop om die inhoud in die REPL -skerm te plak en druk dan op die CTRL+D -sleutels om uit te voer wat u geplak het.

Dit moet dadelik aftel om te sê dat dit probeer om aan te sluit op u WiFi -netwerk. Die skermskoot hierbo toon 'n suksesvolle verbindingsboodskap.

Sodra u verbind is, kan u FileZilla gebruik om aan te sluit op die FTP -bediener in die modules op die statiese IP -adres wat u reeds in u mywifi.txt- en boot.py -lêers gekies het.

Stap 7: Nog steeds by ons?

Nog steeds by ons?
Nog steeds by ons?
Nog steeds by ons?
Nog steeds by ons?

As dit tot dusver goed gegaan het, dan is dit goed vir jou! Die harde werk is gedoen:) Nou sal dit glad verloop - net 'n klomp sny en plak, en u kan aan die gang kom, sodat u dit in u motorhuis kan monteer.

Om een van die kode te wysig, kan u dubbelkliek aan die linkerkant van die FTP -venster in FileZilla, en dit sal SublimeText begin. Stoor u veranderinge en sleep dit dan na die regterkant, die ESP32 -venster.

Sleep vir eers die lêers van die linkerkant na die regterkant van FileZilla om elke lêer afsonderlik na die ESP32 -module op te laai. Dit neem slegs 'n paar sekondes in plaas van minute, soos die normale REPL -metode doen. Let daarop dat al die lêers onder die wortelgids "flash" in die Pycom -bord moet wees. U kan 'n boekmerk in FileZilla maak om dit makliker te maak om terug te keer vir 'n volgende keer.

As u ooit 'n probleem ondervind met die ophang van FileZilla en die aflaai daarvan, sien u 'n lêer aan die ESP32 -kant met 0 grepe. As u daaroor probeer skryf, kan u mal word, aangesien dit nooit klaar is nie, maak nie saak wat u probeer nie! Dit is 'n baie vreemde toestand en gebeur gereeld. Die beste oplossing hiervoor is om die 0 -byte -lêer uit te vee en die module met 'n kragbron te skakel. Kry dan 'n VERS kopie van die bronlêer om weer na die ESP32 -module op te laai. Let daarop dat 'n nuwe kopie hier die sleutel is. Op een of ander manier laai die bronlêer net nie behoorlik op as dit net 'n enkele keer so hang nie.

Ons het gevind dat dit help om elke lêer afsonderlik na die ESP32 -module te sleep, begin met boot.py. Hierdie eerste lêer is verantwoordelik om u module op die netwerk te kry, sodat u nie meer hoef te knip en plak in REPL nie. U kan egter die www -gids gryp en dit in 'n enkele keer sleep. Dit het altyd vir ons gewerk in ons ontwikkeling. Al hierdie lêers word gestoor in die ingeboude nie-vlugtige flash-berging in die ESP32-module, sodat hulle daar sal wees nadat die krag verwyder is. Net fyi - die main.py word uitgevoer na boot.py elke keer as die module aangeskakel word.

Stap 8: wenke vir inbraak

Inbraak wenke
Inbraak wenke

Kyk na al die kode en probeer Google vir sleutelwoorde wat u nie herken nie. Sodra alles aan die gang is, kan u probeer om te verander wat u wil, om te sien wat dit doen.

As iets verkeerd loop, kan u altyd die kode uitvee en/of die module binne ongeveer 3 minute weer flits, soos u reeds gedoen het.

Om die flits te herformateer en al u kode in een skoot uit te vee, tik die volgende in REPL:

invoer os

os.mkfs ('/flash')

Doen dan 'n kragsiklus of druk die reset -knoppie op die Wipy -bord.

Let op: daar is ook 'n ander manier om die boot.py en main.py te omseil as u dit in gedagte hou. Koppel pen P12 tydelik aan die 3.3V -uitvoerpen en druk die Reset -knoppie soos hierbo getoon. Dit sal al u kode omseil en een keer reguit na REPL gaan, sodat u dinge kan uitvind sonder om al u kode van flash te verwyder.

As u klaar is met die oplaai van al die lêers, klik net op die Reset -knoppie op die ESP32 -module om dit weer te begin.

U sal die bekende aftelling op die REPL -terminale skerm sien terwyl dit weer by u WiFi -netwerk aanmeld. Die verskil is dat hierdie kode nou hierdie keer vanaf die boot.py -lêer loop.

Stap 9: Webblaaie

Webblaaie
Webblaaie
Webblaaie
Webblaaie
Webblaaie
Webblaaie
Webblaaie
Webblaaie

Die mikrogolfbediener behoort nou op die ESP32 aan die gang te wees, dus probeer dit met u lessenaarblaaier of u mobiele toestel.

Gaan net na u statiese IP -adres, en u sal 'n skerm soortgelyk aan die hierbo sien.

Daar is twee webblaaie wat bedien word vanaf ons mikrogolfbediener wat op die ESP32 werk.

Die eerste een is die standaard index.html -bladsy, wat u 'n eenvoudige OPEN/CLOSE -knoppie gee om die tipe klikdeur van die deur van die motorhuisdeur na te boots. As u dit in u webblaaier druk, sien u 'n groot blou ratikoon. Dit is 'n bevestiging dat die websocket -verbinding suksesvol gemaak is en dat u 'n bevestiging van die bediener ontvang het dat u 'pers' opdrag korrek ontvang is. U moet ook 'n heldergroen LED op die Pycom -bord sien brand as u op hierdie knoppie druk. Die verbinding met die webbus stuur die toestande van die knoppie deur eenvoudige sms'e van "druk" te stuur wanneer u daarop druk en "druk" wanneer u dit los. Ter erkenning stuur die mikrogolfbediener hierdie teks terug, maar voeg '_OK' by om te sê dat hy dit korrek ontvang het.

Sodra u die opties geïsoleerde solid state relais (SSR) -aansluitings aan u motordeuropening gekoppel het (verwys na die skematiese diagram), sal die deur ook deur die druk op die knoppie fisies oopmaak/sluit.

Gee dit 'n paar sekondes en probeer weer as u nie die blou ratikoon sien nie, aangesien dit moontlik herlaai of iets. Let daarop dat die websocket binne ongeveer 20 sekondes outomaties sluit as u dit nie gebruik om toesluitings te voorkom nie. Let ook daarop dat websockets verbindingsgerig is, dus moet u die websocket stop om bladsye te verander, anders kan u moontlik nie weer 'n verbinding maak totdat u die reset op die ESP32 -module aangeraak het nie. Vir ons voorbeeldkode het ons 'n paar maniere om die websocket te stop: tik op die statusteks, kolletjies of die hyperlink om na die volgende bladsy te gaan.

Die tweede webblad is vir die lees van afstandmetings vanaf die tinyLiDAR tydvlugafstandsensor. Druk net een keer op die knoppie, en die afstandlesings begin ongeveer 20 sekondes na u mobiele toestel stroom. As u druk, sal 'n rooi LED op die Pycom -bord brand, sodat u kan sien dat dit die opdrag van die knoppie op hierdie bladsy ontvang.

Beide bladsye gee 'n aanduiding dat die deur oop of toe is deur die leesafstand van tinyLiDAR. Die deurThreshold -veranderlike moet in albei die html -lêers in die scriptafdeling gestel word, soos hier getoon:

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

// **** Pas aan indien nodig **** var doorThreshold = 100; // afstand in cm var ws_timeout = 20000; // maksimum tyd in ms om die deur oop te maak/toe te maak, standaard is 20sec // -------------------------- // --- -----------------------

U sal hierdie drempel vir u motorhuisopstelling moet wysig sodat dit kan opspoor wanneer die garagedeur opgerol word en dus OOP of afrol en dus GESLUIT. Nadat u die drempelwaarde in beide html -lêers gewysig het, laai hierdie html -lêers weer op en herlaai om te sien of alles nog goed werk.

As alles goed is, kan u nou die bord onderstebo in u motorhuis monteer, soos op die foto hierbo getoon. Sluit ook penne 3 en 4 van die SSR aan op u motorhuisdeuropener. Polariteit is nie belangrik nie, aangesien ons 'n MOSFET -weergawe van die SSR gebruik - dit hoef slegs die kontakte uit te skakel om 'n klik op 'n knoppie op u motorhuisdeur -eenheid te simuleer.

Stap 10: En dit is dit

En dit is dit!
En dit is dit!

Baie geluk! Dit is nou net so maklik om u motorhuisdeur oop te maak as om op u telefoon te tik, en u kan kyk of dit oopgemaak is of nie, deur real -time metings te doen met tinyLiDAR:)

U kan ook nou ESP32 met websockets oor WiFi gebruik vir omtrent alles wat u wil. Lees meer oor 'websockets' as u dit nie ken nie - dit is regtig redelik vinnig en maklik om te gebruik.

Die implementering van tinyLiDAR met die ESP32 was ook baie maklik, alhoewel die sensor oorspronklik ontwerp is om op 'n Arduino UNO te werk. Ons het 'n meer uitgebreide beta -weergawe van die Terminal GUI wat die meeste van die tinyLiDAR -opdragte in micropython op die ESP32 uitvoer - sien foto hierbo. Dit is beskikbaar by ons aflaai -afdeling, tesame met die ref -handleiding, ens.

Kyk deur al ons kode om te sien hoe alles bymekaar kom, en probeer om dinge te verander sodat u daarop kan bou om te doen wat u wil.

Hou in gedagte dat daar geen sprake was van veiligheid hier nie. Beveiliging is 'n groot gebied in IoT en moet ernstig opgeneem word. As u hierdie projek in u motorhuis wil gebruik, moet u die wagwoorde van u WiFi -netwerk sterk en veilig hou. Daar is baie inligting op die internet oor beveiliging, dus lees die nuutste inligting en bly op die hoogte.

Dankie vir die lees en gelukkige inbraak! Cheers.

Aanbeveel: