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)/
作者
Zhao SN
发布于
2026年1月21日
更新于
2026年1月21日
许可协议