# ⚠️ حل مشكلة: ESP متصل لكن مش بيجيب أوامر ## 🎯 المشكلة ``` ✓ WiFi متصل بنجاح! عنوان IP: 192.168.1.123 ← IP الـ ESP ``` لكن في الكود: ```cpp const char* serverUrl = "http://192.168.1.123/KL/backend/api/esp_control.php"; ↑↑↑↑↑↑↑↑↑↑↑↑↑ نفس IP الـ ESP! ❌ ``` **ESP بيحاول يتصل بنفسه بدل ما يتصل بالسيرفر!** --- ## ✅ الحل ### 1. اعرف IP الكمبيوتر (السيرفر) #### على Windows: ```cmd 1. اضغط Win + R 2. اكتب: cmd 3. اكتب: ipconfig 4. ابحث عن: IPv4 Address 5. مثال: 192.168.1.5 ``` #### على Mac/Linux: ```bash ifconfig # أو ip addr show ``` ### 2. غيّر serverUrl في كود Arduino **❌ خطأ:** ```cpp const char* serverUrl = "http://192.168.1.123/KL/backend/api/esp_control.php"; ↑ IP الـ ESP (خطأ!) ``` **✅ صحيح:** ```cpp const char* serverUrl = "http://192.168.1.5/KL/backend/api/esp_control.php"; ↑ IP الكمبيوتر (صحيح!) ``` ### 3. ارفع الكود المُعدّل على ESP --- ## 🧪 اختبار سريع ### قبل رفع الكود، جرّب من المتصفح: ``` http://192.168.1.5/KL/backend/api/esp_control.php?device_id=ESP01 ``` **لو ظهر:** ```json { "success": true, "action": "none", "message": "No pending commands" } ``` **✅ يبقى IP صحيح!** **لو ظهر خطأ:** ``` This site can't be reached ``` **❌ يبقى IP غلط!** --- ## 📋 Checklist - [ ] حصلت على IP الكمبيوتر (السيرفر) - [ ] جربت IP من المتصفح وشتغل - [ ] غيّرت `serverUrl` في كود Arduino - [ ] رفعت الكود على ESP - [ ] فتحت Serial Monitor - [ ] شفت رسائل نجاح الاتصال --- ## 🎯 مثال كامل ### السيناريو: - **IP الكمبيوتر (السيرفر):** `192.168.1.5` - **IP الـ ESP:** `192.168.1.123` (يتحدد تلقائياً) - **Device ID:** `ESP01` ### الكود الصحيح: ```cpp const char* ssid = "Hidden Network"; const char* password = "STROX2020"; const char* serverUrl = "http://192.168.1.5/KL/backend/api/esp_control.php"; ↑↑↑↑↑↑↑↑↑↑↑↑ IP الكمبيوتر const char* deviceId = "ESP01"; ``` ### النتيجة المتوقعة: ``` ================================= ESP8266 IoT Control System ================================= ✓ WiFi متصل بنجاح! عنوان IP: 192.168.1.123 ================================= النظام جاهز للعمل! ================================= ⚡ GPIO5 → تشغيل ✓ ✓ تم إرسال التأكيد ``` --- ## ⚠️ ملاحظات مهمة ### 1. ESP و الكمبيوتر لازم على نفس الشبكة ``` ✅ ESP: 192.168.1.123 ✅ PC: 192.168.1.5 ↑↑↑↑↑↑↑↑↑↑ نفس الشبكة (192.168.1.x) ``` ### 2. لو IP الكمبيوتر بيتغير استخدم **IP ثابت** من إعدادات الراوتر: - افتح صفحة الراوتر (عادة `192.168.1.1`) - اذهب لـ DHCP Settings - احجز IP ثابت للكمبيوتر ### 3. لو عندك Firewall أضف استثناء للمنفذ 80: ``` Control Panel → Windows Firewall → Advanced Settings → Inbound Rules → New Rule → Port → 80 ``` ### 4. لو XAMPP مش شغال تأكد إن Apache شغال: - افتح XAMPP Control Panel - اضغط Start على Apache - تأكد إنه أخضر --- ## 🔍 تشخيص المشكلة ### ESP بيطبع "خطأ HTTP: -1" **السبب:** مش قادر يوصل للسيرفر **الحل:** تأكد من IP الكمبيوتر صحيح ### ESP بيطبع "خطأ HTTP: 404" **السبب:** المسار غلط **الحل:** تأكد من المسار: `/KL/backend/api/esp_control.php` ### ESP بيطبع "خطأ HTTP: 500" **السبب:** خطأ في السيرفر **الحل:** افتح `backend/api/esp_control.php` من المتصفح وشوف الخطأ ### ESP مش بيطبع حاجة **السبب:** مش متصل بالـ WiFi **الحل:** تأكد من اسم الشبكة وكلمة المرور --- ## 🎉 بعد الحل لما تعمل الخطوات صح، هتشوف: ### في Serial Monitor: ``` ⚡ GPIO5 → تشغيل ✓ ✓ تم إرسال التأكيد ⚡ GPIO4 → إيقاف ✗ ✓ تم إرسال التأكيد ``` ### في لوحة التحكم: - ✅ حالة الجهاز: **Online** (أخضر) - ✅ آخر نشاط: **منذ ثوانٍ** - ✅ السجلات تظهر الأوامر --- ## 📞 لو المشكلة مستمرة 1. اقرأ `IP-SETUP-GUIDE.md` 2. راجع `API-COMPATIBILITY-GUIDE.md` 3. شغّل `backend/database/fix_iot_system.php` 4. تأكد من وجود Device ID في قاعدة البيانات --- **الخلاصة:** غيّر IP في `serverUrl` من IP الـ ESP لـ IP الكمبيوتر! 🎯