Logger data ESP32 adalah sistem akuisisi data yang efisien biaya yang mendukung sensor kawat yang bergetar dan sensor lainnya dengan protokol TTL RS-485, TTL. Untuk mengatur logger data sebagai pengguna akhir, Anda dapat memasukkannya ke komputer Anda, dan mengkonfigurasi logger di situs web menggunakan browser. Untuk konfigurasi lanjutan, Anda dapat memprogram kode Anda sendiri dan mem -flash logger pada PC, menggunakan PlatformIO atau Arduino IDE.
Gunakan panduan ini: https://community.platformio.org/t/redirect-esp32-log-mansages-to-sd-card/33734, perbarui esp32-hal-log.h untuk mendefinisikan TAG
#ifdef USE_ESP_IDF_LOG
#ifndef TAG
#define TAG "myAPP"
#endif
Perbarui platformio.ini untuk menyertakan:
build_flags= -DUSE_ESP_IDF_LOG -DCORE_DEBUG_LEVEL=5
Sertakan perpustakaan dan definisi berikut:
#include "esp_log.h"
#include "esp32-hal-log.h"
#define LOG_LEVEL ESP_LOG_WARN
#define MY_ESP_LOG_LEVEL ESP_LOG_INFO
Masalah Driver Mac OS: https://arduino.stackexchange.com/questions/91111/how-to-install-ftdi-serial-drivers-on-muc
Aktifkan server web async di
#define ELEGANTOTA_USE_ASYNC_WEBSERVER 1
Untuk memberi daya kit pengembangan ESP32 melalui USB, baterai 18650 digunakan. Namun, untuk tujuan produksi, PCB khusus akan dirancang, dan modul harus ditenagai melalui pin 3V3 atau VIN untuk meminimalkan kehilangan daya. Untuk memanfaatkan tenaga surya, perisai 18650 digunakan, memfasilitasi catu daya ke ESP32. Tautan AliExpress ini memberikan detail tentang perisai. Kisaran tegangan input ditentukan sebagai 5V hingga 8V, meskipun tes pendahuluan menunjukkan bahwa panel surya 5V berfungsi. Validasi lebih lanjut akan dilakukan. SD tampaknya hanya bekerja dengan kekuatan dari Vin Pin dengan konverter buck di antaranya.
Tabel berikut menguraikan konsumsi ESP32 saat ini di bawah berbagai mode operasi:
| Mode | Konsumsi saat ini |
|---|---|
| WiFi TX, DSSS 1 Mbps, Pout = +19.5 DBM | 240 ma |
| WiFi TX, OFDM 54 Mbps, Pout = +16 DBM | 190 ma |
| WiFi TX, OFDM MCS7, POUT = +14 DBM | 180 ma |
| Wifi rx (mendengarkan) | (95 ~ 100) ma |
| Bt/ble tx, cibiran = 0 dBm | 130 ma |
| Bt/ble rx (mendengarkan) | (95 ~ 100) ma |
Saat ini, pengaturan mencakup dua panel surya 0,3W 5V, yang mampu memasok maksimum 120mA ke perisai.
Logger harus disinkronkan dengan server NTP setelah power-up menggunakan configTime dari The time.h Library. Gunakan getLocalTime(&timeinfo) untuk mendapatkan waktu saat ini. Fungsi ini harus dipanggil dalam fungsi logging untuk mendapatkan waktu yang tepat. Namun, waktu tidak akan disimpan jika listrik hilang. Modul RTC diperlukan untuk menyediakan waktu tanpa WiFi setelah Powerloss. Catatan: Tidak yakin apakah implementasi saat ini (RTCLIB) akan polling server NTP secara berkala. Namun, implementasi resmi oleh Espressif melakukan jajak pendapat secara berkala. https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/system_time.html
Perhatikan bahwa baik DS1307 dan layar OLED terhubung ke bus I2C, bus yang sama tetapi alamat yang berbeda. Perpustakaan dirancang sedemikian rupa sehingga mereka dapat memindai bus I2C untuk alamat umum. Gunakan panduan ini: https://esp32io.com/tutorials/esp32-ds1307-rtc-module Perhatikan bahwa modul RTC kecil tidak berfungsi dengan 3v3, sebaliknya VIN harus disediakan.
Espressif Dokumentasi tentang Tabel Partisi: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html jika menggunakan platformio, Partisi default dapat ditemukan di direktori ini: .platformio/packages/framework-arduinoespressif32/tools/partitions
https://components101.com/modules/micro-sd-card-module-pinout-features-datasheet-alternatives https://www.electronicwings.com/esp32/microsd-card-interfacing-with-esp32
Tidak yakin, menyimpan file berdasarkan tanggal mungkin cukup.
Fungsi WiFi.onEvent() digunakan untuk mendaftarkan fungsi panggilan balik, WiFiEvent , yang akan dipanggil ketika peristiwa WiFi terjadi. Dalam fungsi WiFevent, kami memeriksa acara SYSTEM_EVENT_STA_DISCONNECTED , menunjukkan pemutusan WiFi. Ketika peristiwa ini terjadi, kami memanggil reconnectToWiFi() untuk mencoba koneksi kembali. Dengan cara ini, logika penyambungan kembali dienkapsulasi dalam panggilan balik yang lebih baik, menjaga fungsi loop () bebas dari kode yang berhubungan dengan koneksi ulang.
Todo. Fungsi ini dipicu ketika sakelar tombol tekan fisik diklik, ESP32 akan dimulai sebagai titik akses WiFi untuk memungkinkan pengguna terhubung ke sana melalui WiFi. Situs web konfigurasi perangkat akan dilayani melalui WiFi. https://dronebotworkshop.com/wifimanager/ Baca masalah ini untuk mempelajari cara menghapus pengaturan wifi dari ESP32, tautan. Kalau tidak, ESP32 akan boot dan menggunakan pengaturan sebelumnya secara otomatis, benar -benar dapat mengacaukan.
ESP32 harus meminta IP statis dari titik akses (misalnya router WiFi, router LTE); Pendekatan lain adalah mengatur IP statis di halaman admin router untuk ESP32. Router mungkin memiliki alamat IP dinamis yang mungkin kedaluwarsa setiap beberapa hari, kecuali jika IP statis dibeli dari ISP. TODO: API ESP32 untuk memperbarui IP ke Server Manajemen.
Untuk sebagian besar aplikasi infrastruktur sipil di mana pemantauan latensi rendah tidak kritis dan laju data tidak terlalu tinggi, Lorawan muncul sebagai standar industri. Namun, dalam skenario yang menuntut tingkat data yang lebih tinggi, ESP sekarang dapat dimanfaatkan untuk proyek jarak yang lebih pendek. Untuk proyek jarak yang lebih jauh, pendekatan alternatif dapat melibatkan mengintegrasikan modem sel tambahan ke dalam setiap stasiun dan melepaskan interkoneksi antar stasiun. ESP Now - Peer to Peer ESP32 Communications
Referensi: Intro ke Lorawan oleh Andreas Spiess.
| Aspek | Esp-now | Lorawan |
|---|---|---|
| Jangkauan | Jarak pendek, area lokal | Jarak jauh, luas |
| Konsumsi daya | Daya rendah | Kekuatan ultra-rendah |
| Laju data | Laju data yang tinggi, waktu nyata | Laju data rendah, dioptimalkan untuk rentang |
| Topologi | Peer-to-Peer (P2P) | Bintang bintang |
| Skalabilitas | Jaringan kecil hingga menengah | Jaringan skala besar |
| Peraturan | 2,4 GHz ISM Band | Band ISM Sub-Gigahertz |
| Infrastruktur | Termasuk dalam modul Bare ESP32 | Diperlukan perangkat gateway |
Setelah melakukan penelitian, tampaknya menerapkan Lorawan membutuhkan perangkat gateway. Namun, memilih ESP-NOW memberikan solusi alternatif dan memungkinkan untuk eksplorasi kemungkinan ekstensi rentang. Lorawan dapat ditambahkan saat anggaran tersedia.
Jika Lora Gateway tidak perlu, firmware untuk semua perangkat ESP32 dapat tetap serupa. Hanya "perangkat gateway" atau stasiun utama yang membutuhkan penyesuaian untuk menangani komunikasi data dan kombinasi tabel data untuk permintaan HTTP dari klien jarak jauh. Substations masih harus mendukung komunikasi WiFi lokal dan melayani halaman web untuk pengguna di area tanpa layanan seluler.
Perangkat akan dikonfigurasi melalui antarmuka WiFi Manager, yang pada dasarnya melayani situs web untuk pengguna mengatur mode.
Papan ESP-32 DEV dengan koneksi antena eksternal yang tersedia direkomendasikan: ESP32-WROOM-U. Mode jarak jauh ESP-sekarang harus diselidiki di daerah perkotaan dan pedesaan.
Fungsi pencatatan data harus mendukung berbagai mode logging. Dapat digeneralisasi berdasarkan protokol yang digunakan: I2C, SPI, RS485, dll. Bacaan harus disimpan pertama pada perangkat, sebelum mengirim ESP-sekarang. Konfirmasi diperlukan sebelum menghapus file.
Saat berinteraksi dengan periferal baru, monitor pin GPIO ini dapat memberikan pemantauan jarak jauh pengguna untuk membuat prototipe.
ToDo tidak diuji namun sensor kawat yang bergetar, sensor analog, SaaS. Saya ingin memiliki kemampuan yang sama: https://www.geo-instruments.com/technology/wireless-logger-networks/
Gunakan ESP32 Vin Out untuk catu daya, multimeter menunjukkan tegangan sekitar 4,5V. Hubungkan ESP32 VIN ke V33 di VM501, GND ke GND. Inisialisasi port UART 1 dengan GPIO16 sebagai RX dan GPIO17 sebagai TX. Jalankan HardwareSerial VM(1); Untuk mengonfigurasi port UART di ESP32. Jalankan VM.begin(9600, SERIAL_8N1, 16, 17); Untuk menginisialisasi port UART 1 dengan GPIO16 sebagai RX dan GPIO17 sebagai TX. Fungsi protokol UART VM.Serial yang diimplementasikan dalam proyek ini didasarkan pada protokol Modbus:
Versi bebas elegantota saat ini digunakan tanpa lisensi untuk aplikasi komersial. Documentaion: https://docs.elegantota.pro/ Untuk aplikasi komersial, perpustakaan pembungkus Arduino OTA sederhana dapat dikembangkan untuk menghindari elegantota. TODO Develope versi OTA sendiri untuk menghindari pembatasan. Yang penting, ingatlah untuk mengaktifkan Async Webserver Opetion di ElegantOTA.h di ./pio/libdeps/esp32dev/ElegantOTA .
Sebuah contoh asyncwebserver dibuat pada port 80. Fungsi panggilan balik diatur untuk menangani permintaan HTTP GET yang masuk di root ("/") dengan menanggapi dengan konten file yang disimpan dalam sistem file Spiffs. Sesuaikan variabel nama file agar sesuai dengan file yang diinginkan. Setelah mengkonfigurasi server, itu dimulai dengan server.begin() .
Ditempel menggunakan preferensi.h Perpustakaan.
credentials
{
"WIFI_SSID": "*********",
"WIFI_PASSWORD": "**********",
"gmtOffset_sec": "************"
}
Master Logger harus memiliki daftar master dari semua informasi sistem gardu.
[
{
"macAddress": "30:83:98:00:52:8C",
"batteryVoltage": "3.7V"
},
{
"macAddress": "30:83:98:00:52:8C",
"batteryVoltage": "3.7V"
},
]
Logger harus menyala di rute /api/readings untuk permintaan waktu. Klien dapat menentukan sensorId , start and end , dan readingsOptions . Permintaan sampel akan terlihat seperti berikut:
/api/readings?sensorId=238&start=2024-02-06T13:40:00&end=2024-02-13T13:40:00&readingsOptions=0
Dibuat oleh Qiwei Mao
Tutorial nerd acak: https://randomnerdtutorials.com/projects-esp32/ dasbor: https://github.com/ayushsharma82/esp-dash github referensi https://github.com/topics/sensorsorsors-collection