Mündəricat:

DHT11, BMP180, Blynk Server üzərində Arduino IDE ilə Nodemcu istifadə edən DIY Hava İstasyonu: 4 addım
DHT11, BMP180, Blynk Server üzərində Arduino IDE ilə Nodemcu istifadə edən DIY Hava İstasyonu: 4 addım

Video: DHT11, BMP180, Blynk Server üzərində Arduino IDE ilə Nodemcu istifadə edən DIY Hava İstasyonu: 4 addım

Video: DHT11, BMP180, Blynk Server üzərində Arduino IDE ilə Nodemcu istifadə edən DIY Hava İstasyonu: 4 addım
Video: IoT based ESP32 Wi-Fi Weather Station using DHT11 and BMP180 Sensor 2024, Iyul
Anonim
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu
DHT11, BMP180, Nodemcu ilə Blynk Server üzərində Arduino IDE istifadə edən DIY Hava İstasyonu

Github: DIY_Weather_Station

Hackster.io: Hava İstasyonu

Hava Tətbiqini görərdiniz, elə deyilmi? Açdığınız zaman Temperatur, Rütubət kimi hava şəraiti ilə tanış olursunuz. Bu oxunuşlar böyük bir sahənin orta dəyəridir, buna görə də otağınızla əlaqəli dəqiq parametrləri bilmək istəyirsinizsə, Hava Tətbiqinə etibar edin. Bu məqsədlə həm iqtisadi cəhətdən səmərəli, həm də etibarlıdır və bizə dəqiq dəyər verən Hava İstasyonu istehsalına keçək.

Hava stansiyası, hava proqnozları üçün məlumat vermək və hava və iqlimi öyrənmək üçün atmosfer şəraitini ölçmək üçün alət və avadanlıqlara malik bir qurğudur. Qoşmaq və kodlaşdırmaq üçün bir az səy tələb olunur. Beləliklə başlayaq.

Nodemcu haqqında:

NodeMCU açıq mənbə IoT platformasıdır.

Buraya Espressif Systems-dən ESP8266 Wi-Fi SoC ilə işləyən firmware və ESP-12 moduluna əsaslanan aparat daxildir.

Varsayılan olaraq "NodeMCU" termini, cihaz dəstlərindən çox firmwareə aiddir. Firmware Lua skript dilindən istifadə edir. ELua layihəsinə əsaslanır və ESP8266 üçün Espressif OS olmayan SDK üzərində qurulmuşdur. Lua-cjson və spiffs kimi bir çox açıq mənbə layihələrindən istifadə edir.

Sensorlar və proqram təminatı tələbləri:

1. Nodemcu (esp8266-12e v1.0)

2. DHT11

3. BMP180

4. Arduino IDE

Addım 1: Sensorlarınızı tanıyın

Sensorlarınızı tanıyın
Sensorlarınızı tanıyın

BMP180:

Təsvir:

BMP180, piezo-rezistiv sensordan, analoqdan rəqəmsal çeviriciyə və E2PROM ilə idarəetmə blokundan və seriyalı I2C interfeysindən ibarətdir. BMP180, təzyiq və temperaturun əvəzsiz dəyərini təmin edir. E2PROM 176 bit fərdi kalibrləmə məlumatlarını saxladı. Sensorun ofsetini, temperaturdan asılılığını və digər parametrlərini kompensasiya etmək üçün istifadə olunur.

  • UP = təzyiq məlumatları (16-19 bit)
  • UT = temperatur məlumatları (16 bit)

Texniki xüsusiyyətlər:

  • Vin: 3-5VDC
  • Məntiq: 3-5V uyğun
  • Təzyiq algılama diapazonu: 300-1100 hPa (dəniz səviyyəsindən 9000m -500m yüksəklikdə)
  • 0.03hPa / 0.25m-ə qədər qətnamə -40 ilə +85 ° C aralığında, +-2 ° C temperatur dəqiqliyi
  • Bu kart/çip I2C 7 bitli 0x77 ünvanını istifadə edir.

DHT11:

