Innehållsförteckning:

ESP32 Scraper-parser-mailer och Live Mapper: 4 steg (med bilder)
ESP32 Scraper-parser-mailer och Live Mapper: 4 steg (med bilder)

Video: ESP32 Scraper-parser-mailer och Live Mapper: 4 steg (med bilder)

Video: ESP32 Scraper-parser-mailer och Live Mapper: 4 steg (med bilder)
Video: The HARDEST part about programming 🤦‍♂️ #code #programming #technology #tech #software #developer 2024, November
Anonim
ESP32 Scraper-parser-mailer och Live Mapper
ESP32 Scraper-parser-mailer och Live Mapper
ESP32 Scraper-parser-mailer och Live Mapper
ESP32 Scraper-parser-mailer och Live Mapper
ESP32 Scraper-parser-mailer och Live Mapper
ESP32 Scraper-parser-mailer och Live Mapper

Hej världen! Detta är min första instruerbara! Jag är Marco från Grosseto Italien, jag är ingen utvecklare, jag är ingen elektronisk ingenjör men jag är en miljöguide i vår lokala naturpark (Maremma naturpark).

I mitt kooperativ arbetar vi mycket med kanoturer, naturalistiska och lugna turer på floden Ombrone för fågelskådning och lite avkopplande känsla.

Men floden Ombrone är också känd för sin karakteristiska typ av flöde: från sommar "noll" till höst-vinterflöde på flera tusen kubikmeter vatten i timmen.

Av denna anledning övervakas floden Ombrone ständigt av den utmärkta regionala hydrometriska tjänsten (SIR), med en fantastisk webbplats som gör den insamlade informationen tillgänglig.

Nu väntar vi på slutet av säsongen och på de första höstfloderna för att ta bort bryggan och kanoterna …

Men när vi börjar prata om att skrapa analysera esp32ing etc? en stund till

Under den italienska lockdownen har jag gjort den första arduino blink -lektionen, coolt … och jag har fortsatt att leka med sensorer och arduino C. Så om du tycker att min kod är rå eller full av nonsens logiska luckor, överväg detta!

Jag gjorde många saker bara för att slösa bort tid men med den här konstanta risken för översvämningar bestämde jag mig för att göra något coolt: tack vare en ESP32 med en arduinoformfaktor (Wemos d1 r32) som jag höll förpackad i månader eftersom jag tyckte att det var "svårt", Jag hade verkligen många tillfredsställelser:

Jag har gjort en skrapa som tar med och analyserar data från en SIR-webbsida och visar variablerna som erhålls på en billig i2c LCD, och som ljusstyrka-frekvens blinkar på vissa lysdioder på en realistisk karta.

så om en översvämning kommer från bergssidan kommer jag att varnas av den ökande ljusstyrkan (nivåförändring) och av den ökande frekvensen (nivåförändring på en timme) för lysdioderna på kartan … men ESP32 kan också skicka mejl! Så varför inte göra en funktion för detta?

låt oss gå för att se koden nedan nu!

Tillbehör

  • ESP32 -baserat kort: Jag har använt Wemos d1 r32 orsaken har honstift och det är lättare att hantera
  • lysdioder, rött är mer "alert"
  • I2C 16x2 LCD är bara en blå men den gröna är snyggare
  • billig korkbräda
  • nattetid (valfritt)

Steg 1: Koden

Koden
Koden
Koden
Koden

online har jag bara hittat våldsamma självstudier som använder externa webbplatser för att analysera data, så jag försökte testa kraften hos esp32 -kärnorna som analyserade data direkt på kortet … utan problem!

så om du tittar på SIR -sidkällan kan förstå hur den fungerar: lyckligtvis använder de ett "kommaseparerat liknande" -värde för att visa sina data, så med den här koden söker jag efter en hydrografisk station (kod TOSnummer) och räknar antalet kommatecken (som avgränsare) som innehåller det värde jag vill ha (och lagra det som variabel), omforma det sedan som led -ljusstyrka och tid i millis för att "variationsnivå" blinkar

Kärnan i denna skrapa finns på http -fliken:

ind = nyttolast.indexOf ("TOSstation_number"); // få positionen (ind) varifrån du börjar räkna kommatecken

String my_var = getValue_ind (nyttolast, ',', 8); // där 8 är den åttonde cellen definierad av kommatecken (separator)

"nyttolast" är vad jag får från webben som tidigare rensats från "offert" och "& nbsp";

och funktionen getValue_ind på huvudfliken

String getValue_ind (String data, char separator, int index) {

int hittat = 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; }} återkomst hittad> index? data.substring (strIndex [0], strIndex [1]): ""; }

anpassad från

koden ber om sidan var 15: e minut, det handlar om 44Kb, jag tror inte att det är en stor belastning för servrarna och för ESP32.. För att undvika för mycket rullning har jag delat upp programmet i olika funktioner, läs kommentarerna

här är koden att klistra in verkligen en röra … jag lägger.ino -filerna direkt

Jag har använt flikfunktionen i arduino IDE så jag har olika.ino -filer

detta är den senaste versionen av koden (?), det finns en hel del ansträngningar, så jag kommer att uppskatta alla förslag!

- för uträtning av LED -ljusstyrkan för låga värden, - för "karta" -funktionen för variabler med flytande punkter - för användning av den andra kärnan på ESP32, - för att förstå hur man skriver ut en html -post från en sträng med sprintfI har spenderade mycket äkta "nördtid" så läs på kommentarerna på.ino -filerna eller på github!

som uppladdningsinställningar har jag använt Tools: Partition Scheme: NO OTA för att ha mer plats för denna enorma kod

ha så kul

klicka här för koden på github

Steg 2: Kartan

Kartan
Kartan
Kartan
Kartan
Kartan
Kartan

denna tut är incentred på ESP32 -koden så jag kan ge dig bara några sökord, länkar och verktyg som används:

den utmärkta servicen för extrakt av vektorområden från openstreetmap

  • de "ostiska" QG: erna för att smälta dem
  • sök efter attributtabell för att förenkla din karta
  • skapa en utskriftslayout och exportera kartan i svg -format på A3 -pappersformat
  • ha kul med den "mjukare" illustratören
  • Skriv ut det

Steg 3: The Hot Glue Party

The Hot Glue Party
The Hot Glue Party
The Hot Glue Party
The Hot Glue Party
The Hot Glue Party
The Hot Glue Party
The Hot Glue Party
The Hot Glue Party

så jag kan föreslå att skära hålen för lysdioden och displayen på papperet innan du fixar det på korkbrädet

ledningarna är verkligen enkla och dåligt gjort av mig: P

Min lödningsnivå: Duva

som du kan se från koden går lysdioderna till IO -stift

#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ök efter ESP32 pinout för förstå

Steg 4: Den färdiga produkten

Den färdiga produkten
Den färdiga produkten

så det här fotot är inte det bästa, men när vi fick en flodflod ska jag lägga upp en trevlig video!

Rekommenderad: