Turinys:
- Prekės
- 1 žingsnis: Kodas
- 2 žingsnis: žemėlapis
- 3 žingsnis: karštų klijų vakarėlis
- 4 žingsnis: paruoštas produktas
Video: ESP32 grandiklis, analizatorius ir tiesioginis žemėlapių kūrėjas: 4 žingsniai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Labas pasauli! Tai mano pirmasis Instructable! Aš esu Marco iš Grosseto Italijos, nesu kūrėjas, nesu elektronikos inžinierius, bet esu aplinkosaugos vadovas mūsų vietiniame gamtos parke (Maremma gamtos parkas).
Mano kooperatyve daug dirbame su ekskursijomis kanojomis, natūralistinėmis ir ramiomis ekskursijomis Ombrone upe, kad galėtume stebėti paukščius ir šiek tiek atsipalaiduoti.
Tačiau Ombrone upė taip pat garsėja būdingu srautu: nuo vasaros „nulio“iki kelių tūkstančių kubinių metrų vandens per valandą rudens-žiemos srauto.
Dėl šios priežasties Ombrone upę nuolat stebi puiki regioninė hidrometrinė tarnyba (SIR), turinti fantastišką svetainę, kuri leidžia gauti surinktus duomenis.
Dabar mes laukiame sezono pabaigos ir pirmųjų rudens potvynių, kad pašalintume doką ir kanojas …
Bet kai mes pradedame kalbėti apie esp32ing ir pan. dar akimirka
Italijos užrakinimo metu aš padariau pirmąją arduino mirksėjimo pamoką, šaunu … ir aš toliau žaidžiau su jutikliais ir arduino C. Taigi, jei manote, kad mano kodas yra neapdorotas arba pilnas nesąmoningų loginių spragų, apsvarstykite tai!
Aš daug ką padariau tik tam, kad gaiščiau laiką, tačiau turėdamas nuolatinę potvynių riziką nusprendžiau padaryti kažką šaunaus: dėka ESP32 su arduino formos koeficientu („Wemos d1 r32“), kurį laikiau suvyniotą kelis mėnesius, nes maniau, kad „sunku“, Aš tikrai turėjau daug patenkinimų:
Aš padariau grandiklį, kuris atneša ir išanalizuoja duomenis iš SIR tinklalapio ir rodo kintamuosius, gautus pigiame „i2c“LCD, ir kaip ryškumo dažnis mirksi kai kuriuose šviesos dioduose tikroviškame žemėlapyje.
taigi, jei potvynis kyla iš kalno pusės, mane įspės didėjantis šviesos diodų ryškumas (lygio pasikeitimas) ir dažnesnis (lygio pasikeitimas per vieną valandą) žemėlapyje … bet ESP32 taip pat gali siųsti el. Taigi kodėl gi ne atlikti tam skirtą funkciją?
dabar eikime pamatyti žemiau esančio kodo!
Prekės
- ESP32 pagrindu pagaminta plokštė: naudojau „Wemos d1 r32“, nes yra kaiščių ir lengviau valdyti
- šviesos diodai, raudona spalva yra labiau „budri“
- „I2C 16x2 LCD“yra tik mėlynas, bet žalia yra stilingesnė
- pigi kamštinė lenta
- nakties laikas (neprivaloma)
1 žingsnis: Kodas
internete radau tik tuščias pamokas, kuriose duomenims analizuoti naudojamos išorinės svetainės, todėl bandžiau išbandyti esp32 branduolių, analizuojančių duomenis tiesiai lentoje, galią … be problemų!
taigi, jei žiūrite SIR puslapio šaltinį, galite suprasti, kaip jis veikia: laimei, jie naudoja „kableliais atskirtus kaip“reikšmes savo duomenims rodyti, todėl šiuo kodu ieškau hidrografinės stoties (kodas TOSnumber) ir skaičiuoju kablelių skaičių (kaip separatorių), kurioje yra norima reikšmė (ir išsaugokite ją kaip kintamąją), tada pakeiskite ją kaip šviesos diodų ryškumą ir laiką miliais, kad mirksėtų „variacijos lygis“
Šio grandiklio esmė yra skirtuke
ind = payload.indexOf ("TOSstation_number"); // gauti poziciją (ind), nuo kurios pradėti skaičiuoti kablelius
Eilutė my_var = getValue_ind (naudingoji apkrova, ',', 8); // kur 8 yra aštunta langelis, apibrėžtas kableliais (separatorius)
„naudingoji apkrova“yra tai, ką aš gaunu iš žiniatinklio, anksčiau išvalyto nuo „citatų“ir „& nbsp“;
ir „getValue_ind“funkcija, esanti pagrindiniame skirtuke
Styga getValue_ind (eilutės duomenys, simbolių skyriklis, int indeksas) {
int rasta = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// iš ind pozicijos, jei (data.charAt (i) == separatorius || i == maxIndex) {rasta ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} grąžinti rasti> indeksas? data.substring (strIndex [0], strIndex [1]): ""; }
pritaikytas iš
kodas prašo puslapio kas 15 min., tai yra apie 44 KB, nemanau, kad tai yra didelė apkrova serveriams ir ESP32. Norėdami išvengti per didelio slinkimo, programą suskirstiau į skirtingas funkcijas, perskaitykite komentarus
čia kodo įklijavimas yra tikrai netvarka … aš įdėjau.ino failus tiesiai
Aš naudoju „arduino IDE“skirtukų funkciją, todėl turiu skirtingus.ino failus
tai naujausia kodo versija (?), daug pastangų, todėl būsiu dėkingas už bet kokį pasiūlymą!
- norint ištaisyti šviesos diodo ryškumą esant žemoms vertėms, - „žemėlapio“funkcijai, skirta kintamųjų kableliams, - naudoti antrąjį šerdį ESP32, - suprasti, kaip atspausdinti html laišką iš eilutės naudojant „sprintfI“praleido daug tikro „nerding“laiko, todėl skaitykite komentarus apie.ino failus arba „github“!
kaip įkėlimo nustatymus naudojau Įrankiai: skaidinių schema: NE OTA, kad būtų daugiau vietos šiam didžiuliam kodui
pasilinksmink
spustelėkite čia, kad gautumėte kodą „github“
2 žingsnis: žemėlapis
ši pamoka skatinama naudojant ESP32 kodą, todėl galiu pateikti tik kai kuriuos naudojamus raktinius žodžius, nuorodas ir įrankius:
puiki paslauga išgauti vektorines sritis iš atviro gatvės žemėlapio
- „ostinis“QGis, skirtas juos virškinti
- ieškokite atributų lentelės, kad supaprastintumėte žemėlapį
- sukurkite spausdinimo maketą ir eksportuokite žemėlapį svg formatu A3 popieriaus formatu
- linksminkitės su „lygesniu“iliustruotoju
- atsispausdinkite
3 žingsnis: karštų klijų vakarėlis
todėl galiu pasiūlyti iškirpti skylutes lemputei ir ekranui ant popieriaus, prieš tai pritvirtindami ant kamštinės plokštės
laidai yra tikrai paprasti ir blogai padaryti: P
Mano litavimo lygis: balandis
kaip matote iš kodo, šviesos diodai eina į IO kaiščius
#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
ieškokite ESP32 pinout, kad suprastumėte
4 žingsnis: paruoštas produktas
taigi ši nuotrauka nėra pati geriausia, bet kai sulauksime upės potvynio, įdėsiu gražų vaizdo įrašą!
Rekomenduojamas:
Sukurkite žemėlapių knygą naudodami „Google“žemėlapius: 17 žingsnių (su paveikslėliais)
Sukurkite žemėlapių knygą naudodami „Google“žemėlapius: Anądien ieškojau knygyno, kur gavau DuPage County, IL gatvės vadovą, nes ten gyvena mano mergina ir jai reikia išsamaus gatvės žemėlapio. Deja, vienintelis, kurį jie turėjo, buvo artimas Kuko grafystei (tokia kaip ši
Tiesioginis „Covid19“stebėjimo įrankis naudojant ESP8266 ir OLED - Realaus laiko „Covid19“prietaisų skydelis: 4 žingsniai
Tiesioginis „Covid19“stebėjimas naudojant ESP8266 ir OLED | Realaus laiko „Covid19“informacijos suvestinė: apsilankykite griežtoje „Techtronic“svetainėje: http: //techtronicharsh.com Visur, kur vyksta didžiulis naujojo koronaviruso (COVID19) protrūkis. Buvo būtina stebėti dabartinį COVID-19 scenarijų pasaulyje. Taigi, būdamas namuose, tai buvo p
„Garmin“žemėlapių kūrimas naudojant „Openstreetmap“: 4 žingsniai
„Garmin“žemėlapių kūrimas naudojant „Openstreetmap“: man patinka žygiai pėsčiomis, bet nesinaudoju žemėlapių skaitymu. Todėl nusipirkau sau Garmin GPSMAP64 GPS. Žemėlapių iššūkyje pamačiau instrukciją, kaip sukurti žemėlapius „Garmin GPS“, tai yra labai gerai parašyta instrukcija ir privertė mane galvoti parašyti savo
Išankstinio įspėjimo Raspberry PI kilimo ir tūpimo tako šviesa naudojant skrydžio žemėlapių duomenis: 14 žingsnių (su paveikslėliais)
Ankstyvojo įspėjimo Raspberry PI kilimo ir tūpimo tako šviesa, naudojant skrydžio žemėlapių duomenis: ši lempa atsirado dėl kelių priežasčių, nes mane visada domina lėktuvai, skrendantys virš galvos, o vasarą savaitgaliais dažnai skraido gana įdomūs lėktuvai. Nors jūs linkę juos girdėti tik einant
RGB LED kubas su „Bluetooth“programa ir animacija Kūrėjas: 14 žingsnių (su paveikslėliais)
RGB LED kubas su „Bluetooth“programa + „AnimationCreator“: tai instrukcija, kaip sukurti „6x6x6 RGB LED (Common Anodes)“kubą, valdomą „Bluetooth“programoje naudojant „Arduino Nano“. Visa konstrukcija lengvai pritaikoma prie 4x4x4 arba 8x8x8 kubo. Šį projektą įkvėpė „GreatScott“. Aš nusprendžiau