Alin Li Lageeni

ESP-NOW + LoRa Emergency Communication System

Solution Architecture v3.0 Fully Revised

Märts 2026 · Alin Li for Computer Services · Lageeni

1

Projekti ülevaade

What is Alin Li Lageeni?

Alin Li Lageeni (لاقيني — araabia keeles "Leia mind / Kohtu minuga") on ESP32-l põhinev avatud lähtekoodiga võrguväline hädaabisidesüsteem. See kasutab kahte sidekihti: 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 SleepAvatud lähtekood

Use Cases

  • Emergency Situations — Natural disasters, power outages, or network failures where cellular/internet is unavailable
  • Õueseiklused — 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.
★

Olemasolevad lahendused ja meie eripära

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.

Avatud lähtekoodLoRa silmusvõrkMobiilirakendusLarge Community

MeshCore

Uuem avatud lähtekoodiga LoRa silmusvõrgu püsivara (MIT-litsents), mis kasutab üleujutamise asemel pakettide valikulist edastamist. Toetab kordisteid, ruumiservereid ja kaasraadio režiime. Kasvav kogukond mobiilirakenduste ja veebikliendiga.

Avatud lähtekoodSelective RoutingWeb ClientUuem projekt

goTenna

Kaubanduslik silmusvõrguseade. Tarbijaversioon toetab tekstsõnumeid ja GPS-i seotud nutitelefoni kaudu. Pro-versioon pakub sõjalise taseme krüpteerimist ja lõimingut taktikaliste rakendustega nagu ATAK. Suletud lähtekoodiga omandtoode.

CommercialClosed SourceVajab telefoniSõjaväetasemel

Garmin inReach

Satelliitsideseade, mis ühendub Iridiumi satelliidivõrguga ülemaailmseks kahesuunaliseks sõnumivahetuseks ja SOS-häireteks koos professionaalse ööpäevaringse päästeseirekeskusega. Vajab tasulist tellimust. See pole silmusvõrk — ühendus käib seadmest satelliidini.

Commercial ($300–500)Subscription RequiredSatellite / Global24/7 abikeskus

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 Puudub — tasuta Puudub Puudub Puudub $15–65 kuus
Communication ESP-NOW + LoRa (dual) Ainult LoRa Ainult LoRa Proprietary radio Iridium satellite
Range 200m–15 km 1–15 km 1–15 km 1–6 km Global
Kas telefon on vajalik? Ei — sisseehitatud veebiliides Yes (BLE app) Yes (BLE app) Yes (BLE app) Valikuline
Setup Complexity Rühmita 1 klõpsuga Keskmine (rakenduse seadistus) Keskmine (püsivara laadimine + CLI) Easy (app pairing) Easy (account setup)
Target Audience Youth / Education Hobbyists / DIY Hobbyists / Technical Välitingimused / taktikaline Välitingimused / Pro
SOS System Dual-channel + ACK + countdown Basic (via app) Sisseehitatud SOS puudub Indirect only 24/7 abikeskus
Sleep / Battery Save 4 režiimi (kuni 0.01mA) Energiasäästurežiim Sleep optimized ~24h battery life Days to weeks
Arabic / RTL UI Yes — built-in Community translation Ei Ei Ei
Classroom Mode Yes — quizzes, attendance Ei Ei Ei Ei
Audit Logs Full on-device + export App-side only Piiratud App-side Cloud only
Avatud lähtekood Yes (MIT) Yes (GPL-3) Yes (MIT) Ei Ei
Silmusvõrgud Relay via peers Flood-based mesh Selective routing Silmusvõrgu võimekus Ei (punktist satelliidini)

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.
  • Telefonisõltuvuseta — 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 täidab ainulaadse nišiIt'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

Miks ESP-NOW, mitte WiFi?

WiFi AP is Wrong for Emergency Devices

WiFi-pääsupunkt tühjendab kiiresti akut, nõuab ühe seadme pidevat „ruuterina” töötamist ja tekitab ühe tõrkepunkti. Hädaolukordadeks ning välitööks on vaja märksa säästlikumat ja töökindlamat lahendust.

Feature
WiFi AP/STA
ESP-NOW
Energiatarve
~150–200 mA continuous
~2–5 mA per burst
Setup Required
SSID, password, DHCP, IP
Ainult MAC-aadress
Single Point of Failure
Pääsupunkt lakkab töötamast = võrk lakkab töötamast
Võrdõiguslik, ilma keskse juhita
Range
~30–100 m
~200–500 m (open)
Latency
HTTP overhead (50–200ms)
~1–5 ms (direct)
Sleep Compatible
Ei (ühendus katkeb)
Yes (wake → send → sleep)
Partnerseadmete ülempiir
10 klienti (ESP32 piirang)
20 võrdseadet (10 krüpteeritud)
Meie 3-kihiline arhitektuur Layer 1 — WiFi AP: Ainult algse seadistamise ajal. Kasutaja ühendab telefoni → veebiliides → nime ja rühma muutmine. Seejärel on WiFi VÄLJAS.
Layer 2 — ESP-NOW: Short-range (200–500m), ultra-low power, for nearby devices.
Layer 3 — LoRa: Pikk leviala (1–15 km), kaugete seadmete ja hädaolukorra leviedastuse jaoks.
3

Süsteemi arhitektuur

Alin Li Lageeni — kahekihiline partnervõrgu side LoRa ala 1–15 km ESP-NOW 200–500m A Base Camp B Ahmed C Tent 3 D River Team E Scout (far) Ainult LoRa F Hilltop Ainult LoRa SOS → ALL Legend Any Device Lähedal (ESP-NOW + LoRa) Far (LoRa only) ESP-NOW LoRa
4

Süsteemi töövoog

1

Sisselülitamine — ajutine WiFi-pääsupunkt

Each ESP32 boots and creates a temporary WiFi AP named "Lageeni-XXXX" (MAC-i viimased 4 märki). Kasutaja ühendab oma telefoni selle WiFi-võrguga ja avab veebipõhise seadistuslehe aadressil 192.168.4.1. See on only time WiFi runs.

2

Rename Device

Seadistuslehel annab kasutaja seadmele arusaadava nime (nt „Ahmed”, „Base Camp”, „Tent 3”). See salvestatakse NVS-välkmällu ja säilib taaskäivitamisel.

3

Scan & Discover Peers

From any device's setup page, the user taps „Otsi seadmeid“. Seade edastab LoRa avastusmajakas. Kõik levialas olevad sisselülitatud Lageeni seadmed vastavad oma MAC-aadressi, nime ja LoRa-aadressiga. Seadistusleht kuvab leitud seadmeid reaalajas. Rühmitamise võib algatada iga seade — kindlat ülemseadet pole.

4

Group All — Click to Join

User clicks „Rühmita kõik seadmed“. LoRa kaudu edastatakse GROUP_INIT pakett, mis sisaldab rühma ID-d, krüptovõtit, sünkroonimissõna ja täielikku seadmeregistrit. Kõik seadmed salvestavad selle seadistuse.

5

WiFi OFF — ESP-NOW + LoRa Active

Pärast rühmitamist WiFi turns OFF to save battery. All communication switches to ESP-NOW (lühikese levialaga ja väikese energiatarbega) ning LoRa (pikk leviala). Nutikas marsruutimine valib iga partnerseadme jaoks automaatselt parima kanali.

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

Pidevalt: elusolekusignaalid ja jälgimine

Perioodilised elusolekusignaalid (ESP-NOW iga 10 s, LoRa iga 30 s) edastavad aku protsendi, RSSI ja GPS-i (kui saadaval). Kõik seadmed jälgivad üksteise võrgusolekut ja signaalitugevust.

!

Emergency? — SOS with Panic Countdown

Pikk vajutus (3s) on button triggers a 5-second visual countdown (saab tühistada!). Pärast loendust edastatakse SOS mõlemal kanalil korraga, 3 kordust. Kõik vastuvõtvad seadmed näitavad täisekraanil hoiatust ning käivitavad LEDi ja sumisti.

5

Seadme ümbernimetamine

Nimetamisreeglid

  • 3–16 märki (lühem, et mahtuda LoRa paketi suuruse piiridesse)
  • Ainult tähed, numbrid ja tühikud — erimärkideta
  • Nimed peavad olema unique within the group
  • Stored in NVS flash — survives reboots and power loss
  • Default name: Lageeni-XXXX (MAC-i viimased 4 märki)
  • 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 } ] }

Pärast rühmitamist

  • Kõik seadmed salvestavad rühma seadistuse NVS-välkmällu
  • LoRa häälestub kokkulepitud sagedusele ja sünkroonimissõnale
  • 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

Sõnumisüsteem

Sõnumitüübid

  • 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) { // Lähedal → ESP-NOW (kiire, väikese energiatarbega) espnow_send(target.mac, payload) } else if (target.lora_reachable) { // Kaugel → LoRa (pikk leviala) lora_send(target.lora_addr, payload) } else { // Kättesaamatu → lisa järjekorda ja proovi lähedaste seadmete kaudu edastada queue_for_relay(target, payload) } } function sendSOS() { // SOS kasutab ALATI MÕLEMAT kanalit korraga espnow_broadcast(sos_payload) lora_broadcast(sos_payload) repeat(3, interval=2000ms) // 3 korda, vahega 2s }

Sõnumite edastamise reeglid

  • Kasuliku koorma ülempiir: 200 baiti (LoRa piirang) / 250 baiti (ESP-NOW piirang)
  • Each message gets a unique ID to prevent duplicates
  • Direct messages expect ACK-kinnitus 3 sekundi jooksul; 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)
  • Sõnumid salvestatakse kohalikult: viimased 200 sõnumit SPIFFS-välkmälus
  • Undelivered messages shown with failure indicator in UI
8

SOS Emergency System

Elusid kaitsev lahendus — töötab ka tühjeneva akugaSOS uses the absolute minimum power needed for transmission and repeats across both channels to maximize the chance of being received.

How SOS Works

  • Trigger: Hoia nuppu all (3s) VÕI puuduta veebiliidese SOS-nuppu
  • Paanika pöördloendus: 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
  • Vastuvõtmisel: Full-screen red alert on web UI, rapid LED blink, buzzer siren (if connected)
  • ACK-kinnitus nõutud: Every receiving device sends ACK — sender sees who heard them
  • Püsivalt logitud: 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": „Vigastatud jõeületuskohas“, "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):

  • „Vajan kohe abi!“
  • „Vigastatud — saatke arstiabi“
  • „Tulekahju / oht — evakueerige piirkond“
  • „Vajan vett / varustust“
  • „Eksinud — palun leidke mu asukoht“
  • „Olen turvalises kohas — kõik on korras“ (tühistab aktiivse SOS-i)
9

Toitehaldus ja puhkerežiim

Toiterežiimid

RežiimWiFiESP-NOWLoRaCurrentUse Case
SetupSEESVÄLJASSEES~160 mAInitial config via web UI
AktiivneVÄLJASSEESSEES~80 mATavaline töö
Kerge unerežiimVÄLJASWakeKuula~10 mABattery saving, still reachable
Deep SleepVÄLJASVÄLJASTimer~0.01 mAPikim akukestus, ärkab taimeriga
SOS ModeVÄLJASMAXMAX~200 mAEmergency — all power to TX

Deep Sleep Behavior

  • Wakes every N minutit (kasutaja seadistatav: 1, 5, 10, 30 min)
  • Ärkamisel: saada elusolekusignaal, kontrolli ootel LoRa sõnumeid, uuenda olekut ja mine uuesti puhkerežiimi
  • LoRa DIO0 interrupt wakes ESP32 immediately on incoming SOS (hardware interrupt)
  • Füüsilise nupu vajutus äratab seadme alati mis tahes puhkerežiimist
  • 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 viik loeb aku pinget pingejaguri kaudu
  • Battery % included in every heartbeat — all peers see your battery level
  • Akuhoiatused edastatakse 20%, 10% ja 5% tasemel
  • Estimated runtime displayed in web UI based on current power mode
  • Support for solar panel charging via TP4056 — indefinite runtime in deep sleep
10

Logid ja kontrolljälg

What Gets Logged

  • Sõnumid: Kõik saadetud/vastuvõetud (viimased 200, FIFO — vanim kustutatakse automaatselt)
  • 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 ja ESP-NOW algkäivitustõrked, tühjeneva aku sündmused, edastustõrked
  • Signal History: RSSI values per peer over time (useful for range testing)

Logide salvestus

// Logikirje struktuur { "ts": 1711000120, // Unixi ajatempel "type": "MSG_RX", // Sündmuse tüübi kood "from": "Ahmed", "ch": "ESPNOW", // Kanal: LORA | ESPNOW "rssi": -65, "data": „Vajan jõe ääres abi“ } // Salvestus: sõnumeid 200, SOS piiramatu, süsteem 500 // Kokku: ~512 KB SPIFFS-partitsioon

Juurdepääs logidele

  • 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)
  • Püsiv: Kõik logid säilivad taaskäivitamisel — neid hoitakse SPIFFS-välkmälus, mitte muutmälus
  • OLED: Last 3 log entries shown on optional display screen
11

Factory Reset & Deregister

Reset Levels

ToimingTriggerWhat It DoesKeeps
Soft ResetWeb UI or button clickRestarts the deviceKõik teemad
DeregisterWeb UI "Leave Group"Lahkub rühmast, teavitab partnerseadmeid ja naaseb seadistusseNimi + logid
Factory ResetHold button 10 secondsErases ALL: name, group, logs, configMitte midagi

Deregister Flow

  • Device sends LEAVE_GROUP packet to all peers (both channels)
  • Teised seadmed eemaldavad selle liikmeloendist ja logivad sündmuse
  • 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 sekundi järel: LED jääb põlema → NVS-i täielik kustutamine + SPIFFS-i vormindamine → taaskäivitus
  • Returns to first-boot state with default name Lageeni-XXXX
  • Kõik logid, sõnumid, rühmaandmed ja sätted kustutatakse jäädavalt
  • 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

StateMusterVisualDescription
BootingFast blink (5Hz)Starting up, scanning
Setup ModeSteady ONWiFi AP active, waiting for config
Grouped ActiveDouble pulse / 3sIn group, listening on both channels
Kerge unerežiimDim pulse / 5sEnergiasäästlik, kuid endiselt LoRa kaudu kättesaadav
Deep SleepVÄLJASHibernating, wakes on timer/interrupt
Message RX3 kiiret välgatustReceived a message
Message TX1 pikk välgatusSent a message
SOS CountdownKiirenevad impulsid5-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
Aku tühjeneb3 aeglast punast välgatustBattery below 10%
ErrorContinuous fast redLoRa tõrge või kriitiline viga

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 — seadistamine

WiFi: Lageeni-7B01 · Temporary setup

Discovered Devices (LoRa scan):

Ahmed
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 (nõrk)
LoRa

WiFi will turn OFF after grouping to save battery

Ahmedi seade — Wi-Fi ajutiselt lubatud

Ahmedi seade

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: Ahmed
„Vigastatud jõeületuskohas“
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 Partnerseade: 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 Kerge unerežiim · äratus: 5 min
14

Lisafunktsioonid

GPS Sharing

Valikuline NEO-6M-moodul. Koordinaadid elusolekusignaalides ja SOS-is. Partnerseadmed näevad sinu ligikaudset asukohta. Hädavajalik otsingu- ja päästetöödel.

Buzzer / Siren

Valikuline piesosummer. Käivitub SOS-i vastuvõtul, Find Me kasutamisel, tühjeneva aku korral ja paanikanupu pöördloenduse helisignaalideks. Kuuldav ka siis, kui ekraani pole näha.

Sõnumite edastamine / silmusvõrk

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-ekraani tugi

Valikuline 0.96-tolline SSD1306. Näitab viimast sõnumit, akut, partnerseadmete arvu, signaali ja režiimi. Põhitoimingud ilma telefonita.

Mitmekeelne liides

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

AES-128 krüpteerimine

Kõik andmekoormad on krüpteeritud. Igal rühmal on kordumatu võti. ESP-NOW kasutab CCMP-d. Takistab pealtkuulamist rühma mittekuuluvate LoRa vastuvõtjatega.

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

Seo kaks seadet. Kui nende ESP-NOW-ühendus kaob N minutiks, saavad mõlemad hoiatuse. Hoiab matkakaaslased ühenduses ja üksteise olukorraga kursis.

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.

Öömajakas

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 moodul

SX1278 (433MHz) / SX1276 (868MHz)

LoRa antenn

SMA antenna for extended range

LiPo-aku

3.7V 1000–3000mAh + TP4056

Füüsiline nupp

Tactile switch: SOS, wake, navigate

Buzzer (opt.)

Piesosummer heliteavitusteks

OLED (valikuline)

0.96" SSD1306 I2C ekraan

GPS (opt.)

NEO-6M UART GPS-moodul

Solar (opt.)

5V mini panel + TP4056

Enclosure

3D-prinditud korpus või projektikarp

Recommended: TTGO LoRa32 V2.1Kõik-ühes plaat: ESP32 + SX1278 + OLED + akuühendus + laadimisahel. Lisa vaid nupp, antenn ja aku — kasutusvalmis!
16

Technical Specifications

  • Frequency: 433 MHz (configurable: 868/915 MHz)
  • Spreading Factor: SF7–SF12 (configurable for range vs speed)
  • Bandwidth: Vaikimisi 125 kHz
  • TX Power: 17 dBm
  • Sync Word: Unique per group
  • Range: 1–3 km linnas, 5–15 km avamaal
  • DIO0 Interrupt: Wakes ESP32 from deep sleep on incoming packet
  • Protocol: Espressif ESP-NOW (802.11 vendor action frames)
  • Range: 200–500m avamaal
  • Latency: 1–5 ms
  • Partnerseadmete ülempiir: Kokku 20 (ESP32-l kuni 10 krüpteeritud)
  • Koormus: 250 baiti paketi kohta
  • Encryption: CCMP (hardware-level)
  • Usage: Temporary AP during setup, user-triggered re-enable
  • SSID: „Lageeni-XXXX“ (igal seadmel kordumatu)
  • Security: WPA2-PSK
  • Web Server: ESPAsyncWebServer port 80
  • mDNS: lageeni.local
  • Auto-Off: 5 min after last client disconnects
// Seadistusfaas (WiFi AP aktiivne) GET /api/status // Seadme info ja aku POST /api/rename // Määra seadme nimi GET /api/discover // Loetle leitud võrdseadmed POST /api/group // Rühmita kõik seadmed // Käitusaeg (WiFi uuesti lubatud) GET /api/members // Rühma liikmed + olek POST /api/send // Saada {to, msg} POST /api/broadcast // Leviedasta {msg} POST /api/sos // Käivita SOS {message?} POST /api/sos/cancel // Tühista aktiivne SOS POST /api/led // Kaug-LED {target} GET /api/messages // Sõnumiajalugu GET /api/logs // Täielik auditilogi GET /api/logs/sos // Ainult SOS-i logi GET /api/logs/export // Laadi CSV/JSON alla POST /api/sleep // Sisene unerežiimi {mode} POST /api/wifi-off // Keela WiFi POST /api/deregister // Lahku rühmast POST /api/factory-reset // Lähtesta {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 püsivara
Web UI (SPIFFS)
SOS + Logs
Sleep Modes + Battery
PlatformIO seadistus
Setup Guide