# 🌐 دليل إعداد IP والاستضافة ## 📍 السيناريو 1: الاستخدام المحلي (Local) ### كيف تحصل على IP الكمبيوتر؟ #### على Windows: 1. اضغط `Win + R` 2. اكتب `cmd` واضغط Enter 3. اكتب: ``` ipconfig ``` 4. ابحث عن **IPv4 Address** تحت **Wireless LAN adapter Wi-Fi** 5. مثال: `192.168.1.5` #### على Mac: 1. افتح Terminal 2. اكتب: ``` ifconfig | grep "inet " ``` 3. ستجد IP مثل: `192.168.1.5` #### على Linux: ```bash hostname -I ``` ### الإعدادات المطلوبة: في صفحة مولد الكود: ``` اسم WiFi: اسم_شبكتك كلمة المرور: كلمة_مرور_الشبكة عنوان السيرفر: 192.168.1.5 ← IP الكمبيوتر ``` ### ⚠️ ملاحظات مهمة: - ESP والكمبيوتر لازم يكونوا على **نفس الشبكة** - استخدم شبكة **2.4GHz** (ESP8266 لا يدعم 5GHz) - IP الكمبيوتر ممكن يتغير، استخدم IP ثابت (شرح بالأسفل) --- ## 🌍 السيناريو 2: الرفع على استضافة (Hosting) ### الخطوة 1: رفع الملفات #### أ) رفع المشروع 1. ارفع مجلد `backend` كامل على الاستضافة 2. تأكد من المسار: ``` public_html/ └── backend/ ├── admin/ ├── api/ ├── config/ └── ... ``` #### ب) إعداد قاعدة البيانات 1. أنشئ قاعدة بيانات جديدة من cPanel 2. عدّل ملف `backend/config/database.php`: ```php private $host = "localhost"; private $db_name = "اسم_قاعدة_البيانات"; private $username = "اسم_المستخدم"; private $password = "كلمة_المرور"; ``` 3. استورد قاعدة البيانات: - افتح phpMyAdmin - اختر قاعدة البيانات - Import → اختر ملف `database.sql` 4. شغّل سكريبتات الإعداد: ``` https://yourdomain.com/backend/database/fix_iot_system.php https://yourdomain.com/backend/database/add_wifi_to_settings.php ``` ### الخطوة 2: إعداد ESP للاستضافة في صفحة مولد الكود: ``` اسم WiFi: اسم_شبكتك كلمة المرور: كلمة_مرور_الشبكة عنوان السيرفر: yourdomain.com ← دومين الاستضافة ``` الكود سيكون: ```cpp const char* serverUrl = "https://yourdomain.com/backend/api/esp_control.php"; ``` ### ⚠️ متطلبات الاستضافة: - ✅ دعم PHP 7.4+ - ✅ دعم MySQL - ✅ SSL Certificate (HTTPS) - **مهم جداً** - ✅ Allow URL fopen enabled - ✅ cURL enabled ### 🔒 تفعيل HTTPS: معظم الاستضافات توفر SSL مجاني (Let's Encrypt): 1. اذهب إلى cPanel 2. SSL/TLS 3. Install Free SSL Certificate --- ## 🔧 السيناريو 3: IP ثابت محلي (Static IP) ### لماذا IP ثابت؟ - IP الكمبيوتر يتغير كل مرة تعيد تشغيل الراوتر - IP ثابت يضمن عمل ESP بدون مشاكل ### كيف تعمل IP ثابت؟ #### الطريقة 1: من إعدادات Windows 1. اضغط `Win + R` → اكتب `ncpa.cpl` 2. كليك يمين على **Wi-Fi** → Properties 3. اختر **Internet Protocol Version 4 (TCP/IPv4)** 4. اضغط Properties 5. اختر **Use the following IP address** 6. أدخل: ``` IP address: 192.168.1.100 ← اختر رقم ثابت Subnet mask: 255.255.255.0 Default gateway: 192.168.1.1 ← IP الراوتر Preferred DNS: 8.8.8.8 Alternate DNS: 8.8.4.4 ``` 7. OK → OK #### الطريقة 2: من إعدادات الراوتر (أفضل) 1. افتح متصفح واكتب: `192.168.1.1` أو `192.168.0.1` 2. سجل دخول (عادة: admin/admin) 3. ابحث عن **DHCP Reservation** أو **Static IP** 4. أضف MAC Address الكمبيوتر 5. حدد IP ثابت مثل: `192.168.1.100` --- ## 📱 السيناريو 4: استخدام Ngrok (للتجربة) ### ما هو Ngrok؟ يعطيك رابط عام مؤقت للوصول لجهازك المحلي ### الخطوات: 1. حمّل Ngrok من: https://ngrok.com/download 2. فك الضغط وشغّل: ``` ngrok http 80 ``` 3. ستحصل على رابط مثل: ``` https://abc123.ngrok.io ``` 4. استخدم هذا الرابط في إعدادات السيرفر: ``` عنوان السيرفر: abc123.ngrok.io ``` ### ⚠️ ملاحظات Ngrok: - الرابط يتغير كل مرة تشغّل Ngrok - مجاني لكن محدود - مناسب للتجربة فقط --- ## 🏠 السيناريو 5: Port Forwarding (الوصول من الإنترنت) ### متى تستخدمه؟ - عندما تريد التحكم في ESP من خارج المنزل - بدون استضافة ### الخطوات: 1. **احصل على IP العام:** - افتح: https://whatismyipaddress.com/ - انسخ IP العام مثل: `41.234.56.78` 2. **افتح Port في الراوتر:** - افتح إعدادات الراوتر: `192.168.1.1` - ابحث عن **Port Forwarding** أو **Virtual Server** - أضف قاعدة جديدة: ``` Service Name: IoT External Port: 8080 Internal IP: 192.168.1.100 ← IP الكمبيوتر Internal Port: 80 Protocol: TCP ``` 3. **استخدم في ESP:** ``` عنوان السيرفر: 41.234.56.78:8080 ``` ### ⚠️ تحذيرات الأمان: - استخدم كلمة مرور قوية - فعّل Firewall - غيّر Port الافتراضي - استخدم HTTPS إن أمكن --- ## 📊 جدول المقارنة | السيناريو | السهولة | التكلفة | الأمان | الاستخدام | |-----------|---------|---------|--------|-----------| | **محلي (Local)** | ⭐⭐⭐⭐⭐ | مجاني | ⭐⭐⭐⭐⭐ | داخل المنزل فقط | | **استضافة** | ⭐⭐⭐ | مدفوع | ⭐⭐⭐⭐ | من أي مكان | | **IP ثابت** | ⭐⭐⭐⭐ | مجاني | ⭐⭐⭐⭐⭐ | داخل المنزل | | **Ngrok** | ⭐⭐⭐⭐⭐ | مجاني | ⭐⭐⭐ | تجربة فقط | | **Port Forward** | ⭐⭐ | مجاني | ⭐⭐ | من أي مكان | --- ## 🎯 التوصيات ### للمبتدئين: 1. ابدأ بـ **Local IP** (السيناريو 1) 2. استخدم **IP ثابت** (السيناريو 3) ### للاستخدام الجاد: 1. استخدم **استضافة** مع SSL (السيناريو 2) 2. أو **Port Forwarding** مع أمان قوي (السيناريو 5) ### للتجربة السريعة: 1. استخدم **Ngrok** (السيناريو 4) --- ## 🔍 استكشاف الأخطاء ### ESP لا يتصل بالسيرفر: #### تحقق من: 1. ✅ ESP والكمبيوتر على نفس الشبكة 2. ✅ IP صحيح 3. ✅ Firewall لا يمنع الاتصال 4. ✅ السيرفر شغال (افتح في المتصفح) #### اختبر الاتصال: ``` http://192.168.1.5/KL/backend/api/esp_control.php?device_id=ESP01&action=get_commands ``` يجب أن ترى JSON response ### Firewall يمنع الاتصال: #### Windows Firewall: 1. Control Panel → Windows Defender Firewall 2. Advanced Settings 3. Inbound Rules → New Rule 4. Port → TCP → 80 5. Allow the connection --- ## 📝 ملخص سريع ### للاستخدام المحلي: ``` 1. احصل على IP: ipconfig 2. ضعه في مولد الكود: 192.168.1.5 3. ارفع الكود على ESP ``` ### للاستضافة: ``` 1. ارفع الملفات 2. أنشئ قاعدة بيانات 3. شغّل سكريبتات الإعداد 4. ضع الدومين في مولد الكود: yourdomain.com 5. ارفع الكود على ESP ``` --- **تم التطوير بواسطة:** Kiro AI **التاريخ:** نوفمبر 2025 **الإصدار:** 1.0.0