阿里云物联网IOT平台使用案例教程(模拟智能设备)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

我将介绍如何通过MQTT、阿里IOT SDK完成设备与云平台对接


前言

最近尝试了一下阿里云IoT物联网平台还是蛮强大的。在此记录一下学习过程。

本教程不需要任何外围硬件一台电脑和一根能上网的网线即可。算是一篇Hello World了。先上效果图

第一章 准备工作

1.1 注册阿里云账号

首先打开阿里云的官网并注册新用户网址为

https://www.aliyun.com 【阿里云官网】

https://www.aliyun.com/product/iot 【阿里云物联网平台】

如果有不熟悉阿里云物联网平台怎么用的朋友可以查阅官网教程文档 阿里云物联网帮助文档

1.2 注册完成后自动跳转到实名认证界面可以通过支付宝授权快速完成认证。

1.3 开通物联网平台

在左边菜单选择《产品与服务》中的物联网平台并激活开通此功能。

开通成功后即可进入管理控制台

1.4 软件环境搭建

下载并安装编辑器VS Code全称Visual Studio Code

https://code.visualstudio.com/

1.5 下载并安装Nodejs

https://nodejs.org/en/download/

第二章 IoT云端开发

2.1 打开阿里云控制台

https://iot.console.aliyun.com

2.2 创建高级版产品

在产品管理界面点击 创建产品并选择高级版

2.3 新增产品属性

在产品详情的功能定义中点击 新增创建属性

新增 温度。此图是我更新注意截图中的标识符是小写的temperature原文是大写与代码不一致

新增 湿度

注意标识符非常重要是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

注意我在VS Code中和电脑CMD中都试过这段代码一直报npm json错误。后来我去原文地址重新下载了源代码并上传到了CSDNCSDN设置积分为5分资源名是“10分钟物联网设备接入阿里云IoT平台源代码

3.3 创建Nodejs程序文件thermometer.js

//1.引入阿里云IoT的sdkconst mqtt = require('aliyun-iot-mqtt');
 //2.设备属性const options = {productKey: "产品productKey这里是a1wgoXxYRbs", 
    deviceName: "设备deviceName,这里是Unit01",deviceSecret: "设备的secretAEU2vP略",regionId: "cn-shanghai"};//完整属性如下所示需要根据您产品和设备的属性来修改//const options = {//    productKey: "a1wgoXxYRbs", //    deviceName: "Unit01",//    deviceSecret: "AEU2vP",//    regionId: "cn-shanghai"};

 //3.建立连接const client = mqtt.getAliyunIotMqttClient(options);
 //4.属性数据上报const topic = `/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`;setInterval(function() {//发布数据到topicclient.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设备在线

本例框图


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6