树莓派 + AWS IoT 入门实验

这篇具有很好参考价值的文章主要介绍了树莓派 + AWS IoT 入门实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

好久没折腾过硬件了, 翻出了吃灰1年多的树莓派3B体验一下与 AWS IoT 物联网的联动, 参考官方文档:
https://docs.aws.amazon.com/iot/latest/developerguide/connecting-to-existing-device.html

AWS准备工作

AWS IoT 与硬件之间的通信依赖X.509证书进行加密并通过policy的策略进行限制, 所以需要先在AWS控制台做下面的准备工作:

创建policy

打开 Amazon IoT 控制台, 依次 Security - Policies - Create policy

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

分别添加 iot:Coonect, iot:Receive, iot:Publish, iot:Subscribe 的Allow权限, 为了方便实验, resource就不做具体限制了, 直接*通配

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

创建 thing

创建好policy后回到左侧导航栏 All devices - Things - Create things

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

因为实验就一台设备, 所以选择 Create single thing

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

起个名字, 注意这个名字后面是不能修改的, 其他保持默认设置继续

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

选择推荐的自动生成证书

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

勾选上刚才创建的policy继续

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

下载证书/密钥

分别下载生成的证书和密钥文件, 注意公钥和私钥文件只能在这个界面进行下载, 关了就没法再下载了, 需要重新生成新的.

aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT
一共有5个文件, 对应说明:

文件名 说明
xxxx-certificate.pem 设备证书, 用于与目标物理设备绑定
xxxx-private.pem 私钥
xxxx-public.pem 公钥
AmazonRootCA1.pem Amazon trust services endpoint 根证书 (RSA 2048 bit)
AmazonRootCA3.pem Amazon trust services endpoint 根证书 (ECC 256 bit)

本次实验中将会用到的是RSA 2048 bit算法的AmazonRootCA1.pem文件作为根证书, 同时还需要xxxx-certificate.pem设备证书和xxxx-private.pem私钥, 后面将会用到这三个文件. 都下载好后点击Done关闭弹窗.

再次回到左侧导航栏最底部 Settings, 复制 Endpoint 对应的网址到记事本后面会用到. IoT控制台的准备工作至此告一段落.
aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

硬件准备工作

也不记得之前树莓派的TF卡里面有啥东西了, 直接用 Raspberry Pi Imager 重新刷了最新版本的 Raspberry Pi OS Lite (32-bit), 这个版本是基于 Debian 11 Bullseye 魔改的. SSH 连上开始下面的操作:

# 先替换国内镜像
sudo sed -i 's|raspbian.raspberrypi.org|mirrors.ustc.edu.cn/raspbian|g' /etc/apt/sources.list
sudo sed -i 's|//archive.raspberrypi.org|//mirrors.ustc.edu.cn/archive.raspberrypi.org|g' /etc/apt/sources.list.d/raspi.list

# 更新和安装依赖
sudo apt update
sudo apt upgrade -y
sudo apt install -y cmake libssl-dev git python3-pip

# 使用豆瓣pip镜像
pip config set global.index-url https://pypi.doubanio.com/simple

# 安装 AWS IoT Device SDK
cd ~
pip install awsiotsdk
git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git

# github访问有困难可以用下面gitee上的镜像
# git clone https://gitee.com/mirrors_aws/aws-iot-device-sdk-python-v2.git

Hello IoT World

IoT 通信用到的是MQTT协议1 下面的测试程序会用MQTT库创建名为topic_1的主题, 并发送10条消息到这个主题.

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

首先将第一步在AWS控制台中生成的三个证书/密钥文件上传到树莓派~/certs文件夹中, 方便后面操作重命名一下:

文件名 说明
certificate.pem 设备证书, 用于与目标物理设备绑定
private.pem 私钥
AmazonRootCA1.pem Amazon trust services endpoint 根证书 (RSA 2048 bit)
/home/pi/certs/
├── AmazonRootCA1.pem
├── certificate.pem.crt
└── private.pem.key

调用aws-iot-device-sdk-python-v2中自带的演示应用, 注意将your-iot-endpoint替换为第一步在AWS控制台准备工作最后Settings中复制到记事本的那个网址

cd ~/aws-iot-device-sdk-python-v2/samples

python3 pubsub.py --topic topic_1 --ca_file ~/certs/AmazonRootCA1.pem --cert ~/certs/certificate.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint

成功输出下面信息:
aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT
回到 AWS IoT 控制台检查树莓派发送的消息, 左侧导航栏: MQTT test client - Topic filter 输入topic_1 - Subscribe, 订阅后再次在树莓派的SSH中执行上面的测试程序, 可以观察到控制台中同步接收到了传来的Hello World消息.
aws iot endpoint root ca的有效期,AWS,树莓派,aws,物联网,云计算,树莓派,IoT

总结

本次实验只是进行了最基本的物理设备与 AWS IoT 互联并通过 MQTT 协议发送/接受消息, 对于实际应用场景而言使用到更多的会是商用级的硬件设备已经封装好了更简洁的配置界面, 整体思路而言其实是一样的, 主要就是在 AWS 控制台配置好policy, 定义/添加 thing, 创建证书并在设备上正确关联.


  1. MQTT协议介绍 https://www.runoob.com/w3cnote/mqtt-intro.html ↩︎文章来源地址https://www.toymoban.com/news/detail-780951.html

到了这里,关于树莓派 + AWS IoT 入门实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 将AWS iot消息数据发送Kinesis Firehose Stream存向S3

    观看此文章之前,请先学习AWS iot的数据收集: 使用Linux SDK客户端向AWS Iot发送数据-CSDN博客 1.1 规则 规则可让您的设备与 AWS 服务进行交互。分析规则并根据物品发送的消息执行操作。您可以使用规则来支持任务,例如补充或筛选从设备接收的数据。 1.2 目的地 目的地是定义规

    2024年01月25日
    浏览(41)
  • 如何将 OBJ 模型转换和压缩为 GLTF 以与 AWS IoT TwinMaker 配合使用

    推荐:使用NSDT场景编辑器快速搭建3D应用场景 在这篇博文中,引用了几种文件扩展名和模型格式。在开始之前,最好了解以下内容: OBJ – 对象文件,一种标准的 3D 图像格式,可以通过各种 3D 图像编辑程序导出和打开。 MTL – 材料库文件,包含一个或多个材料定义,每个定

    2024年02月07日
    浏览(39)
  • 工业物联网 将工业设备快速连接到亚马逊AWS IoT的边缘层软件AwsIotDeviceAgent

    AWS IoT 是 AWS 云服务中的物联网服务和解决方案,能够连接和管理数十亿台设备,这些设备在连接到 AWS IoT后,即可利用 AWS 提供的云服务实现完整的物联网解决方案,如数据存储、分析、机器学习和行业价值洞察。 将工业设备连接至AWS IoT需要基于AWS IoT设备开发工具包(SDK)

    2023年04月22日
    浏览(41)
  • 【树莓派IOT入门】模拟搭建一个气象站

    假设你要建立若干个气象站,这若干个气象站可能分布到各个地点,并使用终端设备实时查看各个气象站的温度,适度,气压等数据。 树莓派如何连接外设 物联网中设备的数据上行是如何处理的 约等于中级水平的GO语言相关知识 了解一点消息队列的pub/sub模式和product/consum

    2024年01月19日
    浏览(41)
  • 入门物联网,基于IoT平台构建智慧路灯应用的实验指南

    自从了解到古茗前端团队使用 Node.js 写物联网代码 ,身为前端开发者,我对物联网充满了兴趣。 我一直很认同一个有趣的观点: 新技术的出现是为了让使用的人省时省力。 而关于 物联网雏形的故事 ,也包含了这一观点: 1991年,剑桥大学特洛伊计算机实验室的科学家们,

    2024年01月22日
    浏览(50)
  • 通过AWS Endpoints从内网访问S3

    AWS S3作为非结构化数据的存储,经常会有内网中的app调用的需求。S3默认是走公网访问的,如果内网app通过公网地址访问S3并获取数据会消耗公网带宽费用。如下图所示: AWS 提供了一种叫做endpoints的资源,这种资源可以后挂S3服务,使得内网服务可以不出公网访问S3. VPC endpo

    2024年02月03日
    浏览(46)
  • 如何用树莓派Pico针对IoT编程?

    目录 一、Raspberry Pi Pico 系列和功能 二、Raspberry Pi Pico 的替代方案 三、对 Raspberry Pi Pico 进行编程 硬件 软件 第 1 步:连接计算机 第 2 步:在 Pico 上安装 MicroPython 第 3 步:为 Thonny 设置解释器 第 4 步:编写程序 第5步:运行程序 四、小结 众所周知,Raspberry Pi(树莓

    2024年02月12日
    浏览(50)
  • ubuntu iot使用gpio库(树莓派)

    或者是:  但是 使用pip前一定要设置pip源,否则无法使用pip安装任何软件  使用这个就导入了gpio库了,然后就可以:

    2024年02月21日
    浏览(28)
  • 基于树莓派4B设计的智能家居系统(华为云IOT)

    基于树莓派的智能家居控制系统(华为云IOT) 本次设计实现了一个基于树莓派的智能家居系统,可以对家庭环境进行实时监测和控制,提高居家安全性和舒适度。该系统采用了多种传感器和模块,包括温湿度传感器、烟雾传感器、火焰传感器、光敏传感器、雨滴传感器、LED灯光

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包