当前位置:   article > 正文

AWS 使用iot连接设备_aws device certificate

aws device certificate

先看这里https://quickstart.org.cn/IoT/lab1.IoTCore.1.html

https://www.npmjs.com/package/onoff

aws-iot控制设备的简单原理

aws-iot可以理解为一个物联网平台,任何硬件都可以加入到这个平台,这样你就可以无处不在的控制相应的设备。
本次利用esp32平台接入到aws-iot,目前esp平台内部有支持接入aws-iot的sdk,所以选择这个平台能快速体验aws-iot控制设备。
主要由三个模块组成,硬件、硬件平台的aws-iot sdk、aws云服务。aws-iot sdk与aws云服务的通信协议是mqtt,这个协议是怎么通信的可以百度一下。
硬件代表一个设备,需要先把这个设备注册到aws平台,每一个注册的设备会生成一个设备影子,aws-iot通过这个设备影子来改变这个设备的状态。
在aws平台里面使用lambda服务创建一个lambda函数,在这个lambda函数里面调用操作设备影子的接口就能控制相应的设备影子状态,这个状态的改变会发送到硬件aws-iot sdk,开发者便可以利用这个状态值去控制设备。
在这里只是简单的介绍控制逻辑,具体操作步骤可以参考aws的官方文档,里面的步骤很多在此就不说了。
--------------------- 
作者:蜗牛人生牛 
来源:CSDN 
原文:https://blog.csdn.net/wangfeitaozhijia/article/details/80662759 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

前提条件:

使用具有IOT服务权限的用户登陆

实验说明

  • 实验目的:熟悉使用IoT Core组件,设备接入,消息分发,设备认证

  • 涉及AWS组件:

    • Device Gateway, Message Broker
    • Device Certificate, IoT Policy
    • AWS IoT Test Tool
  • 实验流程

    • 注册IoT设备到AWS IoT服务上并下发相关证书
    • 启动IoT设备端相关代码,测试消息的推送和接收

一.进入IOT服务

进入IOT Core service 如下图所示 image

二.创建IOT中个的物(thing)

1.创建物

  1. 进入IOT 服务后,点击左侧列表Manage->Things,进入下述界面. 点击Register thing

image

  1. 此界面,实际环境下我们通常选择注册多个事物,此处为了演示,我们选择create a single thing.

image

  1. 进入如下列表后, 输入对于本地设备的命名, 比如light, 其他保持默认点击下一步.

    image

2.生成证书

  1. 此页面点击create certificate

image

  1. 得到如下证书, 分别下载3个证书到本地,以及根证书,准备之后客户端(树莓派)与云端建立加密通信所用

image下载完后,还需要点击左下角的激活

3.设置device相应的权限(Policy)

  1. 左侧TAB,选择Secure->Policies,点击Create创建policy. 输入policyName,例如: lightdevie_policy,然后如下图所示

image

  1. 点击上图add statements中的advanced mode,使用json模版为设备添加权限。复制如下的数据到命令行中
  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "iot:Publish",
  8. "iot:Subscribe",
  9. "iot:Connect",
  10. "iot:Receive"
  11. ],
  12. "Resource": [
  13. "*"
  14. ]
  15. },
  16. {
  17. "Effect": "Allow",
  18. "Action": [
  19. "iot:GetThingShadow",
  20. "iot:UpdateThingShadow",
  21. "iot:DeleteThingShadow"
  22. ],
  23. "Resource": [
  24. "*"
  25. ]
  26. }
  27. ]
  28. }

上述中的主要元素有Effect,Action和Resource. 以第一条为例,Effect:Allow,表示允许操作;ACTION的中的"iot:Publish",表示允许已注册的设备向云端IoT Core发送消息;最后Resource:* 表示可以对任何云端的topic执行上述的ACTION。

  • 在实际应用中,我们通常会限定设备只能发送和接受指定topic的消息,以免消息的影响

4.绑定证书和policy

点击左侧tab,Secure->Certificates,选中刚刚创建的Certificates. 进入Certificate详细界面后,选择attach policy,如下图所示 选择上一步中创建的 lightdevie_policy policy image

至次,设备再AWS IOT中的注册已经结束,下面进入模拟设备运行的环节。

三.组装硬件设备

1.串联分压电阻

将灯泡与 100 欧姆的的电阻串联在面包板上

2.接入树莓派

将面包板引出的两条线一端接入树莓派的GPIO 的 17 号引脚,另一端接地

3.接通树莓派电源


四.设备运行代码,连接AWS IOT云端服务

1.下载实验代码

从 代码桶中下载代码,并解压

2.设置证书

在代码中新建 certs 目录,将在1.中生成的证书放到 certs 目录中,放置后如下所示

3.修改代码并运行

修改主运行文件index.js为如下 image

对与上图中的3,我们需要切换回AWS IOT主页面,点击左侧TcdAB,Manage->Things。选择刚注册的thing如light, 进入如下界面,红框即位endpoint

image

4.上传代码到设备

  1. 运行以下命令在本地将代码压缩后,上传至树莓派
$ tar -cvf demo.tar aws-iot-lab-1/
  1. 上传完毕后采用下述的指令解压
$ tar -xvf demo.tar
  1. 为树莓派安装适用于 JavaScript 的 AWS IoT 设备软件开发工具包
  2. 再进入代码目录,输入如下指令
$ npm install

5.验证消息上传

  1. 切换到AWS Iot 界面,点击左侧 Test Tab,如下图所示订阅lights_oidnline topic,此处topic只要与客户端对应即可

image

  1. 继续返回树莓派命令行
$node index.js

得到如下的输出: image

同时我们在Test界面看到了树莓派已上线的消息,即设备到云端的发送消息成功。image

6.验证消息下发的逻辑

同样,在Test界面,并修改消息如下图所示 image点击publish to topic,发现灯亮 同理,修改message的value为0,点击Publish to topic发现灯灭。

停止程序,断开电源

CA证书下载,不需要自己创建

https://curl.haxx.se/ca/cacert.pem

自己创建会报 解决地方·:https://developer.ibm.com/answers/questions/438703/curl-60-ssl-certificate-problem-unable-to-get-loca/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/737536
推荐阅读
相关标签
  

闽ICP备14008679号