乐鑫是高集成度芯片的设计专家,专注于设计简单灵活、易于制造和部署的解决方案。乐鑫研发和设计 IoT 业内集成度高、性能稳定、功耗低的无线系统级芯片,乐鑫的模组产品集成了自主研发的系统级芯片,因此具备强大的 Wi-Fi 和蓝牙功能,以及出色的射频性能。
阿里云物联网套件是阿里云专门为物联网领域的开发人员推出的,其目的是帮助开发者搭建安全性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。全球多节点部署让海量设备全球范围都可以安全低延时接入阿里云IoT Hub,安全上提供多重防护保障设备云端安全,性能上能够支撑亿级设备长连接,百万消息并发。物联网套件还提供了一站式托管服务,数据从采集到计算到存储,用户无需购买服务器部署分布式架构,用户通过规则引擎只需在web上配置规则即可实现采集+计算+存储等全栈服务。总而言之,基于物联网套件提供的服务,物联网开发者可以快速搭建稳定可靠的物联网平台。
本文基于 linux 环境,介绍 ESP 设备对接阿里云平台的具体流程,供读者参考。
- linux 环境
用来编译 & 烧写 & 运行等操作的必须环境。
windows 用户可安装虚拟机,在虚拟机中安装 linux。
根据阿里官方文档,在阿里云平台创建产品,创建设备,同时自动产生 product key
, product secert
, device name
, device secret
。
product key
, product secert
, device name
, device secret
将在 6.1.2 节用到。
如果您熟悉 ESP 开发环境,可以很顺利理解下面步骤; 如果您不熟悉某个部分,比如编译,烧录,需要您结合官方的相关文档来理解。如您需阅读 ESP-IDF 编程指南文档等。
toolchain 设置参考 ESP-IDF 编程指南。
- ESP8266 平台:烧录工具位于 ESP8266_RTOS_SDK 下
./components/esptool_py/esptool/esptool.py
- ESP32 平台:烧录工具位于 esp-idf 下
./components/esptool_py/esptool/esptool.py
esptool 功能参考:
$ ./components/esptool_py/esptool/esptool.py --help
- esp-aliyun SDK, 通过该 SDK 可实现使用 MQTT 协议,连接 ESP 设备到阿里云。
- Espressif SDK
- ESP32 平台: ESP-IDF
- ESP8266 平台: ESP8266_RTOS_SDK
Espressif SDK 下载好后:
ESP-IDF: 请切换到 release/v3.2 分支:git checkout release/v3.2
ESP8266_RTOS_SDK: 请切换到 release/v3.1 分支:git checkout release/v3.1
参考 工具链的设置
- 拷贝针对 iotkit-embedded 的 patch
为了解决在 MacOS 下的编译问题,修改了部分 iotkit-embedded 中的文件。 在 esp-aliyun 目录下执行:
cp -r patch/* iotkit-embedded/
- 编译生成
libiot_sdk.a
cd iotkit-embedded
make reconfig
# 选择 esp8266 或 esp32 平台
make
cd ..
- 进入需要编译的 example, 配置三元组信息等
在 esp-aliyun 目录下执行:
cd examples/solutions/smart_light
make defconfig
make menuconfig
- 配置烧写串口
- 配置
WIFI_SSID
,WIFI_PASSWORD
2.生成最终 bin
make
将 USB 线连接好 ESP 设备和 PC,确保烧写端口正确。
make erase_flash
make flash
make monitor
如将 ESP8266 拨至运行状态,即可看到如下 log: log 显示了 ESP8266 基于 TLS 建立了与阿里云的安全连接通路,接着通过 MQTT 协议订阅和发布消息,同时在阿里云控制台上,也能看到 ESP8266 推送的 MQTT 消息。
也可执行
make flash monitor
来编译烧写和查看 log。