Sadržaj:

ESP32 Scraper-parser-mailer i Live Mapper: 4 koraka (sa slikama)
ESP32 Scraper-parser-mailer i Live Mapper: 4 koraka (sa slikama)

Video: ESP32 Scraper-parser-mailer i Live Mapper: 4 koraka (sa slikama)

Video: ESP32 Scraper-parser-mailer i Live Mapper: 4 koraka (sa slikama)
Video: Leveraging OpenAI ChatGPT to Scrape Millions of Email Addresses 2024, Novembar
Anonim
ESP32 Scraper-parser-mailer i Live Mapper
ESP32 Scraper-parser-mailer i Live Mapper
ESP32 Scraper-parser-mailer i Live Mapper
ESP32 Scraper-parser-mailer i Live Mapper
ESP32 Scraper-parser-mailer i Live Mapper
ESP32 Scraper-parser-mailer i Live Mapper

Zdravo svijete! Ovo je moj prvi Instructable! Ja sam Marco iz Grosseta Italija, nisam programer, nisam elektronički inženjer, ali sam vodič za zaštitu okoliša u našem lokalnom parku prirode (park prirode Maremma).

U mojoj zadruzi puno radimo s obilaskom kanua, naturalističkim i mirnim turama po rijeci Ombrone za promatranje ptica i malo smisla za opuštanje.

No, rijeka Ombrone poznata je i po karakterističnoj vrsti protoka: od ljetnog "nula" do jesensko-zimskog toka od nekoliko hiljada kubnih metara vode na sat.

Iz tog razloga rijeku Ombrone stalno nadzire izvrsna regionalna hidrometrijska služba (SIR), sa fantastičnim mjestom koje prikupljane podatke čini dostupnima.

Sada čekamo kraj sezone i prve jesenske poplave za uklanjanje pristaništa i kanua …

Ali kad počnemo govoriti o struganju, raščlanjivanju esp32inga itd? još trenutak

Tokom talijanskog zaključavanja odradio sam prvu arduino treptajuću lekciju, super … i nastavio sam se igrati sa senzorima i arduinom C. Dakle, ako smatrate da je moj kod grub ili pun besmislenih logičkih praznina, razmislite o ovome!

Učinio sam mnogo stvari samo da gubim vrijeme, ali s ovim stalnim rizikom od poplave odlučio sam učiniti nešto cool: zahvaljujući ESP32 s arduino faktorom oblika (Wemos d1 r32) koji sam držao zamotan mjesecima jer sam mislio da je "teško", Zaista sam imao mnogo zadovoljstava:

Napravio sam strugač koji donosi i raščlanjuje podatke sa SIR web stranice i prikazuje varijable dobivene na jeftinom i2c LCD-u, i kao svjetlinu-frekvenciju koja treperi na nekim LED diodama na realističnoj karti.

pa ako poplava dođe sa planinske strane, bit ću upozoren zbog sve veće svjetline (promjena nivoa) i sve veće učestalosti (promjena nivoa u jednom satu) LED dioda na karti … ali ESP32 može slati i e -poštu! Pa zašto ne biste napravili funkciju za ovo?

idemo sada vidjeti donji kod!

Supplies

  • Ploča zasnovana na ESP32: Koristio sam Wemos d1 r32 jer imaju ženske pinove i s njom je lakše rukovati
  • LED diode, crvena je više "kao upozorenje"
  • I2C 16x2 LCD ima samo plavu, ali zelena je stilskija
  • jeftina plutna daska
  • noć (nije obavezno)

Korak 1: Kôd

Kodeks
Kodeks
Kodeks
Kodeks

Na mreži sam pronašao samo iscrpne vodiče koji koriste vanjske web lokacije za raščlanjivanje podataka, pa sam pokušao testirati snagu esp32 jezgri koje analiziraju podatke izravno na ploči … bez problema!

pa ako pogledate stranicu SIR, izvor može razumjeti kako funkcionira: srećom koriste vrijednosti "odvojene zarezima poput" za prikaz svojih podataka, pa pomoću ovog koda tražim hidrografsku stanicu (kod TOSnumber) i brojim broj zareza (kao separator) koji sadrže željenu vrijednost (i spremaju je kao varijablu), a zatim je ponovno preslikajte kao svjetlinu LED -a i vrijeme u milisima za "nivo varijacije" koji treperi

Jezgra ovog strugača nalazi se na http kartici:

ind = payload.indexOf ("TOSstation_number"); // dobivamo poziciju (ind) odakle počinje brojanje zareza

String my_var = getValue_ind (korisni teret, ',', 8); // gdje je 8 osma ćelija definirana zarezima (separator)

"korisni teret" je ono što dobijem s weba prethodno očišćeno od "citata" i "& nbsp";

i funkciju getValue_ind koja se nalazi na glavnoj kartici

String getValue_ind (Podaci niza, separator znakova, int indeks) {

int nađeno = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// iz ind pozicije if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} povratak pronađen> indeks? data.substring (strIndex [0], strIndex [1]): ""; }

prilagođeno sa

kod traži stranicu svakih 15 minuta, radi se o 44Kb, mislim da nije veliko opterećenje za servere i za ESP32.. Da ne bi previše listao, podijelio sam program na različite funkcije, pročitajte komentare

ovdje je lijepljenje koda stvarno u neredu … ja sam stavio.ino datoteke izravno

Koristio sam funkciju tabulatora arduino IDE -a pa imam različite.ino datoteke

ovo je najnovija verzija koda (?), ulaže se mnogo truda, pa ću biti zahvalan na svakom prijedlogu!

- za ispravljanje LED svjetline za niske vrijednosti, - za funkciju "mape" za varijable s pomičnim zarezom - za upotrebu drugog jezgra na ESP32, - za razumijevanje kako ispisati html poštu iz niza sa sprintfI proveo puno pravog "štreberskog vremena" pa čitajte u komentarima na.ino datoteke ili na githubu!

kao postavke učitavanja koristio sam Alati: Particiona šema: NEMA OTA -e za više prostora za ovaj ogroman kod

zabavi se

kliknite ovdje za kôd na githubu

Korak 2: Mapa

The Map
The Map
The Map
The Map
The Map
The Map

ovaj tutorijal je usredsređen na ESP32 kôd tako da vam mogu dati samo neke ključne reči, veze i alate:

izvrsna usluga za izdvajanje vektorskih područja s openstreetmap

  • "ostični" QGis za njihovo varenje
  • potražite tablicu atributa za pojednostavljivanje karte
  • stvorite izgled ispisa i izvezite kartu u svg formatu na formatu papira A3
  • zabavite se uz "glatkiji" ilustrator
  • odštampajte ga

Korak 3: Zabava uz vruće ljepilo

Zabava uz vruće ljepilo
Zabava uz vruće ljepilo
Zabava uz vruće ljepilo
Zabava uz vruće ljepilo
Zabava uz vruće ljepilo
Zabava uz vruće ljepilo
Zabava uz vruće ljepilo
Zabava uz vruće ljepilo

pa vam mogu predložiti da izrežete rupe za LED diode i zaslon na papiru prije nego ih popravite na ploču od plute

ožičenje je zaista jednostavno i loše napravljeno od mene: P

Moj nivo lemljenja: Golub

kao što vidite iz koda, LED diode idu na IO pinove

#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

potražite ESP32 pinout da biste razumjeli

Korak 4: Gotov proizvod

Gotov proizvod
Gotov proizvod

tako da ova fotografija nije najbolja, ali kad poplavimo rijeku, stavit ću lijep video!

Preporučuje se: