更多物聯網精彩,盡在微信公衆號《物聯網思考》
前言:在使用免費LoRaWAN服務器www.thethingsnetwork.org一文中我們主要說明了如何在thethingsnetwork.org上面註冊網關、創建應用、創建設備等,thethingsnetwork.org(下稱TTN)只是一個網絡服務器(network server),不會保存應用數據,因此實際項目中還需要一個應用服務器(application server),thethingsnetwork.org提供了多種方式供應用平臺獲取數據以及管理設備。
主要是3大類:
- APIs:又分爲數據API和應用管理API,數據API主要用MQTT方式接收和下發數據,應用管理API主要使用HTTP方式管理註冊設備。
- SDKs:提供了Go、Java、Node.js等各種語言。
- Integrations(集成):ThingSpeak、AWS IOT等。
多數情況下只需要關注上報和下發數據,因此本文主要說明如何使用MQTT方式獲取數據和下發數據,官方說明https://www.thethingsnetwork.org/docs/applications/mqtt/api.html
這裏使用MQTT.fx這個客戶端來演示,在實際應用中可能使用其他高級語言MQTT客戶端的方式。
1、連接
主要是上面框圖中的四個參數,其中:
Broker Address:<Region>.thethings.network,其中<Region>是所選的地區。
這個參數也是我們註冊應用的時候選擇的Handler,既就是下圖中右邊的地址:
Broker Port:1883(非加密方式)
Client ID:隨便給一個
User Name:應用ID,這個是註冊應用的時候自定義的,這裏是ff08
Password: 應用訪問密鑰,base64格式,這個是系統生成的,當然也可以自己添加,這裏使用系統生成的:
2、訂閱(Subscribe)節點上行數據
TTN提供了一個主題Topic: <AppID>/devices/<DevID>/up,其中<AppID>和<DevID>都是註冊的時候自己定義的,進入相應的設備就可以看到,如下:
可以看到節點ID、上報的端口號、計數器、頻點、時間戳等,其中payload_raw字段就是我們上傳的數據,是以base64格式顯示的。
3、發佈(Publish)下行數據
TTN提供了一個主題Topic: <AppID>/devices/<DevID>/down,其中<AppID>和<DevID>都是註冊的時候自己定義的,進入相應的設備就可以看到。
數據是json格式,上面3個字段是必須的,payload_raw字段就是我們要下發的數據,是base64格式的。
“MTIzNDU2Nzg5”對應的明文是“123456789”。
在節點查看下發的應用數據:
節點收到的數據以hex格式打印出來,剛好對應字符串“123456789”。
————END————
關注公衆號:“物聯網思考”,獲取更多開發資料、經驗。