Mundarija:

DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi: 4 qadam
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi: 4 qadam

Video: DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi: 4 qadam

Video: DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi: 4 qadam
Video: How to Make a Weather Monitoring System with ESP32 Board and Blynk app 2024, Noyabr
Anonim
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi
DHT11, BMP180, Nodemcu yordamida Blynk serverida Arduino IDE yordamida DIY ob -havo stantsiyasi

Github: DIY_Weather_Station

Hackster.io: ob -havo stantsiyasi

Siz ob -havo ma'lumotlarini ko'rgan bo'lardingiz, to'g'rimi? Masalan, siz uni ochganingizda, harorat, namlik kabi ob -havo sharoitlari bilan tanishasiz. Bu ko'rsatkichlar katta maydonning o'rtacha qiymati, shuning uchun siz xonangizga tegishli parametrlarni aniq bilishni istasangiz, buni qila olmaysiz. ob -havo ilovasiga tayanib. Shu maqsadda, ob -havo stantsiyasini ishlab chiqarishga o'tamiz, bu iqtisodiy jihatdan qulay va ishonchli va bizga aniq qiymat beradi.

Ob -havo stantsiyasi - bu ob -havo ma'lumotlarini taqdim etish, ob -havo va iqlimni o'rganish uchun atmosfera sharoitini o'lchash asboblari va uskunalari bilan jihozlangan ob'ekt. Ulanish va kodlash uchun biroz harakat talab etiladi. Shunday qilib, boshlaylik.

Nodemcu haqida:

NodeMCU - bu ochiq manbali IoT platformasi.

Unga Espressif Systems ESP8266 Wi-Fi SoC-da ishlaydigan dasturiy ta'minot va ESP-12 moduliga asoslangan uskunalar kiradi.

"NodeMCU" atamasi, odatda, dasturiy ta'minot to'plamlarini emas, balki dasturiy ta'minotni nazarda tutadi. Dasturiy ta'minot Lua skript tilidan foydalanadi. U eLua loyihasiga asoslangan va ESP8266 uchun Espressif OS bo'lmagan SDK-ga qurilgan. U lua-cjson va spiffs kabi ko'plab ochiq manbali loyihalardan foydalanadi.

Sensorlar va dasturiy ta'minot talablari:

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

2. DHT11

3. BMP180

4. Arduino IDE

1 -qadam: Sensorlarni bilish

Sensorlarni bilish
Sensorlarni bilish

BMP180:

Tavsif:

BMP180 piezo-rezistiv sensordan, analogdan raqamli konvertorga va E2PROM boshqaruv blokidan va ketma-ket I2C interfeysidan iborat. BMP180 bosim va haroratning kompensatsiyalanmagan qiymatini beradi. E2PROM 176 bitli individual kalibrlash ma'lumotlarini saqlagan. Bu sensorning ofsetini, haroratga bog'liqligini va boshqa parametrlarini qoplash uchun ishlatiladi.

  • UP = bosim ma'lumotlari (16 dan 19 bitgacha)
  • UT = harorat ma'lumotlari (16 bit)

Texnik xususiyatlari:

  • Vin: 3 dan 5 VDC gacha
  • Mantiq: 3 dan 5 V gacha
  • Bosim sezish diapazoni: 300-1100 gPa (dengiz sathidan 9000 m dan -500 m gacha)
  • 0,03hPa / 0,25mgacha bo'lgan o'lchamlarda -40 dan +85 ° C gacha, +-2 ° C harorat aniqligi
  • Bu karta/chip I2C 7 bitli 0x77 manzilidan foydalanadi.

DHT11:

Tavsif:

  • DHT11-bu juda past narxli raqamli harorat va namlik sensori.
  • Atrofdagi havoni o'lchash uchun namlik sensori va termistor ishlatiladi va ma'lumotlar piniga raqamli signal chiqariladi (analog kirish pinlari kerak emas). Uni ishlatish juda oddiy, lekin ma'lumotlarni olish uchun ehtiyotkorlik bilan vaqt talab etiladi.
  • Sensorning yagona kamchiliklari shundaki, siz undan har 2 soniyada bir marta yangi ma'lumotlarni olishingiz mumkin, shuning uchun kutubxonamizdan foydalanganda sensor o'qishlari 2 sekundgacha bo'lishi mumkin.

Texnik xususiyatlari:

  • 3 dan 5 V gacha kuch va kirish -chiqish
  • 0-50 ° C harorat ko'rsatkichlari ± 2 ° C aniqligi uchun yaxshi
  • 5% aniqlik bilan namlikni 20-80% o'qish uchun yaxshi
  • Konvertatsiya paytida 2,5 mA maksimal oqimdan foydalanish (ma'lumot so'ralganda)

2 -qadam: Ulanish

Ulanish
Ulanish

Nodemcu bilan DHT11:

1 -pin - 3.3V

2 -pin - D4

3 -pin - NC

4 -pin - Gnd

Nodemcu bilan BMP180:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

3 -qadam: Blynk -ni o'rnating

Image
Image
Blynk -ni sozlash
Blynk -ni sozlash

Blynk nima?

Blynk - bu Internetda Arduino, Raspberry Pi va boshqalarni boshqarish uchun iOS va Android ilovalari o'rnatilgan platforma.

Bu raqamli asboblar paneli, bu erda siz vidjetlarni sudrab tashlab, loyihangiz uchun grafik interfeys yaratishingiz mumkin. Hamma narsani o'rnatish juda oddiy va siz 5 daqiqadan so'ng o'ylashni boshlaysiz. Blynk ma'lum bir taxta yoki qalqon bilan bog'lanmagan. Buning o'rniga, siz tanlagan qo'shimcha qurilmalar. Sizning Arduino yoki Raspberry Pi Wi-Fi, Ethernet yoki bu yangi ESP8266 chipi orqali Internetga ulangan bo'lsin, Blynk sizni Internetga joylashtiradi va sizning narsalaringiz Internetiga tayyor bo'ladi.

Blynk -ni sozlash bo'yicha batafsil ma'lumot: Blynk -ni batafsil sozlash

4 -qadam: kod

Kod
Kod

// Har bir satr uchun sharhlar quyida.ino faylida berilgan

#include #define BLYNK_PRINT Serial #include #include #include #include #include Adafruit_BMP085 bmp; #ta'rif I2C_SCL 12 #ta'rif I2C_SDA 13 float dst, bt, bp, ba; char dstmp [20], btmp [20], bprs [20], balt [20]; bool bmp085_present = rost; char auth = "Blynk ilovasidagi autentifikatsiya kalitini bu erga qo'ying"; char ssid = "Sizning Wi -Fi SSID"; char pass = "Sizning parolingiz"; #depine DHTPIN 2 #dehine DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Pin va dhttype BlynkTimer taymerini aniqlash; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Tegishli BMP085 sensori topilmadi, simlarni tekshiring!"); while (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("DHT sensoridan o'qib bo'lmadi!"); qaytish; } juft gamma = log (h / 100) + ((17.62*t) / (243.5 + t)); er-xotin dp = 243,5*gamma / (17,62-gamma); 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); kechikish (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); taymer.run (); }

Tavsiya: