# esp32_test **Repository Path**: wsun987/esp32_test ## Basic Information - **Project Name**: esp32_test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32-C3 WiFi + MQTT + SK6812 LED 项目 基于 ESP-IDF v6.1 开发的 ESP32-C3 物联网演示项目,集成 WiFi 连接、MQTT 通信和 RGB LED 控制。 ## 功能特性 - **WiFi 连接**: 自动连接指定 WiFi 热点 - **MQTT 通信**: 连接 MQTT 服务器,定时发布消息 - **SK6812 RGB LED**: 可编程 RGB LED 状态指示 - **多任务架构**: FreeRTOS 多任务并发处理 ## 硬件要求 - ESP32-C3 开发板 - SK6812/WS2812 可编程 RGB LED (连接 GPIO8) - USB 数据线 ## 软件依赖 - ESP-IDF v6.1 或更高版本 - Python 3.8+ ## 配置说明 ### WiFi 配置 在 `main/led_blink.c` 中修改: ```c #define WIFI_SSID "你的WiFi名称" #define WIFI_PASS "你的WiFi密码" ``` ### MQTT 配置 在 `main/led_blink.c` 中修改: ```c #define MQTT_BROKER "mqtt://你的服务器地址:1883" #define MQTT_CLIENT_ID "esp32" #define MQTT_TOPIC "esp32/test" #define MQTT_MSG "test" #define MQTT_INTERVAL 5 // 发布间隔(秒) ``` ## 编译与烧录 ### 1. 设置 ESP-IDF 环境 ```bash . ~/esp/esp-idf/export.sh ``` ### 2. 编译项目 ```bash idf.py build ``` ### 3. 烧录 ```bash idf.py -p /dev/ttyUSB0 flash ``` ### 4. 查看日志 ```bash idf.py -p /dev/ttyUSB0 monitor ``` ## LED 状态指示 | 状态 | 颜色 | 闪烁模式 | |------|------|----------| | WiFi 未连接 | 红色 | 快闪 (100ms) | | WiFi 已连接,MQTT 未连接 | 蓝色 | 慢闪 (1s) | | MQTT 已连接 | 绿色 | 闪烁 (2s) | ## 项目结构 ``` ├── CMakeLists.txt # 项目 CMake 配置 ├── sdkconfig # SDK 配置文件 ├── main/ │ ├── CMakeLists.txt # 组件 CMake 配置 │ ├── led_blink.c # 主程序源码 │ └── idf_component.yml # 组件依赖配置 └── README.md # 项目说明文档 ``` ## MQTT 消息格式 设备连接成功后,每 5 秒向 `esp32/test` 主题发布一条 `test` 消息。 订阅示例 (使用 mosquitto_sub): ```bash mosquitto_sub -h monitor.andsolartech.com -p 1883 -t "esp32/test" ``` ## API 参考 ### WiFi 初始化 ```c void wifi_init(void); ``` 初始化 WiFi 站点模式,自动连接配置的热点。 ### MQTT 初始化 ```c void mqtt_init(void); ``` 初始化 MQTT 客户端,连接服务器。 ### SK6812 LED 控制 ```c void sk6812_init(void); void sk6812_set_color(uint8_t r, uint8_t g, uint8_t b); ``` 初始化 RMT 驱动,设置 RGB 颜色值。 ## 开发指南 ### 添加新的 MQTT 主题 在 `mqtt_event_handler` 函数中添加订阅逻辑: ```c case MQTT_EVENT_CONNECTED: esp_mqtt_client_subscribe(client, "your/topic", 0); break; ``` ### 添加自定义 LED 效果 参考 `status_led_task` 和 `breath_effect` 函数实现。 ## 许可证 MIT License ## 作者 wsun987 ## 更新日志 ### v1.0.0 (2026-03-17) - 初始版本 - 实现 WiFi 连接 - 实现 MQTT 通信 - 实现 SK6812 LED 控制