效果實(shí)現(xiàn)視頻(點(diǎn)擊可以觀看)
如圖1手上有一個(gè)STM32F103CBT6的單片機(jī)控制板以及一個(gè)4G的DTU模塊(合宙Cat1 4G模塊Air724UG),
圖1
如圖2免費(fèi)注冊了OneNET Studio平臺(tái),如何將我們需要的數(shù)據(jù)上發(fā)上去展示呢?本系列文檔將從以下2個(gè)方面進(jìn)行講解分析:
OneNET Studio云平臺(tái)STM32物聯(lián)網(wǎng)開發(fā)(1)- MQTT協(xié)議設(shè)備接入數(shù)據(jù)上報(bào)測試
(文章在CSND網(wǎng)站的發(fā)表地址:
https://blog.csdn.net/weixin_44862509/article/details/127015383)
OneNET Studio云平臺(tái)STM32物聯(lián)網(wǎng)開發(fā)(2)- STM32+Air724UG(4G模組)數(shù)據(jù)采集顯示上報(bào)
(文章在CSND網(wǎng)站的發(fā)表地址:
https://blog.csdn.net/weixin_44862509/article/details/127023743)
圖2
本文主要講解第一部分MQTT協(xié)議設(shè)備接入數(shù)據(jù)上報(bào)測試,主要講解如何通過MQTTX軟件將需要上報(bào)的數(shù)據(jù)上發(fā)到平臺(tái)展示其中分為以下八個(gè)步驟,大家認(rèn)真看完以下八個(gè)步驟結(jié)合圖片以及文字介紹并且自己動(dòng)手在OneNET免費(fèi)平臺(tái)上創(chuàng)建自己的OneNET Studio的產(chǎn)品和設(shè)備就可以快速體驗(yàn)數(shù)據(jù)上報(bào)及展示的功能。并且通過第二篇文檔可以順利的實(shí)現(xiàn)STM32單片機(jī)和Cat1 4G Air724UG ,通過MQTT協(xié)議將需要的數(shù)據(jù)輕松上發(fā)到OneNET Studio。
第一步 創(chuàng)建產(chǎn)品:先在OneNET Studio 建立一個(gè)產(chǎn)品,如圖3的步驟1,2,3的位置順序進(jìn)入點(diǎn)擊“創(chuàng)建產(chǎn)品”的頁面,
圖3
如圖4根據(jù)自己需要?jiǎng)?chuàng)建的產(chǎn)品填寫信息,
圖4
如圖5,填寫自己的相關(guān)信息(如果第一次創(chuàng)建沒有把握一次成功,可以按照我的選項(xiàng)來填寫信息,這樣的話到最后一步,如果沒有完成功能后可以更好的查找問題)并點(diǎn)擊“確認(rèn)”后,可以看到如圖6產(chǎn)品創(chuàng)建成功的頁面。
圖5
圖6
第二步 創(chuàng)建設(shè)備:在第一步創(chuàng)建的產(chǎn)品里,創(chuàng)建第一臺(tái)設(shè)備,如圖7的箭頭1,2,3順序的步驟點(diǎn)擊“添加設(shè)備”頁面。
圖7
填寫信息如圖8,點(diǎn)擊“確認(rèn)”,進(jìn)入如圖9。
圖8
圖9
點(diǎn)擊圖9的1位置“詳情”可以進(jìn)入如圖10。如圖10的幾個(gè)箭頭的位置的信息非常關(guān)鍵,以上信息是實(shí)現(xiàn)OneNET云平臺(tái)與硬件設(shè)備連接的關(guān)鍵信息,一定要記錄,同時(shí)以上信息也要保密。
圖10
第三步 MQTTX基本設(shè)置:用MQTT X 客戶端軟件與平臺(tái)連接并上發(fā)數(shù)據(jù),這一步非常關(guān)鍵,這一步能否走通直接決定終端硬件是否能將數(shù)據(jù)上報(bào)到平臺(tái),其實(shí)單片機(jī)編程難度不大,但是如果不能確保服務(wù)器是否可以上報(bào)數(shù)據(jù)那是非常糟糕的,所以我們采用MQTT X 客戶端軟件(免費(fèi)下載)在電腦端運(yùn)行并填寫聯(lián)網(wǎng)信息測試數(shù)據(jù)是否可以上報(bào)來提高最終硬件終端的開發(fā)效率。如圖11為MQTTx 的界面,按照圖11的步驟填寫聯(lián)網(wǎng)信息。如圖11的1,2,3,4,5,6位置全部正確填寫后點(diǎn)擊位置7可以實(shí)現(xiàn)MQTTX與OneNET鏈接。
圖11
第四步 填寫服務(wù)器連接信息:如何填寫信息呢,這是本文的關(guān)鍵,也是所有后續(xù)開發(fā)的關(guān)鍵。
Client ID:設(shè)備名稱(如圖10的1號箭頭位置)
Host:服務(wù)器地址 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)
第五步 計(jì)算服務(wù)器密碼:如何獲得鏈接密碼,需要下載一個(gè)工具 Token生成工具,如圖12,
圖12
圖12位置1為第四步所用到的“產(chǎn)品屬所ID”,位置2為“設(shè)備名稱”,位置4為圖10的3號位置的“設(shè)備秘鑰”,位置3為一個(gè)時(shí)間戳,這不是很好理解我簡單用我自己理解的話術(shù)說下希望可以幫助大家理解(簡單理解就是 將當(dāng)前的日期和時(shí)間減去過去某一個(gè)日期和時(shí)間計(jì)算的秒數(shù),我們這里需要填寫設(shè)備賬號到期的密碼,所以需要將以后的某個(gè)時(shí)間比如當(dāng)前是2022年9月23日,我想設(shè)備賬號有效期為一年那么就是將2023年9月23日 15點(diǎn)30分,減掉過去的一個(gè)時(shí)間點(diǎn)(即時(shí)間戳是指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù) )。只有這樣計(jì)算出來的時(shí)間戳放進(jìn)去計(jì)算出來的密碼才可以使用一年),具體的時(shí)間戳換算公式可以使用在線工具。如圖13的步驟可以計(jì)算出有效期為1年的時(shí)間戳“1695452640”,
圖13
這個(gè)需要根據(jù)具體的使用時(shí)間填寫,不過這個(gè)時(shí)間戳非常關(guān)鍵,因?yàn)樵诤竺嫔习l(fā)數(shù)據(jù)的時(shí)候要求帶時(shí)間戳,在程序里帶的時(shí)間戳一定不能超過這個(gè)時(shí)間點(diǎn)。
圖14
點(diǎn)擊如圖14的1號位置的“Generate”可以獲得密碼,如圖14的2號位置為計(jì)算出來的密碼,填寫到MQTTX 的密碼位置。
第五步 連接服務(wù)器:如圖15 填寫好MQTTX 鏈接平臺(tái)的基本賬號信息,圖15位置1選擇3.1.1,點(diǎn)擊圖15位置2 鏈接服務(wù)器,
圖15
服務(wù)器鏈接成功后如圖16,如圖出現(xiàn)英文提示說明沒有鏈接成功,則是密碼計(jì)算有問題或者是相關(guān)信息沒有填寫正確(登入信息一定要用自己創(chuàng)建產(chǎn)品和設(shè)備產(chǎn)生的信息,不能直接用我圖片的信息,要不然你們的數(shù)據(jù)就發(fā)到我的平臺(tái)上來了)。
圖16
MQTTX與云平臺(tái)服務(wù)器鏈接成功后,如圖17,在平臺(tái)上的設(shè)備管理頁面可以看到圖17位置2顯示設(shè)備狀態(tài)為“在線”,這里也非常關(guān)鍵一定要出現(xiàn)和圖16一樣的頁面才算前面的準(zhǔn)備工作是做成功的,如果有一點(diǎn)不一樣那就要回到前面的步驟繼續(xù)檢查,細(xì)心發(fā)現(xiàn)問題?;蛘哒埥趟耍绻枰埥套髡弑救藙t一定要告知你是在哪一步驟的哪個(gè)圖片上出差錯(cuò)。
圖17
第六步 上報(bào)數(shù)據(jù)格式整理:發(fā)自己的數(shù)據(jù)到自己創(chuàng)建的設(shè)備平臺(tái)展示需要填寫發(fā)布屬性上報(bào)topic,上報(bào)topic就理解為是你需要發(fā)布數(shù)據(jù)的位置,這里需要設(shè)置和你的產(chǎn)品或設(shè)備相關(guān)的信息,這個(gè)根據(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è)備名稱”以及按平臺(tái)要求的數(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號位置進(jìn)入詳情頁面可以選擇需要的屬性的標(biāo)識符,也可以創(chuàng)建自己的屬性及相關(guān)的標(biāo)識符。
圖18
如圖19位屬性標(biāo)識符的獲取,如圖19的1位置和2位置查看光照值和溫度的屬性標(biāo)識符并填寫到自己的數(shù)據(jù)格式里。以上數(shù)據(jù)time字段后的時(shí)間戳一定要在生成密碼的時(shí)間戳之前,在換算的時(shí)候選擇ms為單位,我以上的時(shí)間是2022-09-23 15:40:30的時(shí)間。
圖19
第七步 上報(bào)數(shù)據(jù)到平臺(tái):上發(fā)數(shù)據(jù)以及數(shù)據(jù)展示,如圖20 將自己整理的上報(bào)topic和數(shù)據(jù)格式填寫在圖20的 1和2位置,并且點(diǎn)擊圖20的位置3發(fā)送數(shù)據(jù),
圖20
可以看到OneNET云平臺(tái)Studio上有你上報(bào)的數(shù)據(jù),在相應(yīng)的屬性里,如圖21的1和2位置有我們上發(fā)的數(shù)據(jù)。
圖21
第八步 讀取數(shù)據(jù)上報(bào)狀態(tài):訂閱屬性上報(bào)結(jié)果通知topic,就是獲取設(shè)備上報(bào)數(shù)據(jù)后服務(wù)器返回的數(shù)據(jù),這一步和第六步一樣將 $sys/{pid}/{device-name}/thing/property/post/reply 按自己的設(shè)備名稱及產(chǎn)品ID,如圖22,從圖22的1位置點(diǎn)擊進(jìn)入,在圖22的2位置填寫信息,點(diǎn)擊點(diǎn)擊圖22的3號位置,
圖22
再次發(fā)送數(shù)據(jù)時(shí)可以看到圖23的3號位置有數(shù)據(jù)上報(bào)成功后服務(wù)器回復(fù)的信息,大家也可以通過這個(gè)回復(fù)來判斷數(shù)據(jù)是否發(fā)送成功。
圖23
第九步 回顧總結(jié):結(jié)合如圖23的4個(gè)位置我們再進(jìn)行回顧下,1位置為與服務(wù)鏈接成功的標(biāo)志,2位置為服務(wù)器回復(fù)發(fā)送狀態(tài)的topic的位置,3位置為服務(wù)器回復(fù)的數(shù)據(jù),4位置為我們上發(fā)的數(shù)據(jù),5位置為我們上發(fā)的topic。
需要用到的工具及網(wǎng)址:
OneNET 云平臺(tái)地址:https://open.iot.10086.cn/
時(shí)間戳在線計(jì)算網(wǎng)址:https://tool.lu/timestamp/
MQTTX 客戶端軟件
token計(jì)算軟件
需要用到的賬號參數(shù):
所屬產(chǎn)品ID:i7ybqx3ZNk
設(shè)備密鑰:KJ/ll/7hfOpjsUlz------9a1SyjvH40/X3kVRF8UU=
設(shè)備名稱 P0001
屬性標(biāo)識符 LightLux CurrentTemperature
希望我的文章能幫到大家,文章里涉及到的軟件工具,電路圖資料,程序源代碼等大家可以 搜索 WX公眾號 “和我學(xué)單片機(jī)”回復(fù)“OneNET01”回復(fù)帶密碼的百度網(wǎng)盤下載鏈接,大家可以自行下載。如果資料不夠或?qū)W習(xí)中遇到問題可以在公眾號留言。更新: 2022年9月24日 楊榮國 個(gè)人WX : tong1366
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44490瀏覽量
632005 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2900文章
44068瀏覽量
370266 -
STM32
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354305 -
MQTT
+關(guān)注
關(guān)注
5文章
647瀏覽量
22392
發(fā)布評論請先 登錄
相關(guān)推薦
評論