İçindekiler:

Blynk Sunucu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu: 4 Adım
Blynk Sunucu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu: 4 Adım

Video: Blynk Sunucu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu: 4 Adım

Video: Blynk Sunucu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu: 4 Adım
Video: Blynk DHT11 Sıcaklık ve Nem Ölçümü (NodeMCU) 2024, Kasım
Anonim
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu
Blynk Sunucusu Üzerinde Arduino IDE ile DHT11, BMP180, Nodemcu Kullanan DIY Hava İstasyonu

Github: DIY_Weather_Station

Hackster.io: Hava İstasyonu

Hava Durumu Uygulamasını görürdünüz, değil mi? Mesela, açtığınızda Sıcaklık, Nem vb. gibi hava koşullarını öğrenebilirsiniz. Bu değerler büyük bir alanın ortalama değeridir, bu nedenle odanızla ilgili kesin parametreleri bilmek istiyorsanız, sadece yapamazsınız. Hava Durumu Uygulamasına güvenin. Bu amaçla, uygun maliyetli ve aynı zamanda güvenilir olan ve bize doğru değeri veren Hava İstasyonunun yapımına geçelim.

Bir hava istasyonu, hava durumu tahminleri için bilgi sağlamak ve hava ve iklimi incelemek için atmosferik koşulları ölçmek için alet ve ekipmanlara sahip bir tesistir. Takmak ve kodlamak için biraz çaba gerektirir. Öyleyse başlayalım.

Nodemcu Hakkında:

NodeMCU, açık kaynaklı bir IoT platformudur.

Espressif Systems'ın ESP8266 Wi-Fi SoC'sinde çalışan bellenimi ve ESP-12 modülüne dayalı donanımı içerir.

Varsayılan olarak "NodeMCU" terimi, geliştirme kitleri yerine bellenimi ifade eder. Bellenim, Lua komut dosyası dilini kullanır. eLua projesini temel alır ve ESP8266 için Espressif İşletim Sistemi Dışı SDK'yı temel alır. Lua-cjson ve spiffs gibi birçok açık kaynak projesini kullanır.

Sensörler ve Yazılım gereksinimi:

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

2. DHT11

3. BMP180

4. Arduino IDE'si

Adım 1: Sensörlerinizi Tanıyın

Sensörlerinizi Tanıyın
Sensörlerinizi Tanıyın

BMP180:

Açıklama:

BMP180, piezo dirençli bir sensör, bir analogdan dijitale dönüştürücü ve E2PROM ve seri I2C arabirimli bir kontrol ünitesinden oluşur. BMP180, telafi edilmemiş basınç ve sıcaklık değerini sunar. E2PROM, 176 bit bireysel kalibrasyon verisi depoladı. Bu, sensörün ofset, sıcaklık bağımlılığı ve diğer parametrelerini telafi etmek için kullanılır.

  • YUKARI = basınç verileri (16 ila 19 bit)
  • UT = sıcaklık verileri (16 bit)

Teknik özellikler:

  • Vin: 3 ila 5VDC
  • Mantık: 3 ila 5V uyumlu
  • Basınç algılama aralığı: 300-1100 hPa (deniz seviyesinden 9000m ila -500m arası)
  • 0,03hPa / 0,25m'ye kadar çözünürlük-40 ila +85°C çalışma aralığı, +-2°C sıcaklık doğruluğu
  • Bu kart/yonga, I2C 7 bitlik 0x77 adresini kullanır.

DHT11:

Açıklama:

  • DHT11, temel, ultra düşük maliyetli bir dijital sıcaklık ve nem sensörüdür.
  • Çevreleyen havayı ölçmek için kapasitif bir nem sensörü ve bir termistör kullanır ve veri pinine dijital bir sinyal gönderir (analog giriş pinlerine gerek yoktur). Kullanımı oldukça basittir, ancak verileri almak için dikkatli bir zamanlama gerektirir.
  • Bu sensörün tek dezavantajı, ondan yalnızca 2 saniyede bir yeni veri alabilmenizdir, bu nedenle kütüphanemizi kullanırken sensör okumaları 2 saniyeye kadar eski olabilir.

Teknik özellikler:

  • 3 ila 5V güç ve G/Ç
  • 0-50°C sıcaklık okumaları için iyi ±2°C doğruluk
  • %5 doğrulukla %20-80 nem okumaları için iyi
  • Dönüşüm sırasında 2,5 mA maksimum akım kullanımı (veri istenirken)

2. Adım: Bağlantı

bağlantı
bağlantı

Nodemcu ile DHT11:

Pin 1 - 3.3V

Pim 2 - D4

Pim 3 - NC

Pim 4 - Gnd

Nodemcu ile BMP180:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

3. Adım: Blynk'i Kurun

Image
Image
Blynk'i Kur
Blynk'i Kur

Blynk nedir?

Blynk, Arduino, Raspberry Pi ve benzerlerini İnternet üzerinden kontrol etmek için iOS ve Android uygulamalarına sahip bir Platformdur.

Widget'ları basitçe sürükleyip bırakarak projeniz için bir grafik arayüz oluşturabileceğiniz dijital bir panodur. Her şeyi ayarlamak gerçekten çok basit ve 5 dakikadan daha kısa sürede tamir etmeye başlayacaksınız. Blynk belirli bir panoya veya kalkana bağlı değildir. Bunun yerine, seçtiğiniz donanımı destekliyor. Arduino veya Raspberry Pi'niz Wi-Fi, Ethernet veya bu yeni ESP8266 yongası üzerinden İnternet'e bağlı olsun, Blynk sizi çevrimiçi hale getirecek ve Nesnelerinizin İnterneti için hazır hale getirecektir.

Blynk kurulumu hakkında daha fazla bilgi için: Ayrıntılı Blynk Kurulumu

4. Adım: Kod

kod
kod

//Her satır için yorumlar aşağıdaki.ino dosyasında verilmiştir.

#include #define BLYNK_PRINT Seri #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=true; char auth="Blynk uygulamasındaki Yetkilendirme anahtarınızı buraya koyun"; char ssid = "WiFi SSID'niz"; char pass = "Şifreniz"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); //Pin ve dhttype BlynkTimer zamanlayıcısını tanımlama; void sendSensor() { if (!bmp.begin()) { Serial.println("Geçerli bir BMP085 sensörü bulunamadı, kablolamayı kontrol edin!"); while (1) {} } float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("DHT sensöründen okunamadı!"); dönüş; } çift gama = log(h/100) + ((17.62*t) / (243.5+t)); çift dp = 243.5*gama / (17.62-gama); kayan nokta bp = bmp.readPressure()/100; kayan nokta 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); } geçersiz kurulum() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); dht.begin(); Wire.begin(I2C_SDA, I2C_SCL); gecikme(10); timer.setInterval(1000L, sendSensor); } geçersiz döngü() { Blynk.run(); zamanlayıcı.run(); }

Önerilen: