Mundarija:
- Ta'minotlar
- 1 -qadam: Harorat va namlikni o'lchash
- 2 -qadam: Loyihani yaratish va sozlash
- 3 -qadam: kutubxonalarni o'rnating
- 4 -qadam: DHT11 sensorini ulang
- 5 -qadam: ma'lumotlarni bulutga yuborish
- 6 -qadam: diagnostika
- 7 -qadam: Loyihani ishga tushiring va disk raskadrovka qiling
- 8 -qadam: Boshqaruv paneli konfiguratsiyasi
- 9 -qadam: Xulosa
Video: DHT11/DHT22 sensorini bulutga ESP8266 asosidagi platasi bilan ulash: 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Oldingi maqolada men ESP8266-ga asoslangan NodeMCU kartamni Cloud4RPi xizmatiga uladim. Endi haqiqiy loyiha qilish vaqti keldi!
Ta'minotlar
Uskuna talablari:
- ESP8266 chipiga asoslangan har qanday taxta (masalan, NodeMCU)
- DHT11 yoki DHT22 sensori
Dastur va Xizmatlar:
- Adafruit tomonidan DHT sensorlar kutubxonasi - v1.3.7
- Adafruit yagona sensori - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - IoT qurilmalari uchun bulutli boshqaruv paneli
- VSCode uchun PlatformIO IDE
1 -qadam: Harorat va namlikni o'lchash
Menda DHT11 sensori bor edi, shuning uchun men uni harorat va namlikni o'lchash uchun ishlatishga qaror qildim. Sensor ma'lumotlarini o'qish uchun Arduino kutubxonasini tanlaymiz.
Arduino reestri bir nechta kutubxonalarni o'z ichiga oladi, ulardan men eng mashhurini tanladim.
Ularning GitHub omboriga ko'ra, bizdan Adafruit Unified Sensor paketini qo'shish talab qilinadi.
2 -qadam: Loyihani yaratish va sozlash
Men allaqachon PlatformIO loyihasini qanday yaratish va kutubxonalarni birinchi qismga o'rnatish haqida aytib berdim. Mening loyiham "MyNodeMCU" deb nomlangan. Tuzilishi yuqorida ko'rsatilgan.
Bu loyiha Cloud4RPi-ning biroz o'zgartirilgan namunasidir, men kod o'rniga konfiguratsiya faylida qurilma tokenini va Wi-Fi ma'lumotlarini saqlashga qaror qildim.
Platform.io fayli quyidagicha ko'rinadi:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platforma = espressif8266 framework = arduino taxtasi = nodemcuv2
3 -qadam: kutubxonalarni o'rnating
Kutubxonalarni o'rnatish juda oddiy. Siz buni IDE grafik interfeysidan yoki platform.io faylining lib_deps bo'limiga kerakli kutubxona nomlarini qo'shish orqali qilishingiz mumkin:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit birlashtirilgan sensori DHT datchiklar kutubxonasi build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = / "YID_ID_IF_DI_IFI_DI_IFI_DI_IFI D CLOUD4RPI_TOKEN = / "SIZNING_DEVICE_TOKEN _ \"
Qo'shilgan kutubxonalar avtomatik ravishda loyihaning ichki jildiga o'rnatiladi.
Main.cpp sarlavhasi quyidagicha ko'rinadi:
#qo'shish #qo'shish #qo'shish #qo'shish "DHT.h"
4 -qadam: DHT11 sensorini ulang
Adafruit DHTtester.ino datchik ulanishining misolini taqdim etadi.
Ushbu kod sensorni ishga tushiradi va o'lchov natijasini saqlash uchun tuzilmani belgilaydi (agar u muvaffaqiyatli bo'lsa):
#depine DHTPIN 2 // DHT sensoriga ulangan raqamli pin#DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… tuzilishi DHT_Result {float h; suzuvchi t; }; DHT_Result dhtResult;
Keyingi funksiya sensor ma'lumotlarini o'qish va uni yuqorida tavsiflangan ma'lumotlar tuzilmasida saqlashni ko'rsatadi
void readSensors () {float h = dht.readHumidity (); // Haroratni Selsiy bo'yicha o'qing (standart) float t = dht.readTemperature ();
// O'qish muvaffaqiyatsiz bo'lganligini tekshiring va chiqing
if (isnan (h) || isnan (t)) {Serial.println (F ("DHT sensoridan o'qib bo'lmadi!")); qaytish; } dhtResult.h = h; dhtResult.t = t; }
5 -qadam: ma'lumotlarni bulutga yuborish
Bu ma'lumotlarga ega bo'lgach, keyingi qadam - uni Cloud4RPi xizmatiga yuborish.
Cloud4RPi for Arduino sahifasida quyidagilar uchun qo'llaniladigan usullar to'plami bo'lgan API kutubxonasi tasvirlangan.
- o'zgaruvchilarni yaratish, o'qish va yangilash,
- MQTT protokoli yordamida o'zgarmaydigan qiymatlarni bulutga yuborish.
Kutubxona uchta o'zgaruvchan turni qo'llab -quvvatlaydi: Bool, Raqamli va String.
Kutubxona ishi cloud4rpi.io veb -saytidan Device Token yordamida API nusxasini yaratish bilan boshlanadi (batafsil ma'lumot uchun maqolaning 1 -qismiga qarang).
#if aniqlangan (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #boshqa Cloud4RPi c4r ("!!! _ DEVICE_TOKEN _ !!!"); #endif
Keyin, DHT11 o'qishlari uchun o'zgaruvchilarni e'lon qiling:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Keyin, sensordan ma'lumotlarni oling, ularni o'zgaruvchilarga saqlang va ma'lumotlarni Cloud4RPi -da e'lon qiling:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Harorat va namlik tez o'zgarmaydi, shuning uchun 5 daqiqada bir nechta qiymat yuborish shart emas.
6 -qadam: diagnostika
Cloud4RPi o'zgaruvchan qiymatlar bilan bir qatorda diagnostika ma'lumotlarini qo'llab -quvvatlaydi. Tashxis ma'lumoti sifatida men ish vaqti, Wi-Fi signal kuchi va IP manzilidan foydalandim:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // WiFi signal kuchi c4r.declareDiagVariable ("Ish vaqti");
Eslatma: Ish vaqtini har 50 kunda nolga qaytarish uchun ishlatadigan millis funktsiyasi. Bu mening loyiham uchun etarli.
Quyidagi kod diagnostik o'zgaruvchan qiymatlarni o'rnatadi:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Ish vaqti", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
UptimeHumanReadable funktsiyasi millisekundlarni qulay shaklga o'zgartiradi:
String uptimeHumanReadable (imzosiz uzun millisekundlar) {statik char uptimeStr [32]; imzosiz uzoq soniyalar = millisekund / 1000; imzosiz uzoq daqiqa = sek / 60; imzosiz int soat = min / 60; imzosiz int kunlar = soat / 24; soniya -= min * 60; daqiqa -= soat * 60; soat -= kun * 24; sprintf (uptimeStr, "%d kun%2.2d:%2.2d:%2.2d", (bayt) kun, (bayt) soat, (bayt) daqiqa, (bayt) soniya); Stringni qaytarish (uptimeStr); }
Funktsiya g'alati katta raqam o'rniga 5 kun 10:23:14 qatorini chiqaradi.
7 -qadam: Loyihani ishga tushiring va disk raskadrovka qiling
Yaratilgan kodni kompilyatsiya qilib, uni NodeMCU -da yondirgandan so'ng, qurilma bulutli xizmatga ulanadi va ma'lumotlarni yuborishni boshlaydi.
CLOUD4RPI_DEBUG oldingi protsessor o'zgaruvchisini 1 ga o'rnatish orqali jurnalga yozilishning ko'payishini oshirishingiz mumkin (platform.io faylidagi build_flags bo'limiga -D CLOUD4RPI_DEBUG = 1 qo'shing).
Keyin, cloud4rpi.io saytini oching va Internetda yangi qurilmaga e'tibor bering. Qurilmadan olingan barcha o'zgaruvchan qiymatlarni ko'rish uchun uni oching: sensor va diagnostika.
8 -qadam: Boshqaruv paneli konfiguratsiyasi
Ushbu bosqichda bulutga ma'lumotlar ulanishi ishlaydi. Keling, ma'lumotlarning vizual ko'rinishini sozlaylik.
Quyidagi boshqaruv panelini yaratish uchun boshqaruv paneli konfiguratsion interfeysidan foydalandim.
Boshqaruv paneli almashish mumkin, shuning uchun men uni darhol do'stim bilan bo'lishaman.
9 -qadam: Xulosa
Loyihaning to'liq kodi mohiyatda mavjud.
Hammasi hozircha!
Savollar va takliflar sharhlarda qabul qilinadi.
Tavsiya:
Node.js yordamida Raspberry Pi -ni bulutga qanday ulash mumkin: 7 qadam
Node.js yordamida Raspberry Pi -ni bulutga qanday ulash mumkin: Ushbu qo'llanma Raspberry Pi -ni bulutga, ayniqsa Node.js. yordamida AskSensors IoT platformasiga ulamoqchi bo'lganlar uchun foydalidir. Agar sizda Raspberry Pi yo'qmi? Agar sizda hozir Raspberry Pi bo'lmasa, men sizga malina olishni maslahat beraman
Harorat va namlik sensori (DHT22) Dexter platasi bilan: 7 qadam
Harorat va namlik sensori (DHT22) Dexter platasi bilan: Dexter taxtasi - bu elektronikani o'rganishni qiziqarli va osonlashtiradigan o'quv murabbiylar to'plami. Kengash yangi boshlanuvchilar uchun g'oyani muvaffaqiyatli prototipga o'zgartirish uchun zarur bo'lgan barcha qismlarni birlashtiradi. Arduino qalbida, juda ko'p sonli
Arduino WiFi -ni bulutga ESP8266: 7 qadam yordamida ulash
ESP8266 yordamida Arduino WiFi -ni bulutga ulash: Ushbu qo'llanmada biz sizga Arduino -ni WiFi orqali IoT bulutiga qanday ulashni tushuntiramiz. AskSensors buluti bilan bog'lanish uchun
DHT11 sensorini qanday ulash va kodlash kerak: 8 qadam
DHT11 sensorini qanday ulash va kodlash kerak: Ushbu qo'llanmada siz DHT11 sensorini qanday ulash va kodlashni o'rganasiz. Buni osonlashtiradigan videolar, fotosuratlar va so'zlar bor. Umid qilamanki, bu sizga oson bo'ladi
IoT asoslari: Mongoose OS yordamida IoT -ni bulutga ulash: 5 qadam
IoT asoslari: Mongoose OS yordamida IoT -ni bulutga ulash: Agar siz elektronika va elektronika bilan shug'ullanadigan odam bo'lsangiz, odatda "Internet narsalar" atamasini uchratasiz. Internetga ulanishi mumkin bo'lgan qurilmalar to'plamini bildiradi! Shunday odam bo'lish