當前位置:全球供應網(wǎng) > 技術(shù)中心 > 所有分類
4G DTU設備通過MQTT協(xié)議連接阿里云實現(xiàn)數(shù)據(jù)傳輸
前言
該實例中以4G DTU作為參考設備,理論上支持MQTT的設備均可參考使用。
阿里云調(diào)試
首先創(chuàng)建阿里云賬號并登陸登錄(如果已有阿里云賬號則無需注冊直接登陸即可)
登錄阿里云后點擊“控制臺”->通過搜索“物聯(lián)網(wǎng)平臺”進入到物聯(lián)網(wǎng)平臺
進入到物聯(lián)網(wǎng)平臺后點擊“立即開通”進入物聯(lián)網(wǎng)平臺管理界面。(如果已經(jīng)開通過了的則會接直接進入到物聯(lián)網(wǎng)平臺的管理界面)
然后選擇“公共實例”
選擇“設備管理”->“產(chǎn)品”->“創(chuàng)建產(chǎn)品”
根據(jù)下圖或自身理解創(chuàng)建一個產(chǎn)品
創(chuàng)建完產(chǎn)品后,推薦先執(zhí)行“添加設備”;在設備成功連上阿里云后再來根據(jù)自身需求“定義物模型”。
創(chuàng)建設備
通過上一步驟直接跳轉(zhuǎn)到設備添加界面;或通過“設備管理”->“設備”->“選擇剛創(chuàng)建的產(chǎn)品”->“添加設備”跳轉(zhuǎn)到設備添加界面。
設置DeviceName,該參數(shù)為“一機一密”連接方式的重要參數(shù)之一,2/4G設備推薦使用設備的IMEI號作為識別碼,可以通過AT+GSN指令查詢設備的IMEI。
直接點擊“前往查看”;或點擊“完成”后再點擊“查看”前往設備的詳細信息界面。
進入設備詳情界面后,可以點擊DeviceSecret旁的“查看”來打開設備證書,其中包含了“一機一密”連接方式所需要用到的3個重要參數(shù),后面簡稱“三元組”。
DTU參數(shù)配置
此文檔以TAS_LTE_363為例,其余支持MQTT的設備可供參考。
方式一:MQTT透傳
我司提供“阿里云物聯(lián)平臺配置_32.exe”參數(shù)生成工具,如果沒有可以聯(lián)系銷售或技術(shù)獲取。首先打開參數(shù)生成工具,將1.4章節(jié)中復制得到的“三元組”直接粘貼到工具中,或者3條分別填入對應位置均可;再分別填入TimeStamp和ClientID,完成后點擊“生成”即可。
經(jīng)過上一步后,我們得到了DTU所需的通用MQTT連接參數(shù),先將連接參數(shù)配置進DTU。
配置完連接參數(shù),如需測試數(shù)據(jù)透傳,還需要配置訂閱和推送的主題??梢詮?/span>設備的“Topic列表”->“自定義Topic”中找,一般使用update和get這兩個主題。
注意:如果從產(chǎn)品的Topic類列表中得到的主題會帶有${deviceName},需要替換成具體設備的deviceName之后才能使用,例如本例中的866262044292042。
如下圖,得到訂閱和推送的主題后,就可以完成DTU的所有基本配置了。在工具上填完所有參數(shù)后,點擊“一鍵配置參數(shù)”將參數(shù)配置進DTU,當配置完成后點擊“重啟設備”即可。
方式二:阿里云直連
TAS_LTE_363系列提供了阿里云直連功能,方便阿里云的直接配置接入。在工具中選擇“阿里云直連”模式,將“三元組”配置到相應的位置即可,主題選用了get和update主題。填寫完參數(shù)后點擊“一鍵配置參數(shù)”,提示配置完成后點擊“重啟設備”即可。
數(shù)據(jù)收發(fā)測試
正常情況下,如果設備已插卡插天線,那么重啟之后設備會自行連接服務器。當連上服務器時,Link燈常亮,默認開啟連接狀態(tài)上報,串口還會收到連接狀態(tài)信息“+STATUS: 1,MQTT CONNECTED”。
連上服務器之后在右下角窗口發(fā)送數(shù)據(jù),就可在平臺的“運維監(jiān)控”->“日志服務”->“上行消息分析”中看到。
如果需要查看詳細內(nèi)容可以點“查看”查看詳情。
平臺上數(shù)據(jù)下發(fā)可以通過get主題下發(fā),點擊設備的“Topic列表”->“自定義Topic”->“發(fā)布消息”即可打開發(fā)布消息界面,輸入相應內(nèi)容(僅支持ASCII)后確認即可。
設備端會收到相應的數(shù)據(jù)。
物模型測試
在建立連接并成功透傳數(shù)據(jù)之后,如何進一步滿足客戶需求并應用到真實的監(jiān)控環(huán)境中,阿里云已經(jīng)提供了物模型的功能來方便用戶實現(xiàn)監(jiān)控功能。本例中,我們實現(xiàn)了一個485接口、MODBUS協(xié)議的溫濕度傳感器的遠程監(jiān)控。
注意:該示例涉及一定的編程。
MODBUS傳感器數(shù)據(jù)寄存器
定義物模型
本例中,我們創(chuàng)建的是自定義項目,所以是一個空的物模型,所有屬性可以根據(jù)自身需要添加。通過“產(chǎn)品”->“查看”->“功能定義”->“編輯草稿”打開物模型管理界面。
通過“添加自定義功能”打開編輯界面,根據(jù)自身開發(fā)需要,填入相應的內(nèi)容,例如本例中我們需要監(jiān)控的是溫度和濕度這兩個屬性,逐個添加即可。
創(chuàng)建完屬性后,點擊“發(fā)布更新”即可完成物模型的定義,相當于給該產(chǎn)品下的設備添加了兩個屬性,用于平臺端監(jiān)控。
數(shù)據(jù)點上傳
在完成上一步“定義物模型”后,我們已經(jīng)可以在相應設備的運行狀態(tài)界面看到自己所添加的2個屬性了。接下來關(guān)于物模型數(shù)據(jù)點的上傳(屬性上報),這邊主要介紹透傳/自定義以及ALink協(xié)議兩種方式。
方式一:ALink JSON格式
該方式需要設備具有主動上報及數(shù)據(jù)組包能力,采用ICA 標準數(shù)據(jù)格式 (Alink JSON):設備按照物聯(lián)網(wǎng)平臺定義的標準數(shù)據(jù)格式生成數(shù)據(jù),然后上報數(shù)據(jù)。數(shù)據(jù)格式類型及通訊主題如下:
首先需要更改DTU的主題配置,如下圖所示
注意:上圖中{productKey}和{deviceName}需要替換成自身設備對應的參數(shù),例如:/sys/a1PHcbsgASq/866262044292042/thing/event/property/post
完成DTU的配置更改并重啟后,我們即可來上傳數(shù)據(jù)進行測試,我在配置工具右下角輸入框輸入如下內(nèi)容并發(fā)送,就可以在平臺上的“設備”->“運行狀態(tài)”中看到數(shù)據(jù)的實時變化。
{
"method": "thing.event.property.post",
"id": "4",
"params": {
"Temperature": 45.1,
"Humidity": 60.3
},
"version": "1.0"
}
注意:目前該ALink JSON格式數(shù)據(jù)需要由客戶設備自行生成后傳給DTU,若設備無法實現(xiàn)可以參考方式二。
方式二:透傳/自定義
設備上報原始數(shù)據(jù)如二進制數(shù)據(jù)流,阿里云物聯(lián)網(wǎng)平臺會運行您在控制臺提交的數(shù)據(jù)解析腳本,將原始數(shù)據(jù)轉(zhuǎn)成標準數(shù)據(jù)格式后,再進行業(yè)務處理。通過這種方式通訊的話,我們需要將主題配置為物模型通訊Topic,如下圖所示。
這里我們只測試透傳上行,DTU配置如下圖所示,修改推送和訂閱的主題,點擊“一鍵配置參數(shù)”來保存配置。
由于傳感器并不會主動上報數(shù)據(jù),所以需要DTU去輪詢采集,我們可以使用自定義輪詢這個功能來完成采集的工作,配置完保存重啟。如下圖所示:
配置完DTU之后,我們就需要根據(jù)自己設備透傳至云端的數(shù)據(jù)來編寫“數(shù)據(jù)解析腳本”,本例以JavaScript腳本為例。
注意:必須了解清楚自己上傳數(shù)據(jù)的形式再來編寫腳本。
本例中我們已經(jīng)配置了DTU每10秒向溫濕度傳感器發(fā)送一條查詢指令,正常情況下,溫濕度傳感器在收到指令后會回復數(shù)據(jù),這里我以其中一次返回舉例,傳感器返回HEX格式的數(shù)據(jù) 01 04 04 00 EB 01 E2 0A 69 共9字節(jié)。
如果不了解MODBUS RTU協(xié)議也不要緊,只要清楚這里我要用到數(shù)據(jù)中的第4/5/6/7這4個字節(jié)即可。其中4,5字節(jié)合起來是一個整型數(shù)int16,00 EB轉(zhuǎn)換成10進制之后為235,根據(jù)本章之前提到的圖1中描述,235/10=23.5℃即為真實溫度值;同理,6,7兩個字節(jié)表示的是濕度,轉(zhuǎn)換后為482/10=48.2,則此時的實際濕度為48.2%。了解了自己所需要的數(shù)據(jù)后,我們可以看如下腳本:
腳本編寫完成后,可以將腳本復制到此處
腳本可以進行模擬測試,在下圖模擬輸入框中填入設備上報的原始數(shù)據(jù),點擊“執(zhí)行”
點擊“執(zhí)行”后如果腳本正確即可解析得到相應的ALink JSON格式的數(shù)據(jù),確認解析正確后點擊“提交”或“保存”即可。
提交腳本之后,我們就可以將DTU接傳感器測試或用串口助手模擬測試了,為了直觀表現(xiàn),我們這邊采用了modbus slave模擬測試。
并可以在“監(jiān)控運維”->“日志服務”->“上行消息分析”->“MessageID”中查看原始數(shù)據(jù)。
以及“物模型數(shù)據(jù)分析”中查看經(jīng)過腳本解析的數(shù)據(jù)。
以上內(nèi)容便是使用4G DTU設備通過MQTT協(xié)議連接阿里云實現(xiàn)數(shù)據(jù)傳輸的全部過程!