ESP32-S3-Relay-6CH
来自Waveshare Wiki
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
说明
产品概述
用电安全注意事项
- 本产品须由专业的电工或技术人员作业使用,使用过程中请做好用电安全,防漏电和绝缘等保护措施。
- 在安装、维护或更换继电器设备之前,请务必关闭电源并拔下插头。
- 请勿试图拆卸继电器设备,以免损坏设备或导致电击危险。
- 请妥善安装放置继电器设备产品,请勿在潮湿、过热、易燃坏境中使用,避免因安装或使用不慎,引发安全事故。
- 出厂程序仅供学习,若用于实际应用请自行优化程序逻辑。
产品参数
参数名称 | 参数 |
供电电压 | 7~36V (或 5V/1A Type-C接口) |
继电器路数 | 6路 |
触点类型 | 一常开一常闭 |
接线端口 | Type-C |
通信协议 | USB协议 |
产品尺寸 | 88(H)x 122(V) mm |
接口说明
控制GPIO | 功能 | 说明 |
GP0 | BOOT按键 | BOOT按键控制引脚 |
GP21 | BUZZER | 蜂鸣器的控制引脚 |
GP38 | RGB | RGB灯的控制引脚 |
GP1 | CH1 | 1号继电器的控制引脚 |
GP2 | CH2 | 2号继电器的控制引脚 |
GP41 | CH3 | 3号继电器的控制引脚 |
GP42 | CH4 | 4号继电器的控制引脚 |
GP45 | CH5 | 5号继电器的控制引脚 |
GP46 | CH6 | 6号继电器的控制引脚 |
GP17 | TXD | RS485对应UART的TX引脚 |
GP18 | RXD | RS485对应UART的RX引脚 |
多功能控制
示例解析
- 共提供4个示例分别实现以下各个功能,用户可自行编写示例以实现其他功能,提供的示例仅供于简单操作设备
- 出厂程序为MAIN_WIFI_AP
文件名 实现功能 注意事项 MAIN_WIFI_AP RS485 接口控制 可直接烧录
Web 页仅连接到设备 WIFI 才可使用
蓝牙控制,蓝牙发送IP Web页面控制(近距离) MAIN_WIFI_STA RS485 接口控制 需修改后才可使用
需 修改 要连接的 WIFI
Web页仅内网使用
蓝牙控制,蓝牙发送IP Web页面控制(近距离) MAIN_WIFI_MQTT RS485 接口控制 需修改后才可使用
需 修改 要连接的 WIFI
须在Waveshare云中 创建 设备
蓝牙控制,蓝牙发送IP Waveshare云控制(远距离) MAIN_ALL RS485 接口控制 需修改后才可使用
需 修改 要连接的 WIFI
须在Waveshare云中 创建 设备
Web页仅内网使用
蓝牙控制,蓝牙发送IP Web页面控制(近距离) Waveshare云控制(远距离)
搭建环境
- 安装 Arduino IDE
- 安装完成后打开 Arduino IDE
- 进入开发板管理器,搜索 esp32 ,在下方的 esp32 by Espressif Systems 中选择 2.0.11 版本并点击安装(若不能正常安装可使用手机热点尝试)
- 安装完成重启 Arduino IDE 即可使用
- 上方将项目文件夹更改为 c:\Users\Waveshare\AppData\Local\Arduino15\packages(其中 Waveshare 为计算机用户名)
- 重新开启 Arduino IDE
若安装失败则展开
- 安装 2.0.11 版本失败
- 下载资源文件
链接: https://pan.baidu.com/s/1lGddfYYJUPlqc2Kgznmytw 提取码: 0755
- 从资源管理器按路径 “c:\Users\Waveshare\AppData\Local\Arduino15\staging\packages” 进入(其中 Waveshare 为计算机用户名,需要开启显示隐藏文件)
- 将上方下载的文件解压至 packages 文件夹下
- 重新执行安装操作
- 安装完成重启 Arduino IDE 即可使用
- 上方将项目文件夹更改为 c:\Users\Waveshare\AppData\Local\Arduino15\packages(其中 Waveshare 为计算机用户名)
- 重新开启 Arduino IDE
前置操作
请注意,需要保证ESP32固件版本为3.0.0以下的(当前示例固件版本为2.0.11),否则会导致编译失败
设置产品参数
- 设置Flash大小与分区
安装库文件
- 安装 ArduinoJson 库
- 安装 PubSubClient 库
- 安装 NTPClient 库
程序修改
RS485 控制
使用 RS485 设备连接 ESP32-S3-Relay-6CH 设备,向 ESP32-S3-Relay-6CH 发送数据可控制各个继电器的开合,默认以 115200 波特率进行通信。
操作指令 指令功能 06 05 00 01 55 00 A2 ED 切换 CH1 继电器的状态 06 05 00 02 55 00 52 ED 切换 CH2 继电器的状态 06 05 00 03 55 00 03 2D 切换 CH3 继电器的状态 06 05 00 04 55 00 B2 EC 切换 CH4 继电器的状态 06 05 00 05 55 00 E3 2C 切换 CH5 继电器的状态 06 05 00 06 55 00 13 2C 切换 CH6 继电器的状态 06 05 00 FF FF 00 BD BD 开启所有继电器 06 05 00 FF 00 00 FC 4D 关闭所有继电器
硬件连接
示例使用 USB TO 4CH Serial Converter 进行演示
ESP32-S3-Relay-6CH USB TO 4CH Serial Converter - PORT B RS485 - A+ Port B - A+ RS485 - B- Port B - B-
软件操作
- 使用 SSCOM 进行数据发送
- 开启 SSCOM 软件,选择上方连接的 Port B 口对应的 COM 口
- 打开串口,使用多条发送功能快捷发送指令
- 通过以下指令即可进行继电器控制
Web页面控制
使用 手机端 蓝牙调试助手 连接 ESP32-S3-Relay-6CH 设备,获取连接WIFI后的IP,通过IP开启Web页面
AP模式
- 连接 ESP32-S3-Relay-6CH 设备的 WIFI,WIFI 名称为 ESP32-S3-Relay-6CH ,密码为 waveshare
- 通过蓝牙调试助手 获取当前IP
- 打开Web页面即可控制继电器(设备上电后需要一小段时间配置,每次上电后首次开启Web页面可能比较缓慢)
STA模式
- 设备上电后将自动连接设置的WIFI(烧录程序前需 修改要连接的WIFI )
- 通过蓝牙调试助手 获取当前IP
- 打开Web页面即可控制继电器(设备上电后需要一小段时间配置,每次上电后首次开启Web页面可能比较缓慢)
蓝牙控制
使用 手机端 蓝牙调试助手 连接 ESP32-S3-Relay-6CH 设备,向 ESP32-S3-Relay-6CH 发送数据可控制各个继电器的开合。请注意:部分蓝牙调试助手默认以ASCII形式发送数据,在控制设备前需先根据蓝牙调试助手输入正确的控制指令。
操作指令 指令功能 ASCII Hex 1 0x31 切换 CH1 继电器的状态 2 0x32 切换 CH2 继电器的状态 3 0x33 切换 CH3 继电器的状态 4 0x34 切换 CH4 继电器的状态 5 0x35 切换 CH5 继电器的状态 6 0x36 切换 CH6 继电器的状态 7 0x37 开启所有继电器 8 0x38 关闭所有继电器
软件操作(查看IP)
- 使用手机端蓝牙调试助手 nRF Connect 进行继电器控制(也可使用其他蓝牙调试助手)
- 以下使用 nRF Connect 进行功能演示
- 连接名为 ESP32 S3 Relay 6CH 的蓝牙设备
- 连接成功,选则 Unknown Service ,点击读取数据,WIFI 长时间连接失败RGB将常亮红灯,此操作无任何反应
- 在 WIFI 连接成功的情况下将接收到设备 IP,如下,设备 IP 为 192.168.6.133
- 蓝牙控制继电器的指令为字符1~8,即十六进制的 0x31 ~ 0x38
- 点击发送按钮,填写需要发送的数据(当前为十六进制发送),如下输入 0x31
- 发送 0x31 可控制继电器 CH1 进行状态翻转
- 发送 0x38 可控制关闭所有继电器
创建设备
- 在 Waveshare云 进行用户注册
- 注册成功后,进入 Devices Manager 选项创建设备类,填写该类别的名称
- 创建设备类成功
- 再以模板创建单个设备
- 为创建的设备命名
- 关联设备到设备类别
- 保存操作
软件操作
- 选择本设备对应的设备选项,进入开发
外部扩展
RS485 扩展继电器路数
- 使用 Modbus RTU Relay 扩展 8 路继电器
- 4个主示例文件已兼容该操作,需将WS_imformation.h 中的 Extension_Enable 设置为 1(默认为1)
- 可通过蓝牙控制外部扩展的继电器
操作指令 指令功能 06 01 切换 Modbus RTU Relay 的 CH1 继电器的状态 06 02 切换 Modbus RTU Relay 的 CH2 继电器的状态 06 03 切换 Modbus RTU Relay 的 CH3 继电器的状态 06 04 切换 Modbus RTU Relay 的 CH4 继电器的状态 06 05 切换 Modbus RTU Relay 的 CH5 继电器的状态 06 06 切换 Modbus RTU Relay 的 CH6 继电器的状态 06 07 切换 Modbus RTU Relay 的 CH7 继电器的状态 06 08 切换 Modbus RTU Relay 的 CH8 继电器的状态 06 09 开启 Modbus RTU Relay 的所有继电器 06 0A 关闭 Modbus RTU Relay 的所有继电器
- 蓝牙控制继电器的指令为字符1~8,即十六进制的 0x06 0x01 ~ 0x38 0x0A
- 点击发送按钮,填写需要发送的数据(当前为十六进制发送),如下输入 0x06 0x01
- 发送 0x06 0x01 可控制继电器 CH1 进行状态翻转
- 发送 0x06 0x0A 可控制关闭所有继电器
兼 Pico 接口扩展定时开关功能
- 使用 Pico-RTC-DS3231 扩展 定时开关功能
- 将 Pico-RTC-DS3231 设备连接至 ESP32-S3-Relay-6CH
- 4个主示例文件已兼容该操作,需将 WS_imformation.h 中的 RTC_Enable 设置为 1(默认为 0 ,请保证已连接 Pico-RTC-DS3231 )
- 将 WS_imformation.h 中的 RTC_OPEN_Time_Hour、RTC_OPEN_Time_Min、RTC_Closs_Time_Hour与RTC_Closs_Time_Min设置为 操作时间
参数 参数说明 RTC_OPEN_Time_Hour 开启所有继电器的时间——小时 RTC_OPEN_Time_Min 开启所有继电器的时间——分钟 RTC_Closs_Time_Hour 关闭所有继电器的时间——小时 RTC_Closs_Time_Min 关闭所有继电器的时间——分钟
- 如下设置为每天 8点6分开启,16点30分关闭
兼 Pico 接口扩展 CAN 接口
- 使用 Pico-CAN-B 扩展 CAN 通信接口
前置操作
- 安装 mcp_can 库
使用教程
- 将 Pico-CAN-B 设备连接至 ESP32-S3-Relay-6CH
- 下载提供的 Pico-CAN-B 示例
- 根据所需操作对程序进行修改
- 在主程序中引用 WS_MCP2515.c 与 WS_MCP2515.h
- 引用后即可在主程序中通过函数 receiveCANData(uint32_t* canId, uint8_t* data) 和函数 sendCANData(uint32_t canId, uint8_t len, uint8_t* data) 进行 CAN数据接收 与 CAN数据发送
兼 Pico 接口扩展环境监测功能
- 使用 Pico-Environment-Sensor 扩展 环境检测功能
前置操作
- 安装 Adafruit BME280 库
- 选择安装所有
- 安装 Adafruit TSL2591 库
- 选择安装所有
- 安装 Adafruit LTR390 库
- 选择安装所有
- 安装 Adafruit SGP40 库
- 选择安装所有
使用教程
- 将 Pico-Environment-Sensor 设备连接至 ESP32-S3-Relay-6CH
- 下载提供的 Pico-Environment-Sensor 示例
- 在主程序中引用 Environment_Sensor.c 与 Environment_Sensor.h
- 根据需求对程序进行修改
兼 Pico 接口扩展 RS232/RS485 接口
- 请注意,使用 Pico-2CH-RS485 扩展 RS485 接口时仅支持通道1,通道0 不可使用
- 使用 Pico-2CH-RS232 扩展 RS232 通信接口
使用教程
- 将 Pico-2CH-RS232 或 Pico-2CH-RS485 设备连接至 ESP32-S3-Relay-6CH
- 下载提供的 Pico-2CH-RS232 示例(程序适用上述两款设备)
- 在主程序中引用 WS_UART.h
- 根据所需操作对程序进行修改
- 当前为实时打印接收到的字符
- 在 setup 中调用初始化函数 Extension_Init()
- 调用后即可在主循环程序中通过函数 SetData2(uint8_t* data, size_t length) 和函数 SetData3(uint8_t* data, size_t length) 进行数据发送
Micropython 下使用
烧录固件程序
- 下载并解压MicroPython固件:(烧录器与固件)
- 将设备连接电脑
- 打开 flash_download_tool_3.9.4.exe软件,选择ESP32-S3及USB
- 选择对应的COM口,我们已经为你配置好其他信息,点击Start开始下载即可(若识别不到COM 口,请按住 BOOT 按键,并按下 RESET 按键,先松开 RESET 按键)
- 若出现下载卡顿,一直未进行下载,请进入下载模式,按住 BOOT 按键,并按下 RESET 按键,先松开 RESET 按键,再次尝试下载,等待烧录完成
前置操作
Thonny 下使用
- 安装Thonny(Thonny IDE)
- 开启Thonny,点击右下方的“Python x.x.x”,选择“Configure interpreter”
- 在弹出窗口中选择“Interpreter”->解释器选择“MicroPython(ESP32)”
- 保存设置
- 点击暂停,Shell窗口出现“MicroPython v1.22.1 on 2024-01-05; Generic ESP32S3 module with ESP32S3 Type "help()" for more information.”即为连接成功
程序烧录
- 下载示例程序MicroPython 示例
- 在 Thonny 上开启文件窗口
- 查看文件路径
- 在 Thonny 上进入示例文件的路径
- 按住 Ctrl 并选择目录下所有文件,右键选择 Upload to/ 进行上传
- 等待上传结束
- 上传成功即可在设备文件窗口看见上传的文件,当前示例可实现蓝牙控制设备,可根据自身需求进行二次开发
与 Homeassistant 配合使用
产品可以在通过树莓派上搭建的 Homeassistant ,进行线上控制,实现相关操作请查看 参考链接
资料
原理图
文档
- ESP32-S3数据手册(中文)
- ESP32-S3技术参考手册(中文)
- ESP32-S3-WROOM-1数据手册(中文)
- ESP32-S3数据手册(英文)
- ESP32-S3技术参考手册(英文)
- ESP32-S3-WROOM-1数据手册(英文)
程序
软件
FAQ
请将跳线帽移至 120R 再次尝试,部分 RS485 设备需要串入 120R 电阻
可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。