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 保护外壳,方便安装使用,带外壳更安全

产品参数

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

资源简介

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


用电安全注意事项

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

使用说明

ESP32-S3-Relay-6CH 目前提供 Arduino IDEMicroPython 两种开发工具和框架,提供了灵活的开发选择,你可以根据项目需求和个人习惯选择适合的开发工具。

开发工具介绍

Arduino-IDE-logo.jpg

Arduino IDE

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

MicroPython-logo.jpg

MicroPython

MicroPython是Python 3编程语言的完全实现,它可直接运行在 ESP32、Raspberry Pi Pico 等嵌入式硬件上。你可以通过REPL直接在板子上运行Python脚本,非常适合快速原型设计。


这两种开发方式各有其优势,开发者可以根据自身需求和技能水平进行选择。Arduino 和 MicroPython 适合初学者和非专业人士,因其简单易学、上手快。

器件准备

在操作前,建议先浏览目录,快速了解文档结构。为顺利操作,请仔细阅读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-S3-Relay-6CH 示例程序
示例程序 基础例程说明 依赖库
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页仅内网使用

Arduino 工程参数设置

ESP32-S3-Relay-6CH TO Setting 1.png

01_MAIN_WIFI_AP

【程序说明】


  • 本示例实现了通过 WiFi、蓝牙、和 RS485 去控制 6 个继电器的开关,此示例开启的是WiFi的AP模式

【注意事项】


  • 可直接烧录
  • Web 页仅连接到设备 WIFI 才可使用

【代码分析】


  • Relay_Analysis():该函数主要用于分析接收到的数据,并根据数据内容执行相应的继电器控制操作以及输出相应的状态提示信息
    • 参数分析
      • uint8_t *buf:指向一个无符号 8 位整数数组的指针,这个数组应该是存储接收到的数据,函数会根据数组第一个元素(buf[0])的值来判断具体的指令内容。
      • uint8_t Mode_Flag:用于表示数据来源的模式标志,通过判断这个标志来输出对应的数据来源提示信息(如蓝牙数据、Wi-Fi 数据还是 RS485 数据),并根据不同的指令进行不同的继电器操作
    • 逻辑流程
      • 首先根据Mode_Flag的值输出对应的数据源提示信息。
      • 然后通过switch语句根据buf[0]的值来执行不同的操作:
        • 对于CH1CH6的情况,分别通过digitalToggle函数来切换对应的 GPIO 引脚(如GPIO_PIN_CH1等)的电平状态,同时更新对应的Relay_Flag数组元素来记录继电器状态的改变,调用Buzzer_PWM函数控制蜂鸣器,并且根据继电器的最终状态输出相应的开启或关闭提示信息。
        • 对于ALL_ON指令,将所有的 GPIO 引脚(对应 6 个通道继电器)设置为高电平(开启状态),通过memset函数将Relay_Flag数组所有元素设置为 1,表示全部继电器开启,输出全部继电器开启提示信息并控制蜂鸣器。
        • 对于ALL_OFF指令,类似地将所有相关 GPIO 引脚设置为低电平(关闭状态),更新Relay_Flag数组元素为 0,输出全部继电器关闭提示信息并控制蜂鸣器,还额外进行了两次蜂鸣器控制操作(中间有延迟)。
        • 如果buf[0]的值不属于上述指令情况,则输出接收到非指令数据的提示信息
  • WIFI_Init ():将设备配置成 Wi-Fi 接入点(AP),搭建 Web 服务器,并设置不同路径对应的请求处理函数,实现相关网络功能及设备控制功能,同时给出相应状态提示
    • AP 创建
      • 先设置 Wi-Fi 模式为WIFI_AP,然后通过WiFi.softAP(ssid, password)尝试创建软 AP,若失败会循环提示并重试,直至成功
    • 参数配置与提示
      • 成功创建 AP 后,用 RGB 灯给出提示(亮绿灯 1 秒)
    • IP 地址显示
      • 获取并格式化软 AP 的 IP 地址,存储到ipStr后输出显示,方便知晓网络地址
    • Web 服务器设置
      • 通过server.on为多个路径(如 “/”“/getData” 等)分别设置对应的请求处理函数(如 handleRoothandleGetData等),各函数应在别处定义,用于不同功能操作,像返回页面、获取数据、控制开关等。
      • 最后调用server.begin()启动 Web 服务器,并输出启动提示信息

【RS485控制】


【蓝牙控制】


