回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

基于Beetle 树莓派RP2350的嵌入式无线显示系统 简单

头像 小瑞 2025.06.04 29 0

一、项目概述

1.1 项目目标

本项目旨在构建一个嵌入式数据显示系统,通过 Beetle RP2350 开发板搭载 HC-05 蓝牙模块,实现对手机 APP 发送数据的无线接收,并利用 0.96 英寸 OLED 显示屏进行实时信息展示。该系统可应用于物联网终端设备、嵌入式控制界面等场景,为短距离无线数据交互提供可视化解决方案。

1.2 核心功能

蓝牙通信:基于 HC-05 模块实现手机 APP 与开发板的蓝牙串口通信(SPP 协议),支持 10 米范围内的数据传输。

数据显示:通过 SSD1306 驱动的 OLED 显示屏,以 128×64 像素分辨率实时显示接收的文本信息。

硬件集成:采用低功耗高性能的 RP2350 芯片开发板,集成 ADC、UART、I2C 等接口,满足多模块协同工作需求。

二、硬件系统设计

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、蓝牙模块HC-05

37acd0259cb86fea60c2bdbc5795d365.png

通信规格:
基于蓝牙 2.0+EDR 标准,支持主 / 从模式切换,通过 AT 命令可配置设备名称、配对密码等参数。
串口通信接口(UART)支持 9600-115200bps 波特率,默认波特率 38400bps(可通过 AT 指令修改)。
典型通信距离 10 米(无障碍物),适合短距离无线数据传输场景。

三、电路连接方案

3.1 硬件连接示意图

微信图片_20250604205837.jpg

3.2 引脚连接说明

模块开发板引脚

连接说明

HC-05 TXGPIO9开发板 UART1 接收端(RX)
HC-05 RXGPIO8开发板 UART1 发送端(TX)
OLED SCLGPIO5I2C 时钟线(SCL)
OLED SDAGPIO4I2C 数据线(SDA)
VCC3.3V
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 HC05_RX_PIN 9
#define HC05_TX_PIN 8
#define OLED_SDA 4
#define OLED_SCL 5
 
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(
  U8G2_R0, 
  U8X8_PIN_NONE, 
  OLED_SCL, 
  OLED_SDA
); 

void setup() {  
  Serial.begin(9600);
  Serial2.begin(9600);
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_7x13B_tf);
  delay(1000); 
  Serial.println("初始化完成"); 
}  

void loop() {  
  if (Serial2.available()) {  // 检测蓝牙数据  
    String data = Serial2.readStringUntil('\n');  // 读取单行数据  
    u8g2.firstPage();          // OLED分页刷新  
    do {  
      u8g2.setCursor(0, 15);   // 设置文本位置(Y=15为第一行)  
      u8g2.print("Received:");  
      u8g2.setCursor(0, 35);   // 第二行  
      u8g2.print(data);        // 显示数据  
    } while (u8g2.nextPage());  
  }  
}  

5.2 关键功能实现

蓝牙数据接收:
通过HardwareSerial类初始化 UART0,与 HC-05 模块通信,使用readStringUntil('\n')实现按行接收数据,支持换行符(\n)作为数据结束标志。

OLED 显示控制:
U8g2 库采用分页缓冲区机制,通过firstPage()和nextPage()循环实现全屏刷新,支持多语言字符显示(需选择对应字体)。

异常处理:
可添加数据校验逻辑(如检查数据长度、格式),避免非法数据导致显示异常;通过u8g2.clearDisplay()清除无效残留数据。

评论

user-avatar