10分鐘物聯網裝置接入阿里雲IoT平臺
前言
最近嘗試了一下阿里雲IoT物聯網平臺,還是蠻強大的。在此記錄一下學習過程。
本教程不需要任何外圍硬體,一臺電腦和一根能上網的網線即可。算是一篇Hello World了。先上效果圖
第一章 準備工作
1.1 註冊阿里雲賬號
首先開啟阿里雲的官網並註冊新使用者,網址為:
https://www.aliyun.com/product/iot
1.2 註冊完成後自動跳轉到實名認證介面,可以通過支付寶授權快速完成認證。
1.3 開通物聯網平臺
在左邊選單選擇《產品與服務》中的物聯網平臺,並激活開通此功能。
開通成功後,即可進入管理控制檯
1.4 軟體環境搭建
下載並安裝編輯器VS Code(全稱Visual Studio Code)
1.5 下載並安裝Nodejs
https://nodejs.org/en/download/
第二章 IoT雲端開發
2.1 開啟阿里雲控制檯
https://iot.console.aliyun.com
2.2 建立高階版產品
在產品管理介面點選 建立產品,並選擇高階版
2.3 新增產品屬性
在產品詳情的功能定義中點選 新增,建立屬性
新增 溫度
新增 溼度
注意:識別符號非常重要,是JSON裡傳遞的屬性!而且要區分大小寫!
屬性介面一覽
2.4 建立裝置
首先點選裝置管理,並在下拉選單中選擇Demo產品
點選 新增裝置,並命名Unit01
建立完成後獲得該裝置的重要資料——三元組
可以繼續新增其他裝置
雲端的任務告一段落。
點選Unit01進入裝置詳情,可以看到執行狀態中並無資料。
第三章 裝置端開發
本教程用nodejs程式來模擬裝置,建立連線,上報資料。無實際硬體。
3.1 在電腦桌面建立裝置端專案
建立專案資料夾 aliyun-iot-demo,本Demo共需要2個檔案和一個庫
建立檔案package.json,程式碼如下
{ "name": "aliyun-iot-demo", "dependencies": { "aliyun-iot-mqtt": "^0.0.4" }, "author": "wongxming", "license": "MIT" }
注:程式碼中author是原作者
3.2 下載阿里雲物聯網套件硬體端SDK
在VS Code中開啟CMD介面
用CD指令找到專案所在路徑
用NPM指令下載阿里IoT的MQTT庫,筆者的下載進度卡住過,重試很多次才成功。
文末有下載好的壓縮包,複製到專案路徑下即可。
npm install aliyun-iot-mqtt -S
3.3 建立Nodejs程式檔案thermometer.js
//1.引入[阿里雲](https://l.gushuji.site/aliyun)IoT的sdkconst mqtt = require('aliyun-iot-mqtt'); //2.裝置屬性const options = { productKey: "產品productKey,這裡是a1wgoXxYRbs", deviceName: "裝置deviceName,這裡是Unit01", deviceSecret: "裝置的secret,AEU2vP略", regionId: "cn-shanghai"}; //3.建立連線const client = mqtt.getAliyunIotMqttClient(options); //4.屬性資料上報const topic = `/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`;setInterval(function() { //釋出資料到topic client.publish(topic, getPostData()); }, 5 * 1000); function getPostData(){ const payloadJson = { id: Date.now(), params: { Temperature: Math.floor((Math.random() * 20) + 10), Humidity: Math.floor((Math.random() * 20) + 60) }, method: "thing.event.property.post" } console.log("===postData topic=" + topic) console.log(payloadJson) return JSON.stringify(payloadJson); }複製程式碼
3.4 執行程式
在CMD視窗輸入指令,執行程式碼,啟動裝置終端
node thermometer.js
程式會定期上傳隨機的溫度和溼度資料
第四章 最終效果
回到控制檯,在執行狀態頁面,啟用 實時重新整理,就可以看到溫度和溼度值了
回到裝置管理介面,可以看到當前只有Unit01裝置線上
本例框圖
原文地址:https://www.geek-workshop.com/thread-37883-1-1.html
更多工業交流和工作幫助可以訂閱我的個人訂閱號哦!