Alin Li Lageeni

ESP-NOW + LoRa Emergency Communication System

Solution Architecture v3.0 Fully Revised

مارس 2026 · Alin Li لخدمات الحاسوب · لاقيني

1

نظرة عامة على المشروع

What is Alin Li Lageeni?

Alin Li Lageeni (لاقيني — وتعني بالعربية "اعثر عليّ / قابلني") نظام اتصالات طوارئ مفتوح المصدر يعمل خارج الشبكات ومبني على ESP32. يستخدم طبقتين للاتصال: ESP-NOW for fast, low-power short-range and LoRa for long-range — no internet, no WiFi networks, no cellular service required.

ESP32ESP-NOWLoRa 433/868 MHzWeb UI (temp)SOS SystemDeep Sleepمفتوح المصدر

Use Cases

  • Emergency Situations — Natural disasters, power outages, or network failures where cellular/internet is unavailable
  • مغامرات في الهواء الطلق — Camping, hiking, or field trips where groups need to stay connected across long distances
  • Educational Projects — Teaching students (ages 9–14) about wireless communication, networking, and IoT
  • Community Events — Coordination at large gatherings without relying on WiFi infrastructure
  • Search & Rescue — Locate lost group members using signal strength and GPS sharing
v3.0 ArchitectureWiFi AP mode is used only during initial setup for the configuration web UI, then turned OFF. ESP-NOW + LoRa provide the runtime communication backbone. This saves battery and removes the single-point-of-failure WiFi master.
★

الحلول القائمة وما يميزنا

The Landscape

Several solutions exist for off-grid communication. Some are open-source community projects, others are commercial products. Here's how they compare — and why we built Alin Li Lageeni to fill a gap none of them address.

Meshtastic

The most popular open-source LoRa mesh project. Community-driven, supports many hardware boards, uses flood-based routing. Available on ESP32 and nRF52 platforms with companion mobile apps for iOS and Android.

مفتوح المصدرشبكة LoRa متداخلةتطبيق هاتفLarge Community

MeshCore

برنامج ثابت أحدث مفتوح المصدر لشبكات LoRa المتداخلة (بترخيص MIT)، يستخدم توجيهًا انتقائيًا للحزم بدل الإغراق. يدعم المكررات وخوادم الغرف وأوضاع الراديو المرافق. له مجتمع متنامٍ وتطبيقات للهواتف وعميل ويب.

مفتوح المصدرSelective RoutingWeb Clientمشروع أحدث

goTenna

جهاز شبكات متداخلة تجاري. يدعم الإصدار المخصص للمستهلكين الرسائل النصية وGPS عبر هاتف ذكي مقترن. يوفر إصدار Pro تشفيرًا بالمستوى العسكري وتكاملًا مع تطبيقات تكتيكية مثل ATAK. مغلق المصدر ومملوك.

CommercialClosed Sourceيتطلب هاتفًابمستوى عسكري

Garmin inReach

جهاز اتصال بالأقمار الصناعية يتصل بشبكة Iridium لتبادل الرسائل في الاتجاهين عالميًا وإرسال SOS، مع مركز إنقاذ احترافي يعمل على مدار الساعة طوال الأسبوع. يتطلب اشتراكًا مدفوعًا. ليس شبكة متداخلة — بل اتصال من الجهاز إلى القمر الصناعي.

Commercial ($300–500)Subscription RequiredSatellite / Globalمركز إنقاذ على مدار 24/7

Head-to-Head Comparison

Feature Alin Li Lageeni Meshtastic MeshCore goTenna Garmin inReach
Cost ~$15–30 DIY ~$20–60 DIY ~$20–60 DIY $180–300+ $300–500+
Subscription لا شيء — مجاني لا شيء لا شيء لا شيء $15–65/شهر
Communication ESP-NOW + LoRa (dual) LoRa فقط LoRa فقط Proprietary radio Iridium satellite
Range 200m–15 km 1–15 km 1–15 km 1–6 km Global
هل يتطلب هاتفًا؟ لا — واجهة ويب مدمجة Yes (BLE app) Yes (BLE app) Yes (BLE app) اختياري
Setup Complexity تجميع بنقرة 1 متوسط (إعداد التطبيق) متوسط (تفليش + CLI) Easy (app pairing) Easy (account setup)
Target Audience Youth / Education Hobbyists / DIY Hobbyists / Technical خارجي / تكتيكي خارجي / احترافي
SOS System Dual-channel + ACK + countdown Basic (via app) لا SOS مدمج Indirect only مركز إنقاذ على مدار 24/7
Sleep / Battery Save 4 أوضاع (وصولًا إلى 0.01mA) وضع توفير الطاقة Sleep optimized ~24h battery life Days to weeks
Arabic / RTL UI Yes — built-in Community translation لا لا لا
Classroom Mode Yes — quizzes, attendance لا لا لا لا
Audit Logs Full on-device + export App-side only محدود App-side Cloud only
مفتوح المصدر Yes (MIT) Yes (GPL-3) Yes (MIT) لا لا
الشبكات المتداخلة Relay via peers Flood-based mesh Selective routing يدعم الشبكات المتداخلة لا (اتصال مباشر بالقمر الصناعي)

What Makes Alin Li Lageeni Different?

  • Built for education first — Designed specifically for students ages 9–14. Simple 1-click grouping, friendly web UI, no app install needed. Meshtastic and MeshCore are powerful but designed for hobbyists and require technical setup.
  • Dual-layer communication (ESP-NOW + LoRa) — No other solution combines ESP-NOW for ultra-low-power short-range with LoRa for long-range. Meshtastic and MeshCore use LoRa only. This gives us better battery life for nearby peers and automatic channel fallback.
  • لا اعتماد على الهاتف — Meshtastic, MeshCore, and goTenna all require a paired smartphone via Bluetooth. Lageeni has a built-in web UI accessible from any device with a browser, plus physical button operation for phone-free use.
  • SOS with safety countdown — A 5-second cancellable countdown prevents accidental SOS triggers. Dual-channel broadcast ensures maximum reach. ACK tracking shows exactly who received the alert. No other LoRa solution offers this level of SOS design.
  • Arabic and bilingual support — Native Arabic (RTL) interface built-in. No existing LoRa mesh project offers this. Critical for classrooms and communities in the Middle East.
  • Classroom mode — Unique feature: teacher can broadcast quizzes, take attendance, and send group messages. Students respond via button press. No internet needed. No other mesh solution has this.
  • Full on-device audit logs — All events stored in flash with permanent SOS logs, filterable by type, exportable as JSON/CSV. Meshtastic only logs on the phone app; MeshCore has limited logging.
  • Zero ongoing cost — Unlike Garmin inReach ($15–65/month subscription) or goTenna Pro (commercial license), Lageeni has zero recurring costs. Hardware is $15–30 per device.
يلبّي Alin Li Lageeni احتياجًا فريدًاIt's not trying to replace Meshtastic (which excels at large community meshes) or Garmin inReach (which offers global satellite rescue). Lageeni is purpose-built for small groups, classrooms, and emergency preparedness where simplicity, low cost, bilingual support, and educational value matter most.
2

لماذا ESP-NOW بدلًا من WiFi؟

WiFi AP is Wrong for Emergency Devices

تشغيل نقطة وصول WiFi يستنزف البطارية سريعًا، ويتطلب أن يكون جهاز واحد «الموجّه» دائمًا، ويخلق نقطة فشل وحيدة. للطوارئ والعمل الميداني نحتاج حلًا أخف بكثير وأكثر صمودًا.

Feature
WiFi AP/STA
ESP-NOW
استهلاك الطاقة
~150–200 mA continuous
~2–5 mA per burst
Setup Required
SSID, password, DHCP, IP
عنوان MAC فقط
Single Point of Failure
تعطّل نقطة الوصول = تعطّل الشبكة
نظير إلى نظير، دون جهاز رئيسي
Range
~30–100 m
~200–500 m (open)
Latency
HTTP overhead (50–200ms)
~1–5 ms (direct)
Sleep Compatible
لا (ينقطع الاتصال)
Yes (wake → send → sleep)
الحد الأقصى للأجهزة النظيرة
10 عملاء (حد ESP32)
20 جهازًا نظيرًا (10 مشفّرة)
معماريتنا ذات الطبقات الثلاث Layer 1 — WiFi AP: أثناء الإعداد الأولي فقط. يصل المستخدم هاتفه ← واجهة الويب ← إعادة التسمية وتحديد المجموعة. ثم يُوقَف WiFi.
Layer 2 — ESP-NOW: Short-range (200–500m), ultra-low power, for nearby devices.
Layer 3 — LoRa: مدى بعيد (1–15 km)، للأجهزة البعيدة وبث الطوارئ.
3

معمارية النظام

Alin Li Lageeni — اتصال نظير إلى نظير بطبقتين منطقة LoRa ‏1–15 km ESP-NOW 200–500m A Base Camp B أحمد C Tent 3 D River Team E Scout (far) LoRa فقط F Hilltop LoRa فقط SOS → ALL مفتاح الرسم Any Device بالقرب (ESP-NOW + LoRa) Far (LoRa only) ESP-NOW LoRa
4

تدفق النظام

1

تشغيل الطاقة — نقطة وصول WiFi مؤقتة

Each ESP32 boots and creates a temporary WiFi AP named "Lageeni-XXXX" (آخر 4 محارف من MAC). يربط المستخدم هاتفه بهذه الشبكة اللاسلكية ويفتح صفحة إعداد الويب على 192.168.4.1. هذا هو only time WiFi runs.

2

Rename Device

في صفحة الإعداد، يمنح المستخدم الجهاز اسمًا واضحًا (مثل «Ahmed» أو «Base Camp» أو «Tent 3»). يُحفظ في ذاكرة NVS الوميضية، ويظل محفوظًا بعد إعادة التشغيل.

3

Scan & Discover Peers

From any device's setup page, the user taps «البحث عن الأجهزة». يبث الجهاز إشارة اكتشاف LoRa. تستجيب جميع أجهزة Lageeni المشغّلة ضمن المدى بعنوان MAC واسمها وعنوان LoRa. تعرض صفحة الإعداد الأجهزة المكتشفة لحظيًا. ويمكن لأي جهاز بدء إنشاء المجموعة — فلا يوجد جهاز رئيسي ثابت.

4

Group All — Click to Join

User clicks «تجميع كل الأجهزة». تُبث حزمة GROUP_INIT عبر LoRa وتتضمن: معرّف المجموعة، ومفتاح التشفير، وكلمة المزامنة، وسجل الأجهزة الكامل. تخزّن جميع الأجهزة هذا الإعداد.

5

WiFi OFF — ESP-NOW + LoRa Active

بعد التجميع، WiFi turns OFF to save battery. All communication switches to ESP-NOW (قصير المدى ومنخفض الطاقة) و LoRa (بعيد المدى). يختار التوجيه الذكي أفضل قناة لكل جهاز نظير تلقائيًا.

6

Communicate & Operate

Users interact via physical button (press = scroll messages, long-press 3s = SOS, double-press = re-enable WiFi temporarily for full web UI access). Messages route automatically via ESP-NOW (nearby) or LoRa (distant). WiFi auto-turns off after 5 minutes of inactivity.

7

باستمرار: إشارات النشاط والمراقبة

ترسل إشارات النشاط الدورية (ESP-NOW كل 10 ثوانٍ وLoRa كل 30 ثانية) نسبة البطارية وRSSI وGPS (إن توفر). تتتبع جميع الأجهزة حالة اتصال بعضها ببعض وقوة الإشارة.

!

Emergency? — SOS with Panic Countdown

ضغط مطوّل (3s) on button triggers a 5-second visual countdown (يمكن الإلغاء!). بعد العد التنازلي: تُبث إشارة SOS عبر القناتين معًا، وتتكرر 3 مرات. تعرض جميع الأجهزة المستقبِلة تنبيهًا بملء الشاشة مع LED وطنّان.

5

تغيير اسم الجهاز

