亚马逊AWS官方博客
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