Mundarija:
- 1 -qadam: Uskuna va dasturiy ta'minot spetsifikatsiyasi
- 2 -qadam: Simsiz bosim va harorat sensori
- 3 -qadam: Wi -Fi tarmog'iga ulanish
- 4 -qadam: UbiDots -ni ESP32 -ga o'rnatish
- 5 -qadam: Sensor o'qilishini UbiDots -da nashr etish
- 6 -qadam: ma'lumotlarni vizualizatsiya qilish
- 7 -qadam: Umumiy kod
Video: MQTT yordamida simsiz bosim sensori ma'lumotlarini nashr qilish: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
ESP32 va ESP 8266 IoT sohasida juda tanish SoC. Bu IoT loyihalari uchun katta foyda. ESP 32 - bu o'rnatilgan Wi -Fi va BLE qurilmasi. Faqat SSID, parol va IP konfiguratsiyasini bering va narsalarni bulutga birlashtiring. Bu erda biz IoT platformasi, MQTT, Captive portallari va boshqalar kabi IoTning ba'zi asosiy shartlari haqida o'ylaymiz.
- IoT arxitekturasi juda sodda so'zlar bilan aytganda, qurilmani bulutga joylashtirish uchun o'rnatilgan qurilma va IoT platformasidan iborat. Bu erda biz sensor ma'lumotlarini vizualizatsiya qilish uchun UbiDots IoT platformasidan foydalanmoqdamiz.
- IP sozlamalari va foydalanuvchi ma'lumotlarini boshqarish foydalanuvchi uchun bosh og'rig'i bo'lishi mumkin. Agar foydalanuvchi WiFi hisob ma'lumotlarini o'zgartirmoqchi bo'lsa nima bo'ladi? Agar foydalanuvchi DHCP/Statik IP sozlamalarini o'zgartirishni xohlasa nima bo'ladi? ESP32 -ning har doim yonib -o'chishi ishonchli emas va hatto bu muammolarni hal qilmaydi. Shunday qilib, biz WiFi hisob ma'lumotlarini va boshqa konfiguratsiyalarni saqlash uchun asir portalidan o'tamiz.
- MQTT endi IoT dunyosida juda keng tarqalgan atamaga aylanmoqda. u tez, mustahkam va nozik arxitektura tufayli nashr etish va obuna bo'lish talablari va javoblaridan (HTTP) oshib ketdi.
Bu erda biz ko'rsatmoqchi bo'lamiz.
- Captive Portal yordamida WiFi va MQTT ma'lumotlarini berish.
- Sensorli ma'lumotlarni UbiDots -ga nashr qilish va obuna qilish.
- Sensor ma'lumotlarini simsiz bosim va harorat sensori orqali o'qish
- ESP32 veb -shaklini joylashtirish.
- SPIFFS ESP32 dan o'qish va yozish.
1 -qadam: Uskuna va dasturiy ta'minot spetsifikatsiyasi
Uskuna texnik xususiyatlari
- ESP32 WiFi/BLE
- Simsiz bosim va harorat sensori
Dastur xususiyatlari
- Arduino IDE
- XCTU
- Labview yordam dasturi
2 -qadam: Simsiz bosim va harorat sensori
Xususiyatlari
- Sanoat darajasi sensori uzoq masofali simsiz bosim harorati sensori
- Ishlash diapazoni 0 dan 14000 mbargacha -40 ° dan +85 ° C gacha (-40 ° dan 185 ° F gacha)
- Konfiguratsiya qilinadigan ichki hisoblash bosimining o'lchamlari 0,012 dan 0,065 mbargacha
- Konfiguratsiya qilinadigan ichki hisoblash harorati o'lchamlari 0,002 dan 0,012 ° S gacha
- Aniqlik ± 2,5 mbar, ± 2 ° S
- Mutlaq bosim, nisbiy bosim va nisbiy balandlikning o'zgarishi
- Bort antennasi bilan 2 mil masofali ko'rish masofasi
- Yuqori daromadli antennalar bilan 28 milgacha bo'lgan yuqori LOS diapazoni
- Raspberry Pi, Microsoft® Azure®, Arduino va boshqalarga interfeys
- DigiMesh® yordamida simsiz tarmoq
Labview Utility va XCTU yordamida simsiz bosim va harorat sensori konfiguratsiyasi
Sensor ikki rejimda ishlaydi
- Konfiguratsiya rejimi: Pan identifikatorini, kechiktirishni, qayta urinishlar sonini va boshqalarni sozlang. Bu haqda ko'proq ma'lumot berish mumkin emas va keyingi ko'rsatmada tushuntiriladi.
- Ishlash rejimi: Biz qurilmani Ishlash rejimida ishga tushiramiz. Va bu qiymatni tahlil qilish uchun biz Labview Utility dasturidan foydalanamiz
Bu Labview foydalanuvchi interfeysi qiymatlarni chiroyli grafiklarda ko'rsatadi. U hozirgi va o'tgan qiymatlarni ko'rsatadi. Labview UI -ni yuklab olish uchun ushbu havolaga o'tishingiz mumkin. ishga tushirish rejimiga o'tish uchun ochilish sahifasi menyusidagi Ishga tushirish belgisini bosing.
3 -qadam: Wi -Fi tarmog'iga ulanish
Biz Wi -Fi ma'lumotlarini saqlash va IP sozlamalari bo'ylab harakatlanish uchun asir portalidan foydalanmoqdamiz. Asir portalda batafsil tanishish uchun siz quyidagi ko'rsatmalarni o'tishingiz mumkin.
Asir portal bizga Statik va DHCP sozlamalarini tanlash imkoniyatini beradi. Statik IP, pastki tarmoq niqobi, shlyuz va simsiz sensorlar shluzi kabi hisob ma'lumotlarini kiriting, u IP -da sozlanadi.
Veb -sahifa mavjud, u erda mavjud WiFi tarmoqlari va RSSI ko'rsatiladigan ro'yxat mavjud. Wi -Fi tarmog'ini va parolni tanlang va yuborishni kiriting. Hisob ma'lumotlari EEPROMda saqlanadi va IP sozlamalari SPIFFSda saqlanadi. Bu haqida ko'proq ma'lumotni ushbu ko'rsatmalarni topishingiz mumkin.
4 -qadam: UbiDots -ni ESP32 -ga o'rnatish
Bu erda harorat va namlik ma'lumotlarini olish uchun ESP 32 qurilmasi bilan simsiz bosim va harorat sensorlaridan foydalanamiz. Biz ma'lumotlarni UbiDots -ga MQTT protokoli yordamida yuboramiz. MQTT nashr qilish va obuna bo'lish mexanizmidan ko'ra, so'rov va javobdan ko'ra ishlaydi. Bu HTTP -ga qaraganda tezroq va ishonchli. Bu quyidagicha ishlaydi.
- Biz vazifalarni rejalashtirish uchun sensorlar ma'lumotlarini olish, sensorlar o'qilishini nashr etish, MQTT mavzusiga obuna bo'lish kabi vazifalarni rejalashtirish uchun foydalanamiz.
- Birinchidan, Task Scheduler sarlavha fayllarini kiriting, bu misol va vazifalarni rejalashtiradi.
- Biz ikki xil nazorat operatsiyalari bilan bog'liq ikkita vazifani rejalashtirdik.
#define _TASK_TIMEOUT#o'z ichiga Scheduler ts; // --------- Vazifalar ------------ // Vazifa tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); TWiFi vazifasi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Vazifa 1 sensor qiymatini o'qish uchun mo'ljallangan, bu vazifa 10 soniya tugashiga qadar 1 soniya davomida ishlaydi.
- Vazifa 1 tugashi bilan biz mahalliy Wifi va MQTT brokeriga ulanmoqdamiz.
- Endi 2 -topshiriq yoqilgan va biz 1 -topshiriqni o'chirib qo'yamiz
- Vazifa 2 sensor ma'lumotlarini UbiDots MQTT brokeriga e'lon qilish uchun mo'ljallangan, bu vazifa 20 sekundgacha 20 sekundgacha ishlaydi.
- Vazifa 2 tugashi bilan Vazifa 1 yana yoqiladi va Vazifa 2 o'chiriladi. Bu erda biz yangilangan qiymatni olamiz va jarayon davom etadi.
I2C sensori ma'lumotlarini o'qish
Biz simsiz harorat va namlik sensorlaridan 29 baytli ramka olamiz. Bu ramka haqiqiy harorat va namlik ma'lumotlarini olish uchun boshqariladi
agar (Serial1.available ())
{ma'lumotlar [0] = Serial1.read (); kechikish (k); if (data [0] == 0x7E) {while (! Serial1.available ()); uchun (i = 1; i <36; i ++) {ma'lumotlar = Serial1.read (); kechikish (1); } if (ma'lumotlar [15] == 0x7F) /////// qaytariladigan ma'lumotlarning to'g'riligini tekshirish uchun {if (ma'lumotlar [22] == 0x06) //////// sensor turiga ishonch hosil qiling. to'g'ri {int cTemp = ((((ma'lumotlar [24]) * 256) + ma'lumotlar [25])); int16_t abs_pressure = (((((uint16_t) (ma'lumotlar [26]) << 8) | ma'lumotlar [27])*0,001); int rlt_pressure = ((((ma'lumotlar [28]) * 256) + ma'lumotlar [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (ma'lumotlar [30]) << 8) | ma'lumotlar [31])*0,01); float batareya = ((ma'lumotlar [18] * 256) + ma'lumotlar [19]); suzuvchi kuchlanish = 0,00322 * batareya; Serial.print ("Sensor raqami"); Serial.println (ma'lumotlar [16]); Serial.print ("Sensor turi"); Serial.println (ma'lumotlar [22]); Serial.print ("Dasturiy ta'minot versiyasi"); Serial.println (ma'lumotlar [17]); Serial.print ("Selsiy bo'yicha harorat:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Mutlaq bosim:"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("Nisbiy bosim:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta balandligi:"); Serial.println (delta_alt); Serial.print ("metr"); Serial.print ("ADC qiymati:"); Serial.println (batareya); Serial.print ("Batareya quvvati:"); Ketma -ket chop etish (kuchlanish); Serial.println ("\ n"); if (kuchlanish <1) {Serial.println ("Batareyani almashtirish vaqti"); }}} else {for (i = 0; i <36; i ++) {Serial.print (ma'lumotlar ); Serial.print (","); kechikish (1); }}}}
UbiDots MQTT API -ga ulanish
MQTT jarayoni uchun sarlavha faylini qo'shing
#qo'shing
MQTT uchun mijoz nomi, broker manzili, token identifikatori kabi boshqa o'zgaruvchilarni aniqlang
#define TOKEN "BBFF-*********************************" // Sizning Ubidots TOKEN #ingizni belgilang MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
yuk yuki [100]; char mavzusi [150]; // token identifikatorini saqlash uchun o'zgaruvchini yarating
5 -qadam: Sensor o'qilishini UbiDots -da nashr etish
Har xil sensor ma'lumotlarini saqlash uchun o'zgaruvchilar yarating va mavzuni saqlash uchun char o'zgaruvchisini yarating
#define VARIABLE_LABEL_TEMPF "tempF" // O'zgaruvchilar yorlig'ini belgilash #VARIABLE_LABEL_TEMPC "tempC" ni belgilash // O'zgaruvchilar yorlig'ini belgilash #define VARIABLE_LABEL_BAT "bat" #VARIABLE_LABEL_HUMID "nam nam" ni belgilash //
char mavzu1 [100];
char mavzu2 [100]; char mavzu3 [100];
ma'lumotlarni MQTT mavzusida e'lon qiling, yuk "{tempc": {value: "tempData"}} kabi ko'rinadi
sprintf (mavzu1, "%s", ""); sprintf (mavzu1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (yuk, "%s", ""); // Sprintf yukini tozalaydi (yuk, "{"%s / ":", VARIABLE_LABEL_TEMPC); // sprintf qiymatini qo'shadi (yuk, "%s {" qiymati / ":%s}", yuk, str_cTemp); // sprintf qiymatini qo'shadi (yuk, "%s}", yuk); // Serial.println (foydali yuk) lug'at qavslarini yopadi; Serial.println (client.publish (mavzu1, yuk)? "Chop etilgan": "nashr etilmagan"); // Boshqa mavzu uchun ham shunday qiling
client.publish () ma'lumotlarni UbiDots -da e'lon qiladi
6 -qadam: ma'lumotlarni vizualizatsiya qilish
- Ubidots -ga o'ting va hisobingizga kiring.
- Yuqorida ko'rsatilgan Ma'lumotlar yorlig'idan Boshqaruv paneliga o'ting.
- Endi yangi vidjetlarni qo'shish uchun "+" belgisini bosing.
- Ro'yxatdan vidjetni tanlang va o'zgaruvchi va qurilmalarni qo'shing.
- Sensor ma'lumotlarini asboblar panelida turli vidjetlar yordamida ko'rish mumkin.
7 -qadam: Umumiy kod
HTML va ESP32 uchun Over kodini ushbu GitHub omboridan topish mumkin.
Kreditlar
- ncd ESP32 uzilish taxtasi.
- ncd Simsiz bosim va harorat sensori
- publisubent
- UbiDots
- Vazifalarni rejalashtiruvchi
Tavsiya:
IoT: Node-RED yordamida yorug'lik sensori ma'lumotlarini vizualizatsiya qilish: 7 qadam
IoT: Node-RED yordamida yorug'lik sensori ma'lumotlarini vizualizatsiya qilish: Bu ko'rsatmada siz Internetga ulangan sensorni qanday yaratishni o'rganasiz! Men bu namoyish uchun tashqi yorug'lik sensori (TI OPT3001) dan foydalanaman, lekin siz tanlagan har qanday sensor (harorat, namlik, potansiyometr va boshqalar) ishlaydi. Sensor qiymatlari
Node-RED yordamida simsiz tebranish va harorat sensori ma'lumotlarini Excelga yuborish: 25 qadam
Node-RED yordamida simsiz tebranish va harorat sensori ma'lumotlarini Excelga yuborish: NCD-ning uzoq masofali IoT sanoat simsiz tebranish va harorat sensori bilan tanishish, 2 millik masofaga qadar simsiz tarmoq tarmog'idan foydalanish. 16-bitli aniq tebranish va harorat sensori bilan jihozlangan ushbu qurilma
ESP32 ma'lumotlarini NTP vaqt tamg'asi yordamida IoT bulutiga qanday nashr qilish kerak: 5 qadam
NTP vaqt tamg'asi yordamida ESP32 ma'lumotlarini IoT Cloud -da qanday chop etish kerak: Ko'pgina ilovalarda foydalanuvchilar o'z ma'lumotlarini yuklanish vaqtida AskSensors IoT bulutiga yuboriladigan qiymatlarning mahalliy vaqt tamg'asi bilan birga yuborishlari kerak. Vaqt tamg'asi formati - UNIX davrining vaqti: Yanvadan beri o'tgan millisekundlar soni
IoT uzoq masofali simsiz harorat va namlik sensori ma'lumotlarini Google jadvaliga yuborish: 39 qadam
IoT uzoq masofali simsiz harorat va namlik sensori ma'lumotlarini Google jadvaliga yuborish: biz bu erda NCD harorat va namlik sensori ishlatamiz, lekin har qanday ncd mahsuloti uchun qadamlar teng bo'lib qoladi, shuning uchun agar sizda boshqa ncd simsiz sensorlar bo'lsa, kuzatib boring. yonida. Ushbu matnni to'xtatish orqali siz
Google Charts yordamida simsiz sensor ma'lumotlarini vizualizatsiya qilish: 6 qadam
Google Charts yordamida simsiz sensorlar ma'lumotlarini vizualizatsiya qilish: Mashinaning ishlamay qolish vaqtini kamaytirish uchun mashinalarni bashoratli tahlil qilish juda zarur. Muntazam tekshirish mashinaning ishlash vaqtini oshiradi va o'z navbatida uning xatolarga chidamliligini oshiradi. Simsiz tebranish va harorat sen