Taula de continguts:
- Subministraments
- Pas 1: el codi
- Pas 2: el mapa
- Pas 3: la festa de la cola calenta
- Pas 4: el producte acabat
Vídeo: ESP32 Scraper-parser-mailer i Live Mapper: 4 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Hola món! Aquest és el meu primer instructible! Sóc Marco de Grosseto, Itàlia, no sóc desenvolupador, no sóc enginyer electrònic, però sóc guia ambiental al nostre parc natural local (parc natural de la Maremma).
A la meva cooperativa treballem molt amb excursions en canoa, excursions naturalistes i tranquil·les al riu Ombrone per observar ocells i relaxar-vos.
Però el riu Ombrone també és famós pel seu característic tipus de cabal: des del "zero" d'estiu fins al cabal tardor-hivern de diversos milers de metres cúbics d'aigua per hora.
Per aquest motiu, el riu Ombrone està constantment controlat per l’excel·lent servei hidromètric regional (SIR), amb un lloc fantàstic que posa a disposició les dades recollides.
Ara esperem el final de la temporada i les primeres inundacions de tardor per eliminar el moll i les canoes …
Però quan comencem a parlar de raspar analitzant esp32ing, etc.? un moment més
Durant el tancament italià, he fet la primera lliçó de parpelleig d’arduino, genial … i he continuat jugant amb sensors i arduino C. Així que si trobeu el meu codi brut o ple de buits lògics sense sentit, tingueu en compte això!
Vaig fer moltes coses només per perdre el temps, però amb aquest risc constant d’inundacions vaig decidir fer alguna cosa divertida: gràcies a un ESP32 amb un factor de forma arduino (Wemos d1 r32) que vaig mantenir embolicat durant mesos perquè em semblava "difícil", Realment vaig tenir moltes satisfaccions:
He fet un rascador que porta i analitza les dades d'una pàgina web SIR i mostra les variables obtingudes en una pantalla LCD i2c barata, i que la freqüència de brillantor parpelleja en alguns leds d'un mapa realista.
així que si una inundació prové del costat de la muntanya, se m'advertirà per la brillantor creixent (canvi de nivell) i per la freqüència creixent (canvi de nivell en una hora) dels leds del mapa … però l'ESP32 també pot enviar correus electrònics. Llavors, per què no fer una funció per això?
anem a veure el codi següent ara!
Subministraments
- Taula basada en ESP32: he utilitzat Wemos d1 r32 perquè tenen pins femenins i és més fàcil de manejar
- leds, el vermell és més "alerta com"
- I2C 16x2 LCD només és blau, però el verd és més elegant
- tauler de suro barat
- nit (opcional)
Pas 1: el codi
en línia, només he trobat tutorials feixucs que utilitzen llocs externs per analitzar dades, així que he intentat provar la potència dels nuclis esp32 analitzant les dades directament al tauler … sense problemes.
per tant, si veieu el codi font de la pàgina SIR, podeu entendre el seu funcionament: per sort, utilitzen valors "separats per comes" per mostrar les seves dades, de manera que amb aquest codi busco una estació hidrogràfica (codi TOSnumber) i compto el nombre de comes (com a separador) que contenen el valor que desitjo (i emmagatzemar-lo com a variable) i, a continuació, torneu a mapar-lo com a brillantor i temps del led en mil·lis per a parpellejar el "nivell de variació"
El nucli d’aquest rascador es troba a la pestanya
ind = payload.indexOf ("TOSstation_number"); // obtenir la posició (ind) des d’on començar a comptar comes
Cadena my_var = getValue_ind (càrrega útil, ',', 8); // on 8 és la vuitena cel·la definida per comes (separador)
"càrrega útil" és el que obtinc del web netejat prèviament de "pressupostos" i "& nbsp";
i la funció getValue_ind que es troba a la pestanya principal
String getValue_ind (dades de cadena, separador de caràcters, índex int) {
int trobat = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// from ind position if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} retorn trobat> índex? data.substring (strIndex [0], strIndex [1]): ""; }
adaptat de
el codi demana la pàgina cada 15 minuts, és d'uns 44 KB, no crec que sigui una càrrega gran per als servidors i per a l'ESP32.. Per evitar massa desplaçaments he dividit el programa en diferents funcions, llegiu els comentaris
aquí el codi enganxat és realment un desastre … He posat directament els fitxers.ino
He utilitzat la característica de pestanyes de l'IDE arduino, de manera que tinc diferents fitxers.ino
aquesta és l'última versió del codi (?), hi ha molts esforços, així que agrairé qualsevol suggeriment.
- per redreçar la brillantor del led per a valors baixos, - per a la funció "mapa" per a variables de coma flotant - per a l'ús del segon nucli a l'ESP32, - per entendre com imprimir un correu html des d'una cadena amb sprintf Vaig passar molt de "veritable temps", així que llegiu els comentaris als fitxers.ino o a github.
com a configuració de càrrega he utilitzat Eines: Esquema de particions: NO OTA per tenir més espai per a aquest enorme codi
diverteix-te
feu clic aquí per obtenir el codi a github
Pas 2: el mapa
aquest tutorial s’incrementa amb el codi ESP32, de manera que només us puc donar algunes paraules clau, enllaços i eines:
l'excel·lent servei per extreure àrees vectorials de openstreetmap
- els QGis "òstics" per digerir-los
- cerqueu una taula d'atributs per simplificar el vostre mapa
- creeu un disseny d'impressió i exporteu el mapa en format svg en format de paper A3
- Diverteix-te amb l’il·lustrador “més suau”
- imprimeix-lo
Pas 3: la festa de la cola calenta
per tant, puc suggerir de tallar els forats del led i de la pantalla del paper abans de fixar-lo al tauler de suro
el cablejat és realment senzill i mal fet per mi: P
El meu nivell de soldadura: colom
com podeu veure al codi, els leds van als pins IO
#define LED_PIN0 14 // si # define LED_PIN1 27 // buon #define LED_PIN2 16 // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 // ist #define LED_PIN5 26 // berr
cerqueu el pinout ESP32 per comprendre
Pas 4: el producte acabat
així que aquesta foto no és la millor, però quan tinguem una riuada, posaré un bon vídeo!
Recomanat:
Llum (s) LED amb bateria amb càrrega solar: 11 passos (amb imatges)
Llums LED amb bateria amb càrrega solar: la meva dona ensenya a la gent a fer sabó, la majoria de les seves classes eren al vespre i aquí a l’hivern es fa fosc cap a les 4:30 de la tarda, alguns dels seus alumnes tenien problemes per trobar el nostre casa. Teníem un rètol frontal però fins i tot amb un lligam al carrer
Porta imatges amb altaveu incorporat: 7 passos (amb imatges)
Suport d'imatges amb altaveu incorporat: aquí teniu un gran projecte per dur a terme durant el cap de setmana, si voleu que us poseu un altaveu que pugui contenir imatges / postals o fins i tot la vostra llista de tasques. Com a part de la construcció, utilitzarem un Raspberry Pi Zero W com a centre del projecte i un
Reconeixement d'imatges amb plaques K210 i Arduino IDE / Micropython: 6 passos (amb imatges)
Reconeixement d’imatges amb plaques K210 i Arduino IDE / Micropython: ja vaig escriure un article sobre com executar demostracions d’OpenMV a Sipeed Maix Bit i també vaig fer un vídeo de demostració de detecció d’objectes amb aquesta placa. Una de les moltes preguntes que la gent ha formulat és: com puc reconèixer un objecte que la xarxa neuronal no és tr
Gesture Hawk: robot controlat amb gestos manuals mitjançant la interfície basada en el processament d’imatges: 13 passos (amb imatges)
Gesture Hawk: robot controlat amb gestos manuals mitjançant interfície basada en el processament d’imatges: Gesture Hawk es va mostrar a TechEvince 4.0 com una interfície simple màquina basada en el processament d’imatges. La seva utilitat rau en el fet que no es requereixen cap sensor addicional ni un dispositiu portàtil, excepte un guant, per controlar el cotxe robòtic que funciona amb diferents
Com desmuntar un ordinador amb passos i imatges senzills: 13 passos (amb imatges)
Com desmuntar un ordinador amb passos i imatges senzills: és una instrucció sobre com desmuntar un ordinador. La majoria dels components bàsics són modulars i fàcilment eliminables. Tanmateix, és important que us organitzeu al respecte. Això us ajudarà a evitar la pèrdua de peces i també a fer el muntatge