RescueMesh: ส่ง SOS เข้ารหัสผ่าน LoRa

เดินป่าจนมือถือค่อย ๆ จากหนึ่งขีด เหลือ No Service แล้วถ้าเกิดเหตุฉุกเฉินขึ้นจริง จะบอกคนข้างนอกยังไงว่าเราอยู่ตรงไหน?

นี่คือ Pain Point ที่กลายมาเป็น RescueMesh ระบบ SOS แบบ DIY ที่ส่งพิกัด GPS จาก Beacon ขนาดพกพา ไปยัง Raspberry Pi Base Station ผ่าน LoRa โดยตรง โดยไม่ต้องใช้เสาสัญญาณมือถือ, Wi-Fi หรือ Internet เป็นเส้นทางหลักในการส่ง SOS

ตัวข้อความยังถูกเข้ารหัส ด้วย AES-128-GCM และเมื่อ Base Station รับ SOS สำเร็จ จะส่ง Encrypted ACK กลับไปยัง Beacon เพื่อยืนยันว่า Packet ไปถึงปลายทางแล้ว

RescueMesh off-grid encrypted SOS system using M5Stack Cardputer and Raspberry Pi
RescueMesh ระบบ SOS แบบ Off-Grid ที่ใช้ M5Stack Cardputer เป็น Beacon และ Raspberry Pi เป็น Base Station สำหรับรับ SOS ที่ส่งผ่าน LoRa

สำคัญ: RescueMesh เป็น Open-source DIY Project ไม่ใช่อุปกรณ์ Emergency Beacon ที่บทความต้นฉบับระบุว่าผ่านการรับรอง และไม่ควรถือว่าใช้แทนระบบกู้ภัย, PLB, Satellite SOS หรือช่องทางฉุกเฉินที่ได้รับการรับรองได้โดยอัตโนมัติ

Key Takeaways

  • Beacon ใช้ M5Stack Cardputer ADV ที่มี ESP32-S3
  • วิทยุฝั่ง Beacon ใช้ SX1262 LoRa
  • มี GNSS/GPS สำหรับพิกัด SOS
  • Base Station ใช้ Raspberry Pi 4 Model B ใน Build ต้นฉบับ
  • ฝั่ง Pi ใช้ Waveshare SX1262 LoRaWAN/GNSS HAT แต่ Protocol จริงเป็น Raw LoRa
  • ไม่ต้องมี LoRaWAN Gateway ระหว่าง Beacon กับ Base
  • Packet ถูกเข้ารหัสด้วย AES-128-GCM
  • Cardputer และ Pi ต้องใช้ Shared AES Key เดียวกัน
  • Default Key ใน Repository เป็น Placeholder และต้องเปลี่ยนก่อนใช้งานจริง
  • SOS สามารถส่งได้แม้ GPS ยังไม่มี Fix โดยส่งสถานะ NOFIX
  • Base Station แสดง Alarm, Alert Card และ Map Pin เมื่อมีพิกัด
  • Base ส่ง Encrypted ACK กลับไปยัง Beacon
  • ACK หมายถึง Base รับ Packet แล้ว ไม่ได้ยืนยันว่าทีมกู้ภัยกำลังมา
  • LoRa Radio Parameters ทั้งสองฝั่งต้อง Match กัน
  • จุดที่ผู้สร้างติดปัญหาหนักคือ Sync Word 0x12 กับ 0x1424
  • Dashboard ทำงาน Local ได้ แต่ Online Map Tiles ยังอาจต้อง Internet
  • Project เปิด Source ภายใต้ MIT License

RescueMesh คืออะไร?

RescueMesh เป็นระบบ SOS แบบสองส่วน

ส่วนแรกคือ Beacon ที่ผู้ใช้พกติดตัว และส่วนที่สองคือ Base Station ซึ่งเปิดรอรับสัญญาณอยู่ที่ปลายทาง

ผู้สร้างคิด Project นี้ขึ้นมา หลังเจอสถานการณ์ เดินป่าในพื้นที่ที่มือถือ ค่อย ๆ สูญเสียสัญญาณ จนไม่เหลือ Network

ถ้าเกิดบาดเจ็บ คำถามสำคัญไม่ใช่แค่ “โทรหาใคร?” แต่คือ “คนที่บ้านจะรู้พิกัดเราได้ยังไง?”

แนวคิดของ RescueMesh: ตัด Cellular, Wi-Fi และ Cloud ออกจากเส้นทาง Radio Link หลัก แล้วให้ Beacon คุยกับ Base Station ผ่าน LoRa โดยตรง

Architecture มีแค่สองฝั่ง แต่แต่ละฝั่งทำหน้าที่ชัดมาก

M5Stack Cardputer ADV
+ ESP32-S3
+ SX1262 LoRa
+ GNSS/GPS

AES-128-GCM Encrypted SOS

Raw LoRa

Raspberry Pi 4
+ SX1262 HAT

Decrypt

Alarm + Alert Card + Map

Encrypted ACK กลับไปยัง Beacon

Current GitHub แบ่ง Project ออกเป็นสองฝั่งชัดเจน:

  • firmware/RescueMesh/ — Firmware ฝั่ง Cardputer
  • pi/ — Raspberry Pi Base Station

ทำให้สามารถแยก Debug ฝั่ง Sender กับ Receiver ได้ค่อนข้างตรงไปตรงมา

เห็นคำว่า LoRaWAN HAT แต่อย่าเพิ่งหา Gateway — Project นี้ใช้ Raw LoRa

Hardware ฝั่ง Raspberry Pi มีชื่อว่า Waveshare SX1262 LoRaWAN/GNSS HAT

แต่ RescueMesh ไม่ได้สร้าง LoRaWAN Network

Current Repository ระบุชัดว่าใช้:

Raw LoRa แบบ Chip-to-Chip

นั่นหมายความว่า Beacon กับ Base Station คุยกันโดยตรง ผ่าน SX1262 ทั้งสองฝั่ง

สิ่งที่ใช้ RescueMesh
LoRa Radio ใช้
SX1262 ↔ SX1262 ใช้
LoRaWAN Gateway ไม่ใช้
LoRaWAN Network Server ไม่ใช้
Cellular Network ไม่ใช้ใน SOS Radio Link
Wi-Fi ไม่ใช้ระหว่าง Beacon กับ Base

กด Send SOS แล้วข้อมูลเดินทางยังไง?

1

เปิดเมนู Send SOS

ผู้ใช้เปิดเมนู Send SOS บน Cardputer และเลือกประเภทเหตุฉุกเฉิน

2

อ่าน GPS และ Battery

Firmware ดึงข้อมูลพิกัด GNSS/GPS และ Battery เพื่อเตรียม SOS Packet

3

เข้ารหัส Packet

ข้อมูล SOS ถูกห่อด้วย Protocol ของ RescueMesh และเข้ารหัสด้วย AES-128-GCM

4

ยิงออกผ่าน Raw LoRa

SX1262 ส่ง Packet โดยตรงไปหา SX1262 HAT ที่ Base Station

5

Raspberry Pi ถอดรหัส

Pi ตรวจ Header และใช้ Shared Key ถอด AES-GCM Payload

6

แจ้งเตือนและปักหมุด

Dashboard สร้าง Alert, ส่งเสียง Alarm และถ้ามีพิกัด จะปักตำแหน่งบน Map

7

ส่ง ACK กลับ

Base Station สร้าง Encrypted ACK ส่งกลับไปยัง Cardputer เพื่อบอกว่า Packet ถูก Base รับแล้ว

ตำแหน่งของเราไม่ได้ถูกส่งเป็น Plain Text

Hackster อธิบาย Encryption ว่าเป็น AES-128 ส่วน Current Repository ระบุรายละเอียดชัดขึ้นว่า:

AES-128-GCM

ฝั่ง Cardputer ใช้ AES ผ่าน mbedTLS ขณะที่ฝั่ง Raspberry Pi ใช้ Python cryptography สำหรับ AES-GCM

ทั้งสองฝั่ง ต้องมี Shared Key เดียวกัน จึงจะอ่าน Payload ที่เข้ารหัสได้

Default AES Key ใน GitHub เป็น Placeholder: Repository เตือนตรง ๆ ว่าคีย์ 00 01 02 ... 0f ถูกใส่มาเพื่อให้ทดสอบได้ง่าย และต้องเปลี่ยนทั้ง Cardputer และ Raspberry Pi ก่อนนำไปใช้จริง

ถ้าแก้ Key แค่ฝั่งเดียว ปลายทางจะไม่สามารถ ถอด Packet ด้วย Key ที่อีกฝั่งใช้เข้ารหัสได้

Encrypted ACK คือ “Base รับแล้ว” ไม่ใช่ “ทีมกู้ภัยกำลังมา”

RescueMesh เป็นระบบ Two-way

หลัง Raspberry Pi รับ SOS ได้ ระบบจะส่ง Encrypted ACK กลับไปยัง Beacon

จุดประสงค์คือ ให้ Sender รู้ว่า Base Station ได้รับ Packet และสามารถอ่านมันได้แล้ว

อย่าตีความ ACK เกินกว่าที่ระบบทำ: ACK ไม่ได้หมายความว่า หน่วยกู้ภัย, เจ้าหน้าที่ หรือบุคคลอื่น ได้รับแจ้งและกำลังเดินทางไปหา เพราะ Source ไม่ได้มี Emergency Dispatch Integration

GPS ไม่มี Fix ก็ยังส่ง SOS ได้

Current Firmware Guide ระบุว่า Cardputer ต้องเห็นท้องฟ้า จึงจะได้ GPS Fix ได้ง่าย

ถ้าอยู่ในอาคาร หรือ GNSS ยังหา Position ไม่เจอ RescueMesh ไม่ได้หยุดการส่ง Alert

ระบบสามารถส่ง:

NOFIX

แทนพิกัดได้

สถานะ ผลที่ Base Station ได้
มี GPS Fix SOS + Latitude/Longitude + Map Pin
ไม่มี GPS Fix SOS ยังถูกส่ง แต่ไม่มี Position สำหรับปักหมุด

คำว่า Off-Grid ของ Project นี้หมายถึงอะไรแน่?

ส่วนที่เป็น Off-Grid จริงใน Architecture คือ:

Beacon

Raw LoRa

Raspberry Pi Base

เส้นทางนี้ ไม่ต้องมี:

  • Cell Tower
  • Wi-Fi Router ระหว่าง Beacon กับ Base
  • Cloud Service
  • Internet
  • LoRaWAN Gateway

แต่ Map มี Nuance หนึ่ง

Raspberry Pi README ระบุว่า Leaflet Library ถูก Bundle ไว้ในเครื่อง ทำให้ Dashboard Page ยังเปิดได้แบบ Local

แต่:

Map Tiles ที่วาดถนนต้องใช้ Internet

ดังนั้น “Off-Grid” ไม่ได้หมายความว่า Feature ทุก Pixel บน Dashboard ไม่แตะ Internet: SOS Packet, Encryption, Radio Reception และ Alarm ทำงาน Local ได้ แต่ Online Map Background อาจไม่แสดงเมื่อไม่มี Internet

Hardware ต่อไม่ยาก แต่ Radio สองฝั่งไม่ยอมคุยกัน

Creator Journey ของ Project นี้ อยู่ตรง Radio Debugging

ตอนแรกผู้สร้างลองใช้ USB LoRa Stick แต่พบว่า Module เป็นแบบ “Smart” และต้องการคุยกับ Module ที่เข้าคู่กันในลักษณะเฉพาะ

จึงเปลี่ยนมาใช้ Plain SX1262

แต่แม้เปลี่ยนแล้ว:

ยังเงียบ ไม่มี Error และไม่มี Packet

สุดท้ายจึงพบว่า Raw LoRa ต้องตั้งค่าทั้งสอง Chip ให้ตรงกันแทบทุก Parameter

Lesson: Radio เปิดติด ไม่ได้แปลว่า Radio สองฝั่งพูดภาษาเดียวกันแล้ว

Radio Settings ต้อง Match กันทุกตัว

Current Repository ใช้ค่าหลักดังนี้ ใน Default Configuration:

Parameter Cardputer Raspberry Pi
Frequency 868.0 MHz ใน Repo Default 868000000 Hz
Spreading Factor SF9 SF9
Bandwidth 125 kHz 125000 Hz
Coding Rate 4/5 4/5
Preamble 16 Symbols 16 Symbols
Sync Word 0x12 0x1424

แล้วทำไม Sync Word ไม่เหมือนกัน?

นี่คือจุดที่ทำให้ผู้สร้าง เสียเวลา Debug มากที่สุด

ฝั่ง Cardputer ใช้ RadioLib:

setSyncWord(0x12)

แต่ Register Representation ที่ฝั่ง Pi / LoRaRF ต้องใช้คือ:

0x1424

เมื่อค่านี้ถูก Match Radio Link จึงเริ่มรับ Packet ได้

อยู่ไทย อย่าเปิด Repo แล้วใช้ 868 หรือ 915 MHz ตามทันที

ตรงนี้เป็น บริบทประเทศไทยเพิ่มเติม ไม่ใช่ค่าที่ผู้สร้าง RescueMesh ตั้งไว้สำหรับไทย

Repository ยกตัวอย่าง:

  • 868 MHz สำหรับ Europe / UK
  • 915 MHz สำหรับ US / North America

แต่สำนักงาน กสทช. แสดงย่าน 920–925 MHz สำหรับ IoT (Non-RFID) ในข้อมูลมาตรฐาน/การจดทะเบียนอุปกรณ์ ที่เผยแพร่บนเว็บไซต์ทางการ

ห้าม Copy Frequency จาก Source ไปใช้งานจริงโดยไม่ตรวจข้อกำหนดไทย: ต้องตรวจ Band ที่ Hardware รองรับ, กำลังส่ง, Antenna, ประเภทอุปกรณ์, การรับรอง และประกาศ กสทช. ล่าสุด ก่อนส่งสัญญาณจริง

Hardware ที่ใช้ใน RescueMesh

อุปกรณ์ จำนวน หน้าที่
M5Stack Cardputer Mesh Kit / Cardputer ADV 1 Beacon / Sender
M5 LoRa-1262 / SX1262 1 ฝั่ง Beacon LoRa Radio
GNSS/GPS อยู่ใน Beacon Setup อ่านตำแหน่ง SOS
Raspberry Pi 4 Model B 1 Base Station / Receiver
Waveshare SX1262 LoRaWAN/GNSS HAT 1 Raw SX1262 Radio ฝั่ง Pi
microSD Card 1 Raspberry Pi OS / Software
Raspberry Pi Screen / Touchscreen Optional Fullscreen Dashboard

ต่อ Antenna ก่อนส่งสัญญาณ: Firmware Guide และ Pi Guide ของ Project เตือนให้ติดตั้ง Antenna ก่อนเปิดใช้งาน Radio / Transmit

งบประมาณที่ผู้สร้างระบุไว้

ราคาเหล่านี้ เป็น Price Snapshot จาก Project ต้นฉบับ ไม่ใช่ราคาปัจจุบัน และไม่ใช่ราคา Globalbyte

รายการ ราคาใน Source
M5Stack Cardputer Mesh Kit $48
Raspberry Pi 4 Model B $40
Waveshare SX1262 HAT $30
microSD 16 GB $10
Raspberry Pi Touchscreen $40 — Optional

ผู้สร้างสรุป:

  • Core System ≈ $128
  • พร้อม Touchscreen ≈ $168

ตั้งค่าฝั่ง Cardputer แบบ Step-by-Step

1

โหลด Firmware ทั้ง Folder

Current Guide เตือนว่าอย่าโหลดแค่ RescueMesh.ino ไฟล์เดียว เพราะ Arduino Sketch ต้องใช้ไฟล์อื่น เช่น config.h, lora.cpp, sos.cpp อยู่ใน Folder เดียวกัน

2

ติดตั้ง Arduino IDE 2.x

Firmware ฝั่ง Beacon ถูกออกแบบสำหรับ Arduino IDE

3

เพิ่ม M5Stack Board Support

เข้า Preferences แล้วเพิ่ม M5Stack Boards Manager URL ตาม Firmware README ก่อนติดตั้ง M5Stack Package

4

เลือก M5Cardputer

Current Guide ระบุให้เลือก M5Cardputer แม้ Hardware เป็น Cardputer ADV เพราะไม่มี Board Entry แยกสำหรับ ADV ใน Workflow ที่ผู้สร้างทดสอบ

5

ติดตั้ง Libraries

Library หลักที่ Guide ระบุคือ:

  • M5Cardputer
  • RadioLib
  • TinyGPSPlus
6

แก้ config.h

ตรวจ AES Key, LoRa Frequency, Device ID และค่าที่ต้องตรงกับ Pi

7

Upload แล้วทดสอบ

หลัง Upload สามารถใช้ Send SOS หรือ LoRa Test เพื่อทดลอง Radio Link

ตั้งค่าฝั่ง Raspberry Pi Base Station

1

Flash Raspberry Pi OS

Current Guide ใช้ Raspberry Pi OS 64-bit แบบ Desktop เพื่อรองรับ Touchscreen Kiosk

2

ตั้งค่า Pi

ตั้ง Hostname, Username, Password และเปิด SSH ได้หากต้องการ

3

ติด SX1262 HAT ตอน Pi ปิดอยู่

เสียบ HAT ลง 40-pin Header และติด Antenna ก่อน Boot

4

Clone Repository

ดาวน์โหลด RescueMesh แล้วเข้า Folder pi

5

เปลี่ยน AES Key และ Base Location

ตั้ง KEY_HEX ให้ตรงกับ Cardputer และสามารถกำหนด Base Latitude / Longitude สำหรับ Dashboard

6

รัน Installer

Installer เปิด SPI, ติดตั้ง Dependency, ลง Background Service และตั้ง Touchscreen Kiosk

7

Reboot แล้วรอรับ SOS

หลัง Boot Pi สามารถเปิด Dashboard แบบ Fullscreen และ Listener ทำงานเป็น Background Service

Raspberry Pi Dashboard ทำอะไรได้บ้าง?

Current Repository ระบุ Feature ฝั่ง Base Station เช่น:

  • รับ Encrypted SOS Packet
  • Decrypt AES-128-GCM
  • Full-screen Alarm
  • Alert Card
  • Map Pin เมื่อมี GPS
  • Distance / Bearing
  • ส่ง ACK กลับ Beacon
  • Raw Radio Log สำหรับ Debug
  • Fullscreen Touchscreen Kiosk
  • Background Listener

ผู้ใช้ใน Local Network ยังสามารถเปิด Dashboard ผ่าน Browser ที่ Port 8000 ของ Raspberry Pi ตาม Guide ของ Project

Code ที่สำคัญ: ทั้งสองฝั่งต้อง Match กัน

รอบนี้มี Source Code อยู่ใน Current GitHub จริง จึงยกเฉพาะส่วนสั้น ๆ ที่ช่วยให้เห็น Logic ของการ Match Radio Settings และ Setup

ค่าด้านล่างคือ Source Default ไม่ใช่ค่าแนะนำสำหรับการส่งสัญญาณในประเทศไทย: โดยเฉพาะ Frequency ต้องตรวจข้อกำหนดของ กสทช. และ Hardware ก่อนใช้งานจริง

Cardputer — LoRa Settings จาก config.h
#define LORA_FREQUENCY    868.0
#define LORA_BANDWIDTH    125.0
#define LORA_SPREADING    9
#define LORA_CODING_RATE  5
#define LORA_SYNC_WORD    0x12
#define LORA_PREAMBLE     16
Raspberry Pi — Matching LoRa Settings
LORA_FREQ_HZ  = 868000000
LORA_SF       = 9
LORA_BW_HZ    = 125000
LORA_CR       = 5
LORA_PREAMBLE = 16
LORA_SYNC     = 0x1424

สังเกต Sync Word: Cardputer ใช้ 0x12 ผ่าน RadioLib แต่ Pi ใช้ Register Representation 0x1424 ตาม Source Code ปัจจุบัน

Default AES Key — Placeholder จาก Repository
# Cardputer
AES_KEY = 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f

# Raspberry Pi
KEY_HEX = "000102030405060708090a0b0c0d0e0f"

ห้ามใช้ Key นี้เป็น Secret จริง: มันถูกเผยแพร่สาธารณะใน Repository และผู้พัฒนาใส่มาเป็น Placeholder เท่านั้น ให้สร้าง Key ของตัวเอง และเปลี่ยนทั้งสองฝั่งให้ตรงกัน

Raspberry Pi — Install จาก Repository
sudo apt update
git clone https://github.com/GitDog1203/RescueMesh.git
cd RescueMesh/pi
chmod +x install.sh
./install.sh
sudo reboot

อ่าน Current README ก่อนรัน: Installer และ Dependency อาจเปลี่ยนในอนาคต และควรตรวจ AES Key, Radio Frequency และ Base Location ก่อนใช้งานจริง

Software Stack แยก Sender กับ Receiver ชัดเจน

ฝั่ง Cardputer ฝั่ง Raspberry Pi
Arduino IDE Raspberry Pi OS 64-bit
M5Cardputer Python
RadioLib LoRaRF
TinyGPSPlus Flask
mbedTLS AES-128-GCM Python cryptography AES-GCM
RescueMesh.ino rescuemesh_sos.py
config.h Leaflet + OpenStreetMap

ไฟล์สำคัญฝั่ง Firmware

  • RescueMesh.ino — UI และ Main Loop
  • config.h — Radio, AES Key, Pins และ Settings
  • packet.cpp/.h — Build / Parse Encrypted Packet
  • lora.cpp/.h — SX1262 ผ่าน RadioLib
  • sos.cpp/.h — Send SOS Flow
  • gps.cpp/.h — GNSS/GPS Reading

ไฟล์สำคัญฝั่ง Pi

  • rescuemesh_sos.py — Receiver + Decrypt + Dashboard
  • LoRaRF/ — SX1262 Driver
  • install.sh — Setup Dependencies และ Service
  • rescuemesh-kiosk.sh — Fullscreen Dashboard

ดูหน้าจอ Beacon, Base Station, Schematic และวิดีโอ

เนื่องจาก Project มีทั้งภาพและวิดีโอหลายรายการ หน้า Article จึงแสดง Hero ก่อน และซ่อน Media ที่เหลือ ใน Pure CSS View more

RescueMesh beacon base station and live map
ระบบทั้งชุด: Beacon, Base Station และ Live Map ตาม Project ต้นฉบับ
RescueMesh Send SOS menu
หน้าจอ Send SOS: เลือกประเภทเหตุฉุกเฉิน แล้วกดส่งจาก Cardputer
RescueMesh Raspberry Pi full screen SOS alarm
Full-screen Alarm บน Base Station เมื่อ SOS Packet เข้ามาถึง Raspberry Pi
M5Stack Cardputer RescueMesh beacon with LoRa and GPS
Beacon: M5Stack Cardputer พร้อม LoRa และ GPS/GNSS
Raspberry Pi 4 RescueMesh base station with SX1262 HAT
Base Station: Raspberry Pi 4 พร้อม SX1262 LoRa HAT
RescueMesh communication schematic between Raspberry Pi and Cardputer ADV
Schematic การสื่อสาร ระหว่าง Raspberry Pi และ Cardputer ADV ใน RescueMesh
วิดีโอ RescueMesh แสดงแนวคิดและการทำงาน ของ Off-Grid LoRa SOS System

Troubleshooting: ถ้าไม่ทำงานควรไล่จากตรงไหน?

1. LoRa เงียบ ไม่มี Packet

ตรวจให้ครบทั้งสองฝั่ง:

  • Frequency
  • Spreading Factor
  • Bandwidth
  • Coding Rate
  • Preamble
  • Sync Word
  • AES Key

2. Pi แสดง LoRa Radio: OFFLINE

Current Guide แนะนำตรวจ:

  • HAT เสียบแน่นหรือไม่
  • SPI เปิดหรือยัง
  • มี /dev/spidev* หรือไม่

3. Alert มา แต่ไม่มี Map Pin

เป็นไปได้ว่า Beacon ส่ง SOS สำเร็จ แต่ GNSS ยังไม่มี GPS Fix

ลองนำ Cardputer ไปยังพื้นที่ ที่เห็นท้องฟ้าได้ดีขึ้น

4. Dashboard มีหน้า แต่ไม่มีถนน

Dashboard Local ยัง Render ได้ แต่ Map Tiles ต้องใช้ Internet เพื่อโหลด Street Map

5. Cardputer Compile / Upload มี Error

Firmware README ระบุปัญหาที่ผู้สร้างเคยพบ เช่น:

  • Sketch อยู่ใน Folder ที่ OneDrive Sync และ Lock File ระหว่าง Build
  • M5Stack Board Package บาง Version อาจมี Linker Issue

Package Version เปลี่ยนได้: หากเจอ Compile Problem ควรเปิด Firmware README เวอร์ชันล่าสุด ก่อน Downgrade หรือเปลี่ยน Toolchain

แล้วส่งได้ไกลแค่ไหน?

Hackster อธิบาย Project ว่าออกแบบมาเพื่อส่ง SOS “miles over LoRa”

แต่ Source ชุดนี้ ไม่ได้ให้ Range Test แบบระบุตัวเลขระยะจริง พร้อมสภาพแวดล้อมการทดสอบ

จึงไม่ควรเอาไปโฆษณาว่า “ส่งได้ X กิโลเมตรแน่นอน”: ระยะจริงของ LoRa ขึ้นกับ Radio Setting, Antenna, Frequency, กำลังส่ง, สิ่งกีดขวาง และสภาพพื้นที่

สิ่งที่ Maker ได้จาก RescueMesh มีมากกว่าเรื่อง SOS

แม้ Project จะเล่าเรื่อง Emergency Communication แต่ Technique หลายส่วนเอาไปศึกษา กับงาน Embedded และ Wireless อื่นได้

  • ESP32-S3 UI บน Cardputer
  • GNSS/GPS Parsing
  • Raw LoRa Communication
  • Two-way Packet + ACK
  • AES-GCM Encryption
  • Shared-key Configuration
  • Raspberry Pi SPI HAT
  • Python Background Service
  • Flask Dashboard
  • Leaflet Map
  • Radio Parameter Debugging

ทำ Raspberry Pi / ESP32 Wireless Project อยู่? ถ้ายังไม่แน่ใจว่า ควรเริ่มจาก Development Board, Raspberry Pi, Display, microSD, Sensor หรือ Module แบบไหน สามารถส่งโจทย์ให้ทีม Globalbyte ช่วยเช็กอุปกรณ์ที่เหมาะกับ Project ได้

Project นี้มีทั้ง Radio, Crypto และกฎความถี่ — แนะนำเปิดต้นฉบับควบคู่กัน

โดยเฉพาะก่อน:

  • เปลี่ยน Radio Frequency
  • ตั้ง Tx Power
  • เปลี่ยน Sync Word
  • สร้าง AES Key ใหม่
  • Flash Firmware
  • ติดตั้ง Base Station
  • ทดลองส่งสัญญาณจริง

ควรตรวจทั้ง Hackster, GitHub README, Source Code และข้อกำหนดคลื่นความถี่ ของพื้นที่ที่ใช้งาน

FAQ: RescueMesh LoRa SOS

RescueMesh ใช้ LoRa หรือ LoRaWAN?

ใช้ Raw LoRa แบบ SX1262 ↔ SX1262 ไม่ได้ใช้ LoRaWAN Gateway ในเส้นทาง Communication หลัก

ฝั่งพกพาใช้ Board อะไร?

Project ใช้ M5Stack Cardputer ADV ซึ่งเป็น ESP32-S3-based Device พร้อม LoRa และ GNSS/GPS ตาม Setup ต้นฉบับ

Base Station ใช้อะไร?

Build ต้นฉบับใช้ Raspberry Pi 4 Model B พร้อม Waveshare SX1262 LoRaWAN/GNSS HAT โดยนำ SX1262 มาใช้ใน Raw LoRa Mode

ต้องมี Internet ไหม?

ไม่ต้องมี Internet สำหรับ Beacon-to-Base LoRa Link, SOS Reception, Decryption และ Local Alarm แต่ Online Map Tiles อาจต้อง Internet เพื่อแสดง Street Map

ต้องมี LoRaWAN Gateway ไหม?

ไม่ RescueMesh ใช้ SX1262 คุยกันโดยตรง

เข้ารหัสแบบไหน?

Current Repository ระบุ AES-128-GCM ด้วย Shared Key ระหว่าง Beacon และ Base Station

Default AES Key ใช้จริงได้ไหม?

ไม่ควร Repository ระบุว่า Default Key เป็น Placeholder ที่เปิดเผยต่อสาธารณะ และต้องเปลี่ยนทั้งสองฝั่งก่อนใช้งานจริง

GPS ไม่มี Fix แล้ว SOS จะส่งไหม?

ส่งได้ Firmware รองรับสถานะ NOFIX แต่ Base Station จะไม่มีพิกัดสำหรับปักหมุด

ACK หมายความว่ามีคนกำลังมาช่วยไหม?

ไม่ ACK แปลว่า Base Station รับ Packet และตอบกลับ Beacon ได้ ไม่ใช่การยืนยันการ Dispatch ของหน่วยกู้ภัย

ทำไม Cardputer ใช้ Sync 0x12 แต่ Pi ใช้ 0x1424?

Source อธิบายว่า RadioLib ตั้ง Sync Word เป็น 0x12 แต่ค่าที่ถูกเขียนใน Register สอดคล้องกับ 0x1424 ฝั่ง Pi จึงต้องตั้ง Representation ให้ตรงกับ Radio จริง

ถ้า Radio เงียบควรเช็กอะไร?

เช็ก Frequency, SF, Bandwidth, Coding Rate, Preamble, Sync Word และ AES Key ให้ตรงทั้งสองฝั่ง

ในไทยใช้ 868 MHz ตาม Repo ได้เลยไหม?

ไม่ควร Copy ไปใช้ทันที เพราะประเทศไทย มีข้อกำหนดคลื่นความถี่ของ กสทช. และต้องตรวจ Band, อุปกรณ์, กำลังส่ง และการรับรองล่าสุดก่อนใช้งานจริง

ส่งได้ไกลกี่กิโลเมตร?

Source อธิบายว่าเป็น Long-range LoRa Link แต่ไม่ได้ให้ผล Range Test แบบระบุตัวเลขที่ใช้รับประกันระยะ ในข้อมูลชุดนี้

Raspberry Pi Touchscreen จำเป็นไหม?

ไม่จำเป็น Hackster ระบุ Touchscreen เป็น Optional แต่ช่วยให้ Base Station ทำงานเป็น Fullscreen Appliance-style Dashboard ได้สะดวก

Project Open Source ไหม?

ใช่ Repository ระบุ MIT License

ใช้แทน Satellite SOS หรือ PLB ได้ไหม?

Source ไม่ได้ระบุว่า RescueMesh ผ่านการรับรองให้ใช้แทนอุปกรณ์ Emergency Beacon หรือ Satellite SOS จึงไม่ควรถือว่าใช้แทนกันได้ โดยอัตโนมัติ

สิ่งที่น่าสนใจที่สุดไม่ใช่แค่ LoRa แต่คือการทำทั้ง Link ให้จบเอง

RescueMesh เริ่มจากปัญหาง่ายมาก:

“ถ้ามือถือไม่มีสัญญาณ แล้วเราจะส่งตำแหน่งออกไปยังไง?”

แต่การแก้โจทย์ ทำให้ Project ต้องต่อหลายส่วนเข้าด้วยกัน:

Cardputer UI

GNSS / GPS

AES-128-GCM

Raw SX1262 LoRa

Raspberry Pi Receiver

Flask Dashboard

Alarm + Map

Encrypted ACK

และ Lesson ที่เด่นมากสำหรับ Maker คือ Hardware อาจต่อเสร็จเร็ว แต่ Wireless System จะทำงานได้จริง ก็ต่อเมื่อทั้งสองฝั่ง ตกลงกันเรื่อง Protocol, Frequency, Modulation Parameters, Sync Word และ Encryption Key อย่างครบถ้วน

แค่ค่าหนึ่งผิด ก็สามารถทำให้ Radio “เงียบสนิท” ทั้งที่ Hardware เปิดติดตามปกติ

References / แหล่งข้อมูลต้นฉบับ

อยากเริ่ม Raspberry Pi / ESP32 Wireless Project แต่ยังเลือก Hardware ไม่ถูก?

ถ้ากำลังทำ Project ที่เกี่ยวกับ Raspberry Pi, ESP32, Development Board, Display, microSD, GNSS, Sensor หรือ Wireless Communication สามารถสอบถามทีม Globalbyte เพื่อช่วยเช็กอุปกรณ์ ที่เหมาะกับโจทย์ได้

สำหรับงาน Radio ควรเช็กเพิ่มทั้ง Frequency Band, Interface, Antenna, Logic Voltage, Software Library และข้อกำหนดการใช้งานคลื่น ก่อนเลือก Hardware จริง

บทความนี้ไม่ได้ยืนยันว่า M5Stack Cardputer Mesh Kit, M5 LoRa-1262 หรือ Waveshare SX1262 HAT มี Stock พร้อมจำหน่ายที่ Globalbyte กรุณาสอบถามผ่าน LINE OA เพื่อเช็กสินค้า หรือหา Board / Module ทางเลือก ที่เหมาะกับ Project

 


Blog posts