1. 准备工作

1.1 注册阿里云账号

使用个人淘宝账号或手机号,开通阿里云账号,并通过支付宝实名认证

1.2 免费开通IoT物联网套件

产品官网 https://www.aliyun.com/product/iot

1.3 软件环境

Nodejs安装 https://nodejs.org

2. 开发步骤

2.1 IoT云端开发

1)创建高级版产品

2)功能定义,添加产品属性

3)注册设备,获得身份三元组

2.2 设备端开发

我们用nodejs程序来模拟设备,建立连接,上报数据。

1)创建设备端项目

创建文件夹 iot-demo
创建2个文件 package.json 和 device.js

2)package.json文件

添加阿里云IoT套件sdk依赖

{"name": "aliyun-iot-demo","dependencies": {"mqtt": "2.18.8"}
}

3)npm下载安装IoT套件SDK

$ npm install

4)device.js 应用程序代码

/**
"dependencies": { "mqtt": "2.18.8" }
*/
const crypto = require('crypto');
const mqtt = require('mqtt');
//设备身份三元组+区域
const deviceConfig = {productKey: "替换",deviceName: "替换",deviceSecret: "替换",regionId: "cn-shanghai"
};
//根据三元组生成mqtt连接参数
const options = initMqttOptions(deviceConfig);
const url = `tcp://${deviceConfig.productKey}.iot-as-mqtt.${deviceConfig.regionId}.aliyuncs.com:1883`;//2.建立连接
const client = mqtt.connect(url, options);//3.属性数据上报
const topic = `/sys/${deviceConfig.productKey}/${deviceConfig.deviceName}/thing/event/property/post`;
setInterval(function() {//发布数据到topicclient.publish(topic, getPostData());
}, 5 * 1000);//4.订阅主题,接收指令
const subTopic = `/${deviceConfig.productKey}/${deviceConfig.deviceName}/control`;
client.subscribe(subTopic)
client.on('message', function(topic, message) {console.log("topic " + topic)console.log("message " + message)
})//IoT平台mqtt连接参数初始化
function initMqttOptions(deviceConfig) {const params = {productKey: deviceConfig.productKey,deviceName: deviceConfig.deviceName,timestamp: Date.now(),clientId: Math.random().toString(36).substr(2),}//CONNECT参数const options = {keepalive: 60, //60sclean: false, //cleanSession保持持久会话protocolVersion: 4 //MQTT v3.1.1}//1.生成clientId,username,passwordoptions.password = signHmacSha1(params, deviceConfig.deviceSecret);options.clientId = `${params.clientId}|securemode=3,signmethod=hmacsha1,timestamp=${params.timestamp}|`;options.username = `${params.deviceName}&${params.productKey}`;return options;
}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\n topic=" + topic)console.log(payloadJson)return JSON.stringify(payloadJson);
}/*生成基于HmacSha1的password参考文档:https://help.aliyun.com/document_detail/73742.html?#h2-url-1
*/
function signHmacSha1(params, deviceSecret) {let keys = Object.keys(params).sort();// 按字典序排序keys = keys.sort();const list = [];keys.map((key) => {list.push(`${key}${params[key]}`);});const contentStr = list.join('');return crypto.createHmac('sha1', deviceSecret).update(contentStr).digest('hex');
}

3.设备运行

3.1 设备启动

3.2 IoT控制台查看设备运行状态

至此,完成了物联网设备接入阿里云IoT物联网云平台的开发实践

IoT物联网技术公共账号

Nodejs设备接入阿里云IoT平台相关推荐

  1. 阿里IOT云平台(二)---10分钟物联网设备接入阿里云IoT平台

    本文转载自:https://www.geek-workshop.com/thread-37883-1-1.html.基于VS Code和Node.js 我替换了原文中的温度.湿度属性图(主要是修正了标 ...

  2. 10分钟物联网设备接入阿里云IoT平台

    前言 最近尝试了一下阿里云IoT物联网平台,还是蛮强大的.在此记录一下学习过程. 本教程不需要任何外围硬件,一台电脑和一根能上网的网线即可.算是一篇Hello World了.先上效果图 第一章 准备工 ...

  3. 电信NB-IoT设备对接阿里云IoT平台实战——实践类

    众所周知,中国电信的NB-IoT设备必须直连电信CTWing平台,无法直接在阿里云IoT,AWS IoT,腾讯云IoT 管理中国电信的NB-IoT设备. 今天我们就给大家介绍如何通过阿里云IoT企业物 ...

  4. LoRaWAN设备接入阿里云IoT企业物联网平台实战——实践类

    传送门:5个视频讲解,30个场景案例汇总 LoRaWAN设备接入阿里云IoT企业物联网平台实战 随着 IoT 物联网的高速发展,低功耗,远距离,抗干扰的低功耗广域网快速崛起,LoRa与NB-IoT就是 ...

  5. 10分钟虚拟设备接入阿里云IoT平台实战

    10分钟虚拟设备接入阿里云IoT平台实战 1. 准备工作 1.1 注册阿里云账号 使用个人淘宝账号或手机号,开通阿里云账号,并通过实名认证(可以用支付宝认证) 1.2 免费开通IoT物联网套件 产品官 ...

  6. WIFI设备接入阿里云物联网平台

    WIFI设备接入阿里云物联网平台 WIFI设备接入阿里云物联网平台 准备工作 配置WIFI模块 调试 WIFI设备接入阿里云物联网平台 本文演示WIFI设备接入阿里云物联网平台,设备采用的时HC-25 ...

  7. 设备接入阿里云物联网平台

    接入步骤 一个设备接入阿里云物联网平台,主要有三个步骤 1.接入云平台 2.设备端开发 3.设备上下行调试 接入云平台 参考文档 设备接入指南

  8. 踏入物联网第一篇——STM32F103开发板接入阿里云IOT平台

    刚开始学习物联网,在研究STM32的路上记录下心得!!! 最近入手了一块STM32F103的板子,顺手就研究了下 如何通过MQTT协议连接阿里云物联网平台. 开发板是STM32F103C8T6  芯片 ...

  9. 4G Modbus Json边缘网关接入阿里云IoT平台

    LTE-669P 4G边缘网关系列 阿里云平台连接教程 今天介绍物联设备 LTE-669P 4G边缘网关如何接入阿里云平台系列. LTE-669P是一款工业级4G JSON无线边缘解析网关,支持RS4 ...

  10. C# 基于开源MQTT自主接入阿里云IoT平台

    1. 准备工作 1.1 注册阿里云账号 使用淘宝账号或手机号,开通阿里云账号,并通过实名认证(可以用支付宝认证) 1.2 免费开通IoT物联网套件 产品官网 https://www.aliyun.co ...

最新文章

  1. bit,Byte、KB、MB、GB、TB、PB、EB之间的关系
  2. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(添加直方图、分组颜色配置)实战(density plot)
  3. Linux/unix主机环回地址的一些功用
  4. web前端技术杂谈--css篇(1)--浅谈margin(续)
  5. Python_Statsmodels包_时间序列分析_ARIMA模型
  6. gym中render()函数在远端server运行的解决方案
  7. mysql版本选择最终建议
  8. 如何用 Blazor 实现 Ant Design 组件库(二)
  9. Java之Set集合的怪
  10. jquery元素节点操作
  11. C语言中机考投机取巧的方法,计算机二级C语言考试机试经验三部曲:备考篇(一)...
  12. 开课吧:为什么AI工程师都要懂一点架构呢?
  13. LeetCode之长度最小的子数组
  14. JavaWeb知识点复习(第一次)
  15. vibe的matlab实现,Matlab調用VIBE算法
  16. 在动态库内部获取动态库路径
  17. Spring的AOP的基于AspectJ注解开发——Spring的JDBC的模板的使用——Spring的事务管理
  18. #import msxml3.dll 导致 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  19. Hazelcast IMDG参考中文版手册-第一章-前言
  20. 产品经理到底是做什么的?|️ 什么是产品经理?

热门文章

  1. Spring之Bean生命周期源码解析
  2. excel数字小写转大写公式的教程
  3. Windows快速更改IP脚本
  4. yb3防爆电机型号含义_YB3防爆电机和YBX3防爆电机的区别
  5. 神经元模型图手工制作,神经元模型图手工模型
  6. WRF,WPS 安装记录
  7. 远程数据采集传输---RTU设备
  8. Nordic nRF52840实战学习--使用nRF52840开发板抓蓝牙数据包
  9. 【预测模型】基于粒子群算法优化DBN深度置信网络实现数据预测matlab代码
  10. FreeImage使用