ทดสอบ LoRa IoT by CAT ด้วย mbed

บนบอร์ด B-L072Z-LRWAN1 LoRa®Discovery kit

Nat
Chiang Mai Maker Club
3 min readSep 15, 2018

--

หลังจากที่ทาง 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 อย่างเดียว)

CAT LoRa Portal
mbed_app.json

การส่งข้อมูลออกจาก CAT LoRa Gateway สามารถทำได้จากหน้า Routing Profile ได้เลย สามารถเลือกใช้แบบ HTTP และ MQTT ได้ครับ ในกรณีนี้ผมเลือกใช้ MQTT Protocol ครับ

Routing Profile
subscribe ข้อมูลดูใน mqtt

อ่านข้อมูลเซ็นเซอร์ BME280

ผมเลือกใช้ Library จาก https://os.mbed.com/users/Rhyme/code/BME280/

BME280 By Motoo Tanaka

กำหนดหน้าตาของ Packet เป็นแบบนี้

CMMC_SENSOR_DATA_T

หลังจากนั้นก็อ่านข้อมูลจาก Sensor BME280

หลังจากนั้นก็กลับไปที่ Portal เพื่อดูข้อมูล ซึ่งเราจะเห็น Payload เป็น Hexadecimal ดังภาพครับ

ถึงคราว ทำ Data Parser

ผมเลือกใช้ binary-parser เข้ามาช่วย parse ข้อมูลที่ส่งเข้ามาจาก LoRa Board ครับ หน้าตาโค๊ดก็จะประมาณนี้เลย

หลังจากนั้นก็เขียนโปรแกรมด้วยภาษา JavaScript (node.js) เพื่อปรับแต่ง และ forward ข้อมูลไปยัง Service ที่เราต้องการครับ (ส่งผมจะส่งเข้า InfluxDB โดยมี MQTT Agent หรือ Telegraf คอยดูดข้อมูลไปเข้า InfluxDB ที่เราตั้งไว้ครับ

grafana dashboard
parsed fields

หน้าตา telegraf config ก็จะเป็นประมาณนี้ครับ

วันนี้ก็ถือว่าได้ลอง mbed ทั้ง online และ offline เขียนโปรแกรมอ่าน BME280 ผ่าน i2c ได้ แล้วก็ยิงค่าจาก lora มาเข้า database ได้ครับ

--

--