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 เป็น 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 มีแค่สองฝั่ง แต่แต่ละฝั่งทำหน้าที่ชัดมาก
+ 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 แล้วข้อมูลเดินทางยังไง?
เปิดเมนู Send SOS
ผู้ใช้เปิดเมนู Send SOS บน Cardputer และเลือกประเภทเหตุฉุกเฉิน
อ่าน GPS และ Battery
Firmware ดึงข้อมูลพิกัด GNSS/GPS และ Battery เพื่อเตรียม SOS Packet
เข้ารหัส Packet
ข้อมูล SOS ถูกห่อด้วย Protocol ของ RescueMesh และเข้ารหัสด้วย AES-128-GCM
ยิงออกผ่าน Raw LoRa
SX1262 ส่ง Packet โดยตรงไปหา SX1262 HAT ที่ Base Station
Raspberry Pi ถอดรหัส
Pi ตรวจ Header และใช้ Shared Key ถอด AES-GCM Payload
แจ้งเตือนและปักหมุด
Dashboard สร้าง Alert, ส่งเสียง Alarm และถ้ามีพิกัด จะปักตำแหน่งบน Map
ส่ง 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 คือ:
↓
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
โหลด Firmware ทั้ง Folder
Current Guide เตือนว่าอย่าโหลดแค่ RescueMesh.ino ไฟล์เดียว เพราะ Arduino Sketch ต้องใช้ไฟล์อื่น เช่น config.h, lora.cpp, sos.cpp อยู่ใน Folder เดียวกัน
ติดตั้ง Arduino IDE 2.x
Firmware ฝั่ง Beacon ถูกออกแบบสำหรับ Arduino IDE
เพิ่ม M5Stack Board Support
เข้า Preferences แล้วเพิ่ม M5Stack Boards Manager URL ตาม Firmware README ก่อนติดตั้ง M5Stack Package
เลือก M5Cardputer
Current Guide ระบุให้เลือก M5Cardputer แม้ Hardware เป็น Cardputer ADV เพราะไม่มี Board Entry แยกสำหรับ ADV ใน Workflow ที่ผู้สร้างทดสอบ
ติดตั้ง Libraries
Library หลักที่ Guide ระบุคือ:
- M5Cardputer
- RadioLib
- TinyGPSPlus
แก้ config.h
ตรวจ AES Key, LoRa Frequency, Device ID และค่าที่ต้องตรงกับ Pi
Upload แล้วทดสอบ
หลัง Upload สามารถใช้ Send SOS หรือ LoRa Test เพื่อทดลอง Radio Link
ตั้งค่าฝั่ง Raspberry Pi Base Station
Flash Raspberry Pi OS
Current Guide ใช้ Raspberry Pi OS 64-bit แบบ Desktop เพื่อรองรับ Touchscreen Kiosk
ตั้งค่า Pi
ตั้ง Hostname, Username, Password และเปิด SSH ได้หากต้องการ
ติด SX1262 HAT ตอน Pi ปิดอยู่
เสียบ HAT ลง 40-pin Header และติด Antenna ก่อน Boot
Clone Repository
ดาวน์โหลด RescueMesh แล้วเข้า Folder pi
เปลี่ยน AES Key และ Base Location
ตั้ง KEY_HEX ให้ตรงกับ Cardputer และสามารถกำหนด Base Latitude / Longitude สำหรับ Dashboard
รัน Installer
Installer เปิด SPI, ติดตั้ง Dependency, ลง Background Service และตั้ง Touchscreen Kiosk
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 ก่อนใช้งานจริง
#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
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 ปัจจุบัน
# 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 ของตัวเอง และเปลี่ยนทั้งสองฝั่งให้ตรงกัน
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
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 ต้องต่อหลายส่วนเข้าด้วยกัน:
↓
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