ESP8266 (NodeMCU) İle DHT11 Kullanımı

esp8266 sıcaklık nem


Bu yazım içerisinde esp8266 dht11, nodemcu dht11, sıcaklık ölçümü, nem ölçümü, esp32 dht11 ve esp8266 sıcaklık ve nem ölçümü gibi aramalarınıza yanıtlar bulabileceksiniz.



Arduino, ESP32, ESP8266, IOT Projeleri, STM32 gibi alanlarda projeler yapıyor ve özel sektörde birçok firmaya danışmanlık veriyorum. Ödeviniz, projeniz ve özel ders almak için benimle sitemin iletişim sayfasından iletişime geçebilir ve profesyonel destek alabilirsiniz. 



Kısa sayılamayacak bir aranın ardından tekrar merhaba. Python programlama diliyle alakalı olan yazılarıma ara verip biraz da asıl meslek alanım olan elektronik alanında yazılar yazmak istiyorum. Başlıkta da belirttiğim üzere bu yazımız içerisinde ESP8266 yani NodeMCU olarak isimlendirilen kartı ve DHT11 sensörünü kullanarak bir ortamın sıcaklık ve nem değerlerini ölçmeyi öğreneceğiz. Bunu yaparken öncelikle Arduino IDE üzerinde ESP8266 kartımızı programlamak için gerekli konfigürasyon ayarlarını yapmamız gerekecek.

Arduino IDE ile ESP8266 (NodeMCU) Programlama


ESP8266 kartımızı Arduino IDE ile programlayabilmek için bazı ayarlamalar yapmamız gerek. Bunları sırasıyla anlatacağım. Hiçbir adımı kaçırmamaya özen gösterin. 

Hali hazırda bilgisayarınızla CH340 çipine sahip klon bir Arduino UNO kullanıyorsanız bu adımı zaten gerçekleştirmişsinizdir. Eğer bu adımı gerçekleştirmediyseniz bilgisayarınız ile kartınızı haberleştirebilmek için gerekli sürücüleri yüklemiş olmanız gerekmekte. Yazının çok uzamaması için yazım içerisinde nasıl kurulduğundan bahsetmeyeceğim. Eğer kartınızı taktığınızda bilgisayarızın portunda göremiyorsanız bu driver'ı yüklemeniz gerektiğini bilmeniz yeterli. İnternet üzerinden nasıl yükleneceğine dair fazla sayıda öğretici mevcut.

Sonrasında Arduino IDE programımızı açıyoruz ve aşağıda anlattığım adımları sırasıyla yapıyoruz.

  • Dosya --> Tercihler
  • Açılan pencerede "Ek Devre Kartları Yöneticisi URL'leri" yazan yere bu linki yazıyoruz:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Ardından Tamam a basıyoruz.
  • Daha sonra üstteki Araçlar menüsünden Kartlar seçeneğinin üzerine gelip oradan da Kart Yöneticisi ni seçiyoruz.
  • Açılan pencere arama çubuğuna esp8266 yazıyoruz ve çıkan sonuçta Kur butonuna basıyoruz.
  • Bu aşamadan sonra internet hızınıza bağlı olarak kurulum gerçekleşiyor.
  • Daha sonra Araçlar --> Kart seçeneklerine geliyoruz ve NodeMCU 1.0 olanı seçiyoruz.

Artık Arduino IDE ile ESP8266 kartımızı programlayabiliriz.

ESP8266 (NodeMCU) ile Sıcaklık ve Nem Ölçme

Arduino IDE programımızı NodeMCU programlayabilmek için ayarladık. Sırada sıcaklık ve nem ölçmemize yarayan DHT11 isimli sensör için kodları yazmak var. Bu sensörü satın alırken iki farklı şekilde satıldığına dikkat etmiş olabilirsiniz. Biri 4 pinli olarak yalın bir halde satılırken diğeri ise üç pinli olarak ve üzerine 10k'lık pull-up direnci ile birlikte geliyor. Yani 4 pinli olanı programlarken data hattına 10k'lık bir direnci pull-up olarak bağlamanız gerek. Nasıl yapıldığına dair bir fikriniz yoksa ve yapamadıysanız yorumlar kısmında belirtin. Ben bu yazım içerisinde 3 pinli olanı kullanacağım.

Öncelikle DHT11 sensörümüz ile NodeMCU kartımızın bağlantılarını gerçekleştirelim.

  • VCC (+) --> 3.3V
  • GND --> GND
  • OUT (signal) --> D1 

Yukarıdaki bağlantıları özenle yapın ve doğru yaptığınızdan emin olun. Sonrasında kod yazma aşamasına geçelim.

Öncelikle bu sensörü kullanabilmek için bir kütüphane yüklememiz gerekiyor. Bu yüzden Arduino IDE kütüphane yöneticisine gelerek "DHT sens" yazıyoruz. "DHT Sensor library by Adafruit" yazanı yüklüyoruz. Yükleme esnasında sorulan sorulara evet diyoruz. Kütüphane kurulumumuz bu kadar.

Artık kodları yazma aşamasında geldik. Hangi kodun ne işe yaradığı yanında yorum satırı olarak mevcut.

#include "DHT.h"
#define DHTPIN 5        // NodeMCU pinout diyaramina baktiginizda D1 pininin 5 numarali pine bagli oldugunu gorebilirsiniz.
#define DHTTYPE DHT11   // DHT11 sensoru kullandigimiz icin bunu yazdık.

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  Serial.println(F("DHT11 test!"));
  dht.begin(); //dht sensorumuzu baslattik.
}

void loop() {
  delay(2000);

  float h = dht.readHumidity();     // nem okuyoruz.
  float t = dht.readTemperature();  // sicaklik okuyoruz.

  if( isnan(h) ||  isnan(t)) {
    Serial.println(F("DHT sensorunden veri alinamiyor. Baglantilari kontrol et!"));
    return;
  }

  Serial.print(F("Humidity: ")); //nem
  Serial.print(h);
  Serial.print(F("%  Temperature: ")); //sicaklik
  Serial.print(t);
  Serial.println(F("°C "));
}

Umarım gayet açıklayıcı bir anlatım olmuştur. Yapamazsanız veya anlamadığınız yerler varsa yorumlar kısmından destek alabilirsiniz. Kısa süre sonra tekrar görüşmek dileğiyle. İyi çalışmalar.
Elektrik Elektronik Mühendisiyim. Bu alanlarda ödev, proje yaptırmak isterseniz veya özel ders almak isterseniz sitemin iletişim sayfasından benimle iletişime geçebilirsiniz.

Yorum Gönder