Mündəricat:
- Təchizat
- Addım 1: Temperaturu və Rütubəti ölçün
- Addım 2: Layihə yaradın və konfiqurasiya edin
- Addım 3: Kitabxanaları quraşdırın
- Addım 4: DHT11 Sensorunu qoşun
- Addım 5: Məlumatları Buluda Göndərin
- Addım 6: Diaqnostika
- Addım 7: Layihəyə başlayın və ayıklayın
- Addım 8: Dashboard Konfiqurasiyası
- Addım 9: Nəticə
Video: Bir DHT11/DHT22 Sensorunu ESP8266 əsaslı bir lövhə ilə buluda bağlamaq: 9 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Əvvəlki məqalədə, ESP8266 əsaslı NodeMCU lövhəmi Cloud4RPi xidmətinə bağladım. İndi real bir layihənin vaxtıdır!
Təchizat
Avadanlıq tələbləri:
- ESP8266 çipinə əsaslanan hər hansı bir lövhə (məsələn, NodeMCU)
- DHT11 və ya DHT22 sensoru
Proqram və xidmətlər:
- Adafruit tərəfindən DHT sensor kitabxanası - v1.3.7
- Adafruit Vahid Sensor - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - IoT cihazları üçün bulud idarəetmə paneli
- VSCode üçün PlatformIO IDE
Addım 1: Temperaturu və Rütubəti ölçün
Artıq DHT11 sensorum var idi, buna görə temperatur və rütubət ölçmələri üçün istifadə etməyə qərar verdim. Sensor məlumatlarını oxumaq üçün bir Arduino kitabxanası seçək.
Arduino reyestrində ən populyarını seçdiyim bir neçə kitabxana var.
GitHub depolarına görə, bizdən də Adafruit Unified Sensor paketi əlavə etməyimiz tələb olunur.
Addım 2: Layihə yaradın və konfiqurasiya edin
PlatformIO layihəsinin necə yaradılacağını və birinci hissədə kitabxanaların necə qurulacağını artıq təsvir etmişəm. Layihəm "MyNodeMCU" adlanır. Quruluş yuxarıda göstərilmişdir.
Bu layihə bir az dəyişdirilmiş Cloud4RPi nümunəsidir. Cihaz simvolunu və Wi-Fi etimadnaməsini kod yerinə konfiqurasiya faylında saxlamağa qərar verdim.
Platform.io faylı belə görünür:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 çərçivə = arduino lövhəsi = nodemcuv2
Addım 3: Kitabxanaları quraşdırın
Kitabxanaların quraşdırılması olduqca sadədir. Bunu IDE -nin qrafik interfeysindən və ya tələb olunan kitabxana adlarını platform.io faylının lib_deps hissəsinə əlavə edərək edə bilərsiniz:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit Birləşdirilmiş Sensor DHT sensorlar kitabxanası build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = "-WD_ID_ID_IF_I_I_I_I_D D CLOUD4RPI_TOKEN = / "_ SİZİN_DİVİK_TOKEN _ \"
Əlavə edilmiş kitabxanalar avtomatik olaraq bir layihənin alt qovluğuna quraşdırılacaq.
Main.cpp başlığı belə görünür:
#daxil edin #əlavə edin "daxil edin" "DHT.h" daxil edin
Addım 4: DHT11 Sensorunu qoşun
Adafruit, DHTtester.ino bir sensor bağlantısı nümunəsi təqdim edir.
Bu kod bir sensoru işə salır və ölçmə nəticəsini saxlamaq üçün bir quruluşu təyin edir (müvəffəqiyyətli olduğu təqdirdə):
#dehine DHTPIN 2 // DHT sensoruna qoşulan rəqəmsal pin#DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… DHT_Result {float h; üzmək t; }; DHT_Result dhtResult;
Növbəti funksiya, sensor məlumatlarının necə oxunacağını və yuxarıda təsvir edilən məlumat strukturunda necə saxlanılacağını göstərir
void readSensors () {float h = dht.readHumidity (); // İstiliyi Celsius olaraq oxuyun (standart) float t = dht.readTemperature ();
// Oxunanların uğursuz olub olmadığını yoxlayın və çıxın
if (isnan (h) || isnan (t)) {Serial.println (F ("DHT sensorundan oxunmadı!")); qayıtmaq; } dhtResult.h = h; dhtResult.t = t; }
Addım 5: Məlumatları Buluda Göndərin
Bu məlumatları əldə etdikdən sonra növbəti addım onu Cloud4RPi xidmətinə göndərməkdir.
Arduino üçün Cloud4RPi səhifəsi, kitabxana API'sini təsvir edir, bu da aşağıdakılar üçün istifadə olunur:
- dəyişənlər yaratmaq, oxumaq və yeniləmək,
- MQTT protokolundan istifadə edərək dəyişən dəyərləri buluda göndərin.
Kitabxana üç dəyişən növü dəstəkləyir: Bool, Sayısal və String.
Kitabxana iş axını, cloud4rpi.io veb saytından Cihaz Tokenindən istifadə edərək bir API nümunəsi yaratmaqla başlayır (ətraflı məlumat üçün məqalənin 1 -ci hissəsinə baxın).
#if müəyyən edildikdə (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #başqa Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #endif
Sonra DHT11 oxunuşları üçün dəyişənləri elan edin:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
Sonra sensordan məlumat alın, dəyişənlərə qeyd edin və məlumatları Cloud4RPi -də yayımlayın:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
Temperatur və rütubət tez dəyişmir, buna görə 5 dəqiqədə birdən çox dəyər göndərmək lazım deyil.
Addım 6: Diaqnostika
Cloud4RPi, dəyişkən dəyərlərlə birlikdə diaqnostik məlumatları dəstəkləyir. Diaqnostik məlumatlar olaraq iş vaxtı, Wi-Fi siqnal gücü və IP ünvanından istifadə etdim:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // WiFi siqnal gücü c4r.declareDiagVariable ("İş vaxtı");
Qeyd: İş vaxtını sıfıra endirmək üçün istifadə etdiyim millis funksiyası hər ~ 50 gündə sıfıra endirilir. Hansı ki, mənim layihəm üçün kifayətdir.
Aşağıdakı kod diaqnostik dəyişən dəyərlərini təyin edir:
c4r.setDiagVariable ("RSSI", (String) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("İş vaxtı", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
UptimeHumanReadable funksiyası milisaniyələri rahat bir formaya çevirir:
String uptimeHumanReadable (imzasız uzun milisaniyələr) {static char uptimeStr [32]; işarəsiz uzun saniyə = milisaniyə / 1000; işarəsiz uzun dəqiqə = saniyə / 60; işarəsiz int saat = mins / 60; imzasız int gün = saat / 24; saniyə -= dəqiqə * 60; dəqiqə -= saat * 60; saat -= gün * 24; sprintf (uptimeStr, "%d gün%2.2d:%2.2d:%2.2d", (bayt) gün, (bayt) saat, (bayt) dəqiqə, (bayt) saniyə); qayıt String (uptimeStr); }
Funksiya qəribə böyük rəqəm əvəzinə 5 gün 10:23:14 kimi bir simli çıxarır.
Addım 7: Layihəyə başlayın və ayıklayın
Yaradılmış kodu tərtib edərək NodeMCU -ya yandırdıqdan sonra cihaz bir bulud xidmətinə qoşulur və məlumat göndərməyə başlayır.
CLOUD4RPI_DEBUG preprocessor dəyişənini 1 olaraq təyin etməklə qeyd verbozluğunu artıra bilərsiniz (platform.io faylında build_flags bölməsinə -D CLOUD4RPI_DEBUG = 1 əlavə edin).
Sonra, cloud4rpi.io saytını açın və yeni cihazı onlayn olaraq qeyd edin. Cihazdan alınan bütün dəyişən dəyərləri görmək üçün açın: sensor və diaqnostika.
Addım 8: Dashboard Konfiqurasiyası
Bu mərhələdə, buludla məlumat bağlantısı işləyir. İndi məlumatların vizual təsvirini konfiqurasiya edək.
Aşağıdakı tablosunu yaratmaq üçün Dashboard konfiqurasiya UI -dən istifadə etdim.
Tablosu paylaşıla bilər, buna görə dərhal dostumla paylaşıram.
Addım 9: Nəticə
Layihənin tam kodu özündə mövcuddur.
Hələlik hamısı budur!
Suallar və təkliflər şərhlərdə açıqdır.
Tövsiyə:
Node.js istifadə edərək Raspberry Pi -ni buluda necə bağlamaq olar: 7 addım
Node.js istifadə edərək Raspberry Pi -ni buluda necə bağlamaq olar: Bu dərslik, Node.js. istifadə edərək bir Raspberry Pi -ni buluda, xüsusən AskSensors IoT platformasına bağlamaq istəyənlər üçün faydalıdır. Raspberry Pi yoxdur? Hal -hazırda Raspberry Pi sahibi deyilsinizsə, sizə Moruq almağı məsləhət görərəm
DHT22 Nəmlik və İstilik Sensorunu Arduino ilə necə istifadə etmək olar: 6 addım
DHT22 Nəmlik və Temperatur Sensorunu Arduino ilə necə istifadə etməli: Bu dərslikdə DHT22 Nəmlik və Temperatur Sensorunun Arduino ilə necə istifadə ediləcəyini və dəyərləri OLED Ekranda göstərməyi öyrənəcəyik
Arduino WiFi -ni ESP8266: 7 Adımdan istifadə edərək Buluda Bağlamaq
Arduino WiFi -ni ESP8266 -dan istifadə edərək Buluda bağlamaq: Bu təlimatda Arduino -nu WiFi vasitəsilə IoT buluduna necə bağlayacağınızı izah edəcəyik. Arduino və ESP8266 WiFi modulundan ibarət bir quruluşu IoT Thing olaraq konfiqurasiya edəcəyik və hazır vəziyyətə gətirəcəyik. AskSensors buludu ilə əlaqə qurmaq üçün
IoT Əsasları: Mongoose OS istifadə edərək IoT'nizi Buluda Bağlamaq: 5 Addım
IoT Əsasları: Mongoose ƏS -dən istifadə edərək IoT -nizi Buluda Bağlamaq: Tinkering və elektronika ilə məşğul olan birisinizsə, ümumiyyətlə IoT olaraq qısaldılmış Əşyalar İnterneti ilə qarşılaşacaqsınız. İnternetə qoşula bilən bir sıra cihazlara aiddir! Belə bir insan olmaq
Torpaq Nəm Sensorunu və ESP8266 -nı AskSensors IoT Cloud -a necə bağlamaq olar: 10 addım
Torpaq Nəm Sensorunu və ESP8266 -nı AskSensors IoT Buluduna Necə Bağlamaq olar: Bu təlimat, torpağın nəm sensoru ilə ESP8266 -nı IoT buluduna necə bağlayacağınızı göstərir. içindəki suyun həcmini ölçür