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, Studeni
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

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

U mojoj zadruzi puno radimo s obilascima 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 tisuća kubičnih metara vode na sat.

Iz tog razloga rijeku Ombrone neprestano prati izvrsna regionalna hidrometrijska služba (SIR), s 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? trenutak više

Tijekom 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 bih gubio vrijeme, ali s ovim stalnim rizikom od poplave odlučio sam učiniti nešto super: zahvaljujući ESP32 s arduino faktorom oblika (Wemos d1 r32) koji sam držao zamotan mjesecima jer sam mislio da je "teško", Stvarno sam bio zadovoljan:

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

pa ako poplava dođe sa planinske strane, upozorit će me sve veća svjetlina (promjena razine) i sve veća učestalost (promjena razine 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!

Pribor

  • Ploča zasnovana na ESP32: Koristio sam Wemos d1 r32 jer imaju ženske igle i s njom je lakše rukovati
  • LED diode, crvena je više "budna poput"
  • I2C 16x2 LCD ima samo plavu, ali zelena je stilskija
  • jeftina ploča od pluta
  • noć (izborno)

Korak 1: Kôd

Kod
Kod
Kod
Kod

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

pa ako pogledate stranicu SIR, izvor može razumjeti kako funkcionira: srećom, za prikaz svojih podataka koriste vrijednosti "odvojene zarezima", pa s ovim kodom tražim hidrografsku postaju (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 treperenje "razine varijacije"

Jezgra ovog strugača nalazi se na http kartici:

ind = payload.indexOf ("TOSstation_number"); // dobiti položaj (ind) odakle počinje brojati zareze

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

"korisni teret" je ono što dobivam 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 pronađeno = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// s 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 s

kod traži stranicu svakih 15 minuta, radi se o 44Kb, mislim da nije veliko opterećenje za poslužitelje i za ESP32.. Kako bih izbjegao previše pomicanja, podijelio sam program na različite funkcije, pročitajte komentare

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

Koristio sam značajku 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 svjetline LED -a za niske vrijednosti, - za funkciju "preslikavanja" za varijable s pomičnim zarezom - za upotrebu druge jezgre na ESP32, - za razumijevanje načina ispisa html pošte iz niza s sprintf proveo puno pravog "štreberskog vremena" pa čitajte u komentarima na.ino datoteke ili na githubu!

kao postavke prijenosa koristio sam Alati: Particiona shema: NEMA OTA za više prostora za ovaj ogroman kôd

zabavi se

kliknite ovdje za kôd na githubu

Korak 2: Karta

Karta
Karta
Karta
Karta
Karta
Karta

ovaj tutorial je usredsređen na ESP32 kod pa vam mogu dati samo neke ključne riječ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
  • stvoriti izgled ispisa i izvesti kartu u svg formatu na formatu papira A3
  • zabavite se s "glatkijim" ilustratorom
  • isprintajte 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 što ih popravite na plutenoj ploči

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

Moja razina lemljenja: Golub

kao što možete vidjeti 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 za razumijevanje

Korak 4: Gotov proizvod

Gotov proizvod
Gotov proizvod

tako da ova fotografija nije najbolja, ali kad imamo poplavu rijeke, stavit ću lijep video!

Preporučeni: