<center id="yayqc"></center>
<strong id="yayqc"></strong>
  • SEARCH
    Tastek Information
    了解更多塔石的訊息
    首頁 / 新聞資訊 / 技術交流
    News

    如何通過MQTT協議使DTU設備連接阿里云實現數據傳輸

    2021-07-22

    4G DTU設備通過MQTT協議連接阿里云實現數據傳輸

    前言

    該實例中以4G DTU作為參考設備,理論上支持MQTT的設備均可參考使用。

    阿里云調試

    首先創建阿里云賬號并登陸登錄(如果已有阿里云賬號則無需注冊直接登陸即可)

    登錄阿里云點擊控制臺”->通過搜索“物聯網平臺進入物聯網平臺

    wps82.jpg

     

     

    wps82.jpg

    進入到物聯網平臺后點擊“立即開通”進入物聯網平臺管理界面。(如果已經開通過了的則會接直接進入到物聯網平臺的管理界面)

    wps84.jpg

    wps85.jpg

    然后選擇公共實例

    wps86.jpg

    選擇“設備管理”->“產品”->“創建產品”

    wps87.jpg

    根據下圖或自身理解創建一個產品

    wps88.jpg

    創建完產品后,推薦先執行“添加設備”;在設備成功連上阿里云后再來根據自身需求“定義物模型”。

    wps89.jpg

    創建設備

    通過上一步驟直接跳轉到設備添加界面;或通過“設備管理”->“設備”->“選擇剛創建的產品”->“添加設備”跳轉到設備添加界面。

    wps90.jpg

    設置DeviceName,該參數為“一機一密”連接方式的重要參數之一,2/4G設備推薦使用設備的IMEI號作為識別碼,可以通過AT+GSN指令查詢設備的IMEI。

    wps91.jpg

    直接點擊“前往查看”;或點擊“完成”后再點擊“查看”前往設備的詳細信息界面。

    wps92.jpg

    進入設備詳情界面后,可以點擊DeviceSecret旁的“查看”來打開設備證書,其中包含了“一機一密”連接方式所需要用到的3個重要參數,后面簡稱“三元組”。

    wps93.jpg

    DTU參數配置

    此文檔以TAS_LTE_363為例,其余支持MQTT的設備可供參考。

    方式一:MQTT透傳

    我司提供阿里云物聯平臺配置_32.exe”參數生成工具,如果沒有可以聯系銷售或技術獲取。首先打開參數生成工具,將1.4章節中復制得到的“三元組”直接粘貼到工具中,或者3條分別填入對應位置均可;再分別填入TimeStamp和ClientID,完成后點擊“生成”即可。

    wps94.jpg

    經過上一步后,我們得到了DTU所需的通用MQTT連接參數,先將連接參數配置進DTU。

    wps95.jpg 

    配置完連接參數,如需測試數據透傳,還需要配置訂閱和推送的主題??梢詮?/span>設備“Topic列表”->“自定義Topic”中找,一般使用update和get這兩個主題。

    注意:如果從產品Topic類列表中得到的主題會帶有${deviceName},需要替換成具體設備的deviceName之后才能使用,例如本例中的866262044292042。

    wps96.jpg

    如下圖,得到訂閱和推送的主題后,就可以完成DTU的所有基本配置了。在工具上填完所有參數后,點擊“一鍵配置參數”將參數配置進DTU,當配置完成后點擊“重啟設備”即可。

    wps97.jpg

    方式二:阿里云直連

    TAS_LTE_363系列提供了阿里云直連功能,方便阿里云的直接配置接入。在工具中選擇“阿里云直連”模式,將“三元組”配置到相應的位置即可,主題選用了get和update主題。填寫完參數后點擊“一鍵配置參數”,提示配置完成后點擊“重啟設備”即可。

    wps98.jpg

    數據收發測試

    正常情況下,如果設備已插卡插天線,那么重啟之后設備會自行連接服務器。當連上服務器時,Link燈常亮,默認開啟連接狀態上報,串口還會收到連接狀態信息“+STATUS: 1,MQTT CONNECTED”。


    wps99.jpg

    連上服務器之后在右下角窗口發送數據,就可在平臺的“運維監控”->“日志服務”->“上行消息分析”中看到。

    wps100.jpg

    如果需要查看詳細內容可以點查看”查看詳情。

    wps101.jpg

    平臺上數據下發可以通過get主題下發,點擊設備的“Topic列表”->“自定義Topic”->“發布消息”即可打開發布消息界面,輸入相應內容(僅支持ASCII)后確認即可。

    wps102.jpg

    設備端會收到相應的數據。

    wps103.jpg


    物模型測試

    在建立連接并成功透傳數據之后,如何進一步滿足客戶需求并應用到真實的監控環境中,阿里云已經提供了物模型的功能來方便用戶實現監控功能。本例中,我們實現了一個485接口、MODBUS協議的溫濕度傳感器的遠程監控。

    注意:該示例涉及一定的編程。

    wps104.jpg

    MODBUS傳感器數據寄存器

    定義物模型

    本例中,我們創建的是自定義項目,所以是一個空的物模型,所有屬性可以根據自身需要添加。通過“產品”->“查看”->“功能定義”->“編輯草稿”打開物模型管理界面。

    wps105.jpg

    通過“添加自定義功能”打開編輯界面,根據自身開發需要,填入相應的內容,例如本例中我們需要監控的是溫度和濕度這兩個屬性,逐個添加即可。

    wps106.jpg 

    創建完屬性后,點擊“發布更新”即可完成物模型的定義,相當于給該產品下的設備添加了兩個屬性,用于平臺端監控。

    wps107.jpg

    數據點上傳

    在完成上一步“定義物模型”后,我們已經可以在相應設備的運行狀態界面看到自己所添加的2個屬性了。接下來關于物模型數據點的上傳(屬性上報),這邊主要介紹透傳/自定義以及ALink協議兩種方式。

    wps108.jpg

    方式一:ALink JSON格式

    該方式需要設備具有主動上報及數據組包能力,采用ICA 標準數據格式 (Alink JSON):設備按照物聯網平臺定義的標準數據格式生成數據,然后上報數據。數據格式類型及通訊主題如下:

    wps109.jpg

    首先需要更改DTU的主題配置,如下圖所示

    注意:上圖中{productKey}和{deviceName}需要替換成自身設備對應的參數,例如:/sys/a1PHcbsgASq/866262044292042/thing/event/property/post

    wps110.jpg

    完成DTU的配置更改并重啟后,我們即可來上傳數據進行測試,我在配置工具右下角輸入框輸入如下內容并發送,就可以在平臺上的“設備”->“運行狀態”中看到數據的實時變化。

    {

      "method": "thing.event.property.post",

      "id": "4",

      "params": {

        "Temperature": 45.1,

        "Humidity": 60.3

    },

      "version": "1.0"

    }

    注意:目前該ALink JSON格式數據需要由客戶設備自行生成后傳給DTU,若設備無法實現可以參考方式二。

    wps111.jpg

    方式二:透傳/自定義

    設備上報原始數據如二進制數據流,阿里云物聯網平臺會運行您在控制臺提交的數據解析腳本,將原始數據轉成標準數據格式后,再進行業務處理。通過這種方式通訊的話,我們需要將主題配置為物模型通訊Topic,如下圖所示。

    wps112.jpg

    這里我們只測試透傳上行,DTU配置如下圖所示,修改推送和訂閱的主題,點擊“一鍵配置參數”來保存配置。

    wps113.jpg

    由于傳感器并不會主動上報數據,所以需要DTU去輪詢采集,我們可以使用自定義輪詢這個功能來完成采集的工作,配置完保存重啟。如下圖所示:

    wps114.jpg

    配置完DTU之后,我們就需要根據自己設備透傳至云端的數據來編寫“數據解析腳本”,本例以JavaScript腳本為例。

    注意:必須了解清楚自己上傳數據的形式再來編寫腳本。

    本例中我們已經配置了DTU每10秒向溫濕度傳感器發送一條查詢指令,正常情況下,溫濕度傳感器在收到指令后會回復數據,這里我以其中一次返回舉例,傳感器返回HEX格式的數據 01 04 04 00 EB 01 E2 0A 69 共9字節。

    如果不了解MODBUS RTU協議也不要緊,只要清楚這里我要用到數據中的第4/5/6/7這4個字節即可。其中4,5字節合起來是一個整型數int16,00 EB轉換成10進制之后為235,根據本章之前提到的圖1中描述,235/10=23.5℃即為真實溫度值;同理,6,7兩個字節表示的是濕度,轉換后為482/10=48.2,則此時的實際濕度為48.2%。了解了自己所需要的數據后,我們可以看如下腳本:

    wps115.jpg

    腳本編寫完成后,可以將腳本復制到此處

    wps116.jpg

    腳本可以進行模擬測試,在下圖模擬輸入框中填入設備上報的原始數據,點擊“執行”

    wps117.jpg

    點擊“執行”后如果腳本正確即可解析得到相應的ALink JSON格式的數據,確認解析正確后點擊“提交”或“保存”即可。

    wps118.jpg

    提交腳本之后,我們就可以將DTU接傳感器測試或用串口助手模擬測試了,為了直觀表現,我們這邊采用了modbus slave模擬測試。

    wps119.jpg

    并可以在“監控運維”->“日志服務”->“上行消息分析”->“MessageID”中查看原始數據。

    wps120.jpg

    以及“物模型數據分析”中查看經過腳本解析的數據。

    wps121.jpg

    以上內容便是使用4G DTU設備通過MQTT協議連接阿里云實現數據傳輸的全部過程!