#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
#define WIFI_SSID "Wokwi-GUST"
#define WIFI_PASSWORD ""
#define Sicaklik_Kanal 2149199
#define Nem_Kanal 2149222
#define APIKEY "15NA9DL9EPN486C7"
#define APIKEY2 "C33T2YO8RTEHB082"
char SSID[] = WIFI_SSID;
char PASS[] = WIFI_PASSWORD;
WiFiClient Client;
unsigned long Izleme1=Sicaklik_Kanal;
unsigned long Izleme2=Nem_Kanal;
const char * MyAPIkey = APIKEY;
const char * MyAPIkey2= APIKEY2;
#define DHTPIN 13
DHTesp dht;
int BUZZER_PIN = 12;
LiquidCrystal_I2C lcd(0x27, 20, 4); // LCD adresi ve boyutu
void baglanti(){
WiFi.begin(WIFI_SSID,WIFI_PASSWORD,6);
while(WiFi.status() !=WL_CONNECTED){
lcd.setCursor(0, 0);
lcd.print("Wifi Baglantisi YOK ");
delay(900);
Serial.println(".");
}
Serial.println("baglanti basarili");
lcd.clear();
ThingSpeak.begin(Client);
}
void setup() {
dht.setup(DHTPIN, DHTesp::DHT22);
Serial.begin(9600);
lcd.init(); // LCD başlatma
lcd.backlight(); // LCD arka ışık
baglanti();
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
if(WiFi.status() !=WL_CONNECTED)
{
Serial.println("Wifi baglaniyor...");
Serial.println(WIFI_SSID);
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(SSID,PASS);
Serial.println(" . ");
delay(100);
}
Serial.println("baglanti basarili.");
}
TempAndHumidity data = dht.getTempAndHumidity();
float h = data.humidity;
float t = data.temperature;
Serial.println("Nem: " + String(h, 1) + "%");
Serial.println("Sıcaklık: " + String(t, 1) + "°C");
Serial.println("\n");
ThingSpeak.writeField(Izleme1, 1, t, MyAPIkey);
ThingSpeak.writeField(Izleme2, 1, h, MyAPIkey2);
lcd.setCursor(0, 0);
lcd.print("Nem: ");
lcd.print(h);
lcd.print("%");
lcd.setCursor(0, 2);
lcd.print("Sicaklik: ");
lcd.print(t);
lcd.print("C");
if (t < 10.0){
digitalWrite(BUZZER_PIN, HIGH);
delay(2000); // 2 saniye bekle
digitalWrite(BUZZER_PIN, LOW);
delay(2000); // 2 saniye bekle
Serial.println("Dusuk Sicaklik Tespit edildi");
}
if (t > 25.0) {
digitalWrite(BUZZER_PIN, HIGH);
delay(2000); // 2 saniye bekle
digitalWrite(BUZZER_PIN, LOW);
delay(2000); // 2 saniye bekle
Serial.println("Asiri Sicaklik Tespit edildi");
}
else {
digitalWrite(BUZZER_PIN, LOW);
delay(2000);
}
delay(2000);
}