AWS IOT接入及测试

AWS IoT 能够通过 MQTT 和 HTTP 在连接 Internet 的设备 (如传感器、执行器、嵌入式设备或智能设备) 和 AWS 云之间实现安全的双向通信。

device端:nodejs (aws-iot-device-sdk)
client端:aws iot 控制台mqtt客户端

1 AWS IOT基本概念

1.1 AWS IoT组件(功能)

设备网关:使设备能够安全高效地与 AWS IoT 进行通信。
消息代理:提供安全机制以供设备和 AWS IoT 应用程序用于相互发布和接收消息。用于通信
规则引擎:提供消息处理及与其他 AWS 服务进行集成的功能。用于触发其他AWS服务。
Device Shadow 服务:在 AWS 云中提供您的设备的永久性表示形式。我们一般通过shadow间接控制设备
任务服务:允许您定义一组远程操作,这些操作发送到一个或多个连接到 AWS IoT 的设备并在这些设备上执行。

1.2 mqtt协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上

2 AWS IOT设备注册

进入AWS IOT后台

2.1 创建事物

注册事物-创建单个事物-输入名称(该名称会被阴影操作使用)-类型和组均可以暂时不选。
这里写图片描述
然后选择一键创建证书
这里写图片描述
下载相应证书,点击激活,点击完成。设备创建完成后,这样就回到了控制台了。

2.2 附加策略

刚才创建的证书现在并没有相应的权限我们需要为刚才创建的证书附加相应的策略(权限策略)。
这里写图片描述
输入策略名并点击高级模式
这里写图片描述
将下面的配置复制进去,点击创建

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

回到控制台点击安全-证书
这里写图片描述
附加策略将刚才创建的策略名附加进去既可以。
到这里我们一个IOT设备就注册好了。

3 测试

3.1 下载aws-iot-device-sdk包

npm install aws-iot-device-sdk

3.2 将证书放置在该目录下

pem.crt private.pem.key root-CA.crt放到目录下

3.3 新建文件并复制下面这段code

var awsIot = require('aws-iot-device-sdk');
var device = awsIot.device({
    keyPath: `b889270888-private.pem.key`,
    caPath: 'root-CA.crt',
    certPath: `b889270888-certificate.pem.crt`,
    clientId: `arn:aws:iot:ap-northeast-1:xxxxxxxx:thing/test_device_tokyo`,
    host: `xxxxxxx.iot.ap-northeast-1.amazonaws.com`
});
device.on('connect', function(err) {
    console.log('connect');
    device.subscribe(`server`);
});
device.on('message', function(topic, payload) {
    console.log(topic, payload);
    device.publish('device', `device say hello to server ${uid}`);
});

3.4 配置参数

keyPath: 私匙路径,
caPath: CA文件路径,
certPath: 证书路径,
clientId: 事物ARN 在AWSIOT 后台查看,
host: xxxxx.iot.ap-northeast-1.amazonaws.com
Host 终端节点,可在AWS IOT 后台查看
这里写图片描述

3.5 测试

上面那段device测试code实现功能:
Device 端订阅了 server这个topic的消息。
AWS MQTT客户端 端订阅了 device 这个topic的消息。
当mqtt客户端发起topic的push, device即会收到该消息,并发起 topic 为device的push,mqtt客户端也会收到来自device的消息

测试结果:
这里写图片描述
device端收到信息且,控制台收到返回消息,说明AWS IOT设备已经连入IOT网络。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
AWS IoT是一种完全托管的云服务,用于将物联网(IoT)设备连接到Amazon云平台,实现设备的管理和数据通信。而EC2(Elastic Compute Cloud)是亚马逊AWS云计算服务的一部分,为用户提供可伸缩的虚拟服务器环境。 要实现AWS IoT MQTT设备接入EC2,首先需要将MQTT设备注册到AWS IoT平台。在AWS IoT中,我们可以创建设备证书和密钥,然后将其下载到设备上。设备使用这些证书和密钥来与AWS IoT平台建立安全的连接。 然后,在EC2中,我们需要设置一个运行MQTT Broker的服务器。可以选择使用Mosquitto等开源软件或AWS IoT Core来搭建MQTT Broker。根据实际需求,我们可以选择搭建独立的MQTT Broker服务器,或者在现有的EC2实例中运行。 接下来,我们需要为EC2实例配置安全组规则,以允许设备通过MQTT协议与EC2进行通信。可以为设备定义入站和出站规则,以确保连接的安全性。 完成这些配置后,设备就可以使用其证书和密钥通过MQTT协议与EC2建立连接了。设备可以发布数据到指定的主题(topic),或订阅感兴趣的主题,接收其他设备或EC2发布的消息。 通过AWS IoT MQTT设备接入EC2,可以实现设备和云端之间的实时数据传输和通信。设备可以将传感器数据、状态信息等上传到EC2进行处理和分析,也可以接收来自EC2的指令和控制信息。 总之,AWS IoT MQTT设备接入EC2是一种有效的方式,将物联网设备连接到云计算环境中,实现设备管理和数据交换。同时,它还提供了强大的安全性和灵活性,满足不同场景下的需求。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值