1.1 實(shí)訓(xùn)目的
1、通過(guò)中移物聯(lián)網(wǎng)平臺(tái)注冊(cè)創(chuàng)建 MQTT 設(shè)備;
?2、使用官方 MQTT 工具模擬智能家居系統(tǒng)實(shí)現(xiàn);
?3、利用平臺(tái)的 MQTT 消息服務(wù)能力,實(shí)現(xiàn)智能家居系統(tǒng)設(shè)備的實(shí)時(shí)受控;理解設(shè)備之間數(shù)據(jù)傳遞和 平臺(tái)命令下發(fā)/上傳數(shù)據(jù)的異同。
?1.2 實(shí)訓(xùn)步驟
1.2.1 創(chuàng)建基于 MQTT 協(xié)議的產(chǎn)品

步驟1 進(jìn)入中移物聯(lián)網(wǎng)首頁(yè)的“開(kāi)發(fā)者中心”; 點(diǎn)擊左上角 標(biāo)記,從“全部產(chǎn)品”下各級(jí)功能中找到“基礎(chǔ)服務(wù)”類(lèi)別,點(diǎn)選“多協(xié)議接入” 功能點(diǎn)進(jìn)入。

步驟 2: 創(chuàng)建產(chǎn)品 選擇“MQTT(舊版)“的 Tab 頁(yè),可以看到目前沒(méi)有產(chǎn)品,則點(diǎn)擊“添加產(chǎn)品”按鈕,進(jìn)行添加。 在右側(cè)滑出的頁(yè)面中添加必要的產(chǎn)品信息:如本次實(shí)訓(xùn)任務(wù)中,產(chǎn)品名稱(chēng)輸入“智能家居”,行業(yè)選 擇“智能家居”,類(lèi)別選擇“家用電器”->”廚房電器”->“電熱飯盒”等信息。

?步驟 3:繼續(xù)完善產(chǎn)品有關(guān)信息, 最后點(diǎn)擊確定,保存各項(xiàng)信息,稍等頁(yè)面提示產(chǎn)品創(chuàng)建成功,可以創(chuàng)建設(shè)備了。
1.2.2 創(chuàng)建基于 MQTT 的主控設(shè)備
1.配置主控設(shè)備的信息 在右側(cè)滑出的添加設(shè)備頁(yè)面中,設(shè)備名稱(chēng)輸入“燈光主控點(diǎn)”,鑒權(quán)信息輸入“publish”(全小寫(xiě)),其他保持默認(rèn)。最后點(diǎn)擊“添加”保存第一個(gè)設(shè)備的信息。
?1.2.3 創(chuàng)建基于 MQTT 的受控設(shè)備
步驟 1: 添加設(shè)備 點(diǎn)擊 按鈕,添加一個(gè)新的設(shè)備,名稱(chēng)輸入“客廳頂燈”、鑒權(quán)信息輸入“l(fā)ight1”, 點(diǎn)擊“添加”完成第二個(gè)設(shè)備的創(chuàng)建。

?步驟 2: 繼續(xù)添加設(shè)備 繼續(xù)點(diǎn)擊 按鈕,添加另一個(gè)新的設(shè)備:設(shè)備名稱(chēng)輸入“臥室落地?zé)簟?、鑒權(quán)信息輸入 “l(fā)ight2”,點(diǎn)擊“添加”完成該設(shè)備的創(chuàng)建。

1.2.4 下載并使用官方提供的 MQTT 工具
步驟 1:通過(guò)文檔中心找到官方工具

在當(dāng)前設(shè)備列表頁(yè)面的右上部分,我們可以隨時(shí)進(jìn)入“文檔中心”查看有關(guān)幫助,那么官方提供的 MQTT 測(cè)試工具也可以從這里進(jìn)入獲取到。 在左側(cè)菜單中,展開(kāi)“設(shè)備開(kāi)發(fā)指南”項(xiàng),選擇“測(cè)試工具”功能。

?步驟 2:下載 MQTT 工具 選擇 MQTT 工具“點(diǎn)擊下載”。下載后解壓其中的 文件到本地磁盤(pán)目錄, 雙擊運(yùn)行該文件,能正常運(yùn)行。完成即可進(jìn)入下一步。
1.2.5 使用官方 MQTT 工具模擬設(shè)備接入
步驟 1: 記錄 OneNET 平臺(tái)中已經(jīng)注冊(cè)的產(chǎn)品及創(chuàng)建好的設(shè)備 ID 提示:該步目的用于填入到工具中,使得發(fā)起的 MQTT 連接里可以攜帶正確的信息,使其請(qǐng)求能被 OneNET 平臺(tái)正確認(rèn)證,作為一個(gè)設(shè)備順利接入。
?步驟 2:我們?cè)谶@里回顧下如何查看產(chǎn)品的 ID ? 查看產(chǎn)品信息:
步驟 3:查看設(shè)備的 ID: ? 查看設(shè)備信息:
?步驟 4:接入主控設(shè)備“燈光主控點(diǎn)”
(1)打開(kāi) 如下圖所示界面,注意紅色箭頭所指的三個(gè)關(guān)鍵輸入:
?? DeviceID,即之前步驟查看的 “燈光主控點(diǎn)”的設(shè)備 ID;
?? ProductID,即之前步驟查看的 MQTT 產(chǎn)品的 ID;
? AuthInfo,即之前步驟中“燈光主控點(diǎn)”在創(chuàng)建時(shí)填入的鑒權(quán)信息 提示:對(duì)于““燈光主控點(diǎn)”,當(dāng)時(shí)輸入的鑒權(quán)信息是:publish。如果大家按照之前步驟也是 這樣填入的話(huà)。

?(2)填入所需信息,檢查無(wú)誤后,點(diǎn)擊“Connect”按鈕,連接到 OneNET 平臺(tái)。 提示:OneNET 平臺(tái)的 MQTT 服務(wù)接入地址及端口,工具已經(jīng)默認(rèn)填入,不需更改。
?(3)進(jìn)入 OneNET 平臺(tái)設(shè)備管理頁(yè)面中。查看平臺(tái)側(cè)對(duì)于設(shè)備狀態(tài)的刷新情況??梢钥吹?,“燈光 主控點(diǎn)”設(shè)備已上線(xiàn)。?

?步驟 5:接入受控設(shè)備“客廳頂燈”
(2)檢查無(wú)誤后,點(diǎn)擊“Connect”按鈕,連接到 OneNET 平臺(tái)。查看平臺(tái)側(cè)對(duì)于設(shè)備狀態(tài)的刷新 情況??梢钥吹?“客廳頂燈”設(shè)備已上線(xiàn)。?
?步驟 6:接入受控設(shè)備“臥室落地?zé)簟?/p>
( 1 ) 好了,舉一反三,我們 仍然保留之前打開(kāi)的 MQTT 工具窗口 不變,再次新打開(kāi) 窗口,按照”臥室落地?zé)簟钡脑O(shè)備 ID、所屬產(chǎn)品 ID、鑒權(quán)信息進(jìn)行配置,并點(diǎn) 擊 Connect 按鈕連接,在 OneNET 平臺(tái)中檢查設(shè)備在線(xiàn)狀態(tài)變化情況
(2)將所有窗口的 Connect 按鈕都點(diǎn)擊,可以在 OneNET 平臺(tái)上看到所有設(shè)備的狀態(tài)都變?yōu)樵诰€(xiàn)。
?(3)依次點(diǎn)擊所有 MQTT 工具窗口中的 “Disconnect”按鈕,斷開(kāi)工具的 MQTT 連接,刷新設(shè) 備列表頁(yè)面,查看顯示的設(shè)備狀態(tài)信息:可以看到其狀態(tài)都變?yōu)殡x線(xiàn)。
步驟 7: 設(shè)置官方 MQTT 工具的連接保持為長(zhǎng)連接。 工具的默認(rèn)連接保持時(shí)長(zhǎng)為 120 秒,這樣當(dāng)其空閑 2 分鐘后,工具會(huì)自動(dòng)斷開(kāi),從 OneNET 平臺(tái)上 看就是設(shè)備一會(huì)兒就掉線(xiàn)了。為確保后續(xù)實(shí)訓(xùn)效果,我們勾中該工具的“Auto KeepAlive”選項(xiàng),再次點(diǎn) 擊“Connect”,以設(shè)備身份接入 OneNET 平臺(tái)。
1.2.6 為所有受控設(shè)備設(shè)置訂閱
步驟 1: 對(duì)“客廳頂燈”設(shè)備設(shè)置一個(gè)“訂閱”
(1)在 “客廳頂燈”設(shè)備所代表的 MQTT 工具窗口中部“訂閱”tab 頁(yè)里,填寫(xiě)一個(gè)訂閱主題, 本次實(shí)訓(xùn)任務(wù)填寫(xiě)內(nèi)容為“power“;
(2)點(diǎn)擊“訂閱“按鈕,告知 OneNET 平臺(tái)該設(shè)備對(duì)“power”主題的相關(guān)數(shù)據(jù)感興趣,有這方面 的數(shù)據(jù)均要告知本設(shè)備。 提示:如何確認(rèn)打開(kāi)的 MQTT 窗口是代表的“客廳頂燈”設(shè)備?可以根據(jù)之前填寫(xiě)的設(shè)備 ID 和鑒權(quán) 信息來(lái)識(shí)別。
?步驟 2: 對(duì)“臥室落地?zé)簟痹O(shè)備設(shè)置一個(gè)相同的“訂閱”
(1)在 “臥室落地?zé)簟痹O(shè)備所代表的 MQTT 工具窗口中部“訂閱”tab 頁(yè)里,填寫(xiě)同樣的一個(gè)訂閱 主題,本次實(shí)訓(xùn)任務(wù)填寫(xiě)內(nèi)容為“power“;
(2)點(diǎn)擊“訂閱“按鈕,告知 OneNET 平臺(tái)該設(shè)備也對(duì)“power”主題的相關(guān)數(shù)據(jù)感興趣,有這方 面的數(shù)據(jù)均要告知本設(shè)備。?
?1.2.7 主控設(shè)備發(fā)布消息,受控設(shè)備均獲得消息 步驟 1: 在“燈光主控點(diǎn)”設(shè)備中發(fā)布一個(gè)數(shù)據(jù)消息,主題為“power”
?(1)在 “燈光主控點(diǎn)”設(shè)備所在 MQTT 工具窗口中部“發(fā)布”tab 頁(yè)里,發(fā)布一個(gè)主題,本次實(shí)訓(xùn) 任務(wù)填寫(xiě)內(nèi)容為“power“,在內(nèi)容部分里可以填“Hello everyone, 關(guān)燈!”
(2)點(diǎn)擊“Submit“按鈕,發(fā)布一條“power”相關(guān)主題的數(shù)據(jù)到 OneNET 平臺(tái)。
?步驟 2: 分別在不同的受控設(shè)備上查看收到的平臺(tái)推送消息
(1)在 “客廳頂燈”設(shè)備所在 MQTT 工具窗口中部“收到的 Topic”tab 頁(yè)里,查看來(lái)自 OneNET 平臺(tái)推送的信息,可以看到有一條推送,且內(nèi)容正是“Hello everyone, 關(guān)燈!”。

步驟 3: 繼續(xù)在“燈光主控點(diǎn)”設(shè)備上發(fā)布主題為 power 的不同內(nèi)容的消息。查看在不同的受控 設(shè)備上收到的平臺(tái)推送消息,注意觀察其推送時(shí)間。
1.3 拓展實(shí)訓(xùn)部分
1.3.1 OneNET 平臺(tái)直接下發(fā)命令給接入的設(shè)備
步驟 1: OneNET 平臺(tái)直接下發(fā)命令給接入的設(shè)備
?(1)在 OneNET 平臺(tái)上設(shè)備列表頁(yè)面,對(duì)“客廳頂燈”設(shè)備記錄所在的條目,點(diǎn)擊右側(cè)“更多操作”, 在浮動(dòng)窗口里點(diǎn)“下發(fā)命令”功能。
?(2)在打開(kāi)的頁(yè)面中可以看到,當(dāng)前下發(fā)命令數(shù)量為 0 個(gè),點(diǎn)擊右側(cè)的“下發(fā)命令”按鈕。
?(3)在右側(cè)滑出的窗口中選擇字符串格式,輸入數(shù)據(jù)“跟我一起做 ABC”,點(diǎn)擊下方的“發(fā)送”按 鈕。
(4)在命令列表頁(yè)面可以看到下發(fā)命令數(shù)為 1,且狀態(tài)為已發(fā)往設(shè)備。

?2:查看對(duì)應(yīng)設(shè)備接受命令情況 在“客廳頂燈”設(shè)備所在 MQTT 工具窗口中部“[OneNET]平臺(tái)指令接收”tab 頁(yè)里,查看來(lái)自 OneNET 平臺(tái)下發(fā)的指令,可以看到有一條指令,且內(nèi)容正是“跟我一起做 ABC”。

1.3.2 接入的設(shè)備上報(bào)數(shù)據(jù)到 OneNET 平臺(tái)
步驟 1: 接入的設(shè)備上報(bào)數(shù)據(jù)到 OneNET 平臺(tái)
(1)在 “客廳頂燈”設(shè)備所在 MQTT 工具中部“[OneNET]上傳數(shù)據(jù)點(diǎn)”tab 頁(yè)里,選擇“數(shù)據(jù)類(lèi) 型”下拉列表框:數(shù)據(jù)類(lèi)型 7:分號(hào)間隔的 Float 數(shù)據(jù)(帶時(shí)間戳)
(2)在下方切換的窗口里輸入數(shù)據(jù)流 ID:1,數(shù)據(jù):26.6;30.4;33.5;38.6;36.5;30.2;20.1;18.8。注意 各個(gè)數(shù)據(jù)之間用英文分號(hào)“;”隔開(kāi),點(diǎn)擊“上傳數(shù)據(jù)”。 提示:這里的各個(gè)浮點(diǎn)數(shù)據(jù)是模擬燈光強(qiáng)度等物理量,這里的數(shù)據(jù)并不要求必須真實(shí),跟實(shí)訓(xùn)任務(wù)的 場(chǎng)景一致,也可以是一天之內(nèi)的客廳溫度數(shù)據(jù)等等,以分號(hào)間隔即可。

步驟 2:在 OneNET 平臺(tái)上查看設(shè)備上報(bào)數(shù)據(jù) 在 OneNET 平臺(tái)上設(shè)備列表頁(yè)面,對(duì)“客廳頂燈”設(shè)備記錄所在條目,點(diǎn)擊右側(cè)“數(shù)據(jù)流”,查看 收到的數(shù)據(jù)流,可以看到數(shù)據(jù) ID 為 1 的數(shù)據(jù)集。

??點(diǎn)擊該數(shù)據(jù)集,可以看到之前上傳的數(shù)據(jù)展開(kāi)成為一個(gè)折線(xiàn)圖。

4.實(shí)訓(xùn)小結(jié) 實(shí)訓(xùn)小結(jié):
?1、中移物聯(lián)網(wǎng)平臺(tái)創(chuàng)建 MQTT 產(chǎn)品的入口、注冊(cè) MQTT 設(shè)備的注意點(diǎn);
?2、官方 MQTT 協(xié)議工具的使用技巧,如何正確將智能家居系統(tǒng)場(chǎng)景映射到 MQTT 設(shè)備客戶(hù)端中;
?3、利用平臺(tái)的 MQTT 消息服務(wù)能力,實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)實(shí)時(shí)傳遞,以及平臺(tái)與設(shè)備之間的命令下 發(fā)和數(shù)據(jù)上傳。