2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Hello World! Toto je môj prvý pokyn! Som Marco z Grosseto v Taliansku, nie som vývojár, nie som elektronický inžinier, ale som sprievodca v oblasti životného prostredia v našom miestnom prírodnom parku (prírodný park Maremma).
V mojom družstve veľa pracujeme s výletmi na kanoe, naturalistickými a pokojnými výletmi po rieke Ombrone na pozorovanie vtákov a trochu zmyslu pre relaxáciu.
Rieka Ombrone je však známa aj svojim charakteristickým druhom toku: od letného „nulového“po jesenno-zimný tok niekoľko tisíc metrov kubických vody za hodinu.
Z tohto dôvodu je rieka Ombrone neustále monitorovaná vynikajúcou regionálnou hydrometrickou službou (SIR) s fantastickým webom, ktorý sprístupňuje zozbierané údaje.
Teraz čakáme na koniec sezóny a prvé jesenné povodne na odstránenie doku a kanoe…
Ale keď začneme hovoriť o zoškrabaní pri analýze esp32ing atď.? ešte chvíľu
Počas talianskeho zablokovania som urobil prvú lekciu arduino blink, cool … a pokračoval som v hraní so senzormi a arduino C. Ak sa vám môj kód zdá hrubý alebo plný nezmyselných logických medzier, zvážte to!
Robil som veľa vecí, len aby som stratil čas, ale s týmto neustálym rizikom záplav som sa rozhodol urobiť niečo cool: vďaka ESP32 s arduino form factor (Wemos d1 r32), ktorý som držal zabalené niekoľko mesiacov, pretože som si myslel, že je „náročný“„Naozaj som mal veľa uspokojení:
Urobil som škrabku, ktorá prináša a analyzuje údaje z webovej stránky SIR a zobrazuje premenné získané na lacnom i2c LCD displeji a ako bliká frekvencia jasu na niektorých diódach na realistickej mape.
takže ak príde povodeň z horskej strany, budem varovaný zvyšujúcim sa jasom (zmena úrovne) a zvyšujúcou sa frekvenciou (zmena úrovne za jednu hodinu) LED diód na mape … ale ESP32 môže odosielať aj e -maily! Tak prečo pre to neurobiť funkciu?
poďme sa teraz pozrieť na kód nižšie!
Zásoby
- Doska založená na ESP32: Použil som Wemos d1 r32, pretože má samičie kolíky a manipulácia s ním je jednoduchšia
- LED diódy, červená je viac „výstražná ako“
- I2C 16x2 LCD iv'e iba modrý, ale zelená je štýlovejšia
- lacná korková doska
- nočný čas (voliteľné)
Krok 1: Kód
online našiel som iba báječné návody, ktoré na analýzu údajov používajú externé weby, a tak som sa pokúsil otestovať silu jadier esp32 analyzujúcich údaje priamo na doske … bez problémov!
takže ak sa pozriete na stránku SIR, zdroj pochopí, ako to funguje: našťastie na zobrazenie svojich údajov používa hodnoty „oddelené čiarkou“, takže pomocou tohto kódu vyhľadám hydrografickú stanicu (kód TOSnumber) a spočítam počet čiarok (ako oddeľovač), ktoré obsahujú požadovanú hodnotu (a uložte ju ako premennú), potom ju premapujte ako jas LED a čas v milisekundách, kým bliká „úroveň variácie“
Jadro tejto škrabky je na karte
ind = payload.indexOf ("TOSstation_number"); // získajte pozíciu (ind), odkiaľ začnite počítať čiarky
Reťazec my_var = getValue_ind (užitočné zaťaženie, ',', 8); // kde 8 je ôsma bunka definovaná čiarkami (oddeľovač)
„užitočné zaťaženie“je to, čo získam z webu, ktorý bol predtým vyčistený z „citácií“a „& nbsp“;
a funkciu getValue_ind, ktorá je na hlavnej karte
Reťazec getValue_ind (Reťazcové údaje, oddeľovač znakov, int index) {
int nájdené = 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; }} nájdený návrat> index? data.substring (strIndex [0], strIndex [1]): ""; }
upravené z
kód sa pýta na stránku každých 15 minút, je to asi 44 kB, nemyslím si, že by to bolo pre servery a ESP32 veľké zaťaženie. Aby som sa vyhýbal prílišnému posúvaniu, rozdelil som program na rôzne funkcie, prečítajte si komentáre
tu je vkladanie kódu skutočne neporiadok … vkladám súbory.ino priamo
Použil som funkciu kariet v arduino IDE, takže mám rôzne súbory.ino
toto je najnovšia verzia kódu (?), je tu veľa úsilia, takže ocením každý návrh!
- na vyrovnanie jasu LED pre nízke hodnoty, - na funkciu „mapa“pre premenné s pohyblivou rádovou čiarkou - na použitie druhého jadra na ESP32, - na pochopenie toho, ako vytlačiť html poštu z reťazca so sprintf strávil veľa skutočného „nerdingového času“, takže si prečítajte komentáre k súborom.ino alebo na github!
ako nastavenia nahrávania som použil Nástroje: Schéma oddielov: BEZ OTA, aby som mal viac miesta pre tento obrovský kód
bavte sa
kliknutím sem získate kód na github
Krok 2: Mapa
tento tutoriál je zahrnutý v kóde ESP32, takže vám môžem poskytnúť iba niektoré kľúčové slová, odkazy a použité nástroje:
vynikajúca služba pre extrahovanie vektorových oblastí z openstreetmap
- „ostický“QGis na ich strávenie
- pre zjednodušenie mapy vyhľadajte tabuľku atribútov
- vytvorte rozloženie tlače a exportujte mapu vo formáte svg na papierový formát A3
- bavte sa s „hladším“ilustrátorom
- vytlač to
Krok 3: Večierok s horúcim lepidlom
takže môžem navrhnúť vyrezať otvory pre diódu LED a displej na papieri a potom ich pripevniť na korkovú dosku
zapojenie je skutočne jednoduché a mnou zle urobené: P
Moja úroveň spájkovania: holub
ako vidíte z kódu, LED diódy idú na piny 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
vyhľadajte porozumenie pinoutu ESP32
Krok 4: Hotový výrobok
tak táto fotka nie je najlepšia, ale keď sa dostaneme k riečnej povodni, dám pekné video!