效果實現(xiàn)視頻(點擊可以觀看)
如圖1手上有一個STM32F103CBT6的單片機控制板以及一個4G的DTU模塊(合宙Cat1 4G模塊Air724UG),

圖1
如圖2免費注冊了OneNET Studio平臺,如何將我們需要的數(shù)據(jù)上發(fā)上去展示呢?本系列文檔將從以下2個方面進行講解分析:
OneNET Studio云平臺STM32物聯(lián)網(wǎng)開發(fā)(1)- MQTT協(xié)議設備接入數(shù)據(jù)上報測試
(文章在CSND網(wǎng)站的發(fā)表地址:
https://blog.csdn.net/weixin_44862509/article/details/127015383)
OneNET Studio云平臺STM32物聯(lián)網(wǎng)開發(fā)(2)- STM32+Air724UG(4G模組)數(shù)據(jù)采集顯示上報
(文章在CSND網(wǎng)站的發(fā)表地址:
https://blog.csdn.net/weixin_44862509/article/details/127023743)

圖2
本文主要講解第一部分MQTT協(xié)議設備接入數(shù)據(jù)上報測試,主要講解如何通過MQTTX軟件將需要上報的數(shù)據(jù)上發(fā)到平臺展示其中分為以下八個步驟,大家認真看完以下八個步驟結(jié)合圖片以及文字介紹并且自己動手在OneNET免費平臺上創(chuàng)建自己的OneNET Studio的產(chǎn)品和設備就可以快速體驗數(shù)據(jù)上報及展示的功能。并且通過第二篇文檔可以順利的實現(xiàn)STM32單片機和Cat1 4G Air724UG ,通過MQTT協(xié)議將需要的數(shù)據(jù)輕松上發(fā)到OneNET Studio。
第一步 創(chuàng)建產(chǎn)品:先在OneNET Studio 建立一個產(chǎn)品,如圖3的步驟1,2,3的位置順序進入點擊“創(chuàng)建產(chǎn)品”的頁面,

圖3
如圖4根據(jù)自己需要創(chuàng)建的產(chǎn)品填寫信息,

圖4
如圖5,填寫自己的相關(guān)信息(如果第一次創(chuàng)建沒有把握一次成功,可以按照我的選項來填寫信息,這樣的話到最后一步,如果沒有完成功能后可以更好的查找問題)并點擊“確認”后,可以看到如圖6產(chǎn)品創(chuàng)建成功的頁面。

圖5

圖6
第二步 創(chuàng)建設備:在第一步創(chuàng)建的產(chǎn)品里,創(chuàng)建第一臺設備,如圖7的箭頭1,2,3順序的步驟點擊“添加設備”頁面。

圖7
填寫信息如圖8,點擊“確認”,進入如圖9。

圖8

圖9
點擊圖9的1位置“詳情”可以進入如圖10。如圖10的幾個箭頭的位置的信息非常關(guān)鍵,以上信息是實現(xiàn)OneNET云平臺與硬件設備連接的關(guān)鍵信息,一定要記錄,同時以上信息也要保密。

圖10
第三步 MQTTX基本設置:用MQTT X 客戶端軟件與平臺連接并上發(fā)數(shù)據(jù),這一步非常關(guān)鍵,這一步能否走通直接決定終端硬件是否能將數(shù)據(jù)上報到平臺,其實單片機編程難度不大,但是如果不能確保服務器是否可以上報數(shù)據(jù)那是非常糟糕的,所以我們采用MQTT X 客戶端軟件(免費下載)在電腦端運行并填寫聯(lián)網(wǎng)信息測試數(shù)據(jù)是否可以上報來提高最終硬件終端的開發(fā)效率。如圖11為MQTTx 的界面,按照圖11的步驟填寫聯(lián)網(wǎng)信息。如圖11的1,2,3,4,5,6位置全部正確填寫后點擊位置7可以實現(xiàn)MQTTX與OneNET鏈接。

圖11
第四步 填寫服務器連接信息:如何填寫信息呢,這是本文的關(guān)鍵,也是所有后續(xù)開發(fā)的關(guān)鍵。
Client ID:設備名稱(如圖10的1號箭頭位置)
Host:服務器地址 studio-mqtt.heclouds.com (查看文檔中心可以獲得 https://open.iot.10086.cn/doc/v5/develop/detail/638)
Port:端口號 1883 (查看文檔中心可以獲得)
Username:所屬產(chǎn)品ID (如圖10的1號箭頭位置)
Password:密碼 (查看文檔中心可以獲得 https://open.iot.10086.cn/doc/v5/develop/detail/624)
第五步 計算服務器密碼:如何獲得鏈接密碼,需要下載一個工具 Token生成工具,如圖12,

圖12
圖12位置1為第四步所用到的“產(chǎn)品屬所ID”,位置2為“設備名稱”,位置4為圖10的3號位置的“設備秘鑰”,位置3為一個時間戳,這不是很好理解我簡單用我自己理解的話術(shù)說下希望可以幫助大家理解(簡單理解就是 將當前的日期和時間減去過去某一個日期和時間計算的秒數(shù),我們這里需要填寫設備賬號到期的密碼,所以需要將以后的某個時間比如當前是2022年9月23日,我想設備賬號有效期為一年那么就是將2023年9月23日 15點30分,減掉過去的一個時間點(即時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù) )。只有這樣計算出來的時間戳放進去計算出來的密碼才可以使用一年),具體的時間戳換算公式可以使用在線工具。如圖13的步驟可以計算出有效期為1年的時間戳“1695452640”,

圖13
這個需要根據(jù)具體的使用時間填寫,不過這個時間戳非常關(guān)鍵,因為在后面上發(fā)數(shù)據(jù)的時候要求帶時間戳,在程序里帶的時間戳一定不能超過這個時間點。

圖14
點擊如圖14的1號位置的“Generate”可以獲得密碼,如圖14的2號位置為計算出來的密碼,填寫到MQTTX 的密碼位置。
第五步 連接服務器:如圖15 填寫好MQTTX 鏈接平臺的基本賬號信息,圖15位置1選擇3.1.1,點擊圖15位置2 鏈接服務器,

圖15
服務器鏈接成功后如圖16,如圖出現(xiàn)英文提示說明沒有鏈接成功,則是密碼計算有問題或者是相關(guān)信息沒有填寫正確(登入信息一定要用自己創(chuàng)建產(chǎn)品和設備產(chǎn)生的信息,不能直接用我圖片的信息,要不然你們的數(shù)據(jù)就發(fā)到我的平臺上來了)。

圖16
MQTTX與云平臺服務器鏈接成功后,如圖17,在平臺上的設備管理頁面可以看到圖17位置2顯示設備狀態(tài)為“在線”,這里也非常關(guān)鍵一定要出現(xiàn)和圖16一樣的頁面才算前面的準備工作是做成功的,如果有一點不一樣那就要回到前面的步驟繼續(xù)檢查,細心發(fā)現(xiàn)問題?;蛘哒埥趟耍绻枰埥套髡弑救藙t一定要告知你是在哪一步驟的哪個圖片上出差錯。

圖17
第六步 上報數(shù)據(jù)格式整理:發(fā)自己的數(shù)據(jù)到自己創(chuàng)建的設備平臺展示需要填寫發(fā)布屬性上報topic,上報topic就理解為是你需要發(fā)布數(shù)據(jù)的位置,這里需要設置和你的產(chǎn)品或設備相關(guān)的信息,這個根據(jù)文檔中心(https://open.iot.10086.cn/doc/v5/develop/detail/639)可以獲得格式為:$sys/{pid}/{device-name}/thing/property/post,只需要將{pid}修改為你自己的“所屬產(chǎn)品ID ”,{device-name}修為為你自己的“設備名稱”以及按平臺要求的數(shù)據(jù)格式整理數(shù)據(jù):
{
"id": "0001",
"version": "1.0",
"params": {
"LightLux": {
"value": 5.23,
"time": 1663918830000
},
"CurrentTemperature": {
"value": 23.6,
"time": 1663918830000
}
}
}
上發(fā)數(shù)據(jù)的屬性名稱在如圖18可以查看,如圖18的1號位置和2號位置進入詳情頁面可以選擇需要的屬性的標識符,也可以創(chuàng)建自己的屬性及相關(guān)的標識符。

圖18
如圖19位屬性標識符的獲取,如圖19的1位置和2位置查看光照值和溫度的屬性標識符并填寫到自己的數(shù)據(jù)格式里。以上數(shù)據(jù)time字段后的時間戳一定要在生成密碼的時間戳之前,在換算的時候選擇ms為單位,我以上的時間是2022-09-23 15:40:30的時間。

圖19
第七步 上報數(shù)據(jù)到平臺:上發(fā)數(shù)據(jù)以及數(shù)據(jù)展示,如圖20 將自己整理的上報topic和數(shù)據(jù)格式填寫在圖20的 1和2位置,并且點擊圖20的位置3發(fā)送數(shù)據(jù),

圖20
可以看到OneNET云平臺Studio上有你上報的數(shù)據(jù),在相應的屬性里,如圖21的1和2位置有我們上發(fā)的數(shù)據(jù)。

圖21
第八步 讀取數(shù)據(jù)上報狀態(tài):訂閱屬性上報結(jié)果通知topic,就是獲取設備上報數(shù)據(jù)后服務器返回的數(shù)據(jù),這一步和第六步一樣將 $sys/{pid}/{device-name}/thing/property/post/reply 按自己的設備名稱及產(chǎn)品ID,如圖22,從圖22的1位置點擊進入,在圖22的2位置填寫信息,點擊點擊圖22的3號位置,

圖22
再次發(fā)送數(shù)據(jù)時可以看到圖23的3號位置有數(shù)據(jù)上報成功后服務器回復的信息,大家也可以通過這個回復來判斷數(shù)據(jù)是否發(fā)送成功。

圖23
第九步 回顧總結(jié):結(jié)合如圖23的4個位置我們再進行回顧下,1位置為與服務鏈接成功的標志,2位置為服務器回復發(fā)送狀態(tài)的topic的位置,3位置為服務器回復的數(shù)據(jù),4位置為我們上發(fā)的數(shù)據(jù),5位置為我們上發(fā)的topic。
需要用到的工具及網(wǎng)址:
OneNET 云平臺地址:https://open.iot.10086.cn/
時間戳在線計算網(wǎng)址:https://tool.lu/timestamp/
MQTTX 客戶端軟件
token計算軟件
需要用到的賬號參數(shù):
所屬產(chǎn)品ID:i7ybqx3ZNk
設備密鑰:KJ/ll/7hfOpjsUlz------9a1SyjvH40/X3kVRF8UU=
設備名稱 P0001
屬性標識符 LightLux CurrentTemperature
希望我的文章能幫到大家,文章里涉及到的軟件工具,電路圖資料,程序源代碼等大家可以 搜索 WX公眾號 “和我學單片機”回復“OneNET01”回復帶密碼的百度網(wǎng)盤下載鏈接,大家可以自行下載。如果資料不夠或?qū)W習中遇到問題可以在公眾號留言。更新: 2022年9月24日 楊榮國 個人WX : tong1366
審核編輯:湯梓紅
-
單片機
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650554 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2931文章
46251瀏覽量
392648 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
365026 -
MQTT
+關(guān)注
關(guān)注
5文章
682瀏覽量
23723
發(fā)布評論請先 登錄
OneNET Studio云STM32物聯(lián)網(wǎng)開發(fā)(2)- STM32+Air724UG(4G模組)數(shù)據(jù)采集顯示上報

評論