Indholdsfortegnelse:
Video: ESP32 Scraper-parser-mailer og Live Mapper: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Hej Verden! Dette er min første instruerbare! Jeg er Marco fra Grosseto Italien, jeg er ikke udvikler, jeg er ikke en elektronisk ingeniør, men jeg er en miljøguide i vores lokale naturpark (Maremma naturpark).
I mit kooperativ arbejder vi meget med kanoture, naturalistiske og rolige ture på Ombrone -floden til fugletitting og lidt fornuftig afslapning.
Men Ombrone-floden er også berømt for sin karakteristiske strømning: fra sommer "nul" til efterår-vinter strømning af flere tusinde kubikmeter vand i timen.
Af denne grund overvåges Ombrone -floden konstant af den fremragende regionale hydrometriske service (SIR) med et fantastisk sted, der gør de indsamlede data tilgængelige.
Nu venter vi på slutningen af sæsonen og på de første efterårsoversvømmelser for at fjerne kajen og kanoerne …
Men når vi begynder at tale om at skrabe parsing esp32ing osv.? et øjeblik mere
Under den italienske lockdown har jeg lavet den første arduino blink -lektion, sejt … og jeg har fortsat med at lege med sensorer og arduino C. Så hvis du finder min kode rå eller fuld af nonsens logiske huller, skal du overveje dette!
Jeg gjorde mange ting bare for at spilde tid, men med denne konstante risiko for oversvømmelse besluttede jeg mig for at gøre noget fedt: takket være en ESP32 med en arduino formfaktor (Wemos d1 r32), som jeg holdt indpakket i flere måneder, fordi jeg tænkte "vanskelig", Jeg havde virkelig mange tilfredsheder:
Jeg har lavet en skraber, der bringer og analyserer data fra en SIR-webside og viser variablerne opnået på en billig i2c LCD, og som lysstyrke-frekvens blinker på nogle lysdioder på et realistisk kort.
så hvis der kommer en oversvømmelse fra bjergsiden, vil jeg blive advaret om den stigende lysstyrke (niveauændring) og den stigende frekvens (niveauændring på en time) af lysdioderne på kortet … men ESP32 kan også sende e -mails! Så hvorfor ikke gøre en funktion til dette?
lad os nu se koden herunder!
Forbrugsvarer
- ESP32 -baseret kort: Jeg har brugt Wemos d1 r32 årsag til at have hunstifter, og det er lettere at håndtere
- lysdioder, rød er mere "opmærksom som"
- I2C 16x2 LCD er kun en blå, men den grønne er mere stilfuld
- billigt korkbræt
- nat (valgfrit)
Trin 1: Koden
online har jeg kun fundet dampende tutorials, der bruger eksterne websteder til at analysere data, så jeg forsøgte at teste kraften i esp32 -kernerne, der analyserede dataene direkte på kortet … uden problemer!
så hvis du ser SIR -siden, kan kilden forstå, hvordan den fungerer: heldigvis bruger de en "komma adskilt lignende" -værdi til at vise deres data, så med denne kode søger jeg efter en hydrografisk station (kode TOSnumber) og tæller antallet af kommaer (som separator), der indeholder den værdi, jeg ønsker (og gemmer den som variabel), og derefter omdanner den til LED -lysstyrke og tid i millis for "variationsniveau" blinker
Kernen i denne skraber er på fanen
ind = nyttelast.indexOf ("TOSstation_nummer"); // få positionen (ind), hvorfra man begynder at tælle kommaer
String my_var = getValue_ind (nyttelast, ',', 8); // hvor 8 er den ottende celle defineret af kommaer (separator)
"nyttelast" er, hvad jeg får fra nettet, der tidligere er renset fra "tilbud" og "& nbsp";
og getValue_ind -funktionen, der er i hovedfanen
String getValue_ind (String data, char separator, int index) {
int fundet = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && fundet <= index; i ++) {// fra ind -position hvis (data.charAt (i) == separator || i == maxIndex) {fundet ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} retur fundet> indeks? data.substring (strIndex [0], strIndex [1]): ""; }
tilpasset fra
koden beder om siden hvert 15. minut, det handler om 44Kb, jeg tror ikke, det er en stor belastning for serverne og for ESP32.. For at undgå for meget rulning har jeg delt programmet i forskellige funktioner, læs kommentarerne
her er kodeindsætningen virkelig et rod … jeg satte.ino -filerne direkte
Jeg har brugt fanerne i arduino IDE, så jeg har forskellige.ino -filer
dette er den nyeste version af koden (?), der er en stor indsats, så jeg vil sætte pris på ethvert forslag!
- til udretning af LED -lysstyrken for lave værdier, - til "kort" -funktionen for floating point -variabler - til brug af den anden kerne på ESP32, - for at forstå, hvordan man udskriver en html -mail fra en streng med sprintfI have brugt meget sand "nørdetid", så læs om kommentarerne til.ino -filerne eller på github!
som upload -indstillinger har jeg brugt Værktøjer: Partition Scheme: NO OTA til at have mere plads til denne enorme kode
hav det sjovt
klik her for koden på github
Trin 2: Kortet
denne tut er incentred på ESP32 -koden, så jeg kan kun give dig nogle søgeord, links og værktøjer, der bruges:
den fremragende service til ekstrakt af vektorområder fra openstreetmap
- de "ostiske" QG'er til at fordøje dem
- søg efter attributtabel for at forenkle dit kort
- oprette et printlayout og eksportere kortet i svg -format på A3 -papirformat
- have det sjovt med den "glattere" illustrator
- udskrive det
Trin 3: The Hot Lim Party
så jeg kan foreslå at dø-skære hullerne til LED'en og displayet på papiret, før du fixer det på korkbrættet
ledningerne er virkelig enkle og og dårligt udført af mig: P
Mit lodningsniveau: Due
som du kan se fra koden, går lysdioderne til IO -pins
#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
søg efter ESP32 pinout for at forstå
Trin 4: Det færdige produkt
så dette foto er ikke det bedste, men da vi fik en flodflod, lægger jeg en dejlig video!
Anbefalede:
Synkronisering af mapper med Python: 5 trin
Synkronisering af mapper med Python: Denne instruktør viser dig, hvordan du holder to mapper (og alle mapper i dem) synkroniseret, så den ene er en direkte kopi af den anden. Ideel til sikkerhedskopiering af arbejde både lokalt, til en cloud-/netværksserver eller et USB -drev. Ingen erfaring med programmering er n
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Path Mapper: 6 trin
Path Mapper: I dette IoT-projekt kører vi et NEO-6M (GPS-modul) op for at levere lokaliseringsdata gennem Arduino til et Excel-ark, der gemmes på computeren. Bagefter med Tableau Public opretter vi en datavisualisering af disse data for at kortlægge pat
Sådan ændres ikoner til mapper (Mac Os X): 3 trin
Sådan ændres ikoner til mapper (Mac Os X): En vejledning til mac -nybegyndere, der ønsker at ændre billedikonet for der mapper
Sådan gendannes åbne mapper, når du logger ind igen, når du logger ud: 5 trin
Sådan gendannes åbne mapper, når du logger ind igen, når du logger ud: Okay, så her er situationen, du bruger computeren med masser af masser af dine mapper åbnet … Så kom din mor hjem tidligere end forventet! Du ved udmærket, at hvis hun fanger dig ved hjælp af computeren, mens du burde være i seng, fordi