INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hello Wêreld! Dit is my eerste Instructable! Ek is Marco van Grosseto, Italië, ek is nie 'n ontwikkelaar nie, ek is nie 'n elektroniese ingenieur nie, maar ek is 'n omgewingsgids in ons plaaslike natuurpark (Maremma natuurpark).
In my koöperasie werk ons baie met kanotoere, naturalistiese en rustige toere op die Ombrone -rivier om voëlkyk en 'n bietjie sin te ontspan.
Maar die Ombrone-rivier is ook bekend vir sy kenmerkende soort vloei: van somer "nul" tot herfs-winter vloei van 'n paar duisend kubieke meter water per uur.
Om hierdie rede word die Ombrone -rivier voortdurend gemonitor deur die uitstekende plaaslike hidrometriese diens (SIR), met 'n fantastiese webwerf wat die versamelde data beskikbaar stel.
Nou wag ons vir die einde van die seisoen en vir die eerste herfsoorstromings om die dok en die kano's te verwyder …
Maar as ons begin praat oor die skraap van ontleding van esp32ing, ens? nog 'n oomblik
Tydens die Italiaanse inperking het ek die eerste arduino -blinkles gedoen, cool … en ek het voortgegaan om met sensors en arduino C rond te speel. As u my kode dus onbeskof of vol nonsens vind, moet u dit oorweeg!
Ek het baie dinge gedoen net om tyd te mors, maar met hierdie konstante oorstromingsrisiko het ek besluit om iets cool te doen: danksy 'n ESP32 met 'n arduino -vormfaktor (Wemos d1 r32) wat ek maande lank toegedraai het omdat ek 'moeilik' gedink het, Ek het regtig baie tevredenhede gehad:
Ek het 'n skraper gedoen wat data van 'n SIR-webblad bring en ontleed en die veranderlikes wat op 'n goedkoop i2c LCD verkry word, vertoon, en terwyl die helderheidsfrekwensie op sommige LED's op 'n realistiese kaart flikker.
so as 'n vloed van die bergkant af kom, word ek gewaarsku deur die toenemende helderheid (vlakverandering) en die toenemende frekwensie (vlakverandering in een uur) van die LED's op die kaart … maar die ESP32 kan ook e -pos stuur! Waarom doen u nie 'n funksie hiervoor nie?
laat ons nou die onderstaande kode sien!
Voorrade
- ESP32 -bord: ek het Wemos d1 r32 gebruik, want dit het vroulike penne en is makliker om te hanteer
- LED's, rooi is meer "waaksaam"
- I2C 16x2 LCD is net 'n blou, maar die groen is meer stylvol
- goedkoop kurkbord
- nag (opsioneel)
Stap 1: Die kode
aanlyn het ek net vurige tutoriale gevind wat eksterne webwerwe gebruik om data te ontleed, en ek het probeer om die krag van die esp32 -kerne wat die data direk op die bord ontleed het, te toets … sonder probleme!
dus as u na die SIR -bladsy kyk, kan u verstaan hoe dit werk: gelukkig gebruik hulle 'n 'komma -geskeide' waarde om hul data te vertoon, so met hierdie kode soek ek na 'n hidrografiese stasie (kode TOSnumber) en tel die aantal kommas (as skeiding) wat die waarde bevat wat ek wil hê (en stoor dit as veranderlik), verander dit dan as geleide helderheid en tyd in millis vir 'variasie vlak'
Die kern van hierdie skraper is op die http -oortjie:
ind = payload.indexOf ("TOSstation_number"); // kry die posisie (ind) vanwaar begin kommas tel
String my_var = getValue_ind (payload, ',', 8); // waar 8 die agtste sel is wat deur kommas (skeiding) gedefinieer word
"loonvrag" is wat ek kry van die internet wat voorheen van 'kwotasies' en '& nbsp' skoongemaak is;
en die getValue_ind -funksie wat op die hoofoortjie is
String getValue_ind (Stringdata, char separator, int index) {
int gevind = 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)? ek + 1: i; }} opgawe gevind> indeks? data.substring (strIndex [0], strIndex [1]): ""; }
aangepas vanaf
die kode vra elke 15 minute om die bladsy, dit is ongeveer 44Kb, ek dink nie dit is 'n groot las vir die bedieners en vir die ESP32 nie. Om te veel blaai te vermy, het ek die program in verskillende funksies verdeel, lees die opmerkings
hier is die plak plak regtig 'n gemors … ek plaas die.ino lêers direk
Ek het die tabs -funksie van die arduino IDE gebruik, so ek het verskillende.ino -lêers
dit is die nuutste weergawe van die kode (?), daar is baie moeite, so ek sal enige voorstel waardeer!
- vir die regstelling van die LED -helderheid vir lae waardes, - vir die "kaart" -funksie vir veranderlike dryfpuntpunte - vir die gebruik van die tweede kern op die ESP32, - om te verstaan hoe u 'n html -pos van 'n string met sprintfI kan druk het baie ware 'nerding -tyd' deurgebring, lees dus die kommentaar op die.ino -lêers of op github!
As oplaai -instellings het ek Tools: Partition Scheme: NO OTA gebruik om meer ruimte vir hierdie groot kode te hê
hê pret
klik hier vir die kode op github
Stap 2: Die kaart
hierdie tut is gebaseer op die ESP32 -kode, sodat ek u slegs 'n paar sleutelwoorde, skakels en gereedskap kan gee:
die uitstekende diens vir die uittreksel van vektorgebiede uit openstreetmap
- die 'ostiese' QGi's om dit te verteer
- soek na kenmerketabel om u kaart te vereenvoudig
- skep 'n drukuitleg en voer die kaart uit in svg -formaat op A3 -papierformaat
- om pret te hê met die 'gladder' illustrator
- druk dit uit
Stap 3: Die Hot Glue Party
sodat ek kan voorstel om die gate vir die LED en die skerm op die papier te sny voordat dit op die kurkbord aangebring word
die bedrading is regtig eenvoudig en sleg gedoen deur my: P
My soldeervlak: Duif
soos u uit die kode kan sien, gaan die LED's na IO -penne
#define LED_PIN0 14 // si #definieer LED_PIN1 27 // buon #define LED_PIN2 16 // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 // ist #define LED_PIN5 26 // berr
soek na ESP32 pinout vir verstaan
Stap 4: Die voltooide produk
hierdie foto is dus nie die beste nie, maar as ons 'n riviervloed kry, plaas ek 'n goeie video!