ESP32-S3-Relay-6CHV2

来自Waveshare Wiki
跳转至: 导航搜索
ESP32-S3-Relay-6CH
{{{name2}}}
{{{name3}}}
功能简介
特性 ESP32-S3-Relay-6CH
继电器路数 6路
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 Pico RS485 USB

产品介绍

产品简介

ESP32-S3-Relay-6CH 是一款基于 ESP32-S3 主控,支持 WiFi、蓝牙、RS485、Pico 等外设接口的工业级 6 路 WiFi 网络继电器。内置电源隔离、光耦隔离等保护电路,安全稳定更可靠,适用于AIoT领域。

产品特性

  • 基于 ESP32-S3 单片机,其上搭载 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
  • 集成 2.4GHz WiFi 和低功耗蓝牙 (Bluetooth LE) 双模无线通信,具有优越的射频性能
  • 采用优质继电器,允许接入负载:≤10A 250V AC 或 ≤10A 30V DC
  • 板载隔离型 RS485 接口,方便外扩接入各种 RS485 Modbus 工业扩展模块或传感器
  • 板载 Pico 兼容接口,可适配部分树莓派 Pico 扩展板,方便扩展 RTC / CAN / RS232 / LoRa / 传感器等功能
  • 板载 USB Type-C 接口,可用于供电和下载调试,方便开发使用
  • 板载有接线端子供电接口,支持 7~36V 宽电压范围供电,方便工业供电使用
  • 板载光耦隔离,避免继电器外接高压电路干扰控制芯片
  • 板载数字隔离,避免外部信号干扰控制芯片
  • 板载一体式电源隔离,可提供稳定的隔离电压,隔离端无须额外供电
  • 板载蜂鸣器,RGB 彩灯,以及电源和 RS485 收发指示灯,方便感知设备的运行工作状态
  • 导轨式 ABS 保护外壳,方便安装使用,带外壳更安全

资源简介

ESP32-S3-Relay-6CH-introduction-01.jpg

1、ESP32-S3
   主频高达 240MHz,搭载 2.4GHz WiFi 和低功耗蓝牙

2、优质继电器
   单路继电器允许接入负载:≤10A 250V AC 或 ≤10A 30V DC

3、光耦隔离
   避免继电器外接高压电路干扰控制芯片

4、数字隔离
   避免外部信号干扰控制芯片

5、电源隔离
   提供稳定隔离电压,隔离端无须额外供电

6、板载 TVS (瞬态电压抑制管)
   可有效抑制电路中的浪涌电压和瞬态尖峰电压

7、陶瓷气体放电管

8、继电器接线端子
   方便用户连接设备

9、兼容 Raspberry Pi Pico 接口
   可接入 Raspberry Pi Pico 扩展板

10、RS485 通信接口
   支持连接外部 RS485 设备

11、电源接线端子
   支持 DC 7~36V 宽电压范围供电

12、工作指示灯
   PWR:电源指示灯
   RXD:RS485 接收指示灯
   TXD:RS485 发送指示灯

13、WS2812 RGB 彩灯
   可通过 GPIO38 引脚控制

14、USB Type-C 接口
   可用于设备供电,固件下载和 USB 通信

15、无源蜂鸣器
   可通过 GPIO21 引脚控制声音频率

16、设备复位按键

17、设备 BOOT 按键

18、外部天线连接座
   SMA 母孔天线座,用于 WiFi 和蓝牙无线通信

19、RS485 匹配电阻
   预留 120R 匹配电阻,可跳线帽使能

20、继电器默认控制引脚设置焊点

接口介绍

ESP32-S3-Relay-6CH-introduction-02.jpg

控制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引脚

产品尺寸

ESP32-S3-Relay-6CH-introduction-03.jpg

产品参数

参数名称 参数
供电电压 7~36V (或 5V/1A Type-C接口)
继电器路数 6路
触点类型 一常开一常闭
接线端口 Type-C
通信协议 USB协议
产品尺寸 88(H)x 122(V) mm

使用说明

ESP32-C6-LCD-1.47 目前提供 Arduino IDEESP-IDF 两种开发工具和框架,提供了灵活的开发选择,你可以根据项目需求和个人习惯选择适合的开发工具。

开发工具介绍

Arduino-IDE-logo.jpg

Arduino IDE

Arduino IDE是一款便捷灵活、方便上手的开源电子原型平台。不需要太多基础,简单学习后,你也可以快速地进行开发。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能。

ESP-IDF-logo.jpg

ESP-IDF

ESP-IDF,全称Espressif IDE,是乐鑫科技为 ESP系列芯片推出的专业开发框架。它使用C语言开发,包括编译器、调试器、烧录工具等,可在命令行下或使用集成开发环境(如 Visual Studio Code 配合 Espressif IDF 插件)进行开发,插件提供代码导航、项目管理、调试等功能。


这两种开发方式各有其优势,开发者可以根据自身需求和技能水平进行选择。Arduino 适合初学者和非专业人士,因其简单易学、上手快。而对于有专业背景或对性能要求较高的开发者,ESP-IDF 是更好的选择,它提供了更高级的开发工具和更强的控制能力,适用于复杂项目的开发。

器件准备

  • ESP32-C6-LCD-1.47 x1
  • SD卡 x1
  • USB线 type A公口 转 Type C公口 x1
  • 读卡器 x1

ESP32-C6-LCD-1.47-uesnotes-01.png

用电安全注意事项

  • 本产品须由专业的电工或技术人员作业使用,使用过程中请做好用电安全,防漏电和绝缘等保护措施。
  • 在安装、维护或更换继电器设备之前,请务必关闭电源并拔下插头。
  • 请勿试图拆卸继电器设备,以免损坏设备或导致电击危险。
  • 请妥善安装放置继电器设备产品,请勿在潮湿、过热、易燃坏境中使用,避免因安装或使用不慎,引发安全事故。

在操作前,建议先浏览目录,快速了解文档结构。为顺利操作,请仔细阅读FAQ,提前了解可能的问题。文档中所有资料均提供超链接,方便下载。

Arduino开发

本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。 Arduino-flow-04.png

环境搭建

下载和安装 Arduino IDE

  • 点击访问Arduino官网,选择对应的系统和系统位数下载。
    ESP32-S3-AMOLED-1.91-Ar-software-01.png
  • 运行安装程序,全部默认安装即可。

安装 ESP32 开发板

  • ESP32相关主板在Arduino IDE使用,须先安装“esp32 by Espressif Systems”库。
  • 根据板安装要求进行安装,一般推荐“在线安装”, 若在线安装失败,则使用“离线安装”。
  • 安装教程,详见:Arduino 板管理教程
  • ESP32-S3-Relay-6CH 所需开发板安装说明
板名称 板安装要求 版本号要求
esp32 by Espressif Systems “离线”安装/“在线”安装 2.0.12

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装离线安装若库安装要求离线安装,则必须使用提供的库文件
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 库安装教程,详见:Arduino 库管理教程
  • ESP32-S3-Relay-6CH 库文件存放于示例程序中,点击此处跳转:ESP32-S3-Relay-6CH 示例程序
  • ESP32-S3-Relay-6CH 库文件安装说明
库名称 说明 版本 库安装要求
ArduinoJson 轻量 JSON 库 v6.21.4 “在线”或“离线”安装
PubSubClient MQTT 消息订阅发布库 v2.8.0 “在线”或“离线”安装
NTPClient 网络时间同步客户端库 v3.2.1 “在线”或“离线”安装
LVGL更多学习及使用可参考LVGL官方文档

运行第一个 Arduino 程序

如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!

新建工程

  • 运行Arduino IDE,选择 File -> New Sketch
    ESP32-S3-AMOLED-1.91-Ar-study-01.png
  • 输入代码:
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,点击保存

ESP32-S3-AMOLED-1.91-Ar-study-02.png

编译和烧录程序

  • 选择对应的开发板,以ESP32S3主板为例:

①. 点击选择下拉框选项“Select Other Board and Port”;
②. 搜索需要的开发板型号“esp32s3 dev module”并选择;
③. 选择COM口
④. 保存选择。
ESP32-S3-AMOLED-1.91-Ar-study-03.png

  • 部分开发板在指定版本号支持直接选择型号,以“waveshare esp32-s3-lcd-1.69”为例

ESP32-S3-AMOLED-1.91-Ar-study-07.png

  • 若ESP32S3主板只有USB口,须打开(Enable)USB CDC,如下图所示:

ESP32-S3-AMOLED-1.91-Ar-study-04.png

  • 编译并上传程序:

①. 编译程序;②. 编译并下载程序;③. 下载成功。
ESP32-S3-AMOLED-1.91-Ar-study-05.png

  • 打开串口监视窗口,程序每隔2秒会打印“Hello World!”,运行情况如下所示:

ESP32-S3-AMOLED-1.91-Ar-study-06.png

示例程序

Demo-flow-01.png

  • ESP32-C6-LCD-1.47 示例程序
示例程序 基础例程说明 依赖库
LVGL_Arduino 测试板载设备功能 LVGL
LCD_Image 间隔显示 SD 卡根目录 PNG 文件 PNGdec

Arduino 工程参数设置

ESP32-C6-LCD-1.47 Demo 3.png

LVGL_Arduino

【程序说明】


  • 本示例演示了板载各个设备的功能,LCD页面显示SD Card,Flash Size,Wireless scan参数

【硬件连接】


  • 将开发板接入电脑
  • 将SD卡装入开发板

ESP32-C6-LCD-1.47-demo-03.png

【代码分析】


  • setup()
    • Flash_test() :测试并打印设备的闪存大小信息
    • LCD_Init():初始化显示屏
    • Lvgl_Init():初始化 LVGL 图形库
    • SD_Init() :初始化 SD 卡
    • Lvgl_Example1():调用特定的 LVGL 示例函数
    • Wireless_Test2():进行无线通信的测试函数调用
  • loop()
    • Timer_Loop():处理定时器相关任务的函数

【代码烧录】


  • 选择开发板型号ESP32C6 Dev Module与端口
  • 烧录代码

【运行效果】


  • LCD屏幕显示

ESP32-C6-LCD-1.47-demo-01.png

LVGL更多学习及使用可参考LVGL官方文档

LCD_Image

【SD卡准备】


  • 将waveshare所提供的图片示例加入到SD卡中,也可加入自己的图片(像素≤172×320)

ESP32-S3-LCD-1.47-Ar-demo-04.png
ESP32-S3-LCD-1.47-Ar-demo-05.png

【硬件连接】


  • 将包含示例图片的SD卡装入到设备中
  • 将开发板接入电脑

【代码分析】


  • void Display_Image(const char* directory, const char* fileExtension, uint16_t ID)
    • 首先,调用Search_Image(directory, fileExtension)在给定目录中搜索具有指定扩展名的图像文件,并统计找到的图像数量存于全局变量Image_CNT
    • Image_CNT不为零,即找到了图像。根据目录是否为根目录构建图像文件的完整路径,将其转换为 C 风格字符串后打印用于调试,最后调用Show_Image函数显示图像
    • 若未找到图像(Image_CNT为零),打印错误消息指出在给定目录中未找到具有指定扩展名的文件

【运行效果】


  • LCD以一定间隔时间依次显示SD卡下根目录的PNG文件

ESP32-S3-LCD-1.47-Ar-demo-06.pngESP32-S3-LCD-1.47-Ar-demo-07.pngESP32-S3-LCD-1.47-Ar-demo-08.png

ESP-IDF开发

本章介绍 ESP-IDF 环境搭建,包括 Visual Studio、Espressif IDF插件的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。 ESP-IDF-flow-01.png

环境搭建

下载和安装 Visual Studio

  • 打开VScode官网的下载页面,选择对应系统和系统位数进行下载
    ESP32-S3-AMOLED-1.91-VScode-01.png
  • 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
    ESP32-S3-AMOLED-1.91-VScode-02.png
    • 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
    • 第三项开启后,选择打开方式时,可以直接选择VSCode
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问ESP-IDF环境搭建参考

安装Espressif IDF插件

  • 国内部分区域安装,一般推荐“在线安装”, 若因网络因素无法在线安装,则使用“离线安装
  • 安装Espressif IDF插件教程,详见:安装Espressif IDF插件教程
  • ESP32-C6-LCD-1.47 所需Espressif IDF版本说明
插件名称 插件安装要求 版本号要求
Espressif IDF “离线”安装/“在线”安装 ≥5.3.1

运行第一个 ESP-IDF 程序

如果你刚入门学习ESP32和ESP-IDF,还不知道如何创建、编译、烧录和运行ESP-IDF程序,那么请展开看看,希望可以帮助到你!

新建项目

ESP32-S3-AMOLED-1.91-study-01.png

ESP32-S3-AMOLED-1.91-study-02.png

创建例程

  • 使用快捷键 F1 ,输入esp-idf:show examples projects

ESP32-S3-AMOLED-1.91-study-03.png

  • 选择你当前的IDF版本

ESP32-S3-AMOLED-1.91-study-04.png

  • 以Hello world例程为例

①选择对应例程
②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
③点击创建例程
ESP32-S3-AMOLED-1.91-study-05.png

  • 选择放置例程的路径,要求无例程同名文件夹

ESP32-S3-AMOLED-1.91-study-06.png

修改COM口

  • 此处显示使用对应的COM口,点击可以修改对应COM口
  • 请根据设备对应COM口进行选择(可通过设备管理器查看)
  • 若出现下载失败的情况请点击复位按键1秒以上或进入下载模式,等待 PC 端重新识别到设备后再次下载

ESP32-S3-AMOLED-1.91-study-07.png

修改驱动对象

  • 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3

ESP32-S3-AMOLED-1.91-study-08.png

  • 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可

ESP32-S3-AMOLED-1.91-study-09.png


其余状态栏简介

①.ESP-IDF开发环境版本管理器,当我们的工程需要区分开发环境版本时,可以通过安装不同版本的ESP-IDF来分别管理,当工程使用特定版本时,可以通过使用它来切换
②.设备烧录COM口,选择以将编译好的程序烧录进芯片上
③.set-target 芯片型号选择,选择对应的芯片型号,如:ESP32-P4-Nano需要选择 esp32p4 为目标芯片
④.menuconfig,点击修改sdkconfig配置文件内容,项目配置详细资料
⑤.fullclean 清理按钮,当工程编译报错或其他操作污染编译内容时,通过点击清理全部编译内容
⑥. Build 构建工程,当一个工程满足构建时,通过此按钮进行编译
⑦.当前下载方式,默认为UART
⑧.flash烧录按钮,当一个工程Build构建通过时,选择对应开发板COM口,点击此按钮可以将编译好的固件烧录至芯片
⑨.monitor开启烧录口监控,当一个工程Build-->flash后,可通过点击此按钮查看烧录、调试口输出的l0g,以便观察应用程序是否正常工作
⑩.Debug调试
⑪.Build Flash Monitor 一键按钮,用于连续执行Build-->Flash-->Monitor,常被称作小火苗

ESP32-S3-AMOLED-1.91-study-10.png

编译、烧录、串口监视

  • 点击我们之前介绍的 编译,烧录,打开串口监视器按键

ESP32-S3-AMOLED-1.91-study-11.png

  • 编译可能需要较长时间才能完成,尤其是在第一次编译时

ESP32-S3-AMOLED-1.91-study-12.png

  • 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿
  • 若是新工程首次烧录程序,将需要选择下载方式,选择 UART

ESP32-S3-AMOLED-1.91-study-13.png

  • 后续也可在 下载方式 处进行修改(点击即可弹出选项)

ESP32-S3-AMOLED-1.91-study-14.png

  • 因为板载自动下载电路,无需手动操作即可自动下载
  • 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启

ESP32-S3-AMOLED-1.91-study-15.png


使用IDF 示例程序

下文以使用“ESP32-S3-LCD-1.47-Demo”为例介绍工程的两种打开方式及使用的一般步骤、ESP-IDF工程项目详解,若使用其他工程,操作步骤类推。

软件内部打开

  • 打开 VScode 软件,选择文件夹打开示例

ESP32-S3-AMOLED-1.91-study-16.png

  • 选择提供的 ESP-IDF 下的示例,点击选择文件(位于 示例程序/Demo/ESP-IDF 路径下)

ESP32-S3-AMOLED-1.91-study-17.png


软件外部打开

  • 正确选择工程目录,打开工程,否则会影响后续程序编译烧录

ESP32-S3-AMOLED-1.91-study-18.png

  • 连接设备后,选择好COM口和型号,点击下方编译并烧录即可实现程序控制

ESP32-S3-AMOLED-1.91-study-19.png

