從LoRaWAN服務器thethingsnetwork.org獲取應用數據

更多物聯網精彩,盡在微信公衆號《物聯網思考》

前言:在使用免費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————

關注公衆號:“物聯網思考”,獲取更多開發資料、經驗。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章