NodeMCU - DHT11 ile Sıcaklık ve Nem Değeri Okuma

Güncelleme tarihi: 17 Nis 2020

Bu uygulamamızda NodeMCU ve DHT11 kullanarak ortamdaki sıcaklık ve nem değerlerini okuyacağız ve bu değerleri Blynk uygulamasında anlık olarak göreceğiz.


 

NOT : Bu uygulamayı yapabilmeniz için NodeMCU kartınızın Arduino IDE arayüzüne tanıtılmış ve Blynk kütüphanesinin kurulmuş olması gerekmektedir.

İlgili yazılara buradan ulaşabilirsiniz.

 

Bu uygulamada kullanacağımız malzemeler;


  • NodeMCU

  • DHT11 Sıcaklık ve Nem Sensörü

  • Jumper Kablolar


Öncelikle devremizi şemada gördüğümüz şekilde kuruyoruz.




Yazdığımız kodu kartımıza yüklüyoruz. Kod açıklamalarını aşağıda görebilirsiniz.



 // İlgili Kütüphaneler eklendi
#include <ESP8266WiFi.h> 
#include <BlynkSimpleEsp8266.h>
#include "DHT.h"     

#define DHTPIN 2    // GPIO2 NodeMCU kart üzerinde D4 Pini !
#define DHTTYPE DHT11   // Kullandığımız sensörün tipi DHT 11
#define BLYNK_PRINT Serial 

// Projenize ait Auth Token. Uygulama içinden veya mail adresinizden erişebilirsiniz 
char auth[] = "Auth Token"; 

//WiFi ağ adınız ve parolanız 
char ssid[] = "Ağ Adınız"; 
char pass[] = "Ağ Parolanız";

BlynkTimer timer; 
DHT dht(DHTPIN, DHTTYPE); 

//DHT11 sensörümüzün bize verdiği sıcaklık ve nem değerlerini okuyoruz
void sendData()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature();  

  //Sensör verisi alınamaz ise
   if (isnan(h) || isnan(t)) {
    Serial.println("DHT Sensor okuma hatasi!");
    return;
  }
  
  Blynk.virtualWrite(V1, h); // Nem değeri Blynk uygulamasında V1 sanal pinine yazıyoruz
  Blynk.virtualWrite(V2, t);// Sıcaklık değeri Blynk uygulamasında V2 sanal pinine yazıyoruz
}

void setup()
{
  Serial.begin(9600);
  dht.begin();
  Blynk.begin(auth, ssid, pass);

  // Saniyede 1 defa sendData fonksiyonu çağırıyoruz
  timer.setInterval(1000L, sendData);
}

void loop()
{
  Blynk.run();
  timer.run();
}

Blynk uygulamasında “Labeled Value” ve “SuperChart” widgetlarını kullanacağız.


Labeled Value widgetini anlık olarak sensörümüzden gelen değerleri görmek için kullanacağız. Nem değeri için ilk widgetimizi V1 sanal pinine, sıcaklık değerini görmek için ikinci widgetimizi V2 sanal pinine ayarlıyoruz. İstediğiniz etiket değerlerinide yazarak widgetlarımızı ekliyoruz. Bu ekranda widgetların üzerinde basılı tutarak yerlerini ve boyutlarını ayarlayabilirsiniz.


Sanal Pinlerin detaylı kullanımını görmek için ilgili yazımıza buradan ulaşabilirsiniz.




SuperChart widgeti ise gelen sıcaklık ve nem değerlerini bize istediğimiz zaman diliminde bir grafik olarak sunuyor. Bu widget sayesinde saatlik, günlük, haftalık, yıllık değişimleri bile kolaylıkla kaydedebilir ve takip edebilirsiniz.




Widgetlarımızı ekleyip ayarlarını yaptıktan sonra sağ üstteki çalıştır butonu ile uygulamamızı çalıştırıyoruz.




İlgili kütüphaneler;


Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır.

Son Paylaşımlar