ESP-IDF工程项目详解

  • 组件(Component):ESP-IDF中的组件是构建应用的基本模块,每个组件通常是相对独立的代码库或库,能实现特定的功能或服务,可以被应用程序或是其他组件重复使用,类似于Python开发中的库的定义。
    • 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过CMakeLists.txt进行配置和定义的。
    • CmakeLists.txt的作用:ESP-IDF编译时编译工具CMake会首先通过读取工程目录的顶层CMakeLists.txt的内容来读取构建规则,识别需要编译的内容。当在CMakeLists.txt中引入了需要的组件、程序后,编译工具CMake会根据索引导入每个所需要编译的内容。编译过程如:

ESP32-P4 VSCode ESP-IDF GettingStart 240906 02.png

示例程序

Demo-flow-01.png

  • ESP32-C6-LCD-1.47 示例程序
示例程序 基础例程说明 依赖库
ESP32-C6-LCD-1.47-Test 测试板载设备功能 LVGL

ESP32-C6-LCD-1.47-Test

【程序说明】


  • 本示例演示了板载各个设备的功能,LCD页面显示SD Card,Flash Size,Wireless scan参数及CPU利用率

【硬件连接】


  • 将开发板接入电脑
  • 将SD卡装入开发板

ESP32-C6-LCD-1.47-demo-03.png

【代码分析】


  • setup()
    • Wireless_Init() :初始化无线通信模块
    • Flash_Searching() :测试并打印设备的闪存大小信息
    • RGB_Init():初始化 RGB 相关的功能
    • RGB_Example():展示 RGB 的示例功能
    • SD_Init() :初始化 SD 卡
    • LCD_Init():初始化显示屏
    • BK_Light(50):设置背光亮度为 50
    • LVGL_Init():初始化 LVGL 图形库
    • Lvgl_Example1():调用特定的 LVGL 示例函数
  • while(1)
    • vTaskDelay(pdMS_TO_TICKS(10)):短暂延迟,每 10 毫秒一次
    • lv_timer_handler(): LVGL 的定时器处理函数,用于处理与时间相关的事件和动画等

【代码烧录】


  • 选择开发板型号ESP32C6与端口
  • UART下载
  • 烧录代码

【运行效果】


  • LCD显示板载参数:

ESP32-C6-LCD-1.47-demo-02.png


Flash固件的烧录与擦除


  • 当前示例程序有提供测试固件,可通过直接烧录测试固件来测试板载设备功能正常与否
  • bin文件路径:
    ..\ESP32-C6-LCD-1.47-Demo\Firmware

资料

原理图

示例程序

数据手册

ESP32-C6

其他器件

软件工具

Arduino

VScode

调试工具

其他资料链接

FAQ

  • 可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。


  • 这种情况可能是由于 Flash 空白导致 USB 口不稳定,可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式烧录固件(程序)即可解决该情况。


  • 首次编译很慢属于正常情况,耐心等待即可


  • 若开发板有复位键则按下复位键;若没有复位键,请重新上电


  • 部分AppData文件夹是默认隐藏的,可以设置为显示。
  • 英文系统:资源管理器->View->勾选“Hidden items”
  • 中文系统:文件资源管理器->查看->显示->勾选“隐藏的项目”


  • Windows系统:

①通过设备管理器查看: 按下Windows + R键打开“运行”对话框; 输入devmgmt.msc并按回车键打开设备管理器; 展开“端口(COM和LPT)”部分,这里会列出所有的COM端口及其当前状态。
②使用命令提示符查看: 打开命令提示符(CMD); 输入mode命令,这将显示所有COM端口的状态信息。
③查看硬件连接: 如果你已经连接了外部设备到COM口,通常设备会占用一个端口号,可以通过查看连接的硬件来确定使用的是哪个端口。

  • Linux系统:

①使用dmesg命令查看: 打开终端。
②使用ls命令查看: 输入ls /dev/ttyS*或ls /dev/ttyUSB*来列出所有的串口设备。
③使用setserial命令查看: 输入setserial -g /dev/ttyS*来查看所有串口设备的配置信息。



  • 查看原理图,针对不同开发板的Type-C接口,对应代码处理输出不同:
    • USB直出的开发板,支持printf函数打印输出,若想支持Serial函数打印输出则需要使能USB CDC On Boot功能或者HWCDC声明
    • UART转USB的开发板,支持printf函数和Serial函数打印输出,无需使能USB CDC On Boot


技术支持

联系人:常工
EMAIL:2355861364@qq.com
QQ:2355861364
微信:扫下方二维码添加
Cjs-vx.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证