项目简介
本项目借助MQTT协议与ESP32构建了自动窗帘控制系统。利用两个TMC2209步进电机驱动器控制窗帘自动运行,同时修改窗帘机制里的齿轮以适配皮带驱动。系统通过WiFi连接到MQTT服务器,可实现窗帘远程控制操作。
项目的主要特性和功能
- MQTT通信:借助MQTT协议和服务器通信,能远程控制窗帘的速度、加速度、步数、位置等。
- 多电机控制:可同时控制多个电机,能灵活配置各电机的参数。
- 依赖库:使用AccelStepper库控制电机驱动器,PubSubClient库进行MQTT连接,ArduinoJson库处理JSON数据。
- ESP32平台:项目在ESP32上运行,通过WiFi连接到MQTT服务器。
安装使用步骤
配置文件
在项目根目录下创建secrets.h
文件,填入WiFi和MQTT服务器的相关信息,示例如下:
```c
const char ssid = "
define mqtt_port // MQTT端口号
define MQTT_USER "" // MQTT用户名
define MQTT_PASSWORD "" // MQTT密码
```
安装依赖库
在Arduino IDE中安装以下依赖库: - AccelStepper - PubSubClient - ArduinoJson
硬件连接
依据项目中的硬件文档,连接ESP32与电机驱动器及其他硬件设备。
添加电机控制
在代码中添加电机控制模块,示例如下:
c
char left_path[96];
strcpy(left_path, publish_path_rolgordijnen);
strcat(left_path, "/links");
Motor* rol_left = new Motor(left_path, MOTOR_1_STEP, MOTOR_1_DIR, MOTOR_1_ENABLE, "links", false);
motors.addMotor(rol_left);
初始化MQTT
在setup()
函数中调用setup_mqtt()
函数以注册所有MQTT主题。
运行电机
在loop()
函数中频繁调用motors.run()
以确保电机运行流畅。
测试运行
编译并上传代码到ESP32,测试窗帘控制功能。
硬件设置
详细的硬件设置说明请参考stl_files/README.md
文件(即将发布)。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】