#include "thingProperties.h"
#include "DHT.h"
#include <LiquidCrystal_I2C.h>
//21100011043 MEHMET SELEK IoT Odev1
DHT dht(0, DHT22); //sensörümüzü tanımlıyoruz
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2); //lcd mizi tanımlıyoruz 16 sutun 2 satır
void setup() {
Serial.begin(9600);
// pin mode
pinMode(12, OUTPUT);
// lcd başlatma
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
// arduino cloud kodları
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
dhtVeriOkuma();
onLedChange();
onMesajChange();
if(nem<=50){ //nem yüzde değeri 50 veya 50'den az olursa buraya girer
LCD.clear();
LCD.setCursor(4,0); //HUMIDITY yazısı için cursor'u konumlandırıyoruz
LCD.print("HUMIDITY");
LCD.setCursor(3,1); //nem yüzdesi yazısı için cursor'u konumlandırıyoruz
LCD.print(String(nem)+"-LOW");
}
else{ //nem yüzde değeri 50 den büyükse buraya girer
LCD.clear();
LCD.setCursor(4,0); //HUMIDITY yazısı için cursor'u konumlandırıyoruz
LCD.print("HUMIDITY");
LCD.setCursor(3,1); //nem yüzdesi yazısı için cursor'u konumlandırıyoruz
LCD.print(String(nem)+"-HIGH");
}
delay(2000);
if(sicaklik<0){ //sıcaklık değeri 0 dan küçükse buraya girer
LCD.clear();
LCD.setCursor(2,0); //TEMPERATURE yazısı için cursor'u konumlandırıyoruz
LCD.print("TEMPERATURE");
LCD.setCursor(0,1); //sıcaklık değeri yazısı için cursor'u konumlandırıyoruz
LCD.print(String(sicaklik)+"-VERY LOW");
}
else if(sicaklik>=0 && sicaklik<=25){ //sıcaklık değeri 0 ve 25 arasındaysa (0 ve 25 dahil) buraya girer
LCD.clear();
LCD.setCursor(2,0); //TEMPERATURE yazısı için cursor'u konumlandırıyoruz
LCD.print("TEMPERATURE");
LCD.setCursor(3,1); //sıcaklık değeri yazısı için cursor'u konumlandırıyoruz
LCD.print(String(sicaklik)+"-NORMAL");
}
else{ //sıcaklık değeri 25 den büyükse buraya girer
LCD.clear();
LCD.setCursor(2,0); //TEMPERATURE yazısı için cursor'u konumlandırıyoruz
LCD.print("TEMPERATURE");
LCD.setCursor(3,1); //sıcaklık değeri yazısı için cursor'u konumlandırıyoruz
LCD.print(String(sicaklik)+"-HIGH");
}
delay(2000);
}
void dhtVeriOkuma(){ // dht22 sensöründen sıcaklık ve nem verilerini okur ve terminale verileri yazdırır.
float t = dht.readTemperature();
float u = dht.readHumidity();
Serial.print("Humidity: "+ String(u)+"% ||");
Serial.println("Temperature: "+ String(t)+"°C");
Serial.println("---------------------");
sicaklik = t;
nem = u;
}
void onMesajChange() { // Arduino Clouddan bir mesaj geldiğinde buraya girer
LCD.clear(); // lcd yi temizler
LCD.setCursor(0, 0); // mesaj için cursor ı en üst sola ayarlar
LCD.print(mesaj); // mesajı lcd ye yazar
delay(2000); // 2 saniye delay ekler
}
void onLedChange() { // Arduino clouddaki LED butonundan aldığı değere göre ledin yanıp/sönmesini ayarlar
if (led == 1 || sicaklik>25) // led değeri 1 ise veya sicaklik değeri high ise buraya girer
{
digitalWrite(12, HIGH); // 12 numaralı pine high seviyesi (5V) uygulanır ve led yanar
}
else // led değeri 1 değil ise buraya girer
{
digitalWrite(12, LOW); // 12 numaralı pine low seviyesi (0V) uygulanır ve led yanar
}
}