ปราบเซียนงานอุตสาหกรรม! ส่งค่าเซนเซอร์ด้วย nRF54L15 + LoRa P2P และ BLE แบบ Real-time

nRF54L15 Zephyr RTOS LoRa P2P Wireless Sensor Node
โหนดเซนเซอร์ไร้สาย (Wireless Sensor Node) ที่ส่งทั้งข้อมูลความสั่นสะเทือนและเสียงผ่าน BLE และ LoRa พร้อมกัน!

สวัสดีชาว Maker และวิศวกรสาย Industrial IoT ทุกคนครับ! 🛠️ ปัญหาใหญ่ระดับชาติของการทำระบบอ่านค่าเซนเซอร์ในโรงงานหรือพื้นที่กว้างๆ คือ "สัญญาณส่งไม่ถึง" และ "แบนด์วิดท์ไม่พอ" ใช่ไหมครับ? จะส่งผ่าน Wi-Fi หรือ BLE ระยะทางก็สั้นเกินไป จะส่งผ่าน LoRa อย่างเดียว ก็ส่งข้อมูลเสียงหรือภาพแบบเรียลไทม์ไม่ได้เพราะแบนด์วิดท์ต่ำเกินไป

วันนี้เราจะพามาดูโปรเจกต์ปราบเซียนของคุณ [MikeProStudio] ที่ทุบทุก Pain Point ด้วยการจับเอาบอร์ด SoC สุดโหดอย่าง Nordic nRF54L15 มารันบนระบบปฏิบัติการ Zephyr RTOS เพื่อส่งข้อมูลความสั่นสะเทือน (IMU) ผ่านคลื่น LoRa P2P แบบเข้ารหัส และส่งข้อมูลคลื่นเสียง (Audio FFT) ผ่าน BLE 6.0 ไปพร้อมๆ กัน! โคตรตึง!

รีดพลัง nRF54L15 อย่างหมดจด 🚀

แม้ว่าบอร์ด nRF54L15 จะเป็นชิปไร้สายตัวท็อปที่มีประสิทธิภาพสูงมาก แต่ปัญหาที่คนใช้บอร์ดสายนี้เจอกันประจำคือ "คู่มือและ Document แทบไม่มี!" 😅 แต่ผู้สร้างก็ใช้ความรู้ในการเขียน Zephyr RTOS เข้ามาจัดการงานหลายอย่างพร้อมกัน (Concurrency) โดยไม่ต้องพึ่งระบบ Cloud (No cloud dependency) ครับ:

  • โหนดฝั่งส่ง (Sender Node): ใช้บอร์ด nRF54L15 Sense (จากค่าย SeeedStudio) อ่านค่าไมโครโฟน PDM และค่าเซนเซอร์การสั่นสะเทือน (IMU) จากนั้นประมวลผลเป็นกราฟคลื่นเสียง (FFT)
  • การส่งข้อมูล 2 ทางพร้อมกัน: ส่งกราฟคลื่นเสียงความถี่สูงไปแสดงผลบน Web UI ผ่าน BLE และในเสี้ยววินาทีเดียวกัน ก็ยิงค่าความสั่นสะเทือนผ่านคลื่นความถี่ต่ำ LoRa P2P (868 MHz) แบบเข้ารหัส AES-128 ให้อีกโหนดนึง!
  • โหนดฝั่งรับ (Receiver Hub): ใช้บอร์ดยอดฮิตอย่าง ESP32-S3 ทำหน้าที่รับสัญญาณ LoRa และแสดงผลความหนาแน่นของการสั่นสะเทือนแบบ 2D/3D Map พร้อมแจ้งเตือนเมื่อค่าเกินกำหนด (Threshold alerts)

💡 Maker's Tip: การทำงานแบบ Peer-to-Peer (P2P) ของ LoRa คือกุญแจสำคัญสำหรับพื้นที่ที่ไม่มีสัญญาณอินเทอร์เน็ตครับ เพราะบอร์ด 2 ตัวสามารถยิงคลื่นหากันได้โดยตรงโดยไม่ต้องผ่านเกตเวย์ (Gateway)!

หากเพื่อนๆ กำลังเจอปัญหาส่งสัญญาณระยะไกล แวะมาช้อป บอร์ดพัฒนา ESP32-S3, โมดูล LoRa (SX1262) หรือเซนเซอร์ต่างๆ ได้ที่ Globalbyte Shop เลยครับ หรืออยากปรึกษาการวางระบบ Network ทัก LINE OA Globalbyteshop มาได้ตลอดเลย ทางเรายินดีให้คำปรึกษาครับ!

ความท้าทายและบั๊กที่ต้องเจอ (Pain Points) 🐛

แน่นอนว่าการรันงานหนักๆ พร้อมกันบน RTOS ไม่ใช่เรื่องหมูครับ ความท้าทายหลักคือการทำให้ PDM Audio, IMU, BLE และ LoRa ทำงานพร้อมกันโดยที่สัญญาณไม่สะดุด (Stable throughput)

นอกจากนี้ บอร์ด SeeedStudio Sense ยังมี "ความแปลก" ทางฮาร์ดแวร์ตรงที่ตัวต้านทานบนบอร์ดดันไม่ได้ถูกเชื่อมต่อบัส I2C เข้ากับ SoC ทำให้หน้าจอ OLED ไม่สามารถใช้ Hardware I2C ได้ ผู้สร้างเลยต้องใช้วิธี Bit-banging I2C ผ่านซอฟต์แวร์แทน ซึ่งกิน CPU มากขึ้นและแอบหน่วงนิดๆ แต่ก็รอดมาได้ครับ!

โครงสร้างระบบและสถาปัตยกรรม (Architecture) 🗺️

HW/SW Architecture of BLE/LoRa with TX/RX
แผนผัง HW/SW Architecture and used technologies for this project แสดงการทำงานของ Zephyr RTOS แบบเจาะลึก

ตัวอย่างโค้ด Kconfig (การตั้งค่า MbedTLS & Crypto) 💻

หนึ่งในปัญหาที่เจอคือการเข้ารหัส (Encryption) ของ BLE และ LoRa ตีกันเอง โค้ดด้านล่างคือการตั้งค่า Kconfig ใน Zephyr เพื่อแก้ปัญหานี้ครับ:

# Combined BLE + LoRa P2P for nRF54L15
# Key: NRF_SECURITY + BLE conflict fixed by using BUILTIN mbedtls

CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="nRF54L15 BLE+LoRa"
CONFIG_AUDIO=y
CONFIG_AUDIO_DMIC=y
CONFIG_I2C=y
CONFIG_I2C_GPIO=y

# ========== LoRa P2P ==========
CONFIG_LORA=y
CONFIG_LORAWAN=n
CONFIG_LORA_SX126X=y

# ========== MbedTLS & Crypto (compatible with both BLE and LoRa AES-CTR) ==========
CONFIG_NRF_SECURITY=y
CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y
CONFIG_MBEDTLS_CIPHER_MODE_CTR=y
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192
      
หากต้องการดูโค้ดเต็มๆ สามารถดาวน์โหลดได้ที่ลิงก์ Code Download ครับ
*คำเตือนและข้อแนะนำ: เนื้อหาบทความนี้สรุปและแปลมาจากบทความบน Hackster.io การพัฒนาระบบบน Zephyr RTOS สำหรับบอร์ด nRF54L15 มีความซับซ้อนในการจัดการหน่วยความจำ (Memory Management) และอาจเกิดบั๊ก (Bus Fault) ได้หากตั้งค่าไม่ถูกต้อง แนะนำให้ศึกษา หน้าโปรเจกต์ต้นฉบับ อย่างละเอียดก่อนการนำไปใช้งานจริงครับ

 


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี