#include <WiFi.h>
#include <ThingSpeak.h>
#include <DHT.h>
// بيانات شبكة الواي فاي - استبدلها ببياناتك
const char* ssid = "اسم_شبكتك";
const char* password = "كلمة_المرور";
// إعدادات ThingSpeak - استبدلها ببياناتك
unsigned long channelID = 1234567; // ضع رقم قناتك هنا
const char* writeAPIKey = "مفتاح_الكتابة";
const char* readAPIKey = "مفتاح_القراءة";
// إعدادات حساس DHT
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
WiFiClient client;
void setup() {
Serial.begin(115200);
dht.begin();
// الاتصال بالواي فاي
Serial.print("جاري الاتصال بشبكة الواي فاي ");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nتم الاتصال!");
ThingSpeak.begin(client);
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("فشل قراءة الحساس!");
delay(2000);
return;
}
Serial.print("درجة الحرارة: ");
Serial.print(temperature);
Serial.print(" °C, الرطوبة: ");
Serial.print(humidity);
Serial.println(" %");
ThingSpeak.setField(1, temperature);
ThingSpeak.setField(2, humidity);
int writeStatus = ThingSpeak.writeFields(channelID, writeAPIKey);
if (writeStatus == 200) {
Serial.println("تم التحديث بنجاح!");
} else {
Serial.print("خطأ في التحديث: ");
Serial.println(writeStatus);
}
if (writeStatus == 200) {
delay(2000);
float readTemperature = ThingSpeak.readFloatField(channelID, 1, readAPIKey);
int readStatus = ThingSpeak.getLastReadStatus();
if (readStatus == 200) {
Serial.print("تمت القراءة: ");
Serial.print(readTemperature);
Serial.println(" °C");
} else {
Serial.print("خطأ في القراءة: ");
Serial.println(readStatus);
}
}
Serial.println("انتظار 20 ثانية...");
delay(20000);
}