# SZ_ESP32_PYTHON_PUBLIC **Repository Path**: SiliZap/SZ_ESP32_PYTHON_PUBLIC ## Basic Information - **Project Name**: SZ_ESP32_PYTHON_PUBLIC - **Description**: Thonny开发ESP32S3,采用microPython - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-07 - **Last Updated**: 2025-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32S3 MicroPython MQTT物联网设备控制系统 这是一个基于ESP32S3开发的MicroPython项目,实现了通过MQTT协议与服务器通信的物联网设备控制系统。该系统可以控制多种外设(台灯、空调、告警和风扇),并支持温湿度数据采集和设备状态监控。 官网教程:https://silizap.com/platform/firmware/micropython.html ## 功能特点 - **设备控制**:支持控制台灯、空调、告警和风扇的开关状态 - **数据采集**:集成SHT31传感器,可采集环境温湿度数据 - **MQTT通信**:通过MQTT协议与服务器进行稳定通信 - **状态上报**:定期上报设备状态和传感器数据 - **命令响应**:接收并执行来自服务器的控制命令 - **一键控制**:支持执行预设的指令序列 - **自动重连**:WiFi断开后自动重连,确保通信稳定性 ## 硬件要求 - ESP32S3开发板 - SHT31温湿度传感器(可选) - 外部设备(台灯、空调控制器、告警器、风扇控制器) - 面包板和连接线 ## 硬件连接 项目使用以下引脚控制外部设备: | 设备 | 引脚号 | 说明 | |---------|-------|----------------------| | 台灯 | GPIO18 | 高电平开启,低电平关闭 | | 空调 | GPIO15 | 高电平开启,低电平关闭 | | 告警 | GPIO16 | 高电平开启,低电平关闭 | | 风扇 | GPIO17 | 高电平开启,低电平关闭 | | SHT31 SCL | GPIO22 | I2C时钟线 | | SHT31 SDA | GPIO21 | I2C数据线 | ## 软件配置 ### 1. 环境准备 - 安装MicroPython固件到ESP32S3 - 安装必要的库:`mqtt_as`(已包含在项目中) ### 2. 配置文件修改 在使用前,需要修改`mqtt_local.py`文件中的以下配置信息: ```python # 产品和用户信息 PRODUCT_ID = 'XXX' # 填入你的产品ID USER_ID = 'XXX' # 填入你的用户ID # MQTT服务器信息 config["server"] = "XXX" # 填入你的MQTT服务器地址 config["user"] = "XXX" # 填入你的MQTT用户名 config["password"] = "XXX" # 填入你的MQTT密码 # WiFi信息 config["ssid"] = "XXX" # 填入你的WiFi账号 config["wifi_pw"] = "XXX" # 填入你的WiFi密码 ``` ### 3. 引脚配置 如果需要修改控制引脚,可以在`mqtt_local.py`文件中修改以下定义: ```python AC_PIN = 15 # 空调引脚 ALARM_PIN = 16 # 告警引脚 FAN_PIN = 17 # 风扇引脚 LAMP_PIN = 18 # 台灯引脚 ``` ## MQTT主题 项目使用以下MQTT主题进行通信: ### 订阅主题 - 功能控制:`$sys/{PRODUCT_ID}/{MAC_ADDRESS}/silizap/function/get` - OTA升级:`$sys/{PRODUCT_ID}/{MAC_ADDRESS}/silizap/ota/get` - 一键控制:`$sys/{PRODUCT_ID}/{MAC_ADDRESS}/silizap/monitor/get` ### 发布主题 - 状态上报:`$sys/{PRODUCT_ID}/{MAC_ADDRESS}/silizap/property/post` - 功能控制回复:`$sys/{PRODUCT_ID}/{MAC_ADDRESS}/silizap/function/get_reply` - 一键控制回复:`$sys/{PRODUCT_ID}/{MAC_ADDRESS}/silizap/monitor/get_reply` ## 消息格式 ### 状态上报消息格式 ```json { "did": "随机生成的设备标识符", "version": "1.0", "params": { "time": "当前时间字符串", "timestamp": 毫秒时间戳, "functions": [ {"id": "lamp", "value": "open/close", "remark": ""}, {"id": "ac", "value": "open/close", "remark": ""}, {"id": "alarm", "value": "open/close", "remark": ""}, {"id": "fan", "value": "open/close", "remark": ""} ], "properties": [ {"id": "temperature", "value": "温度值", "remark": ""}, {"id": "humidity", "value": "湿度值", "remark": ""} ] } } ``` ### 控制命令消息格式 ```json { "did": "设备标识符", "params": [ {"sensorname": "设备名称", "sensorcmd": "open/close"} ] } ``` ## 使用说明 1. 将项目文件上传到ESP32S3开发板 2. 修改`mqtt_local.py`中的配置信息 3. 连接硬件设备 4. 运行`main.py`程序 5. 设备将自动连接WiFi和MQTT服务器,并开始上报状态 ## 故障排除 - **连接失败**:检查WiFi和MQTT服务器配置是否正确 - **设备无响应**:确认引脚连接是否正确,检查外部设备电源 - **数据异常**:如果使用SHT31传感器,请确认I2C连接和地址配置 ## 注意事项 - 该项目使用MicroPython编写,需要在ESP32S3上安装相应固件 - 项目中的SHT31传感器读取功能需要硬件支持,如未连接传感器,相关数据将显示为默认值 - 为保证通信稳定性,建议使用稳定的WiFi网络和MQTT服务器 ## 相关资源 - [MicroPython官方文档](https://docs.micropython.org/) - [ESP32S3数据手册](https://www.espressif.com/en/products/socs/esp32-s3) - [MQTT协议介绍](https://mqtt.org/)