本帖最后由 幻生幻滅 于 2018-9-11 07:51 編輯 前言最近嘗試了一下阿里云IoT物聯(lián)網(wǎng)平臺,還是蠻強大的。在此記錄一下學習過程。
本教程不需要任何外圍硬件,一臺電腦和一根能上網(wǎng)的網(wǎng)線即可。算是一篇Hello World了。先上效果圖
第一章 準備工作1.1 注冊阿里云賬號
首先打開阿里云的官網(wǎng)并注冊新用戶,網(wǎng)址為:
https://www.aliyun.com/product/iot1.2 注冊完成后自動跳轉(zhuǎn)到實名認證界面,可以通過支付寶授權(quán)快速完成認證。
1.3 開通物聯(lián)網(wǎng)平臺
在左邊菜單選擇《產(chǎn)品與服務》中的物聯(lián)網(wǎng)平臺,并激活開通此功能。
開通成功后,即可進入管理控制臺
1.4 軟件環(huán)境搭建
下載并安裝編輯器VS Code(全稱Visual Studio Code)
https://code.visualstudio.com/1.5 下載并安裝Nodejs
https://nodejs.org/en/download/第二章 IoT云端開發(fā)2.1 打開阿里云控制臺
https://iot.console.aliyun.com2.2 創(chuàng)建高級版產(chǎn)品
在產(chǎn)品管理界面點擊 創(chuàng)建產(chǎn)品,并選擇高級版
2.3 新增產(chǎn)品屬性
在產(chǎn)品詳情的功能定義中點擊 新增,創(chuàng)建屬性
新增 溫度
新增 濕度
注意:標識符非常重要,是JSON里傳遞的屬性!而且要區(qū)分大小寫!屬性界面一覽
2.4 創(chuàng)建設(shè)備
首先點擊設(shè)備管理,并在下拉菜單中選擇Demo產(chǎn)品
點擊 添加設(shè)備,并命名Unit01
創(chuàng)建完成后獲得該設(shè)備的重要數(shù)據(jù)——三元組
可以繼續(xù)添加其他設(shè)備
云端的任務告一段落。
點擊Unit01進入設(shè)備詳情,可以看到運行狀態(tài)中并無數(shù)據(jù)。
第三章 設(shè)備端開發(fā)本教程用nodejs程序來模擬設(shè)備,建立連接,上報數(shù)據(jù)。無實際硬件。
3.1 在電腦桌面創(chuàng)建設(shè)備端項目
創(chuàng)建項目文件夾 aliyun-iot-demo,本Demo共需要2個文件和一個庫
創(chuàng)建文件package.json,代碼如下
- {
- "name": "aliyun-iot-demo",
- "dependencies": {
- "aliyun-iot-mqtt": "^0.0.4"
- },
- "author": "wongxming",
- "license": "MIT"
- }
復制代碼注:代碼中author是原作者
3.2 下載阿里云物聯(lián)網(wǎng)套件硬件端SDK
在VS Code中打開CMD界面
用CD指令找到項目所在路徑
用NPM指令下載阿里IoT的MQTT庫,筆者的下載進度卡住過,重試很多次才成功。
文末有下載好的壓縮包,復制到項目路徑下即可。
- npm install aliyun-iot-mqtt -S
復制代碼3.3 創(chuàng)建Nodejs程序文件thermometer.js
- //1.引入阿里云IoT的sdk
- const mqtt = require('aliyun-iot-mqtt');
- //2.設(shè)備屬性
- const options = {
- productKey: "產(chǎn)品productKey,這里是a1wgoXxYRbs",
- deviceName: "設(shè)備deviceName,這里是Unit01",
- deviceSecret: "設(shè)備的secret,AEU2vP略",
- regionId: "cn-shanghai"};
- //3.建立連接
- const client = mqtt.getAliyunIotMqttClient(options);
- //4.屬性數(shù)據(jù)上報
- const topic = `/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`;
- setInterval(function() {
- //發(fā)布數(shù)據(jù)到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窗口輸入指令,運行代碼,啟動設(shè)備終端
程序會定期上傳隨機的溫度和濕度數(shù)據(jù)
第四章 最終效果回到控制臺,在運行狀態(tài)頁面,激活 實時刷新,就可以看到溫度和濕度值了
回到設(shè)備管理界面,可以看到當前只有Unit01設(shè)備在線
本例框圖
附件庫文件
node_modules.zip(1.15 MB, 下載次數(shù): 334)代碼:
aliyun-iot-demo.zip(1.17 MB, 下載次數(shù): 286)參考資料《10min接入阿里云IoT物聯(lián)網(wǎng)平臺》,實例內(nèi)容參考了本教程,修正了一些錯誤。
https://mp.weixin.qq.com/s/oE0zP5DegooVHmydt8aEUAhttps://www.npmjs.com/package/aliyun-iot-mqtthttps://github.com/alibaba/AliOS-Things