/*==========esp32========*/
#include <WiFi.h> // مكتبة الواي فاي لـ ESP32
WiFiClient WIFI_CLIENT;
/*==========wifi============*/
const char* ssid = "your_wifi"; // اسم شبكة الواي فاي
const char* password = "00000000"; // كلمة مرور الشبكة
/*==========================*/
//------------------------------------------------- FIREBASE
#include "FirebaseESP32.h"
FirebaseConfig config;
FirebaseAuth auth;
#define FIREBASE_HOST "https://your-project-default-rtdb.firebaseio.com"
#define FIREBASE_API_KEY "AIzaSyD-m1wVR99fhDO93rLEfBMCHwMnA7wxxxx"
FirebaseData firebaseData;
//-------------------------------------------------
String cleanFirebaseString(String raw) {
raw.replace("\"", "");
raw.replace("\\", "");
return raw;
}
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
// إعداد Firebase
config.host = FIREBASE_HOST;
config.api_key = FIREBASE_API_KEY;
config.signer.tokens.legacy_token = "sdgdg7NH1dmxgasdgsysdgsdgWdfhasfhsaDGeEsdg";
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
// إرسال ترحيب مبدئي
Firebase.setString(firebaseData, "/data_value1", "welcome");
}
void loop() {
//=============================================
Serial.println("\n===== Push Examples =====");
// الحالة 1: استخدام push() العامة (بدون تحديد النوع)
if (Firebase.push(firebaseData, "/push_general", "Hello from push()")) {
Serial.println("✅ push() [String] OK | Key: " + firebaseData.pushName());
} else {
Serial.println("❌ push() [String] Failed: " + firebaseData.errorReason());
}
// الحالة 2: pushString() لزيادة الوضوح في النوع
if (Firebase.pushString(firebaseData, "/push_string", "Hello from pushString()")) {
Serial.println("✅ pushString() OK | Key: " + firebaseData.pushName());
} else {
Serial.println("❌ pushString() Failed: " + firebaseData.errorReason());
}
// الحالة 3: pushInt() و pushDouble()
if (Firebase.pushInt(firebaseData, "/push_numbers", 42)) {
Serial.println("✅ pushInt() OK | Key: " + firebaseData.pushName());
} else {
Serial.println("❌ pushInt() Failed: " + firebaseData.errorReason());
}
if (Firebase.pushDouble(firebaseData, "/push_numbers", 3.14159)) {
Serial.println("✅ pushDouble() OK | Key: " + firebaseData.pushName());
} else {
Serial.println("❌ pushDouble() Failed: " + firebaseData.errorReason());
}
// الحالة 4: pushJSON() — إرسال بيانات مركّبة
FirebaseJson json;
float tempC = 25.7;
float humidity = 63.4;
json.set("temperature", String(tempC, 1) + "°C");
json.set("humidity", String(humidity, 1) + "%");
json.set("timestamp", millis());
if (Firebase.pushJSON(firebaseData, "/push_json", json)) {
Serial.println("✅ pushJSON() OK | Key: " + firebaseData.pushName());
} else {
Serial.println("❌ pushJSON() Failed: " + firebaseData.errorReason());
}
// مثال إضافي: push() العامة لكن ترسل JSON مباشرة
if (Firebase.push(firebaseData, "/push_general_json", json)) {
Serial.println("✅ push() [JSON] OK | Key: " + firebaseData.pushName());
} else {
Serial.println("❌ push() [JSON] Failed: " + firebaseData.errorReason());
}
//=============================================
delay(6000); // كل 6 ثوانٍ
}