Daftar Isi:
- Langkah 1: Spesifikasi Perangkat Keras dan Perangkat Lunak
- Langkah 2: Sensor Tekanan dan Suhu Nirkabel
- Langkah 3: Menghubungkan ke WiFi
- Langkah 4: Menyiapkan UbiDots di ESP32
- Langkah 5: Memublikasikan Pembacaan Sensor ke UbiDots
- Langkah 6: Memvisualisasikan Data
- Langkah 7: Kode Keseluruhan
Video: Memublikasikan Data Sensor Tekanan Nirkabel Menggunakan MQTT: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
ESP32 dan ESP 8266 adalah SoC yang sangat familiar di bidang IoT. Ini adalah semacam anugerah untuk proyek IoT. ESP 32 adalah perangkat dengan WiFi dan BLE terintegrasi. Cukup berikan konfigurasi SSID, kata sandi, dan IP Anda dan integrasikan semuanya ke dalam cloud. Di sini, di instruksi ini, Kami akan merenungkan beberapa istilah dasar IoT seperti platform IoT, MQTT, Captive portal, dll. Jadi, mari kita bahas
- Arsitektur IoT dengan kata yang sangat sederhana terdiri dari perangkat yang disematkan dan platform IoT untuk menempatkan perangkat di cloud. Di sini kami menggunakan platform IoT UbiDots untuk memvisualisasikan data sensor.
- Mengelola pengaturan IP dan kredensial Pengguna dapat membuat pengguna pusing. Bagaimana jika Pengguna ingin mengubah kredensial WiFi? Bagaimana jika pengguna ingin mengganti pengaturan DHCP/IP Statis? Mem-flash ESP32 setiap saat tidak dapat diandalkan dan bahkan bukan solusi untuk masalah ini. Jadi kita akan melalui portal captive untuk menyimpan kredensial WiFi dan konfigurasi lainnya.
- MQTT sekarang menjadi istilah yang sangat umum di dunia IoT. itu telah melampaui permintaan dan tanggapan (HTTP) oleh Publikasikan dan Berlangganan karena arsitektur yang cepat, kuat, dan ramping.
Di sini, di instruksi ini, kita akan menunjukkan.
- Memberikan kredensial WiFi dan MQTT menggunakan Captive Portal.
- Menerbitkan dan Berlangganan beberapa data Sensor ke UbiDots.
- Membaca data Sensor dari Sensor Tekanan dan Suhu Nirkabel
- Hosting formulir web dari ESP32.
- Membaca dan Menulis dari SPIFFS ESP32.
Langkah 1: Spesifikasi Perangkat Keras dan Perangkat Lunak
Spesifikasi Perangkat Keras
- ESP32 WiFi/BLE
- Sensor Tekanan dan Suhu Nirkabel
Spesifikasi Perangkat Lunak
- Arduino IDE
- XCTU
- Utilitas Labview
Langkah 2: Sensor Tekanan dan Suhu Nirkabel
Fitur
- Sensor Kelas Industri Sensor Suhu Tekanan Nirkabel Jarak Jauh
- Rentang Pengoperasian 0 hingga 14000 mbar -40 ° hingga +85 ° C (-40 ° hingga 185 ° F)
- Resolusi Tekanan Perhitungan Internal yang Dapat Dikonfigurasi 0,012 hingga 0,065 mbar
- Resolusi Suhu Perhitungan Internal yang Dapat Dikonfigurasi 0,002 hingga 0,012 °C
- Akurasi ±2,5 mbar, ±2 °C
- Output Tekanan Absolut, Tekanan Relatif, dan Perubahan Ketinggian Relatif
- Jarak Jarak Pandang 2 Mil dengan Antena Di Pesawat
- Jangkauan LOS Superior hingga 28 Miles dengan Antena High-Gain
- Antarmuka ke Raspberry Pi, Microsoft® Azure®, Arduino, dan Lainnya
- Jaringan Mesh Nirkabel menggunakan DigiMesh®
Mengonfigurasi Sensor Tekanan dan Suhu Nirkabel Menggunakan Labview Utility dan XCTU
Sensor berjalan dalam dua mode
- Mode Konfigurasi: Konfigurasikan ID Pan, penundaan, Jumlah percobaan ulang, dll. Lebih lanjut tentang ini berada di luar cakupan instruksi ini dan akan dijelaskan dalam instruksi berikutnya.
- Run Mode: Kami menjalankan perangkat dalam mode Run. Dan untuk menganalisis nilai ini kami menggunakan Labview Utility
UI Labview ini menunjukkan nilai dalam grafik yang bagus. Ini menunjukkan nilai saat ini dan juga masa lalu. Anda dapat membuka tautan ini untuk mengunduh UI Labview. klik ikon Run dari menu halaman arahan untuk masuk ke mode run.
Langkah 3: Menghubungkan ke WiFi
Kami menggunakan portal tawanan untuk menyimpan kredensial WiFi dan mengarahkan kursor ke pengaturan IP. Untuk pengenalan terperinci tentang portal tawanan, Anda dapat mengikuti instruksi berikut.
Portal captive memberi kita pilihan untuk memilih antara pengaturan Statis dan DHCP. Cukup masukkan kredensial seperti IP Statis, Subnet Mask, gateway dan Wireless Sensor Gateway akan dikonfigurasi pada IP tersebut.
Halaman web sedang di-host di mana daftar yang menunjukkan jaringan WiFi yang tersedia dan RSSI di sana. Pilih jaringan WiFi dan kata sandi dan masukkan kirim. Kredensial akan disimpan di EEPROM dan pengaturan IP akan disimpan di SPIFFS. Lebih lanjut tentang ini dapat ditemukan di instruksi ini.
Langkah 4: Menyiapkan UbiDots di ESP32
Di sini kami menggunakan Sensor Tekanan dan Suhu Nirkabel dengan perangkat ESP 32 untuk mendapatkan data suhu dan Kelembaban. Kami mengirimkan data ke UbiDots menggunakan protokol MQTT. MQTT mengikuti mekanisme terbitkan dan berlangganan daripada permintaan dan tanggapan itu. Ini lebih cepat dan andal daripada HTTP. Ini bekerja sebagai berikut.
- Kami menggunakan Penjadwal Tugas untuk Menjadwalkan tugas seperti mengambil data dari sensor, Memublikasikan pembacaan sensor, Berlangganan topik MQTT.
- Pertama, sertakan file header Penjadwal Tugas, itu contoh dan jadwal tugas.
- Kami telah menjadwalkan dua tugas yang mengacu pada dua operasi kontrol yang berbeda.
#define _TASK_TIMEOUT#sertakan Penjadwal ts; //---------Tasks------------// Task tSensor(4 * TASK_SECOND, TASK_FOREVER, &taskSensorCallback, &ts, false, NULL, &taskSensorDisable); Task tWiFi(10* TASK_SECOND, TASK_FOREVER, &taskWiFiCallback, &ts, false, NULL, &taskWiFiDisable);
- Tugas 1 adalah untuk membaca nilai sensor tugas ini berjalan selama 1 detik hingga mencapai batas waktu 10 detik.
- Ketika Task1 mencapai waktu habis Kami terhubung ke Wifi lokal dan broker MQTT.
- Sekarang Tugas 2 diaktifkan dan kami menonaktifkan Tugas 1
- Tugas 2 adalah untuk memublikasikan data sensor ke broker UbiDots MQTT, tugas ini berjalan selama 20 detik hingga mencapai batas waktu 20 detik
- Ketika Task2 mencapai waktunya, Task 1 diaktifkan lagi dan Task2 dinonaktifkan. Di sini sekali lagi, kami mendapatkan nilai yang diperbarui dan prosesnya terus berlanjut.
Membaca Data Sensor I2C
Kami mendapatkan bingkai 29-byte dari Sensor Suhu dan Kelembaban Nirkabel. Bingkai ini dimanipulasi untuk mendapatkan data suhu dan Kelembaban yang sebenarnya
jika (Serial1.available())
{ data[0] = Serial1.read(); penundaan (k); if(data[0]==0x7E) { while (!Serial1.available()); for (i = 1; i< 36; i++) { data = Serial1.read(); penundaan (1); } if(data[15]==0x7F) /////// untuk memeriksa apakah data yang diterima sudah benar { if(data[22]==0x06) //////// pastikan jenis sensor benar { int cTemp = ((((data[24]) * 256) + data[25])); int16_t tekanan_abs = ((((uint16_t)(data[26])<<8)| data[27])*0,001); int rlt_tekanan = (((((data[28]) * 256) + data[29])*0,001); int16_t delta_alt = ((((uint16_t)(data[30])<<8)| data[31])*0,01); baterai float = ((data[18] * 256) + data[19]); tegangan mengambang = 0,00322 * baterai; Serial.print("Nomor Sensor "); Serial.println(data[16]); Serial.print("Jenis Sensor "); Serial.println(data[22]); Serial.print("Versi Firmware "); Serial.println(data[17]); Serial.print("Suhu dalam Celcius:"); Serial.print(cTemp); Serial.println("C"); Serial.print("Tekanan Mutlak:"); Serial.println(abs_tekanan); Serial.print("mbar"); Serial.print("Tekanan Relatif:"); Serial.println(rlt_tekanan); Serial.print("mbar"); Serial.print("Ketinggian Delta:"); Serial.println(delta_alt); Serial.print("meter"); Serial.print("Nilai ADC:"); Serial.println(baterai); Serial.print("Tegangan Baterai:"); Serial.print(tegangan); Serial.println("\n"); if (tegangan < 1) { Serial.println("Waktunya Mengganti Baterai"); } } }else{ for (i = 0; i< 36; i++) { Serial.print(data); Serial.print(", "); penundaan (1); }} } }
Menghubungkan ke UbiDots MQTT API
Sertakan file header untuk proses MQTT
#termasuk
tentukan variabel lain untuk MQTT seperti nama klien, alamat broker, ID token
#define TOKEN "BBFF-************************************" // TOKEN Ubidots Anda#define MQTT_CLIENT_NAME "******************************"
char mqttBroker = "things.ubidots.com";
muatan char[100]; topik karakter[150]; //buat variabel untuk menyimpan token ID toke
Langkah 5: Memublikasikan Pembacaan Sensor ke UbiDots
Buat variabel untuk menyimpan data sensor yang berbeda dan buat variabel karakter untuk menyimpan topik
#define VARIABLE_LABEL_TEMPF "tempF" // Menentukan label variabel#define VARIABLE_LABEL_TEMPC "tempC" // Menentukan label variabel #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Menentukan label variabel
char topik1[100];
char topik2[100]; char topik3[100];
publikasikan data ke topik MQTT yang disebutkan, payload akan terlihat seperti { "tempc": {value: "tempData"}}
sprintf(topik1, "%s", ""); sprintf(topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf(muatan, "%s", ""); // Membersihkan payload sprintf(payload, "{"%s\":", VARIABLE_LABEL_TEMPC); // Menambahkan nilai sprintf(payload, "%s{"value\":%s}", payload, str_cTemp); // Menambahkan nilai sprintf(payload, "%s}", payload); // Menutup tanda kurung kamus Serial.println(payload); Serial.println(client.publish(topic1, payload) ? "diterbitkan": "tidak dipublikasikan"); //Lakukan hal yang sama untuk topik lain juga
client.publish() menerbitkan data ke UbiDots
Langkah 6: Memvisualisasikan Data
- Pergi ke Ubidots dan Login ke akun Anda.
- Arahkan ke Dasbor dari tab Data yang tercantum di atas.
- Sekarang klik ikon "+" untuk menambahkan widget baru.
- Pilih widget dari daftar dan tambahkan variabel dan perangkat.
- Data sensor dapat divisualisasikan di dasbor menggunakan widget yang berbeda.
Langkah 7: Kode Keseluruhan
Kode Over untuk HTML dan ESP32 dapat ditemukan di repositori GitHub ini.
Kredit
- papan pelarian ncd ESP32.
- Sensor Tekanan dan Suhu Nirkabel ncd
- klien pub
- UbiDots
- Penjadwal Tugas
Direkomendasikan:
Data Sensor Getaran dan Suhu Nirkabel ke MySQL Menggunakan Node-RED: 40 Langkah
Data Sensor Getaran dan Suhu Nirkabel ke MySQL Menggunakan Node-RED: Memperkenalkan sensor getaran dan suhu nirkabel NCD Long Range IoT Industrial, yang membanggakan penggunaan struktur jaringan mesh nirkabel hingga jarak 2 mil. Menggabungkan sensor getaran dan suhu 16-bit yang presisi, perangkat ini
Mengirim Data Sensor Getaran dan Suhu Nirkabel ke Excel Menggunakan Node-RED: 25 Langkah
Mengirimkan Data Sensor Getaran dan Suhu Nirkabel ke Excel Menggunakan Node-RED: Memperkenalkan sensor getaran dan suhu nirkabel NCD Long Range IoT Industrial, yang membanggakan penggunaan struktur jaringan mesh nirkabel hingga jarak 2 mil. Menggabungkan sensor getaran dan suhu 16-bit yang presisi, perangkat ini
Cara Memublikasikan Data ESP32 Dengan Stempel Waktu NTP ke IoT Cloud: 5 Langkah
Cara Memublikasikan Data ESP32 Dengan Stempel Waktu NTP ke Cloud IoT: Dalam banyak aplikasi, pengguna perlu mengirim data mereka bersama dengan stempel waktu lokal dari nilai yang akan dikirim dalam muatan ke cloud AskSensors IoT. Format stempel waktu adalah waktu UNIX Epoch: jumlah milidetik yang telah berlalu sejak Januari
Robot Arduino Nirkabel Menggunakan Modul Nirkabel HC12: 7 Langkah
Robot Arduino Nirkabel Menggunakan Modul Nirkabel HC12: Hai teman-teman, selamat datang kembali. Pada postingan saya sebelumnya, saya sudah menjelaskan apa itu Rangkaian H Bridge, IC driver motor L293D, membonceng IC driver Motor L293D untuk mengemudikan driver motor arus tinggi dan bagaimana Anda dapat merancang dan membuat Papan Driver motor L293D Anda sendiri
UbiDots-Menghubungkan ESP32 dan Memublikasikan Beberapa Data Sensor: 6 Langkah
UbiDots-Menghubungkan ESP32 dan Menerbitkan Beberapa Data Sensor: ESP32 dan ESP 8266 adalah SoC yang sangat familiar di bidang IoT. Ini adalah semacam keuntungan bagi proyek IoT. ESP 32 adalah perangkat dengan WiFi dan BLE terintegrasi. Cukup berikan konfigurasi SSID, kata sandi, dan IP Anda dan integrasikan semuanya ke dalam