Kazalo:
- Zaloge
- 1. korak: Koda
- 2. korak: Zemljevid
- 3. korak: zabava z vročim lepilom
- 4. korak: Končni izdelek
Video: ESP32 Scraper-parser-mailer in Live Mapper: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Pozdravljen, svet! To je moj prvi Instructable! Jaz sem Marco iz italijanskega Grosseta, nisem razvijalec, nisem elektrotehnik, ampak sem okoljski vodnik v našem lokalnem naravnem parku (naravni park Maremma).
V moji zadrugi veliko delamo z izleti s kanuji, naravoslovnimi in umirjenimi izleti po reki Ombrone za opazovanje ptic in malce smiselne sprostitve.
Toda reka Ombrone slovi tudi po značilni vrsti pretoka: od poletnega "ničelnega" do jesensko-zimskega pretoka več tisoč kubičnih metrov vode na uro.
Iz tega razloga reko Ombrone nenehno spremlja odlična regionalna hidrometrična služba (SIR), s fantastičnim mestom, ki omogoča zbiranje zbranih podatkov.
Zdaj čakamo na konec sezone in na prve jesenske poplave za odstranitev pristanišča in kanujev …
Ko pa začnemo govoriti o razčlenjevanju esp32inga itd? še trenutek več
Med zaklepanjem v Italiji sem opravil prvo lekcijo o utripanju arduino, kul… in nadaljeval sem s poigravanjem s senzorji in arduinom C. Torej, če se vam zdi moja koda surova ali polna nesmiselnih logičnih vrzeli, razmislite o tem!
Veliko sem naredil samo zato, da bi izgubljal čas, vendar sem se s tem stalnim tveganjem poplav odločil, da naredim nekaj kul: zahvaljujoč ESP32 z arduino faktorjem oblike (Wemos d1 r32), ki sem ga več mesecev zavijal, ker se mi je zdelo "težko", Res sem bil zadovoljen:
Naredil sem strgalo, ki prinaša in razčlenjuje podatke s spletne strani SIR in prikazuje spremenljivke, pridobljene na poceni LCD-ju i2c, in kot utripanje frekvence svetlosti na nekaterih LED na realističnem zemljevidu.
tako da, če poplava prihaja s planinske strani, me bodo opozorili zaradi naraščajoče svetlosti (sprememba ravni) in naraščajoče frekvence (sprememba ravni v eni uri) LED na zemljevidu … vendar lahko ESP32 pošilja tudi e -pošto! Zakaj torej ne bi naredili funkcije za to?
pojdimo zdaj pogledat spodnjo kodo!
Zaloge
- Plošča na osnovi ESP32: Uporabil sem Wemos d1 r32, ker imajo ženske zatiče in je z njo lažje rokovati
- LED, rdeča je bolj "budna kot"
- I2C 16x2 LCD je samo modra, zelena pa je bolj elegantna
- poceni plutovinasta plošča
- nočni čas (neobvezno)
1. korak: Koda
Na spletu sem našel le valovite vadnice, ki za razčlenjevanje podatkov uporabljajo zunanja spletna mesta, zato sem poskušal preizkusiti moč jeder esp32, ki podatke razčlenjujejo neposredno na ploščo … brez težav!
torej, če si ogledate stran SIR, lahko razumete, kako deluje: na srečo za prikaz svojih podatkov uporabijo vrednosti, ločene z vejicami, zato s to kodo iščem hidrografsko postajo (koda TOSnumber) in preštejem število vej (kot ločilo), ki vsebujejo želeno vrednost (in jo shranite kot spremenljivko), nato pa jo znova preslikajte kot svetlost LED in čas v milisah za utripanje "ravni variacije"
Jedro tega strgala je v zavihku
ind = payload.indexOf ("TOSstation_number"); // dobimo položaj (ind), od koder začnemo šteti vejice
Niz my_var = getValue_ind (koristna obremenitev, ',', 8); // kjer je 8 osma celica, definirana z vejicami (ločilo)
"payload" je tisto, kar dobim s spleta, prej očiščeno iz "quotations" in "& nbsp";
in funkcijo getValue_ind, ki je na glavnem zavihku
Niz getValue_ind (Podatkovni niz, ločilo znakov, int indeks) {
int najdeno = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// z ind položaja if (data.charAt (i) == ločilo || i == maxIndex) {najdeno ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} vrnitev najdena> indeks? data.substring (strIndex [0], strIndex [1]): ""; }
prilagojeno s
koda zahteva stran vsakih 15 minut, gre za približno 44 KB, mislim, da to ni velika obremenitev za strežnike in za ESP32.. Da se izognem prevelikemu drsenju, sem program razdelil na različne funkcije, preberite komentarje
tukaj je lepljenje kode res zmešnjava … datoteke.ino sem dal neposredno
Uporabil sem funkcijo zavihkov v arduino IDE, zato imam različne datoteke.ino
to je najnovejša različica kode (?), veliko truda je, zato bom vesel vsakega predloga!
- za poravnavo svetlosti LED za nizke vrednosti, - za funkcijo "zemljevid" za spremenljivke s plavajočo vejico - za uporabo drugega jedra na ESP32, - za razumevanje, kako natisniti html pošto iz niza s sprintf porabil veliko resničnega "nergajočega časa", zato preberite komentarje na datotekah.ino ali na githubu!
kot nastavitve nalaganja sem uporabil Orodja: Partition Sheme: NO OTA, da bi imeli več prostora za to ogromno kodo
zabavaj se
kliknite tukaj za kodo na githubu
2. korak: Zemljevid
ta pouk je osredotočen na kodo ESP32, zato vam lahko dam le nekaj ključnih besed, povezav in uporabljenih orodij:
odlična storitev za ekstrakcijo vektorskih področij iz openstreetmap
- "ostični" QGis za njihovo prebavo
- poiščite tabelo atributov za poenostavitev zemljevida
- ustvarite postavitev tiskanja in izvoz zemljevida v formatu svg na formatu papirja A3
- zabavajte se z "bolj gladkim" ilustratorjem
- natisni
3. korak: zabava z vročim lepilom
zato lahko predlagam, da izrežete luknje za LED in zaslon na papirju, preden jih pritrdite na plutovinasto ploščo
ožičenje je res preprosto in slabo opravljeno: P
Moja stopnja spajkanja: Golob
kot lahko vidite iz kode, LED gredo na IO zatiče
#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
poiščite pinout ESP32 za razumevanje
4. korak: Končni izdelek
tako da ta fotografija ni najboljša, toda ko bomo dobili poplavo reke, bom dal lep video!
Priporočena:
Loactor With Ali Live Report z uporabo Chat Bota: 4 koraki
Loactor With Ali Live Report with Chat Bot: Prek WhatsApp -a prejemajte spremenljivke (lokacijo, nadmorsko višino, pritisk …) iz NodeMCU po zahtevi ali pošljite ukaze NodeMCU prek API -ja Twilio. Nekaj tednov delam z API -jem Twilio, zlasti za sporočila WhatsApp in celo ustvarila aplikacijo
Kako začeti z ESP32 - Namestitev plošč ESP32 v Arduino IDE - Koda utripanja ESP32: 3 koraki
Kako začeti z ESP32 | Namestitev plošč ESP32 v Arduino IDE | ESP32 Blink Code: V tem navodilu bomo videli, kako začeti delati z esp32 in kako namestiti esp32 plošče v Arduino IDE, in programirali bomo esp 32 za zagon kode utripanja z arduino ide
Kako razstaviti računalnik z enostavnimi koraki in slikami: 13 korakov (s slikami)
Kako z enostavnimi koraki in slikami razstaviti računalnik: To navodilo za razstavljanje računalnika. Večina osnovnih komponent je modularnih in jih je enostavno odstraniti. Vendar je pomembno, da ste glede tega organizirani. To vam bo pomagalo preprečiti izgubo delov in tudi pri ponovni montaži
Pretvorite svoje slušalke XBox Live Communicator v računalniške USB slušalke: 3 koraki
Pretvorite svoje slušalke XBox Live Communicator v računalnik USB slušalke: DIY USB slušalke za osebni računalnik. Imate naokoli stare ploščice in slušalke XBox 1 Live? Ali ima vaša lokalna trgovina za nadaljnjo prodajo ali prijatelj enega, ki bi ga lahko kupili? Ta stari komunikator preoblikujte kot slušalko USB za Windows! Potrebni dodatki: Xbox Live Communica
Burn Live Linux Distro je enostaven način!: 3 koraki
Burn Live Linux Distro je enostaven način !: Opomba: To je moj prvi pouk. Prosim, da se oglasite z mano, če pride do napak, se vam vnaprej opravičujem. Unetbootin (Universal Netboot Installer) je programska oprema za ustvarjanje živih diskov USB v živo v Linuxu. Na voljo je z vrsto vnaprej izbranih distro