![ESP32-C3物联网工程开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/231/46418231/b_46418231.jpg)
3.2 ESP RainMaker的实现原理
ESP RainMaker的结构如图3-2所示。
ESP RainMaker由4个部分构成:Claiming服务(Claiming Service),为RainMaker设备提供动态获取设备证书的能力;RainMaker云(RainMaker Cloud,也称为云后端),提供消息过滤、用户管理、数据存储、第三方对接等服务;RainMaker设备侧代理程序(RainMaker Agent),为RainMaker设备提供连接到RainMaker云的能力;客户端(RainMaker Client),提供RainMaker App和CLI脚本两种形式的客户端,用于完成网络配置、用户创建、用户设备关联和控制等功能。
ESP RainMaker提供了一套完整的工具,用于支持开发者的开发与量产,包括:
![](https://epubservercos.yuewen.com/A9ABB8/25638808101563706/epubprivate/OEBPS/Images/txt004_2.jpg?sign=1738823639-pGfODp4b5CDbIuoTAP11pV6EOTavJGID-0-00b209d4f1fc018eee70bc1488a0299b)
图3-2 ESP RainMaker的结构
(1)RainMaker SDK。SDK用于构建固件,建立在ESP-IDF之上,提供了设备侧代理程序源码及相关C API。开发人员只需编写应用程序逻辑,其余的留给RainMaker处理即可。
扩展阅读:通过https://bookc3.espressif.com/rm/c-api-reference,可获取更多关于C API的说明。
(2)RainMaker App。ESP RainMaker提供了公版RainMaker App,通过该App不仅可以完成设备网络配置,还可以轻松地控制和查询智能照明产品的状态等。针对不同操作系统,乐鑫科技提供了iOS版和Android版的RainMaker App,详见第10章。
(3)REST API。可用于构建用户自己的应用程序,类似于ESP RainMaker提供的RainMaker App。通过链接https://swaggerapis.rainmaker.espressif.com/,可获取更多关于REST API的说明。
(4)Python API。提供了一个基于Python的CLI来实现所有类似于智能手机App的功能(CLI附带在RainMaker SDK中)。
扩展阅读:通过https://bookc3.espressif.com/rm/python-api-reference,可获取更多关于Python API的说明。
(5)Admin CLI。针对私有部署提供更高等级的管理员CLI,用于批量生成设备证书。