Təsvir:

  • DHT11 əsas, son dərəcə aşağı qiymətli rəqəmsal temperatur və rütubət sensoru.
  • Ətrafdakı havanı ölçmək üçün kapasitiv rütubət sensoru və termistordan istifadə edir və məlumat pininə rəqəmsal bir siqnal tökür (analoq giriş pinlərinə ehtiyac yoxdur). İstifadəsi olduqca sadədir, lakin məlumatları tutmaq üçün diqqətli vaxt tələb olunur.
  • Bu sensorun yeganə əsl dezavantajı ondan yalnız 2 saniyədə bir dəfə yeni məlumatlar əldə edə bilməyinizdir, buna görə də kitabxanamızdan istifadə edərkən sensor oxunuşlarının 2 saniyə qədər köhnə olması mümkündür.

Texniki xüsusiyyətlər:

  • 3 -dən 5V -a qədər güc və I/O
  • 0-50 ° C temperatur oxunması üçün ± 2 ° C dəqiqlik üçün yaxşıdır
  • 5% dəqiqlik ilə 20-80% nəmlik göstəriciləri üçün yaxşıdır
  • Dönüşüm zamanı 2,5 mA maksimum cari istifadə (məlumat istəyərkən)

Addım 2: Bağlantı

Bağlantı
Bağlantı

Nodemcu ilə DHT11:

Pin 1 - 3.3V

Pin 2 - D4

Pin 3 - NC

Pin 4 - Gnd

Nodemcu ilə BMP180:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Addım 3: Blynk qurun

Image
Image
Blynk qurun
Blynk qurun

Blynk nədir?

Blynk, Arduino, Raspberry Pi və bənzərlərini İnternet üzərindən idarə etmək üçün iOS və Android tətbiqləri olan bir platformadır.

Sadəcə widgetları sürükləyərək buraxaraq layihəniz üçün bir qrafik interfeysi qura biləcəyiniz rəqəmsal bir paneldir. Hər şeyi düzəltmək çox sadədir və 5 dəqiqədən az bir müddətdə işə başlayacaqsınız. Blynk müəyyən bir lövhəyə və ya qalxana bağlı deyil. Bunun əvəzinə, seçdiyiniz aparatı dəstəkləyir. Arduino və ya Raspberry Pi-nin Wi-Fi, Ethernet və ya bu yeni ESP8266 çipi ilə İnternetə bağlı olmasından asılı olmayaraq, Blynk sizi İnternetə çıxaracaq və Əşyalarınızın İnternetinə hazır olacaq.

Blynk: Ətraflı Blynk Quraşdırması haqqında daha çox məlumat üçün

Addım 4: Kod

Kod
Kod

// Hər sətir üçün şərhlər aşağıdakı.ino faylında verilmişdir

#include #define BLYNK_PRINT Serial #include #include #include #include #include Adafruit_BMP085 bmp; #define I2C_SCL 12 #define I2C_SDA 13 float dst, bt, bp, ba; char dstmp [20], btmp [20], bprs [20], balt [20]; bool bmp085_present = doğru; char auth = "Doğrulama açarınızı Blynk tətbiqindən bura qoyun"; char ssid = "WiFi SSID -iniz"; char pass = "Şifrəniz"; #define DHTPIN 2 #dehine DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Pin və dhttype BlynkTimer taymerinin təyin edilməsi; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Düzgün BMP085 sensoru tapılmadı, naqilləri yoxlayın!"); while (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("DHT sensorundan oxunmadı!"); qayıtmaq; } ikiqat qamma = log (h / 100) + ((17.62*t) / (243.5 + t)); ikiqat dp = 243.5*qamma / (17.62-qamma); float bp = bmp.readPressure ()/100; float ba = bmp.readAltitude (); float bt = bmp.readTemperature (); float dst = bmp.readSealevelPressure ()/100; Blynk.virtualWrite (V5, h); Blynk.virtualWrite (V6, t); Blynk.virtualWrite (V10, bp); Blynk.virtualWrite (V11, ba); Blynk.virtualWrite (V12, bt); Blynk.virtualWrite (V13, dst); Blynk.virtualWrite (V14, dp); } void setup () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); dht.begin (); Wire.begin (I2C_SDA, I2C_SCL); gecikmə (10); timer.setInterval (1000L, sendSensor); } boşluq döngəsi () {Blynk.run (); timer.run (); }

Tövsiyə: