Bu yazımda NodeMCU kartı ve dht11 sensörünü kullanarak arduino iot cloud sitesine nasıl sıcaklık ve nem değerlerini aktarabileceğimizi anlatacağım.
Ben bu projede breadboard yerine pertinaks kullandım dilerseniz breadboard ile de yapabilirsiniz. Projeye başlamadan önce https://create.arduino.cc/iot/things bu siteye üye oluyoruz çünkü kodumuzu kartımıza arduino uygulamasından yüklemek yerine bu siteden yükleyeceğiz. Daha sonra things sekmesinden create diyerek yeni bir iot cihazı yaratıyoruz yani nodemcuyu siteye tanıtıyoruz. Bunu yaparken sitenin bize verdiği IDyi ve Secret Key'i bir kağıda not almamız lazım bunları daha sonra kullanacağız. Sıradaki işlememimiz dht11 sensörümüzden alacağımız bilgileri tanıtmak, resimdeki add butonuna tıklayarak bu işide hallettik. En son ekranımızda şöyle bir tablo görmeliyiz. Şimdilik bu siteyi bir kenara bırakıp nodemcu kartımıza geri dönelim.
Öncelikle NodeMcu kartı hakkında birkaç bilgi vermek istiyorum. NodeMCU kartlarının arduino kartlarından bilmemiz gereken bir farkı var, arduino pinlerinden 5 voltaj verirken nodemcu ise 3.3 voltaj verir. Bu da dht11 sensörümüzün + pinini nodemcu kartımızdan besleyemeciğimiz anlamına geliyor. Aşağıdaki şemada bu sorunu nasıl halletmemiz gerektiğini gösterdim, böylece usb girişine 5 voltaj vererek hem nodemcu'ya hemde sensörümüze güç sağlayabiliriz. (Bazı nodemcu kartlarında rsv(reserved) pinleri yerine vu(vusb) pini var bu pin 5 voltaj çıkışlı bir pindir eğer sizin nodemcunuzda vu pini varsa dht11 sensörünüzü bu pinden besleyebilirsiniz, böylece devreden dişi usb'yi kaldırmış olursunuz.)
Önemli bilgi: dht11 sensörünüzün data pinini pwm pinlerinden (yanında dalgalar olan pinler) birine bağlamanız gerekiyor. Bu proje de D2 yani GPIO04 pinine bağlamanızı öneririm.
Şimdi sırada kodumuzu yazıp NodeMCU kartımıza yüklemek var. Kodumuzu arduino iot cloud sitesinden yükleyeceğiz, bunun için yine things sekmesinde sketch'e basıp open full editör diyoruz.
Aşağıdaki kodda '//' dan sonra gelen cümleler o satırda ne yaptıgımı açıklıyor dilerseniz iceleyebilirsiniz.
#include <DHT.h> // Including library for dht
#include "thingProperties.h"
#define DHTPIN 4 /*dht mizin bagli odlugu pin burda dikkat
etmemiz gereken sey D2 pini GPIO4 oldugu için DHTPIN4 yazdık */
DHT dht(DHTPIN, DHT11);
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
dht.begin(); //sensoru baslattik
// Defined in thingProperties.h
initProperties();
// iot cloud ile iletişim kurduk
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
delay(6000);
}
void loop() {
ArduinoCloud.update();
DHT_SENSOR_READ();//aşağıdaki fonksiyonu başlattık
delay(50000); //kodun 50 saniyede bir çalışmasınız sagladik
}
void DHT_SENSOR_READ() {
float h = dht.readHumidity();//nemi okduduk
float t = dht.readTemperature();//sicakligi okuduk
temperaturee = t;//things sekmesinde oluşturduhgumuz
humidityy = h;//variable'ları girdik
Serial.print("sicaklik - "); Serial.println(t);//monitöre yazdik
Serial.print("nem - "); Serial.println(h);
delay(1000);
}
Bu kodu yazdıktan sonra aynı sekmede secret diye bir kod sayfası var burdaki burdaki SECRET_SSID yerine wifi ismini, SECRET_PASS yerine wifi şifresini son olarak SECRET_DEVICE_KEY yerine de daha önce not aldığımız keyimizi yazıyoruz.
Artık kodumuzu yüklemeye hazırız. NodeMCU kartımızı bilgisayara bağlıyoruz, ardından doğru kartı ve doğru comu işaretleyip yükle işaretine basabiliriz.(ben lolin ver 0.1 kullanıyorum, NodeMCU 1.0 (ESP-12E Module)) kartını işaretleyerek kartıma yükleme yapabildim.)
Artık https://create.arduino.cc/iot/dashboards/ sekmesine ekleyeceğimiz widgetlarla sensörümüzdeki değerleri arduino iot clouddan ister bilgisayarımızdan ister mobil uygulamasından görebileceğiz.
Bonus: eğer alexanız veya google home asistanınız varsa skills and games kısmından arduino iot cloudunuzu bağlayabilirsiniz, böylece alexaya odanızın sıcaklığını sorduğunuz zaman cevaplayabilir.
Comments