ESP32-S3-ETH-8DI-8RO 是一款基于 ESP32-S3 主控,支持 WiFi、蓝牙、RS485、网口 等外设接口的工业级 8 路 WiFi 网络继电器。内置电源隔离、光耦隔离等保护电路,安全稳定更可靠,适用于AIoT领域。
参数名称 | 参数 |
供电电压 | 7~36V (或 5V/1A Type-C接口) |
继电器路数 | 8路 |
数字输入路数 | 8路 |
触点类型 | 一常开一常闭 |
接线端口 | Type-C |
通信协议 | USB协议 |
产品尺寸 | 90(H)x 175(V) mm |
1、ESP32-S3 2、优质继电器 3、光耦隔离 4、复位按键 5、PoE 接口 6、BOOT 按键 7、电源芯片 8、数字隔离 9、电源隔离 10、双向光耦隔离 11、RTC 电池接口 12、蜂鸣器 13、开关量输入接口 | 14、排针接口 15、工作指示灯 16、USB Type-C 接口 17、WS2812 RGB 彩灯 18、网口 19、外部天线连接座 20、电源接线端子 21、RS485 通信接口 22、RS485 匹配电阻 23、继电器接线端子 |
24、板载 TVS (瞬态电压抑制管) 25、RS485 转换芯片 26、MP1605GTF-Z 27、PCF85063ATL | 28、TCA9554PWR 29、W5500 30、Micro SD 卡槽 |
控制 EXIO | 功能 |
EXIO1 | 1号继电器的控制引脚 |
EXIO2 | 2号继电器的控制引脚 |
EXIO3 | 3号继电器的控制引脚 |
EXIO4 | 4号继电器的控制引脚 |
EXIO5 | 5号继电器的控制引脚 |
EXIO6 | 6号继电器的控制引脚 |
EXIO7 | 7号继电器的控制引脚 |
EXIO8 | 8号继电器的控制引脚 |
控制 EXIO | 功能 |
GPIO4 | 1号数字输入检测引脚 |
GPIO5 | 2号数字输入检测引脚 |
GPIO6 | 3号数字输入检测引脚 |
GPIO7 | 4号数字输入检测引脚 |
GPIO8 | 5号数字输入检测引脚 |
GPIO9 | 6号数字输入检测引脚 |
GPIO10 | 7号数字输入检测引脚 |
GPIO11 | 8号数字输入检测引脚 |
控制 GPIO | 功能 |
GPIO12 | ETH_INT |
GPIO13 | ETH_MOSI |
GPIO14 | ETH_MISO |
GPIO15 | ETH_SCLK |
GPIO16 | ETH_CS |
控制 GPIO | 功能 |
GPIO45 | SD_D0 |
GPIO47 | SD_CMD |
GPIO48 | SD_SCK |
NC | SD_D3 |
NC | SD_D1 |
NC | SD_D2 |
控制GPIO | 功能 |
GPIO17 | RS485对应UART的TX引脚 |
GPIO18 | RS485对应UART的RX引脚 |
控制GPIO | 功能 |
GPIO41 | RTC_SCL,I2C 时钟线 |
GPIO42 | RTC_SDA,I2C 数据线 |
控制GPIO | 功能 |
GPIO38 | RGB 控制引脚 |
控制GPIO | 功能 |
GPIO46 | 蜂鸣器的控制引脚 |
控制GPIO | 功能 |
GPIO0 | BOOT按键控制引脚 |
ESP32-S3-ETH-8DI-8RO 目前提供 Arduino IDE 开发工具和框架。
Arduino IDEArduino IDE是一款便捷灵活、方便上手的开源电子原型平台。不需要太多基础,简单学习后,你也可以快速地进行开发。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能。 |
这两种开发方式各有其优势,开发者可以根据自身需求和技能水平进行选择。Arduino 和 MicroPython 适合初学者和非专业人士,因其简单易学、上手快。
本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。
板名称 | 板安装要求 | 版本号要求 |
---|---|---|
esp32 by Espressif Systems | “离线”安装/“在线”安装 | 3.0.0及以上 |
库名称 | 说明 | 版本 | 库安装要求 |
---|---|---|---|
ArduinoJson | 轻量 JSON 库 | v6.21.4 | “在线”或“离线”安装 |
PubSubClient | MQTT 消息订阅发布库 | v2.8.0 | “在线”或“离线”安装 |
NTPClient | 网络时间同步客户端库 | v3.2.1 | “在线”或“离线”安装 |
File
-> New Sketch
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello, World!");
delay(2000);
}
File
-> Save As...
;在弹出的菜单选择保存工程路径,并输入工程名,如 Hello_World,点击保存
①. 点击选择下拉框选项“Select Other Board and Port”;
②. 搜索需要的开发板型号“esp32s3 dev module”并选择;
③. 选择COM口;
④. 保存选择。
①. 编译程序;②. 编译并下载程序;③. 下载成功。
示例程序 | 基础例程说明 | 依赖库 |
---|---|---|
01_MAIN_WIFI_AP | RS485 接口控制,蓝牙控制,蓝牙发送IP,Web页面控制(近距离) | 可直接烧录 Web 页仅连接到设备 WIFI 才可使用 |
02_MAIN_WIFI_STA | RS485 接口控制,蓝牙控制,蓝牙发送IP,Web页面控制(近距离) | 需 修改 要连接的 WIFI Web页仅内网使用 |
03_MAIN_WIFI_MQTT | RS485 接口控制,蓝牙控制,蓝牙发送IP,Waveshare云控制(远距离) | 需 修改 要连接的 WIFI 须在Waveshare云中 创建 设备 |
04_MAIN_ALL | RS485 接口控制,蓝牙控制,蓝牙发送IP,Web页面控制(近距离),Waveshare云控制(远距离) | 需 修改 要连接的 WIFI 须在Waveshare云中 创建 设备 Web页仅内网使用 |
【程序说明】
【注意事项】
【代码分析】
uint8_t *buf
:指向一个无符号 8 位整数数组的指针,这个数组应该是存储接收到的数据,函数会根据数组第一个元素(buf[0]
)的值来判断具体的指令内容。uint8_t Mode_Flag
:用于表示数据来源的模式标志,通过判断这个标志来输出对应的数据来源提示信息(如蓝牙数据、Wi-Fi 数据还是 RS485 数据),并根据不同的指令进行不同的继电器操作Mode_Flag
的值输出对应的数据源提示信息。switch
语句根据buf[0]
的值来执行不同的操作:CH1
到CH8
的情况,分别通过digitalToggle
函数来切换对应的 EXIO 引脚(如GPIO_PIN_CH1
等)的电平状态,同时更新对应的Relay_Flag
数组元素来记录继电器状态的改变,调用Buzzer_PWM
函数控制蜂鸣器,并且根据继电器的最终状态输出相应的开启或关闭提示信息。ALL_ON
指令,将所有的 GPIO 引脚(对应 8 个通道继电器)设置为高电平(开启状态),通过memset
函数将Relay_Flag
数组所有元素设置为 1,表示全部继电器开启,输出全部继电器开启提示信息并控制蜂鸣器。ALL_OFF
指令,类似地将所有相关 GPIO 引脚设置为低电平(关闭状态),更新Relay_Flag
数组元素为 0,输出全部继电器关闭提示信息并控制蜂鸣器,还额外进行了两次蜂鸣器控制操作(中间有延迟)。buf[0]
的值不属于上述指令情况,则输出接收到非指令数据的提示信息WIFI_AP
,然后通过WiFi.softAP(ssid, password)
尝试创建软 AP,若失败会循环提示并重试,直至成功ipStr
后输出显示,方便知晓网络地址server.on
为多个路径(如 “/”“/getData” 等)分别设置对应的请求处理函数(如 handleRoot
、handleGetData
等),各函数应在别处定义,用于不同功能操作,像返回页面、获取数据、控制开关等。server.begin()
启动 Web 服务器,并输出启动提示信息【程序说明】
【注意事项】
【代码分析】
WIFI_STA
模式并开启睡眠模式,然后开始连接指定网络。在未连接成功的循环等待中,每半秒输出一个点作为提示,每偶数次(除首次外)尝试时通过 RGB 灯短暂亮红灯提示,每 10 次尝试失败则断开重连。若尝试次数超 22 次则认定连接失败并跳出循环。WIFI_Connection
为 1,亮绿灯 1 秒提示成功,然后获取并显示本地 IP 地址。接着为 Web 服务器注册多个路径对应的回调函数(如根路径、获取数据、控制不同开关等路径),最后启动服务器并输出启动提示信息,使设备能通过网页接受相应控制。WIFI_Connection
为 0,输出提示告知可通过蓝牙调试助手控制设备,并亮红灯提示连接失败状【程序说明】
【注意事项】
【代码分析】
CH1
、ALL_ON
等)通过蓝牙、Wi-Fi 或 RS485 发送至设备。设备接收到指令后,解析并执行对应的操作。举例来说,当接收到CH1
指令时,函数会切换继电器 1 的状态printf
打印到串口监视器(例如:继电器状态更新:"Relay CH1 on")并通过蜂鸣器反馈(Buzzer_PWM
)。这允许用户看到实时的状态更新Bluetooth_Init()
,设备可以与其他蓝牙设备建立连接,并接收控制指令MQTT_Init()
,设备会连接到 Wi-Fi 网络,并能够通过 MQTT 协议与远程服务器通信Acquisition_time()
函数会通过网络同步当前时间到 RTC 中,确保设备有准确的系统时间【程序说明】
【注意事项】
操作指令 | 指令功能 |
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 的所有继电器 |
..\ESP32-S3-POE-ETH-8DI-8RO-Demo\Firmware\Factory bin
产品可以在通过树莓派上搭建的 Homeassistant ,进行线上控制,实现相关操作请查看参考链接
①通过设备管理器查看: 按下Windows + R键打开“运行”对话框; 输入devmgmt.msc并按回车键打开设备管理器; 展开“端口(COM和LPT)”部分,这里会列出所有的COM端口及其当前状态。
②使用命令提示符查看: 打开命令提示符(CMD); 输入mode命令,这将显示所有COM端口的状态信息。
③查看硬件连接: 如果你已经连接了外部设备到COM口,通常设备会占用一个端口号,可以通过查看连接的硬件来确定使用的是哪个端口。
①使用dmesg命令查看: 打开终端。
②使用ls命令查看: 输入ls /dev/ttyS*或ls /dev/ttyUSB*来列出所有的串口设备。
③使用setserial命令查看: 输入setserial -g /dev/ttyS*来查看所有串口设备的配置信息。
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841