#include <WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
#include <Ultrasonic.h>
#include <ThingSpeak.h>
#define DHTPIN 2
#define DHTTYPE DHT22
#define TRIG_PIN 5
#define ECHO_PIN 18
#define redled 13
#define yellowled 12
#define blueled 14
DHT dht(DHTPIN, DHTTYPE);
Ultrasonic ultrasonic(TRIG_PIN, ECHO_PIN);
const char* ssid = "Wokwi-GUEST";
const char* pass = "";
WiFiClient client;
unsigned long ChannelID = 2367902;
const char *WriteAPI = "B0I7XV0PAX9B6B01";
void setup() {
Serial.begin(9600);
pinMode(DHTPIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(redled, OUTPUT);
pinMode(yellowled, OUTPUT);
pinMode(blueled, OUTPUT);
Serial.println("WiFi Aranıyor...");
int networks = WiFi.scanNetworks();
if (networks == 0) {
Serial.println("WiFi Ağı Yok!");
} else {
Serial.print(networks);
Serial.println(" Ağ Bulundu!");
for (int i = 0; i < networks; i++)
Serial.println(WiFi.SSID(i));
delay(10);
}
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
}
Serial.println("WiFi Bağlandı!");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
long duration, distance;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
if (t > 30 || distance < 10) {
digitalWrite(redled, HIGH);
digitalWrite(yellowled, LOW);
digitalWrite(blueled, LOW);
Serial.println("\nHava çok sıcak veya cisim yakın!");
Serial.println("Sıcaklık: " + String(t));
Serial.println("Nem: " + String(h));
} else if (t > 10) {
digitalWrite(redled, LOW);
digitalWrite(yellowled, HIGH);
digitalWrite(blueled, LOW);
Serial.println("\nHava normal!");
Serial.println("Sıcaklık: " + String(t));
Serial.println("Nem: " + String(h));
} else {
digitalWrite(redled, LOW);
digitalWrite(yellowled, LOW);
digitalWrite(blueled, HIGH);
Serial.println("\nHava soğuk!");
Serial.println("Sıcaklık: " + String(t));
Serial.println("Nem: " + String(h));
}
int x = ThingSpeak.writeField(ChannelID, 1, String(t), WriteAPI);
if (x == 200) {
Serial.println("Sıcaklık değeri Thingspeak kanalına yazıldı.");
} else {
Serial.println("Sıcaklık değeri Thingspeak kanalına yazılamadı.");
}
int y = ThingSpeak.writeField(ChannelID, 2, String(h), WriteAPI);
if (y == 200) {
Serial.println("Nem değeri Thingspeak kanalına yazıldı.");
} else {
Serial.println("Nem değeri Thingspeak kanalına yazılamadı.");
}
int z = ThingSpeak.writeField(ChannelID, 3, String(distance), WriteAPI);
if (z == 200) {
Serial.println("Mesafe değeri Thingspeak kanalına yazıldı.");
} else {
Serial.println("Mesafe değeri Thingspeak kanalına yazılamadı.");
}
delay(20000);
}