前沿提要:
MQTT是什么不知道?
看這一篇:https://www.cnblogs.com/happybirthdaytoyou/p/10362336.html
阿里雲官網玩不轉?
看這一篇: https://www.cnblogs.com/happybirthdaytoyou/p/14065294.html
不會用代碼連接阿里雲?
看這一篇:https://www.cnblogs.com/happybirthdaytoyou/p/14074606.html
1. 打開 https://www.aliyun.com/ 注冊賬號
2.注冊賬號登錄后點擊控制台
3. 在下圖1處輸入物聯網平台,會彈出2處所示物聯網平台的入口,點擊紅色箭頭所示處,進入物聯網平台頁面
4. 在物聯網平台頁面處 點擊該公共實例
5. 選中1處產品這一欄,點擊2處的創建產品按鈕
6. 填寫創建產品所需的參數。 我之后將十使用windows軟件MQTT.fx來連接阿里雲,我的電腦是通過wifi聯網的,所以我在下圖的聯網方式處選擇Wi-Fi 。
下面我創建一個產品,產品名稱叫做:我是產品-我負責管理設備們
(產品名稱在賬號內具有唯一性。例如,可以填寫為產品型號。支持中文、英文字母、日文、數字、下划線(_)、短划線(-)、@符號和英文圓括號,長度限制4~30個字符,一個中文或日文占2個字符)
點擊確認,我們將進入下圖頁面
7.
現在我們面臨兩個選擇,通過閱讀上圖2的文字,我們了解到,物模型是一種抽象的數據結構,我們需要為每個產品定義一個物模型,這是產品下屬的設備們的抽象父類。
所以,我們按照由上至下的設計原則,先為產品定義物模型吧! 點擊上圖2處,前往定義物模型。
8.
再點擊編輯草稿
9.
再點擊 添加標准功能
10.
選擇 其他類型, 我在這里輸入 溫度,表示我的物聯網設備將要上傳溫度值吧(你不一定要選擇溫度的,這里的選擇僅僅是阿里雲對用戶數據進行一個粗略的分類而已),
點擊3處的搜索按鈕, 4處隨便選擇一個, 我選擇的是當前溫度--空氣盒子。
然后點擊確定
還可以點擊編輯
我們將其讀寫類型改為 :讀寫。 這表示該數據不僅可以上傳到雲平台(只讀),還可以由雲平台下發到設備。
再點擊 發布上線,勾選:確認已查看當前版本與線上版本的比對結果。 點擊確定。
這樣,一個物模型就創建好了。
根據上面的提示,一個產品,不僅需要物模型,還需要設備,所以,接下來,我們就添加設備。
11. 在物聯網平台 / 設備管理 / 設備 頁面, 點擊:添加設備
1選擇我們剛才創建的產品 2給設備起個英文名字 ,再點擊確認
再點擊完成
至此,我們又將設備創建好了。PS:當前設備狀態可以看到,是未激活。
接下來我們就可以跑起來單片機或者其他什么Linux板子,又或者是上位機軟件,又或者是ubuntu內允許的可執行程序,來連接這個阿里雲了。
連接需要一些參數,這些參數阿里雲已經為我們都提供了,我們通過自己的主頁就可以看到, 如下圖所示:
上圖可以查看設備的參數。
上圖可以查看設備模型( 即 產品 )的參數。
12. 后面要用到的時候再來查看相關參數, 我們先下載MQTT.fx吧
MQTT.fx軟件的下載路徑
https://mqttfx.jensd.de/index.php/download?spm=a2c4g.11186623.2.16.63f75800DlwS9m
我下載的是最新版的1.71版本
打開該軟件
接着點擊上圖的該設置按鈕
然后填好相關參數,如下圖所示:
這里解釋下相關參數
你的Client ID可以和我的配置一樣。 后面的securemode也可以設置為3, signmethod也可以跟我一樣,設置為sha1(sha1就是上圖的hmacsha1)。
Broker Address就是個域名, 你的這個域名可以配置為 “你的ProductKey”+ “iot-as-mqtt.cn-shanghai.aliyuncs.com” 這串字符,
你的ProductKey可以通過下圖方式查到:
接着我們來填寫User Credentials選項卡
下面介紹下這兩行怎么填寫:
ProductKey的查看方法前面已經介紹過了,這里介紹下DeviceName的查看方法:
填好它。 現在就只剩一個Password還需要填寫了,我們需要借助一個密碼計算工具。
在該QQ群進行如下搜索即可下載
QQ群號在此
解壓縮下載包后,雙擊sign文件,即可使用,
下圖是我輸入的計算密碼所需的參數:
productKey、deviceName、clientId都介紹過了,或者我的配圖里都展示出來了。method選擇為sha1,還記得吧,我們之前配置Client ID的時候配置為了sha1,這里要對應上。
現在只剩一個deviceSecret沒介紹了,我們可以通過下圖方式查看:
填寫好參數以后,點擊Genrete,就可以生產password了。
然后把password復制黏貼到MQTT.fx的下圖處,再點擊OK按鈕
然后再點擊Connect
如果上面的操作都正確,那么喜迎時刻到了:
小燈變成了綠色,disconnect按鈕也可見(白色背景,黑色字體)了。
同時!==》我們可以看到,該設備由原先的 未激活 狀態更改為 在線狀態。我們已經建立了上位機MQTT.fx軟件和阿里雲的連接了。
既然連接已經通了,那我們接着來干點收發數據的事情吧。
畢竟僅僅建立個連接不是目的,收發數據去輔助完成業務邏輯才是我們的目的。
13 在下圖處,阿里雲平台為我們預設了一些Topic(主題), 我們可以借助這些主題來通信。
當然,我們也可以自定義Topic, 都可以的。
這里我們先使用預設好的物模型Topic吧。
這里可以看到,設備屬性上報的主題,
我訂閱的Topic就是: /sys/a11B0MP4tDp/1st_device_mqttfx/thing/event/property/post 填入下圖的3處:
留意一下,紅色框內選擇最左邊一個藍色的圈即可,這是通信的質量等級Qos, 阿里雲好像不支持Qos為2.
現在不確定支不支持不要緊,因為現在是快速體驗阿里雲,到時候我們寫下位機代碼來和阿里雲通信的時候肯定會設計到這個問題的,所以現在不操心,知道這么回事就行了。
4處我填寫的是CurrentTemperature":43, 為什么是CurrentTemperature呢?
因為CurrentTemperature是我們創建的溫度數據的標識符。
點擊Publish。數據就傳到雲上去咯。
現在我們可以去雲上查看下數據。
至此,我們完成了設備向雲發送數據的功能。
接下來我們來完成雲下發數據到設備的功能:
先配置MQTT.fx
再次查看阿里雲預設好的Topic列表,入下圖紫色划線的主題就是我們現在需要的訂閱主題。
意思就是,物聯網設備訂閱這個主題,雲平台也可以通過向這個主題發送消息,傳遞給各個訂閱過該主題的物聯網設備,以此實現通信。
我下圖填入的主題是:/sys/a11B0MP4tDp/1st_device_mqttfx/thing/service/property/set
然后點擊Subscribe。
接着在雲平台這邊來操作:
點擊在線調試
點擊前往查看
再進行如下配置
在3處填入你要發送的數值,我隨便填了個35.
點擊發送指令
之后會顯示雲端下發數據的記錄:
回到MQTT.fx
3處可以選擇按照JSON格式顯示收到的數據。
至此,我們又完成了雲端數據下發到設備的功能。
還有自定義Topic,有提到,沒涉及,可以自己去嘗試嘗試。
江湖很大,你我相遇在此有一定緣分,可以考慮加個QQ群聊聊人生,技術離不開生活,生活離不開聊聊。
.