Satura rādītājs:

ESP32 skrāpju parsētājs un tiešais kartētājs: 4 soļi (ar attēliem)
ESP32 skrāpju parsētājs un tiešais kartētājs: 4 soļi (ar attēliem)

Video: ESP32 skrāpju parsētājs un tiešais kartētājs: 4 soļi (ar attēliem)

Video: ESP32 skrāpju parsētājs un tiešais kartētājs: 4 soļi (ar attēliem)
Video: Lesson 10: Conditional Statement in Arduino and Using Array | SunFounder Robojax 2024, Novembris
Anonim
ESP32 Scraper-parser-mailer un Live Mapper
ESP32 Scraper-parser-mailer un Live Mapper
ESP32 Scraper-parser-mailer un Live Mapper
ESP32 Scraper-parser-mailer un Live Mapper
ESP32 Scraper-parser-mailer un Live Mapper
ESP32 Scraper-parser-mailer un Live Mapper

Sveika pasaule! Šī ir mana pirmā pamācība! Es esmu Marko no Grosseto Itālijas, es neesmu izstrādātājs, es neesmu elektronikas inženieris, bet esmu vides ceļvedis mūsu vietējā dabas parkā (Maremma dabas parks).

Manā kooperatīvā mēs daudz strādājam ar kanoe ekskursijām, naturālistiskām un mierīgām ekskursijām pa Ombrones upi, lai vērotu putnus un mazliet atpūstos.

Bet Ombrones upe ir slavena arī ar tai raksturīgo plūsmas veidu: no vasaras "nulles" līdz rudens-ziemas plūsmai vairāku tūkstošu kubikmetru ūdens stundā.

Šī iemesla dēļ Ombrones upi nepārtraukti uzrauga izcilais reģionālais hidrometriskais dienests (SIR), ar fantastisku vietni, kas ļauj savāktos datus darīt pieejamus.

Tagad mēs gaidām sezonas beigas un pirmos rudens plūdus, lai noņemtu piestātni un kanoe laivas …

Bet kad mēs sākam runāt par parsēšanas esp32ing nokasīšanu utt? vēl vienu brīdi

Itālijas slēgšanas laikā esmu veicis pirmo arduino mirgošanas nodarbību, forši … un esmu turpinājis spēlēties ar sensoriem un arduino C. Tātad, ja jums šķiet, ka mans kods ir neapstrādāts vai pilns ar absurdiem loģiskiem trūkumiem, apsveriet to!

Es darīju daudzas lietas tikai tāpēc, lai tērētu laiku, taču, pastāvot pastāvīgam plūdu riskam, es nolēmu darīt kaut ko foršu: pateicoties ESP32 ar arduino formas faktoru (Wemos d1 r32), kuru es turēju iesaiņotu vairākus mēnešus, jo man likās “grūti”, Man tiešām bija daudz apmierinājumu:

Esmu izveidojis skrāpi, kas atnes un parsē datus no SIR tīmekļa lapas un parāda mainīgos, kas iegūti lētā i2c LCD, un kā spilgtuma frekvence mirgo dažos gaismas diodēs reālistiskā kartē.

tāpēc, ja plūdi nāk no kalna puses, mani brīdinās par pieaugošo spilgtumu (līmeņa maiņa) un aizvien biežāko (līmeņa maiņu vienas stundas laikā) kartē esošajām gaismas diodēm … bet ESP32 var arī nosūtīt e -pastus! Tātad, kāpēc neveikt šo funkciju?

tagad dodamies apskatīt zemāk redzamo kodu!

Piegādes

  • Plāksne, kuras pamatā ir ESP32: Esmu izmantojis Wemos d1 r32, jo tam ir sieviešu tapas, un to ir vieglāk apstrādāt
  • gaismas diodes, sarkans ir vairāk "modrs"
  • I2C 16x2 LCD ir tikai zils, bet zaļš ir stilīgāks
  • lēts korķa dēlis
  • nakts laiks (pēc izvēles)

1. darbība: kods

Kods
Kods
Kods
Kods

Tiešsaistē esmu atradis tikai izgarojošas apmācības, kurās datu parsēšanai tiek izmantotas ārējas vietnes, tāpēc es mēģināju pārbaudīt esp32 kodolu jaudu, analizējot datus tieši uz tāfeles … bez problēmām!

Tātad, ja skatāties SIR lapas avotu, jūs varat saprast, kā tā darbojas: par laimi, viņi izmanto datu atdalīšanai ar komatu līdzīgas vērtības, tāpēc ar šo kodu es meklēju hidrogrāfijas staciju (kods TOSnumber) un skaita komatu skaitu (kā atdalītāju), kas satur vēlamo vērtību (un saglabā to kā mainīgu), pēc tam pārveidojiet to kā gaismas diodes spilgtumu un laiku milis, lai mirgo "variācijas līmenis"

Šī skrāpja kodols atrodas cilnē

ind = lietderīgā slodze.indexOf ("TOStacijas_numurs"); // iegūt pozīciju (ind), no kuras sākt skaitīt komatus

String my_var = getValue_ind (lietderīgā slodze, ',', 8); // kur 8 ir astotā šūna, kas definēta ar komatiem (atdalītājs)

"lietderīgā slodze" ir tas, ko es saņemu no tīmekļa, kas iepriekš iztīrīts no "citātiem" un "& nbsp";

un funkciju getValue_ind, kas atrodas galvenajā cilnē

String getValue_ind (virkņu dati, rakstzīmju atdalītājs, int indekss) {

int atrasts = 0; int strIndex = {0, -1}; int maxIndex = dati.garums () - 1; par (int i = ind; i <= maxIndex && atrasts <= indekss; i ++) {// no ind pozīcijas, ja (data.charAt (i) == atdalītājs || i == maxIndex) {atrasts ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} atrasta atgriešanās> indekss? data.substring (strIndex [0], strIndex [1]): ""; }

pielāgots no

kods prasa lapu ik pēc 15 minūtēm, tas ir aptuveni 44 KB, es nedomāju, ka tā ir liela slodze serveriem un ESP32. Lai izvairītos no pārāk lielas ritināšanas, es sadalīju programmu dažādās funkcijās, izlasiet komentārus

šeit kodu ielīmēšana patiešām ir haoss … es ievietoju.ino failus tieši

Esmu izmantojis arduino IDE cilņu funkciju, tāpēc man ir dažādi.ino faili

šī ir jaunākā koda versija (?), ir daudz pūļu, tāpēc es novērtēšu jebkuru ieteikumu!

- gaismas spilgtuma izlīdzināšanai zemām vērtībām, - "kartes" funkcijai peldošā komata mainīgajiem - otrā kodola izmantošanai ESP32, - lai saprastu, kā drukāt html pastu no virknes, izmantojot sprintfI have pavadīja daudz patiesa "nerding laika", tāpēc izlasiet komentārus.ino failos vai vietnē github!

Kā augšupielādes iestatījumus esmu izmantojis Rīki: nodalījuma shēma: NAV OTA, lai būtu vairāk vietas šim milzīgajam kodam

izklaidējieties

noklikšķiniet šeit, lai iegūtu kodu vietnē github

2. solis: karte

Karte
Karte
Karte
Karte
Karte
Karte

šī apmācība ir stimulēta ESP32 kodā, lai es varētu jums sniegt tikai dažus atslēgvārdus, saites un izmantotos rīkus:

lielisks pakalpojums vektoru apgabalu izvilkšanai veido openstreetmap

  • "ostic" QGis to sagremošanai
  • meklējiet atribūtu tabulu, lai vienkāršotu savu karti
  • izveidojiet drukas izkārtojumu un eksportējiet karti svg formātā uz A3 papīra formātu
  • izklaidējieties ar "gludāku" ilustratoru
  • izdrukājiet to

3. solis: karstās līmes ballīte

Karstās līmes ballīte
Karstās līmes ballīte
Karstās līmes ballīte
Karstās līmes ballīte
Karstās līmes ballīte
Karstās līmes ballīte
Karstās līmes ballīte
Karstās līmes ballīte

tāpēc es varu ieteikt izgriezt caurumus ledam un displejam uz papīra, pirms to piestiprināt pie korķa plāksnes

elektroinstalācija ir patiešām vienkārša, un es to izdarīju slikti: P

Mans lodēšanas līmenis: balodis

kā redzams no koda, gaismas diodes iet uz IO tapām

#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

meklējiet ESP32 pinout, lai saprastu

4. solis: Gatavais produkts

Gatavs produkts
Gatavs produkts

tāpēc šī fotogrāfija nav tā labākā, bet, kad mums būs upes plūdi, es ielikšu jauku video!

Ieteicams: