بروتوكولات الاتصال اللاسلكي في الزراعة
Wireless Communication Protocols in Agriculture
أساسيات الموجات الراديوية في الحقل: التردد، المدى، RSSI، العوائق والطاقة — ومقارنة عملية بين Wi-Fi و Bluetooth و LoRa و ESP-NOW و Zigbee، ثم مسح ميداني لقوة الإشارة في مزرعة الكلية لاختيار البروتوكول المناسب لكل نقطة.
نظرة عامة على السيشن
بنهاية السيشن ستكون قادراً على
- تشرح العلاقة بين التردد والمدى والطاقة ومعدل البيانات.
- تقرأ RSSI وتفسر قيمه (dBm) وتعرف أثر العوائق الزراعية (أشجار، صوب، رطوبة النباتات).
- تقارن Wi-Fi / BLE / LoRa / ESP-NOW / Zigbee من حيث المدى والاستهلاك والبنية.
- تنفذ Site survey حقيقياً وتستنتج منه قرار تصميم الشبكة.
- تختار البروتوكول المناسب لمزرعة الكلية بمعايير قابلة للقياس.
التطبيق في مزرعة الكلية
مسح لقوة إشارة Wi-Fi (Site survey) في نقاط القياس الأربع بالمزرعة باستخدام ESP32 و Power bank، ورسم «خريطة تغطية» تحدد لكل نقطة: Wi-Fi مباشر أم نحتاج ESP-NOW/LoRa.
المُخرج (Deliverable)
خريطة تغطية لاسلكية للمزرعة (RSSI لكل نقطة) + مصفوفة قرار (Decision matrix) تبرر البروتوكول المختار لكل عقدة.
خطة السيشن (180 دقيقة)
- 0:00 مراجعة مراجعة: نتائج تسجيل الـ 24 ساعة 10 د
- 0:10 شرح أساسيات الراديو: التردد، dBm، RSSI، العوائق 30 د
- 0:40 محاكاة مقارنة البروتوكولات + محاكي الاختيار 25 د
- 1:05 محاكاة Wokwi: اتصال ESP32 بالـ Wi-Fi وقراءة RSSI 25 د
- 1:30 استراحة استراحة 10 د
- 1:40 ميداني ميداني: مسح قوة الإشارة في المزرعة 40 د
- 2:20 نقاش ورشة تصميم: مصفوفة القرار لشبكة المزرعة 30 د
- 2:50 تقييم اختبار سريع + الواجب 10 د
الأدوات والمكونات
قاموس المصطلحات (Glossary)
2.4 GHz (Wi-Fi/BLE/Zigbee) أو 868 MHz (LoRa في أوروبا/مصر).
وحدة لوغاريتمية للقدرة: كل −3 dB = نصف القدرة.
Received Signal Strength Indicator — −50 ممتاز، −80 ضعيف.
مسار مباشر بين الهوائيين بدون عوائق.
منطقة بيضاوية حول خط النظر يجب أن تكون خالية بنسبة 60% على الأقل.
ضعف الإشارة مع المسافة والعوائق.
Spreading Factor 7–12: أعلى = مدى أبعد وسرعة أقل.
اتصال مباشر بين ESP32 بدون راوتر، رسالة حتى 250 Byte.
كل عقدة تعيد إرسال رسائل غيرها لتوسيع التغطية.
كم Byte/ثانية نستطيع إرساله.
LoRa 868 MHz مقيد بـ 1% من الوقت في كثير من الدول.
الراوتر أو الموسع الذي تتصل به العقد.
أساسيات الراديو في الحقل
30 دقيقةكل بروتوكول لاسلكي هو مفاضلة بين ثلاثة أشياء: المدى (Range)، معدل البيانات (Data rate)، والطاقة (Power). لا يوجد بروتوكول يعطيك الثلاثة معاً — لهذا تستخدم المزارع الكبيرة LoRa (مدى بعيد، بيانات قليلة، طاقة منخفضة)، بينما تكفي الصوبة القريبة من المبنى Wi-Fi عادي.
| RSSI (dBm) | الجودة | ماذا يعني للعقدة الحقلية |
|---|---|---|
| −30 … −60 | ممتازة | إرسال موثوق حتى مع رسائل كبيرة |
| −60 … −70 | جيدة | مناسبة لعقد الحساسات |
| −70 … −80 | ضعيفة | فقد رسائل متقطع — يحتاج إعادة إرسال (Retry) |
| أقل من −80 | غير صالحة | استخدم موسع إشارة، ESP-NOW relay أو LoRa |
| العائق | الأثر التقريبي على 2.4 GHz |
|---|---|
| جسم الإنسان | −3 إلى −6 dB |
| صف أشجار / ذرة مكتملة النمو (أوراق مليئة بالماء) | −10 إلى −20 dB |
| جدار طوب | −6 إلى −12 dB |
| صوبة بلاستيك مبللة من الداخل | −3 إلى −8 dB |
| هوائي العقدة ملامس للأرض | يقلل المدى للنصف أو أكثر — ارفعه 1 م على الأقل |
الإشارة تتغير مع الموسم!
حقل ذرة بارتفاع 30 سم في مايو ليس مثل نفس الحقل بارتفاع 2.5 م في أغسطس. الماء في الأوراق يمتص موجات 2.4 GHz بقوة. صمم شبكتك على «أسوأ حالة» في منتصف الموسم، وارفع الهوائيات فوق مستوى النبات.
مقارنة البروتوكولات
25 دقيقة| Wi-Fi | BLE | ESP-NOW | Zigbee | LoRa | |
|---|---|---|---|---|---|
| التردد | 2.4 GHz | 2.4 GHz | 2.4 GHz | 2.4 GHz | 868 MHz |
| المدى في حقل مفتوح | ~50–100 م | ~10–30 م | ~200 م (LR mode أكثر) | ~50–100 م/قفزة | 2–10 كم |
| معدل البيانات | Mbps | ~1 Mbps | ~1 Mbps | 250 kbps | 0.3–5 kbps |
| الطاقة | عالية | منخفضة جداً | منخفضة | منخفضة جداً | منخفضة جداً |
| يحتاج | Router | هاتف/Gateway | ESP32 Gateway | Coordinator | LoRa Gateway |
| التكلفة الإضافية | لا شيء (مدمج) | لا شيء (مدمج) | لا شيء (مدمج) | موديول XBee | موديول SX1276 (~300 جنيه) |
| الأنسب لـ | الصوبة قرب المبنى | قراءة يدوية بالهاتف | شبكة نجمية داخل المزرعة | شبكات كثيفة | حقول بعيدة |
قرار الكورس
سنبني شبكة Wi-Fi للعقد القريبة + ESP-NOW لعقد الحقل البعيدة ترسل لعقدة بوابة (Gateway) متصلة بالسيرفر. هذا لا يكلف أي موديول إضافي. LoRa نشرحه كامتداد للمزارع الكبيرة.
Wokwi: ESP32 والواي فاي
25 دقيقةTinkercad لا يدعم ESP32 ولا الواي فاي، لذلك نستخدم Wokwi — محاكي مجاني في المتصفح يدعم ESP32 والشبكة الحقيقية عبر شبكة افتراضية اسمها Wokwi-GUEST (بدون كلمة سر).
اتصال ESP32 بالشبكة + مسح الشبكات + RSSI
25 دقيقةالمكونات (Components)
- ESP32 DevKit V1 (موجود افتراضياً في المشروع الجديد)
افتح wokwi.com/projects/new/esp32 والصق الكود في sketch.ino.
اضغط ▶ وراقب الـ Serial: سيظهر
Wokwi-GUESTبقوة إشارة، ثم الاتصال وعنوان IP.غير
WIFI_SSIDإلى اسم خاطئ ولاحظ ما يحدث — صمم الكود ليحاول 10 ثوانٍ ثم ينام بدل أن يعلق للأبد.
#include <WiFi.h>
const char* WIFI_SSID = "Wokwi-GUEST"; // on the farm: "KFS-Farm-IoT"
const char* WIFI_PASS = "";
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
int n = WiFi.scanNetworks();
for (int i = 0; i < n; i++)
Serial.printf("%-20s RSSI=%d dBm ch=%d\n", WiFi.SSID(i).c_str(), WiFi.RSSI(i), WiFi.channel(i));
WiFi.begin(WIFI_SSID, WIFI_PASS);
unsigned long t0 = millis();
while (WiFi.status() != WL_CONNECTED && millis() - t0 < 10000) { delay(250); Serial.print('.'); }
if (WiFi.status() == WL_CONNECTED)
Serial.printf("\nconnected IP=%s RSSI=%d dBm\n", WiFi.localIP().toString().c_str(), WiFi.RSSI());
else
Serial.println("\nWi-Fi failed -> store locally and retry later (never block forever in the field)");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) Serial.printf("RSSI now: %d dBm\n", WiFi.RSSI());
delay(3000);
}
ميداني: مسح الإشارة في المزرعة
40 دقيقة/*
Session 5 — Wi-Fi site survey of the college farm (ESP32 + power bank)
Walk to each candidate node location, wait 10 s, and write down the RSSI of the farm access point.
RSSI guide: > -60 dBm excellent | -60..-70 good | -70..-80 weak (packet loss) | < -80 use LoRa / ESP-NOW relay
Output is CSV on the Serial Monitor (or the built-in LED blinks: fast = strong, slow = weak).
*/
#include <WiFi.h>
const char* TARGET_SSID = "KFS-Farm-IoT";
#define LED 2
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
Serial.println("ms,ssid,rssi_dbm,channel,quality");
}
void loop() {
int n = WiFi.scanNetworks();
int best = -127;
for (int i = 0; i < n; i++) {
const char* q = WiFi.RSSI(i) > -60 ? "excellent" : WiFi.RSSI(i) > -70 ? "good" : WiFi.RSSI(i) > -80 ? "weak" : "unusable";
Serial.printf("%lu,%s,%d,%d,%s\n", millis(), WiFi.SSID(i).c_str(), WiFi.RSSI(i), WiFi.channel(i), q);
if (WiFi.SSID(i) == TARGET_SSID) best = max(best, (int)WiFi.RSSI(i));
}
Serial.printf("# %s best RSSI = %d dBm\n", TARGET_SSID, best);
WiFi.scanDelete();
int blinkMs = best > -60 ? 100 : best > -70 ? 300 : best > -80 ? 800 : 0;
for (int i = 0; i < 10 && blinkMs; i++) { digitalWrite(LED, !digitalRead(LED)); delay(blinkMs); }
digitalWrite(LED, LOW);
delay(blinkMs ? 2000 : 5000);
}
الـ LED المدمج يومض بسرعة عندما تكون الإشارة قوية وببطء عندما تضعف — تستطيع المسح بدون لابتوب!
خريطة تغطية Wi-Fi للمزرعة
من مبنى الكلية (نقطة الراوتر) حتى أبعد نقطة قياس
- التجهيز
ارفع كود المسح، وصّل ESP32 بـ Power bank، وضع اسم شبكة المزرعة في
TARGET_SSID. - المسار
امشِ من الراوتر باتجاه كل نقطة قياس. توقف كل 20 م وعند كل نقطة قياس 10 ثوانٍ.
- الارتفاع
في كل نقطة قياس سجل RSSI مرتين: الجهاز على الأرض، ثم مرفوعاً 1.5 م. ما الفرق؟
- العوائق
سجل العوائق بين النقطة والراوتر (صوبة، أشجار، مبنى).
- الخريطة
لوّن النقاط على صورة Google Maps للمزرعة: أخضر > −65، أصفر −65…−78، أحمر < −78.
| النقطة | المسافة من الراوتر (م) | RSSI على الأرض | RSSI على 1.5 م | العوائق | القرار |
|---|---|---|---|---|---|
- امشِ على الممرات فقط — لا تدهس النباتات.
- احذر قنوات الري المفتوحة.
ورشة: تصميم شبكة المزرعة
30 دقيقةكل فريق يملأ مصفوفة قرار موزونة (Weighted decision matrix) لاختيار البروتوكول لنقطته. أعط كل معيار وزناً حسب أهميته في مزرعة الكلية، ثم درجة من 1–5 لكل بروتوكول:
| المعيار | الوزن | Wi-Fi | ESP-NOW | LoRa |
|---|---|---|---|---|
| يصل للمسافة الحالية | 30% | 1 | 4 | 5 |
| استهلاك الطاقة (بطارية) | 25% | 2 | 4 | 5 |
| التكلفة | 20% | 5 | 5 | 2 |
| سهولة البرمجة والصيانة | 15% | 5 | 4 | 3 |
| حجم البيانات المطلوب | 10% | 5 | 5 | 3 |
| المجموع الموزون | 100% | 3.05 | 4.30 | 3.90 |
فكّر وناقش
أي نقاط في خريطتكم تحتاج بديلاً عن Wi-Fi؟
هل يمكن حل المشكلة بتحريك الراوتر أو رفع الهوائي فقط بدلاً من تغيير البروتوكول؟
لو أرادت الكلية توسيع التجربة لأرض على بعد 3 كم — ما التصميم؟
أمان الشبكة من اليوم الأول
شبكة الـ IoT تكون معزولة عن شبكة الكلية الرئيسية (راوتر مخصص)، بكلمة سر قوية وبدون منافذ مفتوحة على الإنترنت — كما تنص متطلبات السلامة في وثيقة الكورس.
اختبر فهمك
5 أسئلة · نتيجة فوريةالواجب والتسليم
الواجب الأسبوعي (Weekly Assignment)
أكمل خريطة التغطية الملونة وارفعها كصورة.
اكتب مصفوفة القرار لنقطة فريقك بالأوزان والدرجات وبرّر النتيجة في 5 أسطر.
ابحث: ما قوانين استخدام نطاق 868 MHz في مصر (NTRA)؟ ولماذا يهم ذلك لـ LoRa؟
قائمة التسليم (Submission Checklist)
مراجع ومصادر
استعد للسيشن القادمة
السيشن القادمة ننشر 3–4 عقد في المزرعة: كل فريق يحضر ESP32 إضافياً (سيعمل كبوابة Gateway) واكتب عنوان MAC لكل لوحة.