【Web页面控制】


02_MAIN_WIFI_STA

【程序说明】


  • 本示例实现了通过 WiFi、蓝牙、和 RS485 去控制 6 个继电器的开关,此示例开启的是WiFi的STA模式

【注意事项】


  • 需修改要连接的 WIFI
  • Web页仅支持控制设备和本产品在同一网络下使用,若使用手机端控制,需关掉移动网络

【代码分析】


  • WIFI_Init ():让设备以站点(STA)模式连接指定 Wi-Fi 网络,若连接成功则进行后续网络相关配置(如获取 IP 地址、启动 Web 服务器并注册回调函数等),若连接失败则给出相应提示并设置连接状态标志,过程中还通过 RGB 灯提供连接状态的可视化提示
    • 连接 Wi-Fi 网络尝试:
      • 先将 Wi-Fi 设为 WIFI_STA 模式并开启睡眠模式,然后开始连接指定网络。在未连接成功的循环等待中,每半秒输出一个点作为提示,每偶数次(除首次外)尝试时通过 RGB 灯短暂亮红灯提示,每 10 次尝试失败则断开重连。若尝试次数超 22 次则认定连接失败并跳出循环。
    • 连接成功后的操作:
      • 若连接尝试次数小于 23(即连接成功),设置 WIFI_Connection 为 1,亮绿灯 1 秒提示成功,然后获取并显示本地 IP 地址。接着为 Web 服务器注册多个路径对应的回调函数(如根路径、获取数据、控制不同开关等路径),最后启动服务器并输出启动提示信息,使设备能通过网页接受相应控制。
    • 连接失败后的操作:
      • 若尝试次数大于等于 23(连接失败),设置 WIFI_Connection 为 0,输出提示告知可通过蓝牙调试助手控制设备,并亮红灯提示连接失败状

【RS485控制】


【蓝牙控制】


【Web页面控制】


03_MAIN_WIFI_MQTT

【程序说明】


  • 本示例通过 MQTT、蓝牙 和 RS485 通信方式控制 6 个继电器。它使用 ESP32 作为主控制单元,支持连接 Wi-Fi 和蓝牙,并提供了基于 MQTT 协议的远程控制

【注意事项】


  • 需修改要连接的 WIFI
  • 须在Waveshare云中创建设备

【代码分析】


  • Relay_Analysis ():接收来自不同通信源的数据并执行相应的继电器控制操作
    • 数据下发:指令(如CH1ALL_ON 等)通过蓝牙、Wi-Fi 或 RS485 发送至设备。设备接收到指令后,解析并执行对应的操作。举例来说,当接收到CH1指令时,函数会切换继电器 1 的状态
    • 数据反馈 :控制命令的执行会通过printf 打印到串口监视器(例如:继电器状态更新:"Relay CH1 on")并通过蜂鸣器反馈(Buzzer_PWM)。这允许用户看到实时的状态更新
    • 通信协议
      • 蓝牙:通过蓝牙模块与手机或其他设备进行无线通信,设备接收指令后控制继电器
      • MQTT:使用 Wi-Fi 连接至 MQTT 服务器,设备订阅特定主题(如继电器控制命令)。当有新的命令发布时,设备通过 MQTT 接收到消息并执行继电器控制
      • RS485:设备通过串口接收 RS485 指令,并根据命令切换继电器状态
  • setup ()
    • 初始化系统所需的各个模块,包括串口、GPIO、RTC、蓝牙和Wi-Fi(MQTT)
      • 调用Bluetooth_Init(),设备可以与其他蓝牙设备建立连接,并接收控制指令
      • 通过MQTT_Init(),设备会连接到 Wi-Fi 网络,并能够通过 MQTT 协议与远程服务器通信
    • 时间同步
      • 如果系统已连接 Wi-Fi,且启用了 RTC,Acquisition_time()函数会通过网络同步当前时间到 RTC 中,确保设备有准确的系统时间
    • 数据上传与下发
      • 上传:当设备成功连接到 Wi-Fi 或蓝牙时,可以通过 MQTT 上传设备的状态信息或传感器数据(例如:温度、湿度)。这些数据会定期发送至 MQTT 服务器,供其他系统或用户查看
      • 下发:设备接收来自 MQTT 服务器的控制命令,并执行相应操作,如开关继电器或更改配置

【RS485控制】


【蓝牙控制】


【Waveshare云控制】


04_MAIN_ALL