قواعد التسمية

  • 3–16 محرفًا (أقصر لتناسب حدود حجم حزم LoRa)
  • حروف وأرقام ومسافات فقط — دون رموز خاصة
  • يجب أن تكون الأسماء unique within the group
  • Stored in NVS flash — survives reboots and power loss
  • Default name: Lageeni-XXXX (آخر 4 محارف من MAC)
  • Rename happens during the WiFi setup phase only
6

Device Grouping

Grouping Packet (LoRa Broadcast)

{ "type": "GROUP_INIT", "group_id": "LAGEENI-A7F3", "lora_freq": 433E6, "lora_sync": 0xF3, "aes_key": "16-byte-key-here", "devices": [ { "mac": "A4:CF:12:7B:00:01", "name": "Base Camp", "lora_addr": 1 }, { "mac": "A4:CF:12:7B:00:02", "name": "Ahmed", "lora_addr": 2 }, { "mac": "A4:CF:12:7B:00:03", "name": "Tent 3", "lora_addr": 3 } ] }

بعد التجميع

  • تخزّن جميع الأجهزة إعدادات المجموعة في ذاكرة NVS الوميضية
  • يضبط LoRa التردد وكلمة المزامنة المتفق عليهما
  • ESP-NOW peers registered using MAC addresses from the registry
  • WiFi turns OFF on all devices automatically
  • Heartbeat pings begin: LoRa every 30s, ESP-NOW every 10s
  • Smart routing: auto-selects ESP-NOW (nearby) or LoRa (distant) per peer
7

نظام المراسلة

أنواع الرسائل

  • Broadcast — To all group members (ESP-NOW + LoRa simultaneously)
  • Direct Message — To one device (tries ESP-NOW first, falls back to LoRa)
  • Heartbeat — Periodic alive ping with battery %, RSSI, GPS
  • SOS — Emergency broadcast, highest priority, repeated 3 times
  • LED Command — Remote blink to identify a device physically
  • ACK — Delivery confirmation for direct messages and SOS
  • Quick Reply — Predefined short responses (OK, Coming, Wait, Help, Safe)

Smart Channel Selection

function sendMessage(target, payload) { if (target.espnow_reachable && target.last_rssi > -80) { // قريب → ESP-NOW (سريع، قليل الاستهلاك) espnow_send(target.mac, payload) } else if (target.lora_reachable) { // بعيد → LoRa (مدى طويل) lora_send(target.lora_addr, payload) } else { // غير متاح → ضعه في الطابور وحاول ترحيله عبر أجهزة قريبة queue_for_relay(target, payload) } } function sendSOS() { // يستخدم SOS القناتين معًا دائمًا espnow_broadcast(sos_payload) lora_broadcast(sos_payload) repeat(3, interval=2000ms) // 3 مرات بفاصل 2s }

قواعد تسليم الرسائل

  • أقصى حمولة: 200 بايت (حد LoRa) / 250 بايت (حد ESP-NOW)
  • Each message gets a unique ID to prevent duplicates
  • Direct messages expect تأكيد ACK خلال 3 ثوانٍ; auto-retry up to 3 times
  • If ESP-NOW fails, automatically retries via LoRa (channel fallback)
  • Broadcast messages are fire-and-forget (no ACK required)
  • تخزين الرسائل محليًا: آخر 200 رسالة في ذاكرة SPIFFS الوميضية
  • Undelivered messages shown with failure indicator in UI
8

SOS Emergency System

تصميم لحماية الأرواح — يعمل حتى مع انخفاض البطاريةSOS uses the absolute minimum power needed for transmission and repeats across both channels to maximize the chance of being received.

How SOS Works

  • Trigger: اضغط الزر مطوّلًا (3s) أو انقر زر SOS في واجهة الويب
  • العد التنازلي للطوارئ: 5-second visual countdown with LED + buzzer beeps — user can cancel during this window to prevent accidental triggers
  • Broadcast: SOS packet sent on BOTH ESP-NOW and LoRa simultaneously
  • Repetition: SOS sent 3 times with 2-second intervals for reliability
  • Priority: SOS interrupts any current operation — even wakes from deep sleep
  • Content: Sender name, battery %, GPS coordinates (if available), predefined or custom message
  • عند الاستقبال: Full-screen red alert on web UI, rapid LED blink, buzzer siren (if connected)
  • تأكيد ACK مطلوب: Every receiving device sends ACK — sender sees who heard them
  • مسجّل بشكل دائم: SOS events are never auto-deleted from flash storage
  • Cancel SOS: Sender can broadcast an "All Clear" to dismiss alerts on other devices

SOS Packet Structure

{ "type": "SOS", "from": 2, "from_name": "Ahmed", "battery": 34, "gps": { "lat": 25.2854, "lng": 51.5310 }, "message": «مصاب عند معبر النهر», "repeat": 1, // 1 من 3 "timestamp": 1711000120 }

Predefined Quick SOS Messages

For fast emergencies where typing isn't possible (selectable by button presses or UI tap):

  • «أحتاج إلى مساعدة فورًا!»
  • «مصاب — أرسلوا مساعدة طبية»
  • «حريق / خطر — أخلوا المنطقة»
  • «أحتاج إلى ماء / مؤن»
  • «تائه — يُرجى تحديد موقعي»
  • «أنا بخير — زال الخطر» (يلغي نداء SOS النشط)
9

إدارة الطاقة والسكون

أوضاع الطاقة

الوضعWiFiESP-NOWLoRaCurrentUse Case
Setupتشغيلإيقافتشغيل~160 mAInitial config via web UI
نشطإيقافتشغيلتشغيل~80 mAالتشغيل العادي
سكون خفيفإيقافWakeاستمع~10 mABattery saving, still reachable
Deep SleepإيقافإيقافTimer~0.01 mAأقصى عمر للبطارية، يستيقظ بمؤقّت
SOS ModeإيقافMAXMAX~200 mAEmergency — all power to TX

Deep Sleep Behavior

  • Wakes every N دقيقة (قابل للضبط من المستخدم: 1، 5، 10، 30 دقيقة)
  • عند الاستيقاظ: أرسل إشارة نشاط، وافحص رسائل LoRa المنتظرة، وحدّث الحالة، ثم عد إلى السكون
  • LoRa DIO0 interrupt wakes ESP32 immediately on incoming SOS (hardware interrupt)
  • يوقظ الضغط على الزر الفعلي الجهاز دائمًا من أي وضع سكون
  • Battery below 10% → auto light sleep with 30-min wake interval
  • Battery below 5% → sends "low battery — going offline" alert, then hibernates

Battery Monitoring

  • يقرأ طرف ADC جهد البطارية عبر دائرة مقسّم جهد
  • Battery % included in every heartbeat — all peers see your battery level
  • تُبث تحذيرات انخفاض البطارية عند عتبات 20% و10% و5%
  • Estimated runtime displayed in web UI based on current power mode
  • Support for solar panel charging via TP4056 — indefinite runtime in deep sleep
10

السجلات ومسار التدقيق

What Gets Logged

  • الرسائل: جميع المرسلة والمستقبلة (آخر 200، بنظام FIFO — يُحذف الأقدم تلقائيًا)
  • SOS Events: Every SOS trigger and every ACK received — never deleted, permanent
  • Device Events: Join, leave, name change, group formation, deregister
  • System Events: Boot, sleep, wake, WiFi on/off, mode changes, channel switches
  • Errors: إخفاقات تهيئة LoRa وESP-NOW، وأحداث انخفاض البطارية، وإخفاقات الترحيل
  • Signal History: RSSI values per peer over time (useful for range testing)

تخزين السجلات

// بنية قيد السجل { "ts": 1711000120, // طابع زمني Unix "type": "MSG_RX", // رمز نوع الحدث "from": "Ahmed", "ch": "ESPNOW", // القناة: LORA | ESPNOW "rssi": -65, "data": «أحتاج إلى مساعدة عند النهر» } // التخزين: 200 رسالة، SOS بلا حد، 500 للنظام // الإجمالي: قسم SPIFFS بحجم ~512 KB

الوصول إلى السجلات

  • Web UI: Re-enable WiFi briefly → view logs with filters (Messages / SOS / System / Errors)
  • Export: Download logs as JSON or CSV from web UI
  • Serial: Connect via USB → logs streamed to serial monitor (for developers)
  • دائم: تبقى جميع السجلات بعد إعادة التشغيل — تُخزَّن في ذاكرة SPIFFS الوميضية، لا RAM
  • OLED: Last 3 log entries shown on optional display screen
11

Factory Reset & Deregister

Reset Levels

إجراءTriggerWhat It DoesKeeps
Soft ResetWeb UI or button clickRestarts the deviceكل المواضيع
DeregisterWeb UI "Leave Group"يغادر المجموعة، ويُشعر الأجهزة النظيرة، ويعود إلى الإعدادالاسم + السجلات
Factory ResetHold button 10 secondsErases ALL: name, group, logs, configلا شيء

Deregister Flow

  • Device sends LEAVE_GROUP packet to all peers (both channels)
  • تحذفه الأجهزة الأخرى من قائمة الأعضاء وتسجّل الحدث
  • Device clears group config from NVS but keeps its name and logs
  • Device restarts WiFi AP → enters setup mode → ready to join a new group

Factory Reset Flow

  • Hold physical button 10 seconds → LED blinks rapidly as countdown confirmation
  • بعد 10 ثوانٍ: يضيء LED باستمرار ← محو NVS بالكامل + تهيئة SPIFFS ← إعادة التشغيل
  • Returns to first-boot state with default name Lageeni-XXXX
  • تُمحى نهائيًا جميع السجلات والرسائل وبيانات المجموعات والإعدادات
  • Best-effort LEAVE_GROUP sent before reset (if currently in a group)
Factory Reset is irreversible. Web UI requires typing "RESET" to confirm. Physical button requires 10-second hold to prevent accidental triggers. LED countdown gives visual feedback.
12

Built-in LED Logic

LED Status Patterns

StateنمطVisualDescription
BootingFast blink (5Hz)Starting up, scanning
Setup ModeSteady ONWiFi AP active, waiting for config
Grouped ActiveDouble pulse / 3sIn group, listening on both channels
سكون خفيفDim pulse / 5sتوفير للطاقة، مع استمرار إمكانية الوصول عبر LoRa
Deep SleepإيقافHibernating, wakes on timer/interrupt
Message RX3 ومضات سريعةReceived a message
Message TX1 ومضة طويلةSent a message
SOS Countdownنبضات متسارعة5-sec countdown — press again to cancel
SOS SendingRapid red burstsBroadcasting SOS
SOS ReceivedSOS pattern (continuous)Emergency alert from another device
Find MeBlue SOS blink (10s)Remote locate triggered by peer
Factory ResetFast blink → solidCountdown → erase complete
بطارية منخفضة3 ومضات حمراء بطيئةBattery below 10%
ErrorContinuous fast redتعطّل LoRa أو خطأ حرج

ESP32 built-in LED is single-color (blue). On RGB boards, actual colors are used. On mono boards, patterns differentiate states.

13

UI Mockups

http://192.168.4.1 — Setup Mode (WiFi turns OFF after grouping)

Alin Li Lageeni — الإعداد

WiFi: Lageeni-7B01 · Temporary setup

Discovered Devices (LoRa scan):

أحمد
A4:CF:12:7B:00:02 · RSSI: -42
LoRa
Tent 3
A4:CF:12:7B:00:03 · RSSI: -58
LoRa
Scout
A4:CF:12:7B:00:04 · RSSI: -89 (ضعيف)
LoRa

WiFi will turn OFF after grouping to save battery

جهاز أحمد — WiFi مفعّل مؤقتًا

جهاز أحمد

Group: LAGEENI-A7F3
72%ESP-NOWLoRa

Group Members:

Base Camp 91%
ESP-NOW: -38 · LoRa: -52 · 5s ago
Tent 3 55%
ESP-NOW: -62 · LoRa: -71 · 12s ago
Scout 18%
ESP-NOW: unreachable · LoRa: -89 · 45s ago
Chat with Base Camp · via ESP-NOW (-38 dBm)
We arrived at the river. Water level is high.
Base Camp · 2 min ago · ESP-NOW
Copy that. Taking alternate path.
You · 1 min ago · ESP-NOW
Good. Stay on channel. Update in 30 min.
Base Camp · 30s ago · LoRa
EMERGENCY ALERT
SOS ALERT
From: أحمد
«مصاب عند معبر النهر»
Battery: 34% · GPS: 25.2854, 51.5310 · via LoRa (-65 dBm)
Received 12 seconds ago · ACK sent
Audit Logs — Ahmed's Device
14:32:05 BOOT Device started · Ahmed · LAGEENI-A7F3
14:32:06 ESPNOW الجهاز النظير: Base Camp ‏(A4:CF:12:7B:01)
14:32:06 LORA Init OK · 433MHz SF7 Sync:0xF3
14:35:12 MSG_RX Base Camp via ESPNOW → "Water level high"
14:36:01 MSG_TX → Base Camp ESPNOW "Alternate path"
14:38:45 SOS_RX Scout → "Lost" (LoRa -89dBm)
14:38:45 ACK_TX SOS ACK → Scout
15:02:00 SLEEP سكون خفيف · الاستيقاظ: 5 دقائق
14

ميزات إضافية

GPS Sharing

وحدة NEO-6M اختيارية. تُدرج الإحداثيات في إشارات النشاط وSOS. ترى الأجهزة النظيرة موقعك التقريبي. ضرورية للبحث والإنقاذ.

Buzzer / Siren

طنّان كهرضغطي اختياري. يعمل عند استقبال SOS، وفي Find Me، وعند انخفاض البطارية، ولصفارات العد التنازلي للطوارئ. مسموع حين لا تكون الشاشة مرئية.

ترحيل الرسائل / الشبكة المتداخلة

If A can't reach C, B auto-relays the message. Extends effective range to 2–3x single-hop distance. Transparent to the user.

Solar Charging

TP4056 input supports 5V mini solar panel. In deep sleep, a small panel keeps the device running indefinitely — true off-grid operation.

Quick-Reply Templates

Predefined messages selectable by button presses: "OK", "Coming", "Wait", "Help", "Danger", "Safe". No phone needed for basic replies.

Signal Strength Map

Web UI charts RSSI per peer over time. Find optimal device placement, identify dead zones, and test antenna performance.

Check-In Timer

Configurable auto-check-in. If a device misses heartbeats for N minutes, all peers get a "no contact" warning. Catches lost devices.

دعم شاشة OLED

شاشة SSD1306 اختيارية بمقاس 0.96 بوصة. تعرض آخر رسالة، والبطارية، وعدد الأجهزة النظيرة، والإشارة، والوضع. تشغيل أساسي دون هاتف.

واجهة متعددة اللغات

Web UI in English and Arabic (RTL). Auto-detects browser language. Perfect for bilingual classrooms and Middle East field teams.

تشفير AES-128

جميع الحمولات مشفّرة. مفتاح فريد لكل مجموعة. يستخدم ESP-NOW بروتوكول CCMP. يمنع التنصت من مستقبلات LoRa خارج المجموعة.

Auto Low-Battery SOS

At 5% battery, auto-sends "going offline" alert with last GPS to all peers before hibernating. No one is silently lost.

Classroom Mode

Teacher broadcasts quizzes, attendance, group messages. Students respond by button. Great for outdoor lessons with no internet.

Buddy Pair System

أقرِن جهازين. إذا فقدا الاتصال عبر ESP-NOW لمدة N دقيقة، يصدر تنبيه في كليهما. يبقي رفقاء الرحلات على اتصال وعلى علم بحالة بعضهم.

Range Test Mode

Dedicated mode to test communication range between two devices. Sends ping-pong packets and displays real-time RSSI and success rate graph.

منارة ليلية

LED stays on as dim continuous glow for nighttime visibility. Configurable color and brightness. Helps locate devices in the dark.

Device Health Monitor

Tracks CPU temperature, uptime, free memory, and flash wear. Alerts if device is overheating or running low on storage space.

15

Hardware Requirements

ESP32 Board

ESP32-WROOM-32 or TTGO LoRa32

وحدة LoRa

SX1278 (433MHz) / SX1276 (868MHz)

هوائي LoRa

SMA antenna for extended range

بطارية LiPo

3.7V 1000–3000mAh + TP4056

زر فعلي

Tactile switch: SOS, wake, navigate

Buzzer (opt.)

طنّان كهرضغطي للتنبيهات الصوتية

OLED (اختياري)

شاشة I2C من نوع SSD1306 مقاس 0.96"

GPS (opt.)

وحدة GPS ‏NEO-6M بواجهة UART

Solar (opt.)

5V mini panel + TP4056

Enclosure

صندوق مطبوع بتقنية 3D أو صندوق مشاريع

Recommended: TTGO LoRa32 V2.1لوحة متكاملة تضم ESP32 + SX1278 + OLED + موصل بطارية + دائرة شحن. أضف زرًا وهوائيًا وبطارية فقط — وتصبح جاهزة للاستخدام!
16

Technical Specifications

  • Frequency: 433 MHz (configurable: 868/915 MHz)
  • Spreading Factor: SF7–SF12 (configurable for range vs speed)
  • Bandwidth: 125 kHz افتراضيًا
  • TX Power: 17 dBm
  • Sync Word: Unique per group
  • Range: 1–3 km في المدن، و5–15 km في المناطق المفتوحة
  • DIO0 Interrupt: Wakes ESP32 from deep sleep on incoming packet
  • Protocol: Espressif ESP-NOW (802.11 vendor action frames)
  • Range: 200–500m في المناطق المفتوحة
  • Latency: 1–5 ms
  • الحد الأقصى للأجهزة النظيرة: 20 إجمالًا (حتى 10 مشفّرة على ESP32)
  • الحمولة: 250 بايت لكل حزمة
  • Encryption: CCMP (hardware-level)
  • Usage: Temporary AP during setup, user-triggered re-enable
  • SSID: "Lageeni-XXXX" (فريد لكل جهاز)
  • Security: WPA2-PSK
  • Web Server: ESPAsyncWebServer port 80
  • mDNS: lageeni.local
  • Auto-Off: 5 min after last client disconnects
// مرحلة الإعداد (نقطة وصول WiFi AP نشطة) GET /api/status // معلومات الجهاز والبطارية POST /api/rename // عيّن اسم الجهاز GET /api/discover // سرد الأجهزة النظيرة المكتشفة POST /api/group // تجميع كل الأجهزة // أثناء التشغيل (إعادة تفعيل WiFi) GET /api/members // أعضاء المجموعة + الحالة POST /api/send // أرسل {to, msg} POST /api/broadcast // بث {msg} POST /api/sos // تفعيل SOS {message?} POST /api/sos/cancel // إلغاء SOS نشط POST /api/led // LED عن بُعد {target} GET /api/messages // سجل الرسائل GET /api/logs // سجل تدقيق كامل GET /api/logs/sos // سجل SOS فقط GET /api/logs/export // تنزيل CSV/JSON POST /api/sleep // الدخول في السكون {mode} POST /api/wifi-off // تعطيل WiFi POST /api/deregister // مغادرة المجموعة POST /api/factory-reset // إعادة التعيين {confirm}
  • PlatformIO — Build system and project management
  • Arduino ESP32 Core — Framework
  • LoRa (Sandeep Mistry) — SX1278/SX1276 driver
  • ESP-NOW — Built-in ESP-IDF peer-to-peer API
  • ESPAsyncWebServer + AsyncTCP — Non-blocking web server
  • ArduinoJson — JSON serialization
  • SPIFFS — Flash file system for UI and logs
  • Preferences (NVS) — Key-value persistent storage
  • TinyGPS++ — GPS parsing (optional)
  • SSD1306Wire — OLED driver (optional)
  • mbedTLS — AES-128 encryption (built into ESP-IDF)
17

Ready to Build?

Confirm Solution & Start Coding

Review the full architecture, flows, and specifications above. Once confirmed, we build the complete PlatformIO firmware with ESP-NOW + LoRa dual-layer communication.

برمجيات LoRa + ESP-NOW الثابتة
Web UI (SPIFFS)
SOS + Logs
Sleep Modes + Battery
إعدادات PlatformIO
Setup Guide