Taula de continguts:
- Pas 1: IoT Què?
- Pas 2: Proveu-ho: realment no, proveu-ho ara
- Pas 3: Micropython i ESP32
- Pas 4: el camí més ràpid
- Pas 5: descarregueu-lo ara
- Pas 6: temps de maquinari
- Pas 7: encara esteu amb nosaltres?
- Pas 8: consells de pirateria informàtica
- Pas 9: pàgines web
- Pas 10: I això és tot
Vídeo: TinyLiDAR al vostre garatge !: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Projecte d'obertura de portes de garatge WiFi DIY
El món de l’IoT tot just comença a explotar: totes les empreses tecnològiques de tot el món intenten esbrinar com s’adaptaran a aquest nou món. És una gran oportunitat. Així, per a aquest instructiu, d'acord amb aquest tema de l'IoT, revisarem com podeu fer que el vostre propi demostrador de l'IoT sigui realment útil;)
TL; resum de DR
- configureu un flux de treball fiable per codificar el mòdul WiFi ESP32
- flash-lo
- muntar-lo a la taula de treball
- descarregueu el nostre codi d'aplicació i descomprimiu-lo
- afegiu les vostres credencials WiFi i IP estàtica
- connecteu-lo a la vostra xarxa WiFi
- editeu els llindars i monteu-lo al garatge
- connecteu-lo als contactes d'obertura de la porta del garatge
- i feu clic!
- NO S’HA DE SOLDAR (excepte els passadors de taulers de ruptura si cal)
Peces obligatòries
- tinyLiDAR mòdul del sensor de distància de vol
- Taula WiFi basada en Wipy3.0 o similar ESP32
- Relé d'estat sòlid aïllat òpticament (Omron G3VM-201AY1) per controlar l'obertura de la porta del garatge
- Resistència de 470ohm (5% 1 / 8watt o superior està bé)
- Interruptor de botó momentani per al pin BOOT (GPIO0) per actualitzar el firmware de la placa ESP32
- USB a dongle sèrie per carregar codi i interactuar amb REPL a l'ESP32 (utilitzeu la versió d'E / S 3.3v)
- Taula de pa + cables
- Font d'alimentació: de 3,3 V a 5 V a 500 mA o superior. Podeu utilitzar un carregador de telèfon mòbil microUSB per a la font d'alimentació i el tauler de connexió microUSB per connectar-lo a la vostra placa.
Pas 1: IoT Què?
Sens dubte, heu sentit parlar del terme IoT a tots els mitjans de comunicació, però què significa?
Parlar lliurement significa connectar tota mena de sensors i coses controlables a Internet. Avui en dia, Internet és sinònim de connexió sense fils i, per tant, tenim tot el que es converteix de manera electrònica de manera sobtada en connectar-se sense fils a través d’algun tipus d’enllaç sense fils com WiFi / BT / LoRa / SigFox, etc. Un cop connectat a Internet, podem detectar i / o controlar aquestes coses del nostre controlador mòbil preferit, com ara el mòbil, o automatitzar-les mitjançant alguna aplicació que s’executa en un servidor en algun lloc (és a dir, al núvol).
Tot i que les empreses més grans han comercialitzat més control de veu, IA i connectivitat al núvol darrerament; els conceptes bàsics per fer que això passi tot són els mateixos. Cal que connecteu la vostra "cosa" a un enllaç sense fils abans que sigui possible algun d'aquests conceptes. Comencem, doncs, amb els conceptes bàsics i aprenem a connectar el sensor de distància de vol tinyLiDAR del temps de vol a un mòdul WiFi de baix cost i, a continuació, mostrarem com enviar dades d’anada i tornada per la xarxa. Al final d'aquest instructiu, tindreu el vostre propi control remot de porta de garatge habilitat per WiFi amb un monitor en temps real per comprovar si la porta està oberta o tancada.
Tècnicament parlant, tal com es mostra al diagrama de blocs anterior, aquest projecte implementa un servidor web de micropitó que s'executa en un mòdul WiFi ESP32 mitjançant el protocol de comunicació 'websockets' per passar les dades d'anada i tornada des de qualsevol navegador web mòbil. A més, comptem amb el sensor de distància de vol tinyLiDAR del vol que pren mesures a demanda perquè pugueu comprovar si la porta del garatge es va deixar oberta.
Pas 2: Proveu-ho: realment no, proveu-ho ara
Tot això és un camp relativament nou en l'electrònica, de manera que caldrà experimentar molt perquè les coses funcionin correctament. La nostra esperança és que pugueu basar-vos en aquesta base de codi i fer propis projectes IoT més interessants.
Tot el codi utilitzat en aquest article funcionava bé en el moment d’escriure aquest article. Tanmateix, a mesura que augmenta la taxa d’innovació a l’espai IoT, és possible que les coses hagin canviat en el moment de llegir-ho. En qualsevol cas, treballar problemes i adaptar-los al vostre ús farà que, com a mínim, us endinseu en aquest nou i emocionant espai i comenceu a pensar com un enginyer d’IoT.
A punt? Comencem pel primer pas per configurar el vostre propi entorn de desenvolupament estable.
Pas 3: Micropython i ESP32
Els mòduls WiFi ESP32 van ser creats per Espressif i han millorat molt des de la primera generació de mòduls ESP8266 de fa pocs anys. Aquestes noves versions tenen molta més memòria, processador més fort i més funcions que els mòduls originals i continuen sent de baix cost. El diagrama anterior us dóna la idea de quant van poder empaquetar en aquest petit xip ESP32. El propi ESP32 IC és un microcontrolador de doble nucli amb una ràdio WiFi 802.11b / g / n i també una ràdio Bluetooth 4.2 integrada. Els mòduls basats en ESP32 solen afegir una antena, memòria FLASH addicional i reguladors de potència.
Tingueu en compte que quan diem el mòdul ESP32 en aquesta instrucció, ens referim a les plaques Pycom Wipy3.0 que es basen en el mòdul o xip ESP32. Segons la nostra experiència, les plaques Pycom semblen tenir una qualitat de construcció superior als típics mòduls ESP32 de baix cost disponibles. Quan es desenvolupa, sempre és útil reduir el màxim de variables possible, de manera que hem optat per les plaques Pycom en lloc de genèrics de baix cost.
Per a les aplicacions OEM, la codificació ESP32 es fa normalment en llenguatge C, però, per sort, també hi ha moltes opcions per triar, de manera que no cal que baixeu a aquest nivell baix si no voleu. Hem escollit utilitzar micropitó per a tota la nostra codificació en aquesta instrucció.
Com haureu suposat, Micropython és un subconjunt del llenguatge de programació complet de Python que alimenta alguns motors de cerca i llocs web menys coneguts com Google, YouTube i Instagram;)
Micropython va començar com un projecte de kickstarter originalment per al processador STM32, però ara s’ha convertit en molt popular per a molts microcontroladors diferents. Aquí estem fent servir l’últim port de micropitó oficial Pycom ESP32.
Pas 4: el camí més ràpid
El codi de micropitó té una interfície gràfica d’usuari senzilla, anomenada REPL, que significa "Llegir – Eval – Imprimir bucle". El REPL d’ESP32 normalment funciona a 115,2 Kbaud des que s’hi accedeix a través del port sèrie. La imatge superior mostra aquesta sol·licitud REPL significada per les seves tres fletxes esperant comandes directes. És una manera senzilla de provar les nostres senzilles ordres i la majoria de programadors l’utilitzen per desenvolupar el seu programari, però hem trobat que és un camí dolorosament lent. Per tant, vam decidir fer-ho d'una manera diferent per a aquesta instrucció …
Com que els mòduls ESP32 tenen connectivitat WiFi ràpida, només necessitem accedir al mòdul per WiFi mitjançant un servidor FTP que ja està incrustat dins del codi estàndard de micropitó. Això ens permetrà utilitzar clients FTP com FileZilla per simplement arrossegar i deixar anar el nostre codi a l'ESP32.
Així, per fer-ho, necessitem primer el mòdul ESP32 a la vostra xarxa WiFi. Els mòduls Wipy3.0 executen un petit punt d’accés per defecte en engegar-se perquè pugueu connectar-vos-hi directament des d’un ordinador portàtil al 192.168.4.1. Consulteu més detalls aquí si us agrada aquest mètode.
Treballem en ordinadors de sobretaula al nostre laboratori, de manera que volíem que els mòduls ESP32 es connectessin a la nostra xarxa. Per fer-ho, només hem de proporcionar al mòdul una adreça IP estàtica i la nostra informació de contrasenya per iniciar sessió a la nostra xarxa WiFi.
Pas 5: descarregueu-lo ara
Baixeu-vos el codi de l'aplicació ara i descomprimiu els fitxers a una carpeta temporal de l'ordinador. A continuació, comenceu a editar fitxers de script mywifi.txt i boot.py amb les vostres pròpies credencials de xarxa WiFi.
Per cert, el nostre editor de text preferit segueix sent SublimeText. Es pot descarregar aquí.
També heu de descarregar ara el programari del terminal TeraTerm i el programari FTP FileZilla si encara no els teniu al vostre ordinador.
Haureu de configurar FileZilla tal com es mostra a les imatges anteriors. També al gestor de llocs, heu d '"afegir un lloc nou" per a l'inici de sessió de l'ESP32 mitjançant l'adreça IP estàtica que heu escollit com es mostra a la part anterior. L'usuari és "micro" i la contrasenya és "python". És important utilitzar FTP passiu i limitar-lo a connexions individuals. Vam trobar que la limitació de la velocitat de càrrega també ajudava a evitar bloquejos de càrrega. Tot i que no es mostra a les imatges, seria útil associar el programa SublimeText per als tipus de fitxers perquè pugueu editar el codi fent doble clic a la part esquerra de la pantalla FTP. Per fer-ho, aneu al menú Configuració i a les associacions Edició de fitxers / Tipus de fitxer introduïu la ubicació del fitxer exe de SublimeText per a cada associació. Per exemple, el nostre era:
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"
Copieu els fitxers d'aplicació extrets per a aquesta instrucció a una nova carpeta anomenada "FTP" al vostre ordinador, tal com vam fer nosaltres. Més tard serà més fàcil arrossegar des d’aquí cap a dins de FileZilla.
Normalment és una bona idea tenir el darrer firmware que s’executa a l’ESP32. Actualitzar els mòduls Pycom per utilitzar l’últim micropitó és molt senzill i es pot fer en uns 3 minuts amb la seva eina d’actualització de firmware.
Assegureu-vos d’establir el port COM del vostre USB a dongle sèrie i desseleccioneu el mode d’alta velocitat tal com es mostra a la imatge de "Comunicació" anterior. El nostre era el port COM 2. Tingueu en compte que per fer entrar els mòduls ESP32 en aquest mode d’actualització, haureu de prémer el botó GPIO0 / Boot (al pin P2) mentre premeu i deixeu anar el botó Reset.
Pas 6: temps de maquinari
Ara seria un bon moment per connectar el maquinari a una taula de treball, tal com es mostra al diagrama esquemàtic pictòric anterior.
Després d'això s'ha acabat tot. Inicieu el programari del terminal amb el port COM adequat per al vostre dongle USB a sèrie, configureu-lo a 115,2 Kbaud.
En engegar-se, el mòdul hauria de mostrar la sol·licitud familiar REPL que dóna tres fletxes ">>>".
Ara aneu al fitxer mywifi.txt editat i copieu tot el contingut (CTRL + C). A continuació, aneu a la pantalla del terminal REPL i premeu CTRL + E per entrar al mode de tallar i enganxar. A continuació, feu clic amb el botó dret per enganxar el contingut a la pantalla REPL i, a continuació, premeu les tecles CTRL + D per executar el que heu enganxat.
Hauria d'iniciar un compte enrere immediatament per dir que intenta connectar-se a la vostra xarxa WiFi. La captura de pantalla superior mostra un missatge de connexió satisfactori.
Un cop connectat, podeu utilitzar FileZilla per connectar-vos al servidor FTP als mòduls de l'adreça IP estàtica que ja heu triat als fitxers mywifi.txt i boot.py.
Pas 7: encara esteu amb nosaltres?
Si ho va fer bé fins ara, és bo per a vosaltres. El treball dur està acabat:) Ara serà una navegació suau: només un munt de tallar i enganxar i estareu en marxa i podreu muntar-lo al vostre garatge.
Per editar qualsevol codi, podeu fer doble clic a la part esquerra de la finestra FTP a FileZilla i iniciarà SublimeText. Deseu els canvis i arrossegueu-los cap al costat dret, que és la finestra ESP32.
De moment, només cal que arrossegueu els fitxers des del costat esquerre fins a la dreta de FileZilla per penjar cada fitxer per separat al mòdul ESP32. Això triga uns pocs segons en lloc de minuts, com fa el mètode REPL normal. Tingueu en compte que tots els fitxers haurien d'estar al directori arrel anomenat "flash" dins de la placa Pycom. Podeu fer un marcador a FileZilla per facilitar la tornada aquí per a la propera vegada.
Si alguna vegada teniu algun problema en què FileZilla es penja i s’espera per a la pujada, notareu un fitxer al costat de l’ESP32 que té 0 bytes. Si intenteu escriure-ho, us podeu tornar bojos, ja que mai s’acaba sense importar el que proveu. És un estat molt estrany i passa amb molta freqüència. La millor solució per a això és eliminar el fitxer de 0 bytes i encendre el mòdul. A continuació, obteniu una còpia FRESCA del fitxer font per tornar a carregar-la al mòdul ESP32. Tingueu en compte que aquí hi ha una nova còpia. D’alguna manera, el fitxer font no es carregarà correctament si es penja així fins i tot una sola vegada.
Hem trobat que ajuda a arrossegar cada fitxer individualment al mòdul ESP32 començant per boot.py. Aquest primer fitxer s’encarrega d’introduir el mòdul a la xarxa, de manera que no haureu de fer el tall i enganxa a REPL. Tanmateix, podeu agafar la carpeta www i arrossegar-la per sobre en un sol tret. Això sempre ha funcionat per a nosaltres en el nostre desenvolupament. Tots aquests fitxers s’emmagatzemen a l’emmagatzematge flaix no volàtil incorporat al mòdul ESP32, de manera que hi seran després de treure l’alimentació. Només fyi: el main.py s'executarà després de boot.py cada vegada que s'engegui el mòdul.
Pas 8: consells de pirateria informàtica
Mireu tot el codi i proveu de Google paraules clau que no reconeixeu. Un cop tot estigui en marxa, podeu provar de canviar el que vulgueu per veure què fa.
Si alguna cosa surt malament, sempre podeu esborrar el codi i / o tornar a llampegar el mòdul en uns 3 minuts, com ja heu fet anteriorment.
Per tornar a formatar el flaix i esborrar tot el codi en un sol tret, podeu escriure el següent a REPL:
import os
os.mkfs ('/ flash')
A continuació, feu un cicle d’alimentació o premeu el botó de restabliment del tauler Wipy.
Tingueu en compte que també hi ha una altra manera d’evitar el boot.py i main.py si les coses us fan malbé. Només cal que connecteu temporalment el pin P12 al pin de sortida de 3,3 V i premeu el botó Restable com es mostra a dalt. Passarà per alt tot el vostre codi i passarà directament a REPL una vegada perquè pugueu esbrinar les coses sense suprimir tot el vostre codi del flash.
Un cop hàgiu acabat de carregar tots els fitxers, només heu de prémer el botó Restableix del mòdul ESP32 per reiniciar-lo.
Veureu el compte enrere familiar a la pantalla del terminal REPL mentre torna a iniciar sessió a la vostra xarxa WiFi. La diferència és que aquest codi s’executa ara des del fitxer boot.py aquesta vegada.
Pas 9: pàgines web
El microwebserver hauria d’estar en funcionament ara a l’ESP32, així que proveu-ho mitjançant el navegador d’escriptori o el dispositiu mòbil.
Simplement aneu a la vostra adreça IP estàtica i hauríeu de veure una pantalla similar a la de més amunt.
Hi ha dues pàgines web que es publiquen des del nostre microwebserver que s’executa a l’ESP32.
El primer és la pàgina index.html per defecte, que us proporciona un senzill botó OBRIR / TANCAR per simular el tipus d'obertura de porta de garatge que teniu a la vostra disposició. En prémer-lo al navegador web, apareixerà una icona d'engranatge blava gran. Es tracta d'una confirmació que la connexió de port de connexió web s'ha realitzat correctament i que heu rebut un reconeixement del servidor que l'ordre "press" s'ha rebut correctament. Quan premeu aquest botó, també hauríeu de veure un LED de color verd brillant a la placa Pycom. La connexió de websockets transmet els estats del botó enviant missatges de text senzills de "premeu" quan el premeu i "premeu" quan el deixeu anar. Per confirmar-ho, el microwebserver torna a enviar aquest text però hi afegeix "_OK" per dir que l'ha rebut correctament.
Un cop hàgiu connectat els terminals del relé d’estat sòlid (SSR) aïllats òpticament a l’obridor de la porta del garatge (consulteu l’esquema gràfic pictòric), al prémer el botó també s’obrirà / tancarà la porta.
Dediqueu uns segons i torneu-ho a provar si no apareix la icona d'engranatge blau, ja que potser es reinicia o alguna cosa així. Tingueu en compte que el connector web es tancarà automàticament en uns 20 segons si no el feu servir per evitar bloqueigs. Tingueu en compte també que els connectors web estan orientats a la connexió, de manera que heu d’aturar-lo per canviar de pàgina o, en cas contrari, no podreu tornar a connectar-vos fins que no premeu el restabliment del mòdul ESP32. d'aturar el connexió web: toqueu el text d'estat, els punts giratoris o l'hiperenllaç per anar a la pàgina següent.
La segona pàgina web serveix per llegir les mesures de distància des del sensor de distància de vol tinyLiDAR del temps. Simplement premeu el botó una vegada i començarà a transmetre les lectures de distància al dispositiu mòbil durant uns 20 segons. Quan premeu cap avall, s'encendrà un LED vermell a la placa Pycom perquè pugueu saber que està rebent l'ordre de prémer el botó des d'aquesta pàgina.
Ambdues pàgines indiquen que la porta està oberta o tancada llegint la distància de tinyLiDAR. La variable doorThreshold s'ha d'establir als dos fitxers html de la secció de scripts, tal com es mostra aquí:
//--------------------------
// **** Ajusta segons sigui necessari **** var doorThreshold = 100; // distància en cm var ws_timeout = 20000; // el temps màxim en ms per permetre que la porta obri / tanca per defecte és de 20 segons // -------------------------- // --- -----------------------
Haureu d’editar aquest llindar per a la configuració del garatge de manera que pugui detectar quan la porta del garatge s’enrotlla i, per tant, s’OBRE o s’estira cap avall i, per tant, TANCADA. Un cop hàgiu fet les modificacions del vostre llindar als dos fitxers html, torneu a penjar aquests fitxers html i reinicieu-los per verificar que tot funcioni bé.
Si tot està bé, ara podeu seguir endavant i muntar el tauler cap per avall al garatge tal com es mostra a la imatge superior. Connecteu els passadors 3 i 4 de la SSR també a l’obridor de portes de garatge. La polaritat no és important, ja que estem utilitzant una versió MOSFET de la SSR: només ha de reduir els contactes per simular un clic de botó a la unitat base de la porta del garatge.
Pas 10: I això és tot
Enhorabona! Obrir la porta del garatge ara és tan senzill com tocar el telèfon i podeu comprovar si es va deixar oberta o no fent mesures en temps real amb tinyLiDAR:)
Ara també podeu utilitzar ESP32 amb preses de xarxa per WiFi per a gairebé qualsevol cosa que vulgueu. Llegiu més informació sobre els "websockets" si no esteu familiaritzats amb ells: són realment ràpids i fàcils d'utilitzar.
La implementació de tinyLiDAR amb l’ESP32 també va ser molt fàcil, tot i que el sensor va ser dissenyat originalment per funcionar amb un Arduino UNO. Tenim una versió beta més elaborada de la interfície gràfica d’usuari del terminal que executa la majoria de les ordres tinyLiDAR en micropitó a l’ESP32; vegeu la imatge superior. Està disponible a la nostra secció de descàrregues juntament amb el manual de referència, etc.
Feu un cop d'ull a tot el nostre codi per entendre com es combina tot i intenteu canviar les coses perquè pugueu fer-hi el que vulgueu.
Tingueu en compte que aquí no es va esmentar la seguretat. La seguretat és una àrea enorme a l'IoT i s'hauria de prendre seriosament. Si voleu utilitzar aquest projecte al vostre garatge, heu de mantenir les contrasenyes de la xarxa WiFi sòlides i segures. Al web hi ha molta informació sobre seguretat, així que assegureu-vos de llegir-ne la informació més recent i estar al dia.
Gràcies per llegir i feliç hacking. Ànims.
Recomanat:
Steam Punk del vostre SAI per obtenir hores de funcionament del vostre router Wi-Fi: 4 passos (amb imatges)
Steam Punk del vostre SAI per obtenir hores de funcionament del vostre router Wi-Fi: hi ha alguna cosa fonamentalment desagradable que el vostre SAI converti la potència de la bateria de 12V CC en 220V CA perquè els transformadors que funcionen amb el vostre enrutador i la fibra ONT puguin convertir-lo de nou en 12 V CC! També esteu contra els [normalment
Controleu el disseny del vostre model de tren amb el vostre TECLAT !: 12 passos
Controleu la disposició del vostre model de tren amb el vostre TECLAT!: En una de les meves instruccions anteriors, us vaig mostrar com podeu controlar el vostre model de tren amb el comandament del vostre televisor. També podeu consultar una versió actualitzada aquí. En aquest instructiu, us mostraré com controlar un disseny de model de tren amb un teclat
Controleu el disseny del vostre model de tren amb el vostre telèfon mòbil: 11 passos (amb imatges)
Controleu la disposició del vostre model de tren amb el vostre telèfon mòbil!: Controlar un disseny de model de tren amb controladors d’accelerador i de sortida de cable pot ser un bon començament per a principiants, però suposa un problema de no portabilitat. A més, els controladors sense fils que arriben al mercat només poden controlar alguns locom
Controleu el vostre avió RC amb l’acleròmetre del vostre telèfon: 15 passos (amb imatges)
Controleu el vostre avió RC amb l’acleròmetre del vostre telèfon: alguna vegada heu volgut controlar el vostre avió RC mitjançant la inclinació d’un objecte? Sempre he tingut la idea a la part posterior del cap, però mai l’he seguit fins aquesta setmana passada. Els meus primers pensaments eren utilitzar un acceleròmetre de triple eix, però ja he
Com evitar que el vostre gos mastegi el vostre control remot: 4 passos
Com evitar que el vostre gos mastegi el vostre control remot: cansat que la vostra mascota familiar us robi l’única font d’R & R per trobar-lo arrugat a trossos al jardí del jardí o sota les mantes del llit? cansat de perdre aquest maleït control remot al sofà? cansat de discutir amb la teva parella sobre qui ho va deixar