Mundarija:

ESP32 qirg'ich-tahlilchi-pochta jo'natuvchisi va Live Mapper: 4 qadam (rasmlar bilan)
ESP32 qirg'ich-tahlilchi-pochta jo'natuvchisi va Live Mapper: 4 qadam (rasmlar bilan)

Video: ESP32 qirg'ich-tahlilchi-pochta jo'natuvchisi va Live Mapper: 4 qadam (rasmlar bilan)

Video: ESP32 qirg'ich-tahlilchi-pochta jo'natuvchisi va Live Mapper: 4 qadam (rasmlar bilan)
Video: Lesson 10: Conditional Statement in Arduino and Using Array | SunFounder Robojax 2024, Noyabr
Anonim
ESP32 Scraper-parser-mailer va Live Mapper
ESP32 Scraper-parser-mailer va Live Mapper
ESP32 Scraper-parser-mailer va Live Mapper
ESP32 Scraper-parser-mailer va Live Mapper
ESP32 Scraper-parser-mailer va Live Mapper
ESP32 Scraper-parser-mailer va Live Mapper

Salom Dunyo! Bu mening birinchi ko'rsatma! Men Grosseto Italiyadan bo'lgan Marko'man, men dasturchi emasman, elektron muhandis emasman, lekin men mahalliy tabiiy bog'imizda (Maremma tabiiy bog'i) atrof -muhit bo'yicha qo'llanma.

Mening kooperativimizda biz kanoeda ekskursiyalar, Ombrone daryosida tabiiy va sokin sayohatlar, qushlarni kuzatish va biroz hordiq chiqarish uchun ishlaymiz.

Ammo Ombrone daryosi o'ziga xos oqim turi bilan ham mashhur: yozdan "noldan" kuz-qishgacha soatiga bir necha ming kubometr suv oqadi.

Shu sababli, Ombrone daryosi ajoyib mintaqaviy gidrometrik xizmat (SIR) tomonidan doimiy ravishda kuzatib boriladi, bu ajoyib sayt bilan to'plangan ma'lumotlarni taqdim etadi.

Endi biz mavsum tugashini va birinchi kuzgi suv toshqinlarini kutmoqdamiz, bort va kanolarni olib tashlash uchun …

Ammo esp32ing va boshqalarni ajratish haqida gapira boshlaganimizda? yana bir lahza

Italiyani blokirovka qilish paytida men birinchi arduino miltillash darsini o'tkazdim, salqin … va men sensorlar va arduino C bilan o'ynashni davom ettirdim, shuning uchun agar siz mening kodimni qo'pol yoki bema'nilik mantiqiy bo'shliqlarga to'la deb hisoblasangiz, buni ko'rib chiqing!

Men vaqtni behuda sarflash uchun ko'p ish qildim, lekin men doimo suv toshqini xavfi ostida qandaydir ajoyib ishni qilishga qaror qildim: "qiyin" deb o'ylaganim uchun bir necha oylar davomida o'ralgan arduino formali ESP32 (Wemos d1 r32) tufayli., Men haqiqatan ham juda ko'p qoniqishlarga ega bo'ldim:

Men SIR veb-sahifasidan ma'lumotlarni olib keladigan va tahlil qiladigan, i2c LCD displeyida olingan o'zgaruvchilarni ko'rsatadigan va haqiqiy xaritada ba'zi LEDlarda yorqinlik chastotasi yonib turadigan qirg'ichni qildim.

agar tog 'tomondan suv toshqini kelsa, men xaritadagi LEDlarning yorqinligi (darajadagi o'zgarish) va chastotaning oshishi (bir soat ichida darajaning o'zgarishi) bilan ogohlantirilaman … lekin ESP32 elektron pochta xabarlarini ham yuborishi mumkin! Xo'sh, nima uchun bu vazifani bajarmaysiz?

Endi quyidagi kodni ko'rish uchun boramiz!

Ta'minotlar

  • ESP32 asosidagi taxtasi: Men Wemos d1 r32 ni ishlatganman, u erda ayol pinlari bor va ularni boshqarish osonroq
  • Led, qizil rang "ogohroq" kabi
  • I2C 16x2 LCD faqat ko'k rangga ega, lekin yashil rang yanada zamonaviy
  • arzon mantar taxtasi
  • tungi vaqt (ixtiyoriy)

1 -qadam: Kod

Kodeks
Kodeks
Kodeks
Kodeks

Internetda men faqat tashqi saytlarni ma'lumotlarni tahlil qilish uchun ishlatadigan bug'li darsliklarni topdim, shuning uchun men ma'lumotlarni to'g'ridan -to'g'ri taxtada tahlil qiladigan esp32 yadrolarining kuchini sinab ko'rishga harakat qildim … muammosiz!

Shunday qilib, agar siz SIR sahifasining manbasini ko'rsangiz, u qanday ishlashini tushunishi mumkin: Yaxshiyamki, ular o'z ma'lumotlarini ko'rsatish uchun "vergul bilan ajratilgan" kabi qiymatlardan foydalanadilar, shuning uchun men ushbu kod bilan gidrografik stantsiyani (TOSnumber kodi) qidiraman va vergullar sonini hisoblayman (ajratuvchi sifatida) kerakli qiymatni o'z ichiga oladi (va uni o'zgarmaydigan qilib saqlang), keyin uni "o'zgaruvchanlik darajasi" yonib -o'chib turadigan milisaniyadagi LED yorqinligi va vaqti sifatida qayta o'rnating.

Ushbu qirg'ichning yadrosi http tabida:

ind = payload.indexOf ("TOSstation_number"); // vergulni sanashni boshlagan joyni (ind) oling

String my_var = getValue_ind (yuk, ',', 8); // bu erda 8 - vergul bilan belgilangan sakkizinchi katak (ajratuvchi)

"foydali yuk" - bu ilgari "tirnoq" va "& nbsp" dan tozalangan Internetdan oladigan narsam;

va asosiy oynada joylashgan getValue_ind funktsiyasi

String getValue_ind (String ma'lumotlari, char ajratuvchi, int indeksi) {

int topildi = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// ind holatdan, agar (data.charAt (i) == ajratuvchi || i == maxIndex) {topilgan ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} qaytish topildi> indeks? data.substring (strIndex [0], strIndex [1]): ""; }

stackoverflow.com/a/14824108 dan moslashtirilgan

kod har 15 daqiqada sahifani so'raydi, bu taxminan 44 Kb, menimcha, serverlar va ESP32 uchun katta yuk emas. Men juda ko'p aylanmaslik uchun dasturni turli funktsiyalarga ajratdim, sharhlarni o'qing.

bu erda kodni joylashtirish chindan ham tartibsizlikdir..ino fayllarini to'g'ridan -to'g'ri qo'yaman

Men arduino IDE yorliqlari xususiyatidan foydalandim, shuning uchun menda turli.ino fayllari bor

bu kodning oxirgi versiyasi (?), ko'p harakat bor, shuning uchun har qanday taklifni qadrlayman!

- past qiymatlar uchun LED yorqinligini to'g'rilash uchun, - o'zgaruvchan nuqta o'zgaruvchilari uchun "xarita" funktsiyasi uchun - ESP32 -dagi ikkinchi yadrodan foydalanish uchun, - sprintfI -ga ega bo'lgan satrdan HTML -pochtani qanday chop etish kerakligini tushunish uchun. ko'p haqiqiy "asabiy vaqt" o'tkazdi, shuning uchun.ino fayllari yoki github -dagi sharhlarni o'qing!

yuklash sozlamalari sifatida men asboblardan foydalanganman: bo'linish sxemasi: bu ulkan kod uchun ko'proq joy bo'lishi uchun OTA yo'q

maza qiling

github kodini bilish uchun shu erni bosing

2 -qadam: xarita

Xarita
Xarita
Xarita
Xarita
Xarita
Xarita

Bu tut ESP32 kodiga kiritilgan, shuning uchun men sizga faqat ba'zi kalit so'zlar, havolalar va ishlatilgan vositalarni bera olaman:

Openstreetmap -dan vektorli maydonlarni ajratish uchun ajoyib xizmat

  • ularni hazm qilish uchun "ostik" QGis
  • xaritangizni soddalashtirish uchun atributlar jadvalini qidiring
  • bosib chiqarish tartibini yarating va xaritani A3 formatida svg formatida eksport qiling
  • "silliq" tasvirchi bilan dam oling
  • chop eting

3 -qadam: Issiq yopishqoq partiyasi

Issiq yopishqoq partiyasi
Issiq yopishqoq partiyasi
Issiq yopishqoq partiyasi
Issiq yopishqoq partiyasi
Issiq yopishqoq partiyasi
Issiq yopishqoq partiyasi
Issiq yopishqoq partiyasi
Issiq yopishqoq partiyasi

Shunday qilib, men mantar taxtasiga o'rnatmasdan oldin, qog'oz va displey uchun teshiklarni kesishni taklif qila olaman

simlar, albatta, oddiy va men tomonidan yomon bajarilgan: P.

Mening lehim darajam: kaptar

koddan ko'rinib turibdiki, LEDlar IO pinlariga o'tadi

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

tushunish uchun ESP32 pinoutini qidiring

4 -qadam: Tayyor mahsulot

Tayyor mahsulot
Tayyor mahsulot

shuning uchun bu rasm eng zo'r emas, lekin biz daryo toshqini bo'lganida, men yaxshi video qo'yaman!

Tavsiya: