杜吉輝
(南京中興新軟件有限責任公司,南京 210012)
隨著物聯網的發展,一般通過物聯網平臺IoT(Internet of things)集中管理聯網設備。LoRa類型的終端也是一樣,其種類和數量眾多。本文基于LoRaWAN標準,實現了一個代理程序,該代理程序運行在LoRa網關上,通過該代理程序實現與物聯網平臺(IoT)的交互,完成IoT平臺上LoRa終端的接入和管理。涉及LoRa網關主要包括:主控模塊、注冊模塊、數據處理模塊、查詢模塊四大模塊;涉及IoT平臺主要包括:接口機協議處理模塊、IoT平臺數據處理模塊、配置模塊三大模塊,如下圖所示。

完成LoRa網關與IoT平臺之間的消息交互;作為代理程序總的控制模塊,主控模塊運行后,啟動注冊模塊,完成IoT平臺的認證以及注冊;在IoT平臺完成注冊后,通過數據收發模塊接收數據發送給IoT平臺,同時將IoT平臺發送過來的下行數據通過數據收發模塊發送給指定的LoRa終端。
完成IoT平臺的認證及注冊;IoT平臺通過代理程序提供的IP地址、端口號、用戶名、密碼等信息登錄進行認證,認證成功后返回一個標識身份的token信息。本文以認證接口為例進行說明,接口定義如下:

接口參數 參數取值 備注URL /openapi/v1/sm/login 注冊數據上報地址{Para “username”:”admin”,“passwd”:”admin”}登錄用戶名和密碼Method POST{響應“result”:0,“remark”:”remark info”,“data”:json}result:錯誤碼,0 表示成功;1 表示失敗;remark:錯識的詳細信息data:返回數據執行成功時返回數據執行失敗時返回null
用戶登錄成功響應data對應的內容(json 格式,此處為樣例):
{
"token":"6D9FFE7284816E295B3A7DBB35CBF"
}
IoT平臺使用該token以及LoRa終端數據的上報地址,完成數據上報地址的注冊。
完成LoRa終端上下行數據的轉發,將LoRa終端上報的信息發送到指定IoT平臺注冊的地址,同時接收IoT發送的下行數據,將數據發送給指定的LoRa終端。
如上報的數據內容如下:
{
"result":0,
"remark":"",
"data":{
"devtype":"lora_type_v2",
"datarows":[
{"collecttime":"2019-04-12 22:42:33","vol":3.6,"subtype":"lora_type_v2","state":0,"msgtype":1,"deveui":"4a77006e00004d","incl":3},
{"collecttime":"2019-04-12 20:42:27","vol":3.5,"subtype":"lora_type_v2","state":0,"msgtype":1,"deveui":"4a77006e00004d","incl":1},
{"collecttime":"2019-04-12 18:42:14","vol":3.5,"subtype":"lora_type_v2","state":0,"msgtype":1,"deveui":"4a77006e00004d","incl":2}
]
}
}
其中,deveui是上報設備的設備序列號,vol、incl是對應設備上報的能力數據。
完成設備類型列表查詢、數據模型查詢、業務數據查詢等操作。本文僅介紹設備類型查詢接口,接口定義如下:
根據LoRa終端上報的報文,在IoT平臺上配置相應的設備序列號路徑、能力值路徑等參數,IoT平臺就可以正確解析LoRa終端上報的數據。針對不同類型的LoRa終端設備,只需要配置不同的設備序列號路徑以及能力值路徑即可完成解析。
例如上文中的上報數據,設備序列號路徑定義為:$.data.datarows[0].deveui,能力值路徑定義為:$.data.datarows[0].vol、$.data.datarows[0].incl。
完成IoT平臺中LoRa終端上下行數據處理,IoT平臺數據處理模塊會根據配置模塊配置的終端類型,對于終端上報的上行數據通知界面展示或者通知其他功能模塊進行存儲,對發送給終端的下行數據進行封裝等。
IoT平臺對外交互的主要模塊,首先根據配置的代理程序信息,登錄LoRa網關獲取身份token,然后根據配置的LoRa終端設備類型到代理程序注冊設備上報地址;注冊成功后,在指定的http監聽端口上準備接收數據,接收到上報數據后,發送給IoT數據處理模塊;接收到IoT數據處理模塊發送的下行數據后,將數據包進行協議轉換發送到LoRa網關。
通過在LoRa網關上實現代理程序的方式,使LoRa終端接入到物聯網平臺更加快速,從而可以大大提升物聯網平臺設備接入效率和接入能力,使物聯網平臺具有更高的競爭力。