ทดสอบ LoRa IoT by CAT ด้วย mbed
บนบอร์ด B-L072Z-LRWAN1 LoRa®Discovery kit
หลังจากที่ทาง Chiang Mai Maker Club ได้ LoRa Gateway ของ CAT ก็ไม่ได้มี้เวลาเล่นสักเท่าไหร่ วันนี้ฤกษ์ดีลองเล่น mbed ไปพร้อมกับบอร์ด B-L072Z-LRWAN1 LoRa®Discovery kit ซึ่งเป็นบอร์ดที่ได้รับมาพร้อมกับ Gateway นั่นเองครับ
การพัฒนาโปรแกรมลงบน B-L072Z-LRWAN1 LoRa®Discovery kit ผมเลือกใช้ mbed เพราะไม่สามารถใช้ Keil ได้ นอกจากนี้ก็ถือว่าเป็นฤกษ์ดีที่ได้ลอง mbed-cli ด้วย (ซึ่งสามารถใช้ mbed online compiler ได้เหมือนกันเด๊ะ)
เริ่มต้นกันเลย
เข้า mbed online compiler แล้วกด Import โปรแกรม mbed-os-example-lorawan
และ Add บอร์ดเข้ามาลอง compile ดูก่อนครับ
แก้ไฟล์ mbed_app.json
ไฟล์เดียวพอเลยครับ แก้ lora.phy ให้เป็น AS923 ที่เหลือก็ให้สอดคล้องกับ CAT LoRa Portal ครับ (ส่วน Activation Type ผมทดสอบ OTAA อย่างเดียว)
mbed_app.json
การส่งข้อมูลออกจาก CAT LoRa Gateway สามารถทำได้จากหน้า Routing Profile ได้เลย สามารถเลือกใช้แบบ HTTP และ MQTT ได้ครับ ในกรณีนี้ผมเลือกใช้ MQTT Protocol ครับ
อ่านข้อมูลเซ็นเซอร์ BME280
ผมเลือกใช้ Library จาก https://os.mbed.com/users/Rhyme/code/BME280/
กำหนดหน้าตาของ Packet เป็นแบบนี้
หลังจากนั้นก็อ่านข้อมูลจาก Sensor BME280
หลังจากนั้นก็กลับไปที่ Portal เพื่อดูข้อมูล ซึ่งเราจะเห็น Payload เป็น Hexadecimal ดังภาพครับ
ถึงคราว ทำ Data Parser
ผมเลือกใช้ binary-parser
เข้ามาช่วย parse ข้อมูลที่ส่งเข้ามาจาก LoRa Board ครับ หน้าตาโค๊ดก็จะประมาณนี้เลย
หลังจากนั้นก็เขียนโปรแกรมด้วยภาษา JavaScript (node.js) เพื่อปรับแต่ง และ forward ข้อมูลไปยัง Service ที่เราต้องการครับ (ส่งผมจะส่งเข้า InfluxDB โดยมี MQTT Agent หรือ Telegraf คอยดูดข้อมูลไปเข้า InfluxDB ที่เราตั้งไว้ครับ
หน้าตา telegraf config ก็จะเป็นประมาณนี้ครับ
วันนี้ก็ถือว่าได้ลอง mbed ทั้ง online และ offline เขียนโปรแกรมอ่าน BME280 ผ่าน i2c ได้ แล้วก็ยิงค่าจาก lora มาเข้า database ได้ครับ