Агуулгын хүснэгт:

ESP32 Скрепер-задлагч-шуудан илгээгч ба Live Mapper: 4 алхам (зурагтай)
ESP32 Скрепер-задлагч-шуудан илгээгч ба Live Mapper: 4 алхам (зурагтай)

Видео: ESP32 Скрепер-задлагч-шуудан илгээгч ба Live Mapper: 4 алхам (зурагтай)

Видео: ESP32 Скрепер-задлагч-шуудан илгээгч ба Live Mapper: 4 алхам (зурагтай)
Видео: ESP32, более мощная чем любая другая Ардуино 2024, Арваннэгдүгээр
Anonim
ESP32 Scraper-parser-mailer ба Live Mapper
ESP32 Scraper-parser-mailer ба Live Mapper
ESP32 Scraper-parser-mailer ба Live Mapper
ESP32 Scraper-parser-mailer ба Live Mapper
ESP32 Scraper-parser-mailer ба Live Mapper
ESP32 Scraper-parser-mailer ба Live Mapper

Сайн уу Дэлхий! Энэ бол миний анхны зааварчилгаа юм! Би бол Италийн Гроссето хотын Марко, би хөгжүүлэгч биш, электрон инженер биш, харин манай нутгийн байгалийн цэцэрлэгт хүрээлэнгийн (Маремма байгалийн парк) байгаль орчны хөтөч хүн юм.

Миний хоршоонд бид шувуу ажиглах, жаахан тайвшрах зорилгоор Ombrone голын завиар аялах, байгалийн болон тайван аялал хийх зэргээр маш их ажилладаг.

Гэхдээ Омброне гол нь урсацын онцлог шинж чанараараа алдартай: зунаас "тэг" хүртэл намар-өвөл хүртэл хэдэн мянган шоо метр ус урсдаг.

Энэ шалтгааны улмаас Омброне голыг бүс нутгийн маш сайн гидрометрийн үйлчилгээ (SIR) байнга хянаж байдаг бөгөөд энэ нь цуглуулсан өгөгдлийг авах боломжтой гайхалтай сайт юм.

Одоо бид улирал дуусч, намрын анхны үер болж усан онгоцны зогсоол, завийг зайлуулахыг хүлээж байна …

Гэхдээ бид esp32ing гэх мэт задлан шинжлэх талаар ярьж эхлэхэд? дахиад нэг хором

Италийн түгжрэлийн үеэр би анхны arduino blink хичээлийг хийлээ, дажгүй … мөн би мэдрэгч, arduino C -тэй тоглохоо үргэлжлүүллээ. Тиймээс хэрэв та миний кодыг бүдүүлэг эсвэл утгагүй логик цоорхойгоор дүүргэсэн бол үүнийг анхаарч үзээрэй!

Би цаг үрэхийн тулд маш их зүйлийг хийсэн боловч үер болох эрсдэлтэй тул би ямар нэгэн гайхалтай зүйл хийхээр шийдлээ: "хэцүү" гэж бодож байсан тул хэдэн сарын турш ороосон ардуино хэлбэрийн хүчин зүйлтэй (Wemos d1 r32) ESP32 -ийн ачаар., Би үнэхээр сэтгэл ханамжтай байсан:

Би SIR вэб хуудаснаас өгөгдлийг авч, задлан шинжилж, хувьсагчийг хямд i2c LCD дэлгэц дээр харуулсан бөгөөд зарим гэрэл дээр гэрэлтэх давтамжийг бодит газрын зураг дээр харуулдаг.

Хэрэв уулын талаас үер буувал би гэрэл гэгээ нэмэгдэх (түвшний өөрчлөлт), газрын зураг дээрх LED -ийн давтамж нэмэгдэх (нэг цагийн дотор түвшин өөрчлөгдөх) талаар анхааруулах болно … гэхдээ ESP32 нь имэйл илгээх боломжтой! Тэгвэл үүний төлөө функц хийж яагаад болохгүй гэж?

Доорх кодыг одоо үзье!

Хангамж

  • ESP32 дээр суурилсан самбар: Би Wemos d1 r32 -ийн шалтгааныг эмэгтэй зүүгээр хийсэн бөгөөд үүнийг зохицуулахад илүү хялбар байдаг
  • leds, улаан бол илүү "сэрэмжтэй"
  • I2C 16x2 LCD дэлгэц нь цэнхэр өнгөтэй боловч ногоон нь илүү загварлаг юм
  • хямд үйсэн хавтан
  • шөнийн цаг (заавал биш)

Алхам 1: Код

Код
Код
Код
Код

Онлайнаар би зөвхөн гадаад сайтуудыг ашиглан өгөгдлийг задлан шинжлэх боломжтой уян хатан хичээлүүдийг олсон тул өгөгдлийг самбар дээр шууд задлан шинжилдэг esp32 цөмийн хүчийг туршиж үзэхийг хичээсэн.

Тиймээс хэрэв та SIR хуудасны эх сурвалжийг үзвэл энэ нь хэрхэн ажилладагийг ойлгох болно: аз болоход тэд өгөгдлөө харуулахын тулд "таслалаар тусгаарлагдсан" утгыг ашигладаг тул энэ кодоор би гидрографийн станц (TOSnumber код) хайж, таслалын тоог тоолно. тусгаарлагч байдлаар) миний хүссэн утгыг агуулсан (мөн үүнийг хувьсагч хэлбэрээр хадгална), дараа нь "вариацийн түвшин" анивчихын тулд гэрэлтүүлгийг миллисээр дахин харуул.

Энэхүү хусагчийн үндсэн хэсэг нь http таб дээр байна:

ind = payload.indexOf ("TOSstation_number"); // таслал тоолж эхлэх цэгээс (ind) байрлалыг аваарай

String my_var = getValue_ind (ачаалал, ',', 8); // энд 8 бол таслалаар тодорхойлсон найм дахь нүд юм

"ачаалал" гэдэг нь өмнө нь "ишлэл" болон "& nbsp" -ээс цэвэрлэсэн вэбээс олж авдаг зүйл юм;

үндсэн таб дээр байгаа getValue_ind функц

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

int олдсон = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// from ind position from (data.charAt (i) == тусгаарлагч || i == maxIndex) {олдсон ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? би + 1: би; }} буцах олдсон> индекс? data.substring (strIndex [0], strIndex [1]): ""; }

stackoverflow.com/a/14824108 -аас тохируулсан

код нь хуудсыг 15 минут тутамд асуудаг, энэ нь ойролцоогоор 44 Kb хэмжээтэй, серверүүд болон ESP32 -ийн хувьд тийм ч их ачаалал өгөхгүй гэж би бодож байна. Хэт их гүйлгэхээс зайлсхийхийн тулд би програмыг өөр өөр функцүүдэд хуваасан, сэтгэгдлийг уншина уу.

энд код буулгах нь үнэхээр замбараагүй байна … би.ino файлуудыг шууд тавьсан

Би arduino IDE -ийн таб функцийг ашигласан тул өөр өөр.ino файлуудтай болсон

Энэ бол кодын хамгийн сүүлийн хувилбар (?), маш их хүчин чармайлт гаргасан тул би ямар ч саналыг үнэлэх болно!

- бага утгын хувьд гэрэлтүүлгийн гэрлийг шулуутгах, хөвөгч цэгийн хувьсагчийн "газрын зураг" функцын хувьд - ESP32 дээрх хоёр дахь цөмийг ашиглахад, - sprintfI бүхий мөрнөөс html имэйлийг хэрхэн хэвлэх талаар ойлгох. маш олон үнэн "цагийг" өнгөрөөсөн тул.ino файлууд эсвэл github дээрх сэтгэгдлүүдийг уншаарай!

байршуулах тохиргооны хувьд би Tools: Partition Scheme: NO OTA -ийг ашиглан энэ том кодонд илүү их зай эзэлнэ

хөгжилтэй байгаарай

github дээрх кодыг энд дарж үзнэ үү

Алхам 2: Газрын зураг

Газрын зураг
Газрын зураг
Газрын зураг
Газрын зураг
Газрын зураг
Газрын зураг

Энэхүү гарын авлага нь ESP32 код дээр бичигдсэн тул би танд зөвхөн зарим түлхүүр үг, линк, ашигласан хэрэгслүүдийг өгөх болно.

openstreetmap хэлбэрээр векторын талбарыг задлах маш сайн үйлчилгээ

  • "Остик" QGis нь тэдгээрийг боловсруулахад зориулагдсан болно
  • Газрын зургийг хялбарчлахын тулд шинж чанарын хүснэгтийг хайж олох
  • хэвлэх зохион байгуулалт хийж, газрын зургийг svg форматаар A3 цаасан дээр экспортлох
  • "гөлгөр" зураачтай хөгжилтэй байгаарай
  • хэвлэх

Алхам 3: Халуун цавуу нам

Халуун цавуу нам
Халуун цавуу нам
Халуун цавуу нам
Халуун цавуу нам
Халуун цавуу нам
Халуун цавуу нам
Халуун цавуу нам
Халуун цавуу нам

Тиймээс би үйсэн самбар дээр засахаасаа өмнө цаасан дээрх дэлгэц ба дэлгэцийн нүхийг огтлохыг санал болгож болно

Утасны холболт үнэхээр энгийн бөгөөд муу хийсэн: P

Миний гагнуурын түвшин: Тагтаа

кодоос харахад ледүүд IO зүү рүү очдог

#LED_PIN0 14 // si #тодорхойлох LED_PIN1 27 // buon #define LED_PIN2 16 // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 // ist #define LED_PIN5 26 // berr

Ойлгохын тулд ESP32 pinout хайх

Алхам 4: Бэлэн бүтээгдэхүүн

Бэлэн бүтээгдэхүүн
Бэлэн бүтээгдэхүүн

Тиймээс энэ зураг хамгийн сайн биш байна, гэхдээ бид голын үер болоход би сайхан видео оруулах болно!

Зөвлөмж болгож буй: