Obsah:

ESP32 Scraper-parser-mailer a Live Mapper: 4 kroky (s obrázky)
ESP32 Scraper-parser-mailer a Live Mapper: 4 kroky (s obrázky)

Video: ESP32 Scraper-parser-mailer a Live Mapper: 4 kroky (s obrázky)

Video: ESP32 Scraper-parser-mailer a Live Mapper: 4 kroky (s obrázky)
Video: Leveraging OpenAI ChatGPT to Scrape Millions of Email Addresses 2024, Listopad
Anonim
ESP32 Scraper-parser-mailer a Live Mapper
ESP32 Scraper-parser-mailer a Live Mapper
ESP32 Scraper-parser-mailer a Live Mapper
ESP32 Scraper-parser-mailer a Live Mapper
ESP32 Scraper-parser-mailer a Live Mapper
ESP32 Scraper-parser-mailer a Live Mapper

Ahoj světe! Toto je můj první Instructable! Jsem Marco z Grosseto Itálie, nejsem vývojář, nejsem elektronický inženýr, ale jsem ekologický průvodce v našem místním přírodním parku (přírodní park Maremma).

V mém družstvu hodně pracujeme s výlety na kánoích, naturalistickými a klidnými výlety po řece Ombrone za pozorováním ptáků a trochou relaxace.

Řeka Ombrone je však také známá svým charakteristickým druhem toku: od letního „nulového“po podzimní a zimní tok několika tisíc metrů krychlových vody za hodinu.

Z tohoto důvodu je řeka Ombrone neustále monitorována vynikající regionální hydrometrickou službou (SIR) s fantastickým webem, který shromažďovaná data zpřístupňuje.

Nyní čekáme na konec sezóny a první podzimní povodně na odstranění doku a kánoí…

Ale když začneme mluvit o škrábání při analýze esp32ing atd.? ještě chvilku

Během italského uzamčení jsem udělal první lekci arduino blink, cool … a pokračoval jsem v hraní se senzory a arduino C. Pokud vám můj kód přijde hrubý nebo plný nesmyslných logických mezer, vezměte to v úvahu!

Dělal jsem spoustu věcí jen proto, abych ztrácel čas, ale s tímto neustálým rizikem záplav jsem se rozhodl udělat něco skvělého: díky ESP32 s arduino form factor (Wemos d1 r32), který jsem držel zabalený měsíce, protože jsem si myslel, že je „obtížný“„Opravdu jsem měl spoustu uspokojení:

Udělal jsem škrabku, která přináší a analyzuje data z webové stránky SIR a zobrazuje proměnné získané na levném LCD i2c a blikáním jasu a frekvence na některých LED diodách na realistické mapě.

takže pokud přijde povodeň z horské strany, budu varován zvyšujícím se jasem (změna úrovně) a rostoucí frekvencí (změna úrovně za jednu hodinu) LED diod na mapě … ale ESP32 může také odesílat e -maily! Proč tedy pro to neudělat funkci?

Pojďme se nyní podívat na níže uvedený kód!

Zásoby

  • Deska založená na ESP32: Použil jsem Wemos d1 r32, protože mají ženské kolíky a je jednodušší se s nimi manipulovat
  • LED diody, červená je více „výstražná jako“
  • I2C 16x2 LCD je pouze modrý, ale zelená je stylovější
  • levná korková deska
  • noční čas (volitelně)

Krok 1: Kód

Kód
Kód
Kód
Kód

online Našel jsem pouze parní návody, které používají externí weby k analýze dat, takže jsem zkusil otestovat sílu jader esp32 analyzujících data přímo na desce … bez problémů!

takže pokud se podíváte na stránku SIR, zdroj pochopí, jak funguje: naštěstí pro zobrazení svých dat používá hodnoty „oddělené čárkou“, takže s tímto kódem hledám hydrografickou stanici (kód TOSnumber) a spočítám počet čárek (jako oddělovač), které obsahují požadovanou hodnotu (a uložte ji jako proměnnou), poté ji přemapujte jako LED jas a čas v milisekundách pro blikání „úrovně variace“

Jádro této škrabky je na kartě

ind = payload.indexOf ("TOSstation_number"); // získejte pozici (ind), odkud začněte počítat čárky

Řetězec my_var = getValue_ind (užitečné zatížení, ',', 8); // kde 8 je osmá buňka definovaná čárkami (oddělovač)

„užitečné zatížení“je to, co získám z webu, který byl dříve vyčištěn z „citací“a „& nbsp“;

a funkce getValue_ind, která je na hlavní kartě

Řetězec getValue_ind (Řetězcová data, oddělovač znaků, int index) {

int nalezeno = 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; }} návrat nalezen> index? data.substring (strIndex [0], strIndex [1]): ""; }

upraveno z

kód žádá o stránku každých 15 minut, je to asi 44 kB, nemyslím si, že je to velká zátěž pro servery a pro ESP32.. Abych se vyhnul přílišnému posouvání, rozdělil jsem program na různé funkce, přečtěte si komentáře

zde je vkládání kódu opravdu nepořádek … vkládám soubory.ino přímo

Použil jsem funkci záložek v arduino IDE, takže mám různé soubory.ino

toto je nejnovější verze kódu (?), je tu spousta úsilí, takže ocením jakýkoli návrh!

- pro narovnání jasu LED pro nízké hodnoty, - pro funkci "mapa" pro proměnné s pohyblivou řádovou čárkou - pro použití druhého jádra na ESP32, - pro pochopení toho, jak tisknout html poštu z řetězce se sprintf Mám strávil spoustu opravdového „hloupého času“, čtěte tedy komentáře v souborech.ino nebo na github!

jako nastavení nahrávání jsem použil Tools: Partition Scheme: NO OTA, abych měl více místa pro tento obrovský kód

bavte se

klikněte zde pro kód na github

Krok 2: Mapa

Mapa
Mapa
Mapa
Mapa
Mapa
Mapa

tento tutoriál je začleněn do kódu ESP32, takže vám mohu poskytnout pouze některá klíčová slova, odkazy a použité nástroje:

vynikající služba pro extrahování vektorových oblastí z openstreetmap

  • „ostický“QGis je strávil
  • pro zjednodušení mapy vyhledejte tabulku atributů
  • vytvořte rozvržení tisku a exportujte mapu ve formátu svg na papírový formát A3
  • bavte se s „hladším“ilustrátorem
  • vytiskni si to

Krok 3: Hot Glue Party

Párty s horkým lepidlem
Párty s horkým lepidlem
Párty s horkým lepidlem
Párty s horkým lepidlem
Párty s horkým lepidlem
Párty s horkým lepidlem
Párty s horkým lepidlem
Párty s horkým lepidlem

takže mohu navrhnout vyřezat otvory pro led a displej na papíře, než jej upevním na korkovou desku

zapojení je opravdu jednoduché a špatně provedené: P

Moje úroveň pájení: Holub

jak vidíte z kódu, LED diody jdou na IO piny

#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

pro pochopení vyhledejte pinout ESP32

Krok 4: Hotový výrobek

Hotový výrobek
Hotový výrobek

tak tahle fotka není nejlepší, ale až budeme mít nějakou říční povodeň, dám pěkné video!

Doporučuje: