Talaan ng mga Nilalaman:

ESP32 Scraper-parser-mailer at Live Mapper: 4 na Hakbang (na may Mga Larawan)
ESP32 Scraper-parser-mailer at Live Mapper: 4 na Hakbang (na may Mga Larawan)

Video: ESP32 Scraper-parser-mailer at Live Mapper: 4 na Hakbang (na may Mga Larawan)

Video: ESP32 Scraper-parser-mailer at Live Mapper: 4 na Hakbang (na may Mga Larawan)
Video: The HARDEST part about programming 🤦‍♂️ #code #programming #technology #tech #software #developer 2024, Nobyembre
Anonim
ESP32 Scraper-parser-mailer at Live Mapper
ESP32 Scraper-parser-mailer at Live Mapper
ESP32 Scraper-parser-mailer at Live Mapper
ESP32 Scraper-parser-mailer at Live Mapper
ESP32 Scraper-parser-mailer at Live Mapper
ESP32 Scraper-parser-mailer at Live Mapper

Hello World! Ito ang aking unang Makatuturo! Ako si Marco mula sa Grosseto Italy, hindi ako isang developer, hindi ako isang elektronikong inhinyero ngunit ako ay isang gabay sa kapaligiran sa aming lokal na natural park (Maremma natural park).

Sa kooperatiba ay nagtatrabaho kami ng marami sa mga paglalakbay sa kanue, naturalista at kalmadong mga paglalakbay sa ilog ng Ombrone para sa birdwatching at medyo nakaka-relax ang pakiramdam.

Ngunit ang ilog ng Ombrone ay sikat din sa katangian ng uri ng daloy: mula sa tag-init "zero" hanggang sa taglagas-taglamig na daloy ng libu-libong metro kubiko ng tubig bawat oras.

Para sa kadahilanang ito, ang ilog ng Ombrone ay patuloy na sinusubaybayan ng mahusay na panrehiyong serbisyo na hydrometric (SIR), na may kamangha-manghang site na ginawang magagamit ang nakolektang data.

Naghihintay kami ngayon para sa pagtatapos ng panahon at para sa mga unang pagbaha sa taglagas para alisin ang pantalan at mga kano …

Ngunit kapag nagsimula kaming pag-usapan ang tungkol sa pag-scrap ng pag-parse ng esp32ing atbp? sandali pa

Sa panahon ng Italyano lockdown nagawa ko ang unang arduino blink aralin, cool … at ako contiunued upang i-play sa paligid ng mga sensor at arduino C. Kaya kung nakita mo ang aking code krudo o puno ng walang katuturang mga lohikal na puwang isaalang-alang ito!

Gumawa ako ng maraming bagay upang mag-aksaya lamang ng oras ngunit sa patuloy na panganib na pagbaha ay napagpasyahan kong gumawa ng isang bagay na cool: salamat sa isang ESP32 na may isang arduino form factor (Wemos d1 r32) na pinanatili kong balot ng ilang buwan dahil naisip kong "mahirap", Talagang nagkaroon ako ng maraming kasiyahan:

Nagawa ko ang isang scraper na nagdadala at nag-parse ng data mula sa isang SIR webpage at ipinapakita ang mga variable na nakuha sa isang murang LCD ng i2c, at tulad ng dalas ng dalas na kumikislap sa ilang mga leds sa isang makatotohanang mapa.

kaya kung ang isang pagbaha ay nagmula sa panig ng bundok bibigyan ako ng babala ng pagtaas ng ningning (antas ng pagbabago) at ng pagtaas ng dalas (pagbabago ng antas sa isang oras) ng mga leds sa mapa … ngunit ang ESP32 ay maaari ring magpadala ng mga email! Kaya bakit hindi gumawa ng isang pagpapaandar para dito?

Hinahayaan kang makita ang code sa ibaba ngayon!

Mga gamit

  • Nakabatay sa board ng ESP32: Gumamit ako ng Wemos d1 r32 sanhi ng pagkakaroon ng mga babaeng pin at mas madaling hawakan ito
  • leds, pula ay mas "alerto tulad ng"
  • I2C 16x2 LCD iv'e isang asul lamang ngunit ang berde ay mas naka-istilo
  • murang cork board
  • oras ng gabi (opsyonal)

Hakbang 1: Ang Code

Ang Code
Ang Code
Ang Code
Ang Code

sa online na nakita ko lamang ang mga vapourous tutorial na gumagamit ng mga panlabas na site upang ma-parse ang data, kaya sinubukan kong subukan ang lakas ng mga esp32 cores na pag-parse ng data nang direkta sa board … nang walang mga problema!

kaya kung titingnan mo ang mapagkukunan ng pahina ng SIR ay maaaring maunawaan kung paano ito gumagana: sa kabutihang-palad ay gumagamit sila ng mga halagang "pinaghiwalay ng kuwit" na pagpapakita ng kanilang data, kaya sa code na ito naghahanap ako ng isang hydrographic station (code TOSnumber) at bilangin ang bilang ng mga kuwit (bilang separator) na naglalaman ng halagang nais ko (at iimbak ito bilang variable), pagkatapos ay i-remap ito bilang pinangungunahan ng ilaw at oras sa millis para sa "antas ng pagkakaiba-iba" na kumikislap

Ang core ng scraper na ito ay nasa tab na

ind = payload.indexOf ("TOSstation_number"); // kunin ang posisyon (ind) mula sa kung saan magsisimulang magbilang ng mga kuwit

String my_var = getValue_ind (payload, ',', 8); // kung saan ang 8 ay ang ikawalong cell na tinukoy ng mga kuwit (separator)

Ang "payload" ay ang nakukuha ko mula sa web na dati nang nalinis mula sa "mga sipi" at "& nbsp";

at ang function na getValue_ind na nasa pangunahing tab

String getValue_ind (String data, char separator, int index) {

int natagpuan = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; para sa (int i = ind; i <= maxIndex && natagpuan <= index; i ++) {// mula sa posisyon ng ind kung (data.charAt (i) == separator || i == maxIndex) {natagpuan ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} natagpuang pagbalik> index? data.substring (strIndex [0], strIndex [1]): ""; }

inangkop mula sa

hiningi ng code ang pahina tuwing 15min, ito ay tungkol sa 44Kb, sa palagay ko hindi isang malaking karga para sa mga server at para sa ESP32.. Upang maiwasan ang labis na pag-scroll ay hinati ko ang programa sa iba't ibang mga pag-andar, basahin ang mga komento

narito ang pag-paste ng code ay talagang isang gulo … inilagay ko nang direkta ang.ino na mga file

ginamit ko ang tampok na mga tab ng arduino IDE kaya't mayroon akong iba't ibang mga.ino file

ito ang pinakabagong bersyon ng code (?), maraming pagsisikap, kaya pahalagahan ko ang anumang mungkahi!

- para sa straightening ng led brightness para sa mababang halaga, - para sa function na "mapa" para sa mga variable point na lumulutang - para sa paggamit ng pangalawang core sa ESP32, - para maunawaan kung paano mag-print ng isang html mail mula sa isang string na may sprintf mayroon akong gumastos ng maraming totoong "nerding time" kaya't basahin ang mga komento sa.ino file o sa github!

bilang mga setting ng pag-upload nagamit ko ang Mga Tool: Partition Scheme: WALANG OTA upang magkaroon ng mas maraming puwang para sa malaking code na ito

magsaya ka

mag-click dito para sa code sa github

Hakbang 2: Ang Mapa

Ang mapa
Ang mapa
Ang mapa
Ang mapa
Ang mapa
Ang mapa

ang tut na ito ay incentred sa code ng ESP32 kaya maaari lamang kita mabigyan ng ilang keyword, mga link at tool na ginamit:

ang mahusay na serbisyo para sa pagkuha ng mga vectorial area ay bumubuo ng openstreetmap

  • ang "ostic" QGis para sa digest ng mga ito
  • maghanap ng talahanayan ng katangian para gawing simple ang iyong mapa
  • lumikha ng isang layout ng pag-print at i-export ang mapa sa format na svg sa format na papel ng A3
  • magsaya kasama ang "mas malinaw" na ilustrador
  • I-print mo

Hakbang 3: Ang Hot Party ng Kola

Ang Hot Glue Party
Ang Hot Glue Party
Ang Hot Glue Party
Ang Hot Glue Party
Ang Hot Glue Party
Ang Hot Glue Party
Ang Hot Glue Party
Ang Hot Glue Party

kaya maaari kong magmungkahi na mamatay-gupitin ang mga butas para sa led at ang display sa papel bago ayusin ito sa cork board

ang mga kable ay talagang simple at at masamang ginawa ko: P

Ang antas ng aking paghihinang: Pigeon

tulad ng nakikita mo mula sa code ang mga leds ay pumunta sa mga IO pin

#define LED_PIN0 14 // si # tukuyin ang LED_PIN1 27 // buon #define LED_PIN2 16 // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 // ist #define LED_PIN5 26 // berr

maghanap ng pinout ng ESP32 para maunawaan

Hakbang 4: Ang Tapos na Produkto

Ang Tapos na Produkto
Ang Tapos na Produkto

kaya't ang larawang ito ay hindi pinakamahusay, ngunit nang makakuha kami ng pagbaha sa ilog maglalagay ako ng magandang video!

Inirerekumendang: