การใช้งาน ChirpStack: Downlink
ตัวอย่างการ Downlink จากหน้า Console ของ ChirpStack ไปยัง Node Class C ที่ Authen แบบ OTAA รูปแบบการส่งข้อมูลมีให้เลือกสองแบบคือ แบบ Base64 Encoded และแบบ JSON OBJECT*
*รูปแบบแตกต่างจาก TTN ที่ส่งเป็น HEX
ใต้เมนู Application เลือก Device ของเราแล้วเข้าหน้า Detail และให้ป้อนค่า Port ใต้หัวข้อ Enqueue downlink payload เช่น ป้อนเลข Port เป็นเลข 2 และในช่อง BASE64 ENCODED ป้อนอักษร SGK= หลังจากนั้นให้คลิก ENQUEUE Payload
ด้านล่าง Downlink queue จะมีบรรทัดเพิ่ม เป็นคิวคำสั่ง Downlink ของเรา เมื่อส่งออกสำเร็จบรรทัดนี้จะหายไป หลังกด refresh
อักษร SGK= ได้มาจากการแปลง Hi ไปเป็น BASE64 โดยสามารถใช้เวป https://codebeautify.org/base64-encode ช่วยในการแปลง
เมื่อกลับมาดูที่ Node** เมื่อใช้คำสั่ง Reboot (AT+NRB) และเห็นข้อความ OTAA-OK แสดงว่าติดต่อกับ Network Server ได้สำเร็จ จะมีีค่า CGATT:1
- *Node ที่ใช้ทดสอบคือ Maxiiot DL7612-AS923-TH บน Raspberry Pi ผ่านโปรแกรม Cutecom
ให้ส่งข้อความติดต่อ Gateway 1 ครั้งด้วยคำสั่ง
AT+NCMGS=5, HELLO
เนื่องจากเป็น Node Class C เมื่อส่ง TX แล้วตัวมอดูลก็จะอยู่ในสภาวะพร้อมรับ Downlink จะมีการรอ RX2, RX1 และเฝ้ารอ RX2 ตลอด
เมื่อเรามีคิว Downlink จากหน้า Console Payload จะถุกส่งทันที ตัว Node ที่เฝ้ารอ RX2 จะแสดงค่า FRMPayload คือ 48 และ 69 ซึ่งเป็นตัวเลข HEX ทันทีที่ ChirpStack ส่งให้ Multi Channel LoRaWAN Gateway และ Gateway ส่งกลับมาถึงตัว Node
อักษร Hex ที่ได้ เราสามารถแปลงกลับไปเป็น ASCII ได้ข้อความคือ Hi การแปลงอาจจะใช้เวปช่วย เช่น เวป
https://www.rapidtables.com/convert/number/hex-to-ascii.html
หรือใช้ คำสั่งใน shell
ติดตั้ง xxd ก่อน
sudo apt install xxd
echo “4869” | xxd -r -p
ก็จะได้คำตอบ Hi
ตัวอย่างที่ 1
กรณีที่เรา เช็คค่า FRMpayload “ 04 00 64 ff” ในตัว Node เราจะต้องป้อน BABk/w== ในช่อง FRMpayloa dBase64
“BABk/w==” ได้มาจาก
echo "040064ff" | xxd -r -p|base64
BABk/w==
ตัวอย่างที่ 2
Hex ==>ASC
48 69 ==> HIASC==> BASE64
HI ==> SGK=
ดังนั้นการ Downlink SGK= จะได้ Hex “ 48 69”
การแปลงระหว่างรูปแบบ ASCII HEX BASE64 สามารถใช้ App บนมือถือได้ เช่น AppASCII Converter บน Android เป็นต้น