基于Beetle 树莓派RP2350控制的继电器

2025-06-04144
AI 快速预览详细 收起
本项目基于 Beetle RP2350 开发板,结合 0.96 英寸 OLED 显示屏与继电器模块,实现对外部设备的定时控制与状态显示功能。系统通过 OLED 实时展示继电器通断状态,并按照预设时间间隔自动切换继电器工作模式。主要硬件包括 Beetle RP2350 开发板、OLED 显示模块和继电器模块。通过 GPIO9 引脚控制继电器,每3秒切换一次状态,并通过 OLED 屏实时显示继电器状态。适用于智能家居、工业自动化控制等场景。

 

 

一、项目概述

 

1.1 项目目标

本项目基于 Beetle RP2350 开发板,结合 0.96 英寸 OLED 显示屏与继电器模块,实现对外部设备的定时控制与状态显示功能。系统通过 OLED 实时展示继电器通断状态,并按照预设时间间隔自动切换继电器工作模式,可应用于智能家居、工业自动化控制等场景。

1.2 核心功能

继电器定时控制:实现继电器每 3 秒切换一次状态(通 / 断),支持外部设备的周期性供电控制。

状态实时显示:通过 OLED 屏直观展示继电器当前状态("ON"/"OFF")。

调试接口支持:利用串口通信输出状态信息,方便开发阶段调试与监控

 

微信图片_20250604234647.jpg

继电器线圈失电

 

微信图片_20250604234654.jpg

继电器线圈得电

 

二、硬件系统设计

 

2.1 Beetle RP2350 开发板

核心特性:
基于 RP2350 双核 ARM Cortex-M33 处理器,支持最高 133MHz 运行频率,具备 264KB 片上 RAM 及 2MB Flash 存储。
板载 2 路 12 位 ADC 通道(A0 对应 IO26,A1 对应 IO27),支持模拟信号采集。
超紧凑尺寸设计,兼容 Arduino IDE 开发环境,便于快速原型开发。


3a8983b1a6894c13755656d58903d643.png

 

2.2 0.96 英寸 OLED 显示模块

d6afcfc124932665.jpg

 

技术参数:
采用 SSD1306 驱动芯片,支持 I2C 通信接口(默认地址 0x3C)。
128×64 像素自发光白色 OLED 面板,支持高对比度显示,无需背光系统,功耗低至 5mA(典型值)。
内置显存控制器,支持文本、图形、位图等多种显示模式,通过 U8g2 库可实现高效驱动。

 

 

3、继电器模块

dcf368e1f8beeadb391f6fbf9cf105b9.png

 

主要规格:

5V 电磁继电器,支持 NO(常开)/NC(常闭)触点

高电平触发(3.3V/5V 兼容)

最大负载:AC 250V/10A,DC 30V/10A

控制继电器的引脚连接在 ESP-01S 的 IO0(GPIO0),控制方式是,GPIO0 输出低电平时,继电器线圈得电;GPIO0 输出高电平时,继电器线圈失电。

 

三、电路连接方案

 

3.1 引脚连接说明

模块RP2350 引脚连接说明
OLED SCLGPIO5I2C 时钟线
OLED SDAGPIO4I2C 数据线
继电器 INGPIO9控制信号输入(高电平触发)
VCC5V电源输入
GNDGND共地

 

四、软件开发环境配置

 

4.1 Arduino IDE 开发板配置

 

步骤 1:添加开发板管理器网址

打开 Arduino IDE 后,点击菜单栏中的 文件 -> 首选项。

在弹出的 首选项 窗口中,找到 附加开发板管理器网址 输入框。

输入 Beetle RP2350 开发板的支持包链接。通常可以在开发板的官方文档或者社区中找到对应的链接。对于 RP2350 开发板,一般使用的链接是 https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json。

点击 确定 保存设置。

image-20250516074502812.png

步骤 2:安装开发板支持库

进入 工具 > 开发板 > 开发板管理器,等待索引更新完成。

在搜索栏输入 "RP2350",选择 "Raspberry Pi Pico/RP2040/RP2350" 并点击 "安装"。

等待安装完成(根据网络速度,可能需要 2-5 分钟)。

image-20250516073904537.png

 

步骤 3:选择目标开发板

安装完成后,通过 工具 > 开发板 菜单选择 "Generic RP2350"。

4E885EEB-63FA-4447-A72E-A208DD093520.png

步骤 4:配置通信端口

通过 USB 线连接开发板至电脑,在 工具 > 端口 中选择正确的 COM 端口(如 "COM3")。

 

4.2 第三方库安装

 

1、U8g2 库(OLED 驱动)

打开库管理器(Sketch > 包含库 > 管理库)。

搜索 "U8g2",选择 "olikraus/U8g2" 并安装。

功能:支持 SSD1306 等 50 + 种显示驱动,提供绘制文本、图形、二维码等 API,兼容 Arduino 框架。

1748169709390.png

 

五、主要程序设计

 

5.1 代码实现

代码
#include <Wire.h>
#include <U8g2lib.h>
#define OLED_SDA 4
#define OLED_SCL 5
#define RELAY_PIN 9

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(
  U8G2_R0, 
  U8X8_PIN_NONE, 
  OLED_SCL, 
  OLED_SDA
); 


void setup() { 
  u8g2.begin();
  u8g2.setFont(u8g2_font_unifont_t_chinese3); 

  // 初始化串口通信,方便调试
  Serial.begin(115200);
  Serial.println("继电器模块测试开始");
  
  // 设置继电器控制引脚为输出模式
  pinMode(RELAY_PIN, OUTPUT);
  
  // 初始状态:断开继电器(高电平)
  digitalWrite(RELAY_PIN, HIGH);

}  

void loop() {  
  // 闭合继电器(低电平触发)
  Serial.println("继电器闭合,外部设备通电");
  digitalWrite(RELAY_PIN, LOW);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 35);
  u8g2.print("ON");
  u8g2.sendBuffer();
  delay(3000); // 保持3秒
  
  // 断开继电器(高电平)
  Serial.println("继电器断开,外部设备断电");
  digitalWrite(RELAY_PIN, HIGH);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 35);
  u8g2.print("OFF");
  u8g2.sendBuffer();
  delay(3000); // 保持3秒
}    

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -