14° : สิบสี่องศา Programmer's Blog

มกราคม 14, 2018

ทดลองเล่น LoRa

Filed under: Development,hardware,LoRa,Web Application — สี่สิบดีกรี @ 7:44 pm

มีโอกาสได้ทำการทดลองใช้งาน LoRa module กับ IoT platform ทั้งแบบ LoRa ธรรมดา และ LoRaWAN ความแตกต่างระหว่าง 2 แบบนี้ คือ LoRaWAN มี network protocol เพิ่มเข้ามาเป็นมาตรฐานการสื่อสารเช่นเดียวกับพวก WIFI แต่ก็ไม่ถึงกับมีความจำเป็นจะต้องใช้แบบ LoRaWAN แต่เพียงอย่างเดียวเท่านั้น งานระบบง่ายๆ หรือเขียน gateway เองได้ ก็จะสามารถใช้ LoRa module ได้หลากหลายแบบขึ้น เช่น ใช้โมดูลที่แปลง LoRa เป็น UART ให้เลย หรือถ้าใครต้องการระบบที่มีมาตรฐาน มีความปลอดภัย ก็ใช้ LoRaWAN ไป

ระบบแรกที่ได้ทดลองทำคือ Thingsboard.io โดยใช้ MQTT เป็นตัวส่งข้อมูลขึ้นไปให้ ฝั่ง LoRa device กับ gateway ก็เขียนโปรแกรมรับส่งข้อมูลเอง

ส่วนอีก platform หนึ่งคือ TheThingsNetwork.org อันนี้มี LMIC library ที่ implement LoRaWAN stack ให้ มีโปรแกรม gateway ที่มีคนเขียนด้วย LMIC ให้ได้ลองศึกษากันงานกันได้เลย ที่ผมทำการทดลอง ก็ใช้ single channel gateway ซึ่งอันที่จริงก็ไม่ได้เป็นไปตามมาตรฐาน (ควรจะเป็น multi-channel) แต่ก็หยวนๆกันไป เพราะ hardware มีราคาถูกกว่า คนเข้าถึงเพื่อเรียนรู้ได้ง่ายกว่า

ก็ต้องรอดูกันไปว่า จะเกิดมั้ย เพราะ การสื่อสารแบบอื่นๆ อย่างเช่น NB-IoT ก็มีบริษัทฝั่งอเมริกาหนุนอยู่ครับ

พฤษภาคม 8, 2017

MQTT + Silk

Filed under: Arduino,Development,Embedded,ESP8266,hardware,javascript,NodeMCU,Programming Langauge,Qt,Web Application — ป้ายกำกับ:, , , — สี่สิบดีกรี @ 2:13 pm

Silk เป็น web framework อีกตัวหนึ่งครับ แต่ไอเดียจะแตกต่างจากตัวอื่นๆที่เคยเขียนถึงไป ตัวนี้ค่อนข้างถูกจริตกับผมมากกว่าตัวอื่นๆ เนื่องจากมันคือการเขียน HTML document ด้วย QML

การที่มันยังสามารถใช้ model/view ของ QML ได้นั้น ทำให้เราสามาารถดึงข้อมูลจาก C++ model ไปแสดงใน HTML table ได้อย่างง่ายดาย

การที่มันยังเขียน web ได้ในแบบเดิมๆ ใช้ javascript ได้ ก็ทำให้ไม่ต้องเปลี่ยนแปลงวิธีการเขียนในส่วนนี้ไป

และด้วยความที่มันเป็น C++ web server โดยตัวมันเอง มันน่าจะเหมาะกับโปรเจ็คเล็กๆ อย่างพวก IoT ที่ไม่ได้ต้องการรองรับ client จำนวนมาก

จากที่ว่ามา ผมจึงเอามันมาลองกับ MQTT โดยมี hardware คือ nodemcu เอามาต่อกับ sensor DS18B20 เขียนโปรแกรมด้วย Arduino IDE โดย ก็ต้องลง library ESP8266, OneWire, PubSubClient (MQTT), DallasTemperature เพื่อให้ใช้อ่านค่าอุณหภูมิและส่งข้อมูลไปให้ MQTT server ผ่าน wifi ได้

 

ตัว server ก็เป็น linux รัน mosquitto ที่รองรับ websocket และ รัน silk webserver โดยเขียน web app ให้ subscribe MQTT message ผ่าน websocket ได้โดยใช้ paho javascipt client และใช้ justgage แสดงผลข้อมูลที่ได้ในแบบ graphics

Powered by WordPress