[AWS] IoT模拟设备接入测试

it2024-12-12  25

1、AWS IoT

AWS IoT是亚马逊一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。

详细参考:https://www.cnblogs.com/lovegrace/p/10982399.html

2、MQTT

mqtt是一种基于发布/订阅范式的消息协议,详细参考:https://www.runoob.com/w3cnote/mqtt-intro.html

3、AWS IoT设备注册步骤

3.1进入iot控制台,创建物品ting,下一步点击一键创建证书

点击激活,下载证书文件后,点击完成

3.2创建策略并绑定证书

点击高级模式,填入以下规则

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:Publish", "iot:Subscribe", "iot:Connect", "iot:Receive" ], "Effect": "Allow", "Resource": [ "*" ] } ] }

点击证书,附加策略

3.3测试模拟

本地安装nodejs环境,并且安装device-sdk模块 https://github.com/aws/aws-iot-device-sdk-js

device.js代码:

var awsIot = require('aws-iot-device-sdk'); var device = awsIot.device({ keyPath: `xxx-private.pem.key`,//之前下载的证书 caPath: 'root-CA.crt',//https://www.amazontrust.com/repository/AmazonRootCA1.pem certPath: `xxx-certificate.pem.crt`,//之前下载的证书 clientId: `arn:aws:iot:xxxx:thing/xxxx`,//在aws iot后台查看 host: `xx-ats.iot.us-xxx-1.amazonaws.com`//在测试页面右端查看终端节点 }); device.on('connect', function(err) { console.log('connect'); console.log('subscribe topic:server') device.subscribe('server'); }); device.on('message', function(topic, payload) { console.log(topic, Buffer.from(payload, 'base64').toString()); console.log('publish topic:device'); device.publish('device', '{"message":"device say hello to server"}'); });

AWS IoT界面打开测试页面

 

本地执行device.js

同时在测试界面发布publish server,可以得到如下信息

 

3.4流程分析

device.js中订阅了server字段的topic消息,aws MQTT客户端订阅了device的消息。当MQTT客户端发布了server的topic的消息,device端会收到,并且发布device的topic的消息,MQTT客户端会订阅到device的消息。

 

最新回复(0)