【程序说明】


  • 本示例为RS485 接口控制、蓝牙控制、Web页面控制(近距离)、Waveshare云控制(远距离)全部功能集合

【注意事项】


  • 需修改要连接的 WIFI
  • Web页仅支持控制设备和本产品在同一网络下使用,若使用手机端控制,需关掉移动网络
  • 须在Waveshare云中创建设备

【RS485控制】


【蓝牙控制】


【Web页面控制】


【Waveshare云控制】


外部扩展

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

ESP32-S3-Relay-6CH TO Extension 1.png

  • 发送 0x06 0x01 可控制继电器 CH1 进行状态翻转

ESP32-S3-Relay-6CH TO Extension 2.png

  • 发送 0x06 0x0A 可控制关闭所有继电器

ESP32-S3-Relay-6CH TO Extension 3.png

兼 Pico 接口扩展定时开关功能

  • 使用 Pico-RTC-DS3231 扩展 定时开关功能
  • 请在连接RTC模块前确保RTC模块时间准确或将设备连接wifi更新RTC模块时间,才可正常使用RTC定时功能
  • Pico-RTC-DS3231 设备连接至 ESP32-S3-Relay-6CH
  • 4个主示例文件已兼容该操作,需将 WS_imformation.h 中的 RTC_Enable 设置为 1(默认为 0 ,请保证已连接 Pico-RTC-DS3231

ESP32-S3-Relay-6CH TO Extension2 1.png

  • 将 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分关闭

ESP32-S3-Relay-6CH TO Extension2 2.png

兼 Pico 接口扩展 CAN 接口

前置操作

  • 安装 mcp_can 库

ESP32-S3-Relay-6CH TO Extension3 1.png

使用教程

ESP32-S3-Relay-6CH-demo-03.png

ESP32-S3-Relay-6CH TO Extension3 2.png

  • 在主程序中引用 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数据发送

ESP32-S3-Relay-6CH TO Extension3 3.png

ESP32-S3-Relay-6CH-demo-04.png

  • 数据发送:使用串口调试助手查看打印的数据(也可使用Arduino串口监视器查看)

ESP32-S3-Relay-6CH-demo-05.png ESP32-S3-Relay-6CH-demo-06.png

兼 Pico 接口扩展环境监测功能

前置操作

  • 安装 Adafruit BME280 库

ESP32-S3-Relay-6CH TO Extension4 1.png

  • 选择安装所有

ESP32-S3-Relay-6CH TO Extension4 2.png

  • 安装 Adafruit TSL2591 库

ESP32-S3-Relay-6CH TO Extension4 3.png

  • 选择安装所有

ESP32-S3-Relay-6CH TO Extension4 4.png

  • 安装 Adafruit LTR390 库

ESP32-S3-Relay-6CH TO Extension4 8.png

  • 选择安装所有

ESP32-S3-Relay-6CH TO Extension4 9.png

  • 安装 Adafruit SGP40 库

ESP32-S3-Relay-6CH TO Extension4 10.png

  • 选择安装所有

ESP32-S3-Relay-6CH TO Extension4 11.png

使用教程

  • Pico-Environment-Sensor 设备连接至 ESP32-S3-Relay-6CH
  • 下载提供的 Pico-Environment-Sensor 示例
  • 在主程序中引用 Environment_Sensor.c 与 Environment_Sensor.h
  • 根据需求对程序自行修改,默认程序运行结果,也可在Arduino串口监视器查看

ESP32-S3-Relay-6CH-demo-07.png

兼 Pico 接口扩展 RS232/RS485 接口

  • 请注意,使用 Pico-2CH-RS485 扩展 RS485 接口时仅支持通道1,通道0 不可使用
  • 使用 Pico-2CH-RS232 扩展 RS232 通信接口

使用教程

ESP32-S3-Relay-6CH-demo-09.png

  • 下载提供的 Pico-2CH-RS232 示例(程序适用上述两款设备)
  • 在主程序中引用 WS_UART.h
  • 根据所需操作对程序进行修改

ESP32-S3-Relay-6CH TO Extension5 1.png

  • 当前为实时打印接收到的字符
  • 在 setup 中调用初始化函数 Extension_Init()
  • 调用后即可在主循环程序中通过函数 SetData2(uint8_t* data, size_t length) 和函数 SetData3(uint8_t* data, size_t length) 进行数据发送

ESP32-S3-Relay-6CH TO Extension5 2.png

ESP32-S3-Relay-6CH-demo-08.png

Micropython开发

本节围绕 MicroPython 开发环境搭建展开,主要涉及烧录固件以及安装和 Thonny。对于安装 Thonny 部分,详细阐述了其安装步骤与使用说明,为开发者构建 MicroPython 开发环境提供全面且清晰的指导。
MicroPython-flow-01.png

环境搭建

下载和安装 Thonny

  • 打开Thonny官网的下载页面,选择对应系统和系统位数进行下载
    ESP32-S3-Touch-LCD-Thonny install-01.png
  • 选择对应的系统和版本,以windows64位为例,鼠标要移动到windows处,才会显示对应的信息,点击下载安装
    ESP32-S3-Touch-LCD-Thonny install-02.png
  • 其余默认安装即可

烧录固件

  • 目前开发板使用定制的固件进行开发,固件在ESP32-S3-Relay-6CH 示例程序中,注意下载地址是0x00位置
  • 固件路径:
    ..\ESP32-S3-Relay-6CH-Demo\MicroPython\Firmware
  • 烧录固件教程,详见:Flash固件的烧录与擦除教程
  • ArduinoMicroPython 文件夹同级的 Firmware 下的 bin 文件为测试板载功能的文件,在此处无需烧录
MicroPython 固件编译更多学习链接

Thonny使用说明

如果你刚入门学习ESP32和Thonny,还不知道如何使用Thonny,那么请展开看看,希望可以帮助到你!

选择开发板及型号

  • 下载安装最新 Thonny IDE后,打开Thonny IDE -> Configure interpreter...,如下图所示
    ESP32-S3-Touch 1.28-Thonny use-01.png
    ESP32-S3-Touch 1.28-Thonny use-02.png
  • 选择ESP32与选择对应的COM口
    ESP32-S3-Touch 1.28-Thonny use-03.png
  • 点击该按钮,可看到shell中输出语句,则说明开发板固件成功使用
    ESP32-S3-Touch 1.28-Thonny use-04.png

上传例程

下文以使用“ESP32-S3-Touch_1.28”例程为例,若使用其他例程,操作步骤类推。
  • 如何找到您想要的示例程序,如果最开始没有files这一栏,我们可以在view里面找到
    ESP32-S3-Touch 1.28-Thonny use-05.png
    ESP32-S3-Touch 1.28-Thonny use-06.png
  • 将本地文件上传到开发板,选择文件,鼠标右键,找到"upload to/",进行下载
    ESP32-S3-Touch 1.28-Thonny use-07.png
  • 以下是全部下载完成的界面,下载的文件请务必与红框内文件保持一致,否则可能会运行失败
    ESP32-S3-Touch 1.28-Thonny use-08.png
  • 选择.py后缀的文件,点击绿色按钮烧录运行
    ESP32-S3-Touch 1.28-Thonny use-09.png
  • 运行另一份文件时要先点击红色stop按钮,这样另一份文件才能正常运行
    ESP32-S3-Touch 1.28-Thonny use-10.png

示例程序

Demo-flow-02.png

  • ESP32-S3-Relay-6CH 示例程序
示例程序 基础例程说明
main.py 主函数
ws_bluetooth.py 蓝牙初始化及指令解析
ws_gpio.py RGB、蜂鸣器,继电器初始化
ws_information.py 全局系统参数设置
ws_relay.py 实现继电器控制
ws_serial.py 8路继电器扩展

上传例程

  • 将本地文件上传到开发板,选择文件,鼠标右键,找到"upload to/",进行上传

ESP32-S3-Relay-6CH TO MicroPython Environment 8.png

  • 以下是全部文件上传完成的界面,上传的文件请务必与图片内保持一致,否则可能会运行失败

ESP32-S3-Relay-6CH TO MicroPython Environment 10.png

运行例程

  • 运行例程后

【RS485控制】


【蓝牙控制】


Flash固件的烧录与擦除

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

与 Homeassistant 配合使用

产品可以在通过树莓派上搭建的 Homeassistant ,进行线上控制,实现相关操作请查看参考链接

资料

原理图

示例程序

数据手册

ESP32-S3

软件工具

Arduino

VScode

Thonny

调试工具

其他资料链接

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


  • 出厂程序仅供学习,若用于实际应用请自行优化程序逻辑。


  • 请将跳线帽移至 120R 再次尝试,部分 RS485 设备需要串入 120R 电阻


技术支持

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

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