Sisukord:
Video: ESP32 kaabitsa parsija ja reaalne kaardistaja: 4 sammu (koos piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Tere, Maailm! See on minu esimene juhendatav! Olen Marco Itaaliast Grossetost, ma ei ole arendaja, ma ei ole elektroonikainsener, vaid olen keskkonnajuht meie kohalikus looduspargis (Maremma looduspark).
Minu kooperatiivis töötame palju kanuumatkade, looduslike ja rahulike ekskursioonidega Ombrone jõel linnuvaatluseks ja natuke lõõgastumiseks.
Kuid Ombrone'i jõgi on kuulus ka oma iseloomuliku voolu poolest: suvisest "nullist" kuni sügis-talvise vooluni mitu tuhat kuupmeetrit vett tunnis.
Sel põhjusel jälgib Ombrone jõge pidevalt suurepärane piirkondlik hüdromeetriline teenistus (SIR), kus on fantastiline sait, mis teeb kogutud andmed kättesaadavaks.
Nüüd ootame hooaja lõppu ja esimesi sügiseseid üleujutusi, et eemaldada dokk ja kanuud …
Aga kui me hakkame rääkima kraapimisest parsimisest esp32 jne? veel hetk
Itaalia sulgemise ajal olen teinud esimese arduino pilgutamise õppetunni, lahe … ja olen jätkuvalt mänginud andurite ja arduino C -ga. Nii et kui leiate, et minu kood on toores või täis jama loogilisi lünki, arvestage sellega!
Tegin palju asju lihtsalt aja raiskamiseks, kuid selle pideva üleujutusohuga otsustasin teha midagi lahedat: tänu ESP32 -le, millel on arduino vormitegur (Wemos d1 r32), mida hoidsin mitu kuud pakendis, sest pidasin seda keeruliseks, Mul oli tõesti palju rahulolu:
Olen teinud kaabitsa, mis toob ja analüüsib andmeid SIR-i veebisaidilt ning kuvab saadud muutujad odaval i2c-LCD-l ja heleduse-sageduse vilgub mõnel LED-il realistlikul kaardil.
nii et kui üleujutus tuleb mäeküljelt, hoiatavad mind kaardil olevate LED -ide heleduse suurenemine (taseme muutus) ja sageduse suurenemine (taseme muutus ühe tunni jooksul) … kuid ESP32 võib saata ka e -kirju! Miks mitte teha selleks funktsiooni?
lähme nüüd allolevat koodi vaatama!
Tarvikud
- ESP32 -põhine plaat: olen kasutanud Wemos d1 r32, kuna sellel on naissoost tihvtid ja seda on lihtsam käsitseda
- LEDid, punane on rohkem "tähelepanelik"
- I2C 16x2 LCD iv'e ainult sinine, kuid roheline on stiilsem
- odav korkplaat
- ööaeg (valikuline)
Samm: kood
Internetist olen leidnud ainult auravaid õpetusi, mis kasutavad andmete parsimiseks väliseid saite, nii et proovisin testida esp32 tuumade võimsust, analüüsides andmeid otse tahvlil … ilma probleemideta!
nii et kui vaatate SIR -lehe allikat, saate aru, kuidas see töötab: õnneks kasutab ta oma andmete kuvamiseks väärtusi "komaga eraldatud nagu", nii et selle koodiga otsin hüdrograafijaama (kood TOSnumber) ja loen komade arvu (kui eraldaja), mis sisaldavad soovitud väärtust (ja salvestab selle muutujana), seejärel muutke see led -heleduse ja aja millimeetrites, et vilkuda "variatsiooni tase"
Selle kaabitsa tuum on vahekaardil
ind = kasulik koormus.indexOf ("TOSjaama_number"); // saada positsioon (ind), kust hakata komasid lugema
String my_var = getValue_ind (kasulik koormus, ',', 8); // kus 8 on komadega määratletud kaheksas lahter (eraldaja)
"kasulik koormus" on see, mida saan veebist, mis on eelnevalt puhastatud "hinnapakkumistest" ja "& nbsp";
ja funktsioon getValue_ind, mis asub põhikaardil
String getValue_ind (stringi andmed, sümbolieraldaja, int indeks) {
int leitud = 0; int strIndex = {0, -1}; int maxIndex = andmed.pikkus () - 1; jaoks (int i = ind; i <= maxIndex && leitud <= index; i ++) {// ind positsioonilt, kui (data.charAt (i) == eraldaja || i == maxIndex) {leitud ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} tagastamine leitud> indeks? data.substring (strIndex [0], strIndex [1]): ""; }
kohandatud saidilt
kood küsib lehte iga 15 minuti järel, see on umbes 44Kb, ma ei usu, et see on serveritele ja ESP32 -le suur koormus. Liigse kerimise vältimiseks jagasin programmi erinevateks funktsioonideks, lugege kommentaare
siin on koodi kleepimine tõesti jama … panen.ino failid otse
Olen kasutanud arduino IDE sakkide funktsiooni, nii et mul on erinevaid.ino -faile
see on koodi viimane versioon (?), seal on palju pingutusi, nii et ma hindan kõiki soovitusi!
- LED -heleduse sirgendamiseks madalate väärtuste korral, - ujukoma muutujate funktsiooni "kaart" jaoks - ESP32 teise tuuma kasutamiseks, - et mõista, kuidas printida html -kirja stringist, kasutades sprintfI have veetsite palju tõelist "nohitsemisaega", nii et lugege.ino -failide kommentaaridest või githubist!
üleslaadimisseadistustena olen kasutanud Tools: Partition Scheme: NO OTA, et selle tohutu koodi jaoks rohkem ruumi oleks
lõbutse hästi
koodi saamiseks klõpsake siin githubis
2. samm: kaart
seda õpetust stimuleeritakse ESP32 koodil, nii et saan teile anda ainult mõned märksõnad, lingid ja kasutatud tööriistad:
suurepärane teenus vektorpiirkondade väljavõtmiseks vormistatakse avatud tänavakaart
- "ostic" QGis nende seedimiseks
- otsige kaardi lihtsustamiseks atribuuditabelit
- looge prindipaigutus ja eksportige kaart svg -vormingus A3 -vormingus paberile
- nautige "siledama" illustraatoriga
- printige see
3. samm: kuumliimipidu
nii et ma võin soovitada enne korkplaadile kinnitamist LED-i ja ekraani augud välja lõigata
juhtmestik on tõesti lihtne ja minu poolt halvasti tehtud: P
Minu jootmistase: tuvi
nagu koodist näete, lähevad LED -id IO -tihvtidele
#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
mõistmiseks otsige ESP32 pistikut
4. samm: valmistoode
nii et see foto pole just kõige parem, aga kui jõeuputuse saame, siis panen kena video!
Soovitan:
Castle Planter (koos Tinkercadi koodiplokkidega): 25 sammu (koos piltidega)
Castle Planter (koos Tinkercadi koodiplokkidega): selle disaini teostamine võttis mul üsna kaua aega ja kuna minu kodeerimisoskus on vähemalt öeldes piiratud, loodan, et see õnnestus hästi :) Kasutades juhiseid, peaksite saama taaslooge selle disaini kõik aspektid ilma
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): 4 sammu (koos piltidega)
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): olen näinud palju inimesi, kes teevad makroläätsi tavalise komplekti objektiiviga (tavaliselt 18–55 mm). Enamik neist on objektiiv, mis on lihtsalt tagurpidi kaamera külge kinnitatud või esielement eemaldatud. Mõlemal variandil on varjuküljed. Objektiivi kinnitamiseks
CELi õhusaaste kaardistaja (muudetud): 7 sammu
CELi õhusaaste kaardistaja (muudetud): õhusaaste on tänapäeva ühiskonnas ülemaailmne probleem, see põhjustab arvukalt haigusi ja tekitab ebamugavusi. Sellepärast oleme püüdnud luua süsteemi, mis suudaks jälgida nii teie GPS -i asukohta kui ka õhusaastet täpselt selles kohas
IoT -rahakott (nutikas rahakott koos Firebeetle ESP32, Arduino IDE ja Google'i arvutustabeliga): 13 sammu (koos piltidega)
IoT-rahakott (nutikas rahakott koos Firebeetle ESP32, Arduino IDE ja Google'i arvutustabeliga): esimene auhind Instructables Pocket-Sized Contest konkursil! Need muutuvad üleöö ja te ei tea kunagi, kui palju raha on teie rahakotis
Tee kaardistaja: 6 sammu
Tee kaardistaja: Selles IoT projektis ühendame NEO-6M (GPS-moodul), et edastada asukohaandmed Arduino kaudu Exceli lehele, mis salvestatakse arvutisse. Seejärel loome koos Tableau Publiciga nende andmete andmete visualiseerimise, et kaardistada pat