Përmbajtje:

ESP32 Scraper-parser-mailer dhe Live Mapper: 4 hapa (me fotografi)
ESP32 Scraper-parser-mailer dhe Live Mapper: 4 hapa (me fotografi)

Video: ESP32 Scraper-parser-mailer dhe Live Mapper: 4 hapa (me fotografi)

Video: ESP32 Scraper-parser-mailer dhe Live Mapper: 4 hapa (me fotografi)
Video: The HARDEST part about programming 🤦‍♂️ #code #programming #technology #tech #software #developer 2024, Nëntor
Anonim
ESP32 Scraper-parser-mailer dhe Live Mapper
ESP32 Scraper-parser-mailer dhe Live Mapper
ESP32 Scraper-parser-mailer dhe Live Mapper
ESP32 Scraper-parser-mailer dhe Live Mapper
ESP32 Scraper-parser-mailer dhe Live Mapper
ESP32 Scraper-parser-mailer dhe Live Mapper

Përshendetje Botë! Ky është udhëzuesi im i parë! Unë jam Marco nga Grosseto Itali, nuk jam një zhvillues, nuk jam një inxhinier elektronik, por jam një udhëzues mjedisor në parkun tonë natyror lokal (parku natyror Maremma).

Në kooperativën time ne punojmë shumë me turne me kanoe, turne natyralistë dhe të qetë në lumin Ombrone për shikimin e shpendëve dhe pak ndjenjë relaksuese.

Por lumi Ombrone është gjithashtu i famshëm për rrjedhën e tij karakteristike: nga vera "zero" në vjeshtën-dimër rrjedhën e disa mijëra metra kub ujë në orë.

Për këtë arsye, lumi Ombrone monitorohet vazhdimisht nga shërbimi i shkëlqyer hidrometrik rajonal (SIR), me një sit fantastik që i vë në dispozicion të dhënat e mbledhura.

Tani ne jemi duke pritur për fundin e sezonit dhe përmbytjet e para të vjeshtës për të hequr bankën e të akuzuarve dhe lundrat…

Por kur fillojmë të flasim për fshirjen e analizimit të esp32ing etj? nje moment me shume

Gjatë mbylljes italiane kam bërë mësimin e parë të mbylljes me arduino, mirë … dhe kam vazhduar të luaj me sensorë dhe arduino C. Pra, nëse e gjeni kodin tim të papërpunuar ose plot boshllëqe logjike të pakuptimta, merrni parasysh këtë!

Kam bërë shumë gjëra vetëm për të humbur kohë, por me këtë rrezik të vazhdueshëm të përmbytjes vendosa të bëj diçka të lezetshme: falë një ESP32 me një faktor forme arduino (Wemos d1 r32) të cilin e mbajta të mbështjellë për muaj, sepse mendoja "e vështirë", Unë me të vërtetë kisha shumë kënaqësi:

Unë kam bërë një kruajtës që sjell dhe analizon të dhënat nga një faqe në internet SIR dhe shfaq variablat e marra në një LCD të lirë i2c, dhe si frekuencë shkëlqimi që pulson në disa led në një hartë realiste.

kështu që nëse një përmbytje vjen nga ana e malit do të paralajmërohem nga shkëlqimi në rritje (ndryshimi i nivelit) dhe nga shpeshtësia në rritje (ndryshimi i nivelit në një orë) të led -ve në hartë … por ESP32 gjithashtu mund të dërgojë email! Pra, pse të mos bëni një funksion për këtë?

le të shkojmë për të parë kodin më poshtë tani!

Furnizimet

  • Bordi i bazuar në ESP32: Unë kam përdorur Wemos d1 r32 sepse kanë kunja femra dhe është më e lehtë për tu trajtuar
  • leds, e kuqja është më "vigjilente si"
  • LCD I2C 16x2 është vetëm blu, por jeshilja është më me stil
  • bordi i lirë i tapës
  • koha e natës (opsionale)

Hapi 1: Kodi

Kodi
Kodi
Kodi
Kodi

në internet kam gjetur vetëm mësime të avullueshme që përdorin faqe të jashtme për të analizuar të dhënat, kështu që u përpoqa të provoja fuqinë e bërthamave esp32 duke analizuar të dhënat drejtpërdrejt në tabelë … pa probleme!

kështu që nëse shikoni burimi i faqes SIR mund të kuptojë se si funksionon: për fat ata përdorin një vlerë "me presje të ndarë si" për të shfaqur të dhënat e tyre, kështu që me këtë kod unë kërkoj një stacion hidrografik (kodi TOSnumber) dhe numëroj numrin e presjeve (si ndarës) që përmbajnë vlerën që dua (dhe ruajeni atë si të ndryshueshme), pastaj riformulojeni si shkëlqim led dhe koha në milis për "nivelin e variacionit" që pulson

Thelbi i këtij kruese është në skedën

ind = payload.indexOf ("TOSstation_number"); // merrni pozicionin (ind) nga ku filloni të numëroni presje

Vargu my_var = getValue_ind (ngarkesa, ',', 8); // ku 8 është qeliza e tetë e përcaktuar me presje (ndarës)

"ngarkesa" është ajo që marr nga uebi i pastruar më parë nga "citatet" dhe "& nbsp";

dhe funksioni getValue_ind që është në skedën kryesore

String getValue_ind (Të dhënat e vargut, ndarësi i shenjave, indeksi int) {

int gjetur = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; për (int i = ind; i <= maxIndex && found <= index; i ++) {// nga pozicioni ind nëse (data.charAt (i) == ndarës || i == maxIndex) {gjetur ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} u gjet kthimi> indeksi? data.substring (strIndex [0], strIndex [1]): ""; }

përshtatur nga

kodi kërkon faqen çdo 15 minuta, është rreth 44Kb, nuk mendoj se është një ngarkesë e madhe për serverët dhe për ESP32.. Për të shmangur shumë rrotullimin e kam ndarë programin në funksione të ndryshme, lexoni komentet

këtu ngjitja e kodit është me të vërtetë një rrëmujë … i vendos direkt skedarët.ino

Unë kam përdorur veçorinë e skedave të arduino IDE kështu që kam skedarë të ndryshëm.ino

ky është versioni i fundit i kodit (?), Ka shumë përpjekje, kështu që unë do të vlerësoj çdo sugjerim!

- për drejtimin e shkëlqimit led për vlera të ulëta, - për funksionin "hartë" për ndryshoret e pikës lundruese - për përdorimin e bërthamës së dytë në ESP32, - për të kuptuar se si të printoni një postë html nga një varg me sprintfI kanë kaloi shumë "kohë marramendëse" të vërtetë, kështu që lexoni në komentet në skedarët.ino ose në github!

si cilësime të ngarkimit kam përdorur Mjetet: Skema e Ndarjes: JO OTA për të pasur më shumë hapësirë për këtë kod të madh

argëtohu

klikoni këtu për kodin në github

Hapi 2: Harta

Harta
Harta
Harta
Harta
Harta
Harta

ky udhëzues është i përqendruar në kodin ESP32 kështu që unë mund t'ju jap vetëm disa fjalë kyçe, lidhje dhe mjete të përdorura:

shërbimi i shkëlqyer për nxjerrjen e zonave vektoriale nga openstreetmap

  • QGis "ostike" për tretjen e tyre
  • kërkoni tabelën e atributeve për të thjeshtuar hartën tuaj
  • krijoni një plan paraqitjeje dhe eksportoni hartën në formatin svg në formatin e letrës A3
  • argëtohuni me ilustruesin "më të butë"
  • shtypeni atë

Hapi 3: Partia e Ngjitësit të nxehtë

Festa me Ngjitësin e nxehtë
Festa me Ngjitësin e nxehtë
Festa me Ngjitësin e nxehtë
Festa me Ngjitësin e nxehtë
Festa me Ngjitësin e nxehtë
Festa me Ngjitësin e nxehtë
Partia me Ngjitësin e nxehtë
Partia me Ngjitësin e nxehtë

kështu që unë mund të sugjeroj që të vrisni vrimat për led dhe ekranin në letër para se ta rregulloni në tabelën e tapës

instalimet elektrike janë vërtet të thjeshta dhe të bëra keq nga unë: P

Niveli im i bashkimit: Pëllumbi

siç mund ta shihni nga kodi leds shkojnë te kunjat 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

kërkoni për pinout ESP32 për të kuptuar

Hapi 4: Produkti i Përfunduar

Produkti i Përfunduar
Produkti i Përfunduar

kështu që kjo foto nuk është më e mira, por kur të kemi një përmbytje lumi do të vendos një video të bukur!

Recommended: