Amazon FreeRTOS 在ESP32芯片快速构建产品原型
物联网时代已经到来,大量物联网产品和服务正在改变着我们的生活,AWS IoT 服务提供行业领先的物联网服务,帮助物联网产品生产厂商快速构建产品,为海量的用户提供安全,可靠、高效的服务。
ESP32 芯片模组在物联网嵌入硬件有大量的用户基础,并且获得了AWS IOT平台的产品认证和支持,本文基于esp32模组,帮助客户构建产品原型,加快产品投放市场的进度。
1 System Overview
• 通过AWS FreeRTOS 基于ESP32模组连接 AWS Message Broker 采集数据;
• Rules Engine 分发数据到S3
• 设备发送消息通过Rules Engine ,SNS 发送消息通知
2 数据采集端(FreeRTOS ESP32)
2.1 开发环境搭建
安装串口连接驱动,根据选择的ESP32的开发板安装驱动
Development Board | USB Driver | Remarks | |
1 | ESP32-DevKitC | CP210x | |
2 | ESP32-LyraT | CP210x | |
3 | ESP32-LyraTD-MSC | CP210x | |
4 | ESP32-PICO-KIT | CP210x | |
5 | ESP-WROVER-KIT | FTDI | |
6 | ESP32 Demo Board | FTDI | |
7 | ESP-Prog | FTDI | Programmer board (w/o ESP32) |
8 | ESP32-MeshKit-Sense | n/a | Use with ESP-Prog |
9 | ESP32-Sense Kit | n/a | Use with ESP-Prog |
前提条件
安装完成 python 2.7.6+ ,pip ,pyserial, coreutils
Toolchain 安装
下载 https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
下载配置 Amazon FreeRTOS
2.2 简化ESP32基础代码
地址 https://renyzbucket.s3.cn-north-1.amazonaws.com.cn/code/freertos.code.tar.gz
目录结构
esp32port Amazon FreeRTOS esp32集成依赖包
src 项目代码
src/Makefile 项目make 文件
main 项目代码
环境配置
配置 Makefile (必选)
创建策略
创建设备、证书、绑定策略
配置WiFi iot endpoint ,设备名称
修改 src/main/include/aws_clientcredential.h
配置证书
打开下载的 xxx-certificate.pem.crt 和 xxx-private.pem.key 文件
修改 src/main/include/aws_clientcredential_keys.h (不要缺少 ‘\n’)如下:
配置串口
Rules Engine 配置
可以配置监听device 发布的topic 转发到AWS 其他的Service, S3,SNS
通过 类SQL 的方式 订阅topic SELECT <Attribute> FROM <Topic Filter> WHERE <Condition>. 转发到其他服务
细节可以参照 https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html
备注
服务端如何获取客户端是否中断链接
MQTT协议的keep alive timeout 定义,在amanzon freertos 中通过
esp32/esp32port/freertos/config/aws_mqtt_agent_config.h
#define mqttconfigKEEP_ALIVE_INTERVAL_SECONDS 配置
关于设备连接状态 ,aws iot 预留的两个topic
参考文档
https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html
https://docs.aws.amazon.com/freertos/latest/userguide/what-is-amazon-freertos.html
https://docs.espressif.com/projects/esp-idf/en/stable/get-started/
本篇作者
相关文章
- useradd 命令和 adduser 命令都可以用来添加用户,那二者的区别是什么?
- 被Diss性能差,Dan连夜优化React新文档
- 服务器支持 IPv6 的原因
- 微软详解 Windows 11/10 Edge 浏览器 106 效率模式:支持平衡和最大省电
- 如何在 Fedora、CentOS、RHEL 中启用 RPM Fusion 仓库
- 如何在 Linux 命令行中查找 IP 地址
- 微软 Windows 11/10 免费工具集 PowerToys 将添加专用的 hosts 文件编辑器
- 基于OpenHarmony开发板的环境搭建及烧录过程(拓维Niobe开发板)
- 大数据 Hadoop 环境搭建图文详解
- OpenHarmony学生挑战赛参赛经验分享
- 如何在Linux中查看系统环境变量
- Linux 系统中如何更改 IP 地址
- 在 Linux 中怎样进行 grep 搜索呢?通过例子来学习几个常用的方法
- 从零开始用C++开发一款游戏引擎
- 使用 userdel 命令删除 Linux 中的用户
- CIO如何帮助企业快速调整,适应市场变化?
- Linux 命令行中查看某个网站的 IP 地址
- 基于OpenHarmony的家居安防系统
- 如何在 Brave 浏览器中使用画中画模式
- 使用 Linux 的优势和劣势