Daftar Isi:

ESP32 Scraper-parser-mailer dan Live Mapper: 4 Langkah (dengan Gambar)
ESP32 Scraper-parser-mailer dan Live Mapper: 4 Langkah (dengan Gambar)

Video: ESP32 Scraper-parser-mailer dan Live Mapper: 4 Langkah (dengan Gambar)

Video: ESP32 Scraper-parser-mailer dan Live Mapper: 4 Langkah (dengan Gambar)
Video: How to Solve CORS Error in 2 min [WATCH THIS] | CORS Explained in EASY Way 2024, November
Anonim
ESP32 Scraper-parser-mailer dan Live Mapper
ESP32 Scraper-parser-mailer dan Live Mapper
ESP32 Scraper-parser-mailer dan Live Mapper
ESP32 Scraper-parser-mailer dan Live Mapper
ESP32 Scraper-parser-mailer dan Live Mapper
ESP32 Scraper-parser-mailer dan Live Mapper

Halo Dunia! Ini adalah Instruksi pertama saya! Saya Marco dari Grosseto Italia, saya bukan pengembang, saya bukan insinyur elektronik tetapi saya pemandu lingkungan di taman alam lokal kami (taman alam Maremma).

Di koperasi saya, kami banyak bekerja dengan wisata kano, wisata naturalistik dan tenang di sungai Ombrone untuk mengamati burung dan sedikit bersantai.

Tetapi sungai Ombrone juga terkenal dengan jenis alirannya yang khas: dari "nol" musim panas hingga musim gugur-musim dingin, aliran beberapa ribu meter kubik air per jam.

Untuk alasan ini, sungai Ombrone terus dipantau oleh layanan hidrometrik regional (SIR) yang sangat baik, dengan situs yang fantastis yang menyediakan data yang dikumpulkan.

Sekarang kami menunggu akhir musim dan banjir musim gugur pertama untuk memindahkan dermaga dan sampan…

Tetapi ketika kita mulai berbicara tentang scraping parsing esp32ing dll? satu saat lagi

Selama penguncian Italia saya telah melakukan pelajaran berkedip arduino pertama, keren … dan saya terus bermain-main dengan sensor dan arduino C. Jadi jika Anda menemukan kode saya kasar atau penuh dengan celah logis yang tidak masuk akal, pertimbangkan ini!

Saya melakukan banyak hal hanya untuk membuang waktu tetapi dengan risiko banjir yang terus-menerus ini, saya memutuskan untuk melakukan sesuatu yang keren: berkat ESP32 dengan faktor bentuk arduino (Wemos d1 r32) yang saya bungkus selama berbulan-bulan karena saya pikir "sulit", Saya benar-benar mendapatkan banyak kepuasan:

Saya telah melakukan scraper yang membawa dan mengurai data dari halaman web SIR dan menampilkan variabel yang diperoleh pada LCD i2c murah, dan sebagai frekuensi kecerahan yang berkedip pada beberapa led pada peta realistis.

jadi jika banjir datang dari sisi gunung saya akan diperingatkan dengan meningkatnya kecerahan (perubahan level) dan dengan meningkatnya frekuensi (perubahan level dalam satu jam) dari led di peta … tetapi ESP32 juga dapat mengirim email! Jadi mengapa tidak melakukan fungsi untuk ini?

mari kita lihat kode di bawah ini sekarang!

Perlengkapan

  • Papan berbasis ESP32: Saya telah menggunakan Wemos d1 r32 karena memiliki pin perempuan dan lebih mudah ditangani
  • leds, merah lebih "waspada seperti"
  • I2C 16x2 LCD iv'e hanya satu biru tapi hijau lebih bergaya
  • papan gabus murah
  • waktu malam (opsional)

Langkah 1: Kode

Kode
Kode
Kode
Kode

online saya hanya menemukan tutorial uap yang menggunakan situs eksternal untuk mengurai data, jadi saya mencoba menguji kekuatan inti esp32 yang mengurai data langsung di papan… tanpa masalah!

jadi jika Anda melihat sumber halaman SIR dapat memahami cara kerjanya: untungnya mereka menggunakan nilai "seperti dipisahkan koma" untuk menampilkan data mereka, jadi dengan kode ini saya mencari stasiun hidrografi (kode TOSnumber) dan menghitung jumlah koma (sebagai pemisah) yang berisi nilai yang saya inginkan (dan menyimpannya sebagai variabel), lalu memetakannya kembali sebagai kecerahan led dan waktu dalam milis untuk "tingkat variasi" berkedip

Inti dari scraper ini ada di tab

ind = payload.indexOf("TOSstation_number"); //dapatkan posisi (ind) dari mana mulai menghitung koma

String my_var = getValue_ind(payload, ', ', 8); // di mana 8 adalah sel kedelapan yang ditentukan oleh koma (pemisah)

"payload" adalah apa yang saya dapatkan dari web yang sebelumnya dibersihkan dari "quotations" dan "&nbsp";

dan fungsi getValue_ind yang ada di tab utama

String getValue_ind(Data string, pemisah karakter, indeks int) {

int ditemukan = 0; int strIndeks = {0, -1}; int maxIndex = data.length() - 1; for (int i = ind; i <= maxIndex && ditemukan <= index; i++) { //dari posisi ind if (data.charAt(i) == separator || i == maxIndex) { ditemukan++; strIndeks[0] = strIndeks[1] + 1; strIndex[1] = (i == maxIndex) ? saya + 1: saya; } } kembali ditemukan> indeks ? data.substring(strIndex[0], strIndex[1]): ""; }

diadaptasi dari

kode meminta halaman setiap 15 menit, itu sekitar 44Kb, saya rasa itu bukan beban besar untuk server dan untuk ESP32.. Untuk menghindari terlalu banyak pengguliran, saya telah membagi program dalam fungsi yang berbeda, baca komentar

di sini kode paste benar-benar berantakan … saya meletakkan file.ino langsung

saya telah menggunakan fitur tab dari IDE arduino jadi saya memiliki file.ino yang berbeda

ini adalah versi terbaru dari kode (?), ada banyak upaya, jadi saya akan menghargai saran apa pun!

- untuk meluruskan kecerahan led untuk nilai rendah, - untuk fungsi "peta" untuk variabel floating point - untuk penggunaan inti kedua pada ESP32, - untuk memahami cara mencetak email html dari string dengan sprintfI punya menghabiskan banyak "waktu kutu buku" yang sebenarnya, jadi bacalah komentar di file.ino atau di github!

sebagai pengaturan unggahan saya telah menggunakan Alat: Skema Partisi: TANPA OTA untuk memiliki lebih banyak ruang untuk kode besar ini

Selamat bersenang-senang

klik di sini untuk kode di github

Langkah 2: Peta

Peta
Peta
Peta
Peta
Peta
Peta

tut ini berpusat pada kode ESP32 sehingga saya hanya dapat memberi Anda beberapa kata kunci, tautan, dan alat yang digunakan:

layanan terbaik untuk mengekstrak area vektor dari openstreetmap

  • QG "ostic" untuk mencernanya
  • cari tabel atribut untuk menyederhanakan peta Anda
  • buat tata letak cetak dan ekspor peta dalam format svg pada format kertas A3
  • bersenang-senanglah dengan ilustrator yang "lebih halus"
  • cetak ini

Langkah 3: Pesta Lem Panas

Pesta Lem Panas
Pesta Lem Panas
Pesta Lem Panas
Pesta Lem Panas
Pesta Lem Panas
Pesta Lem Panas
Pesta Lem Panas
Pesta Lem Panas

jadi saya dapat menyarankan untuk memotong lubang untuk led dan tampilan di atas kertas sebelum memperbaikinya di papan gabus

pengkabelan sangat sederhana dan dan buruk dilakukan oleh saya: P

Level penyolderan saya: Merpati

seperti yang Anda lihat dari kode, led pergi ke pin IO

#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

cari pinout ESP32 untuk dimengerti

Langkah 4: Produk Jadi

Produk jadi
Produk jadi

jadi foto ini bukan yang terbaik, tetapi ketika kami mendapat banjir sungai, saya akan membuat video yang bagus!

Direkomendasikan: