ESP-IDF 例程——MQTT、http、sockets、modbus
16. protocols 目录
16.1 mqtt/tcp 例程
| 字段 | 描述 |
|---|---|
| 例程名称 | mqtt/tcp |
| 所在文件夹路径 | examples\protocols\mqtt\tcp |
| 核心功能说明 | 演示如何使用ESP-MQTT库实现MQTT客户端,通过TCP传输连接到MQTT broker。实现了连接到broker、订阅/取消订阅主题、发布消息等功能。 |
| 主要调用的内部/外部函数或模块 | - app_main():程序入口函数- mqtt_event_handler():处理MQTT事件- esp_mqtt_client_init():初始化MQTT客户端- esp_mqtt_client_start():启动MQTT客户端- esp_mqtt_client_publish():发布MQTT消息- esp_mqtt_client_subscribe():订阅MQTT主题- esp_mqtt_client_unsubscribe():取消订阅MQTT主题 |
| 输入输出参数说明 | 输入: - 配置的MQTT broker URI(通过menuconfig设置) - Wi-Fi SSID和密码 输出: - MQTT连接状态 - 消息发布结果 - 订阅/取消订阅结果 - 接收到的MQTT消息 |
| 适用场景及典型应用案例 | 适用于: - 学习MQTT协议的实现和使用 - 开发物联网设备与云平台的通信 - 构建基于MQTT的传感器网络 - 智能家居设备的远程控制 - 作为MQTT客户端应用的参考模板 |
16.2 http_request 例程
| 字段 | 描述 |
|---|---|
| 例程名称 | http_request |
| 所在文件夹路径 | examples\protocols\http_request |
| 核心功能说明 | 演示如何使用POSIX socket API实现简单的HTTP请求。通过创建TCP连接、发送HTTP请求和接收HTTP响应,展示了HTTP客户端的基本实现。 |
| 主要调用的内部/外部函数或模块 | - app_main():程序入口函数- http_request_task():执行HTTP请求的任务- socket():创建socket- getaddrinfo():解析域名- connect():建立TCP连接- send():发送HTTP请求- recv():接收HTTP响应 |
| 输入输出参数说明 | 输入: - 目标URL(硬编码在程序中) - Wi-Fi SSID和密码 输出: - HTTP请求结果 - 服务器返回的HTTP响应 - 连接状态信息 |
| 适用场景及典型应用案例 | 适用于: - 学习HTTP协议的基本实现 - 了解POSIX socket API的使用 - 开发简单的HTTP客户端应用 - 测试网络连接 - 作为HTTP客户端应用的参考模板 |
16.3 sockets/tcp_client 例程
| 字段 | 描述 |
|---|---|
| 例程名称 | sockets/tcp_client |
| 所在文件夹路径 | examples\protocols\sockets\tcp_client |
| 核心功能说明 | 演示如何使用POSIX socket API实现TCP客户端。实现了TCP连接的建立、数据发送和接收,支持IPv4和IPv6两种协议。 |
| 主要调用的内部/外部函数或模块 | - app_main():程序入口函数- tcp_client_task():TCP客户端任务- socket():创建socket- getaddrinfo():解析域名或IP地址- connect():建立TCP连接- send():发送数据- recv():接收数据 |
| 输入输出参数说明 | 输入: - 目标服务器IP地址或域名 - 目标端口号 - Wi-Fi SSID和密码 输出: - TCP连接状态 - 发送的数据 - 接收的数据 |
| 适用场景及典型应用案例 | 适用于: - 学习TCP客户端的基本实现 - 了解POSIX socket API的使用 - 开发基于TCP的客户端应用 - 测试TCP服务器 - 作为TCP客户端应用的参考模板 |
16.4 https_request 例程
| 字段 | 描述 |
|---|---|
| 例程名称 | https_request |
| 所在文件夹路径 | examples\protocols\https_request |
| 核心功能说明 | 演示如何使用ESP-IDF的HTTPS客户端API实现安全的HTTP请求。支持TLS加密、服务器证书验证,并展示了如何获取服务器时间。 |
| 主要调用的内部/外部函数或模块 | - app_main():程序入口函数- https_request_task():执行HTTPS请求的任务- esp_https_client_init():初始化HTTPS客户端- esp_https_client_open():打开HTTPS连接- esp_https_client_read():读取HTTPS响应- esp_https_client_close():关闭HTTPS连接- esp_https_client_cleanup():清理HTTPS客户端资源 |
| 输入输出参数说明 | 输入: - 目标HTTPS URL(硬编码在程序中) - 服务器根证书(硬编码在程序中) - Wi-Fi SSID和密码 输出: - HTTPS请求结果 - 服务器返回的HTTPS响应 - 服务器时间信息 |
| 适用场景及典型应用案例 | 适用于: - 学习HTTPS客户端的基本实现 - 了解TLS加密和证书验证 - 开发安全的HTTP客户端应用 - 连接需要身份验证的云服务 - 作为HTTPS客户端应用的参考模板 |
16.5 modbus/serial/mb_slave 例程
| 字段 | 描述 |
|---|---|
| 例程名称 | modbus/serial/mb_slave |
| 所在文件夹路径 | examples\protocols\modbus\serial\mb_slave |
| 核心功能说明 | 演示如何使用ESP-IDF的Modbus组件实现Modbus RTU从机。支持线圈、离散输入、保持寄存器和输入寄存器四种数据类型,通过串行接口与Modbus主机通信。 |
| 主要调用的内部/外部函数或模块 | - app_main():程序入口函数- mb_slave_init():初始化Modbus从机- mb_slave_start():启动Modbus从机- mb_example_init_gpio():初始化GPIO- mb_register_callbacks():注册回调函数- 各种Modbus数据处理函数 |
| 输入输出参数说明 | 输入: - Modbus主机发送的命令 输出: - Modbus从机的响应 - 寄存器数据 - 线圈状态 |
| 适用场景及典型应用案例 | 适用于: - 学习Modbus协议的基本实现 - 了解Modbus从机的工作原理 - 开发基于Modbus的工业设备 - 构建工业自动化系统 - 作为Modbus从机应用的参考模板 |
ESP-IDF 例程——MQTT、http、sockets、modbus
https://blog.zhaosn.top/ESP32-examples/16.protocols(WIP)/