如何使用Arduino和HC-05蓝牙模块在OLED显示器上接收和显示数据
扫描二维码
随时随地手机看文章
我们已经看到了如何通过HC-05发送和接收数据,但大多数蓝牙应用程序需要的不仅仅是发送和接收。在本教程中,我们将看到如何将HC-05与0.91英寸。OLED显示屏打印HC-05接收到的数据。
软件
为了发送数据,我们将使用Arduino蓝牙控制器。
注意:HC-05蓝牙模块仅适用于Android设备。
硬件
HC-05蓝牙模块
•蓝牙版本:HC-05模块支持蓝牙2.0+EDR (Enhanced Data Rate,增强数据速率),提供相对稳定可靠的连接。
•串行通信:该模块使用串行通信接口与Arduino进行通信。它使用UART引脚连接到Arduino板,标记为RX(接收)和TX(发送)。
•工作模式:模块主要有两种工作模式:命令模式(AT模式)和数据模式(接收和发送数据)。在“AT模式”下,您可以向模块发送配置命令,指定蓝牙名称、PIN码和工作模式等参数。在“数据模式”中,您可以发送和接收数据。
•电源:HC-05模块需要3.3V左右的电源。然而,它通常容忍5V逻辑电平,使其与大多数Arduino板兼容。
注意:如果我们看原理图,我们可以看到HC-05模块的关键引脚连接到Arduino nano的VCC。在上电Arduino之前,应将关键引脚连接到VCC,一旦HC-05模块开始缓慢闪烁,必须断开连接。
虽然我们在这个项目中使用的是HC-05蓝牙模块,它非常便宜和耐用,但我们使用分压器电路来确保RXD引脚不会损坏。它是通过连接横跨RXD和引脚11的1k Ω电位器和横跨RXD和地的2k Ω电位器制成的。
OLED显示器:
•体积小巧:由于体积小巧,非常适合智能手表和健身追踪器等小型设备。
•高对比度和亮度:提供深黑色和充满活力的颜色,具有高对比度和亮度。
•低功耗:功耗低于lcd,提高可穿戴设备的电池寿命。
•宽视角:保持一致的颜色和清晰度,从不同的视角。
•快速响应时间:提供快速的响应时间,减少动态内容的运动模糊。
OLED显示器因其卓越的图像质量、效率和设计灵活性而广泛应用于智能手机、电视、可穿戴设备和数字标牌等各种设备。
这两种模块都是智能手表、智能眼镜等小型应用的理想选择。
代码
让我们一步一步来了解它是如何工作的:
库和常量
库包含:包括必要的软件串行通信(SoftwareSerial), SPI通信(SPI), I2C通信(Wire)和控制OLED显示器(Adafruit_GFX和Adafruit_SSD1306)的库。
常量定义:定义检查蓝牙模块连接状态的STATEPIN和OLED显示器复位引脚的OLED_RESET。
对象和变量初始化
对象创建:使用复位引脚为OLED显示器创建对象显示,并在引脚10和11上为软件串行通信创建对象蓝牙。
变量声明:声明一个字符串变量数据来保存从蓝牙模块接收到的数据。
设置函数
串行和蓝牙初始化:使用Serial.begin(9600)初始化串行通信以进行调试,并使用Bluetooth .begin(9600)设置蓝牙模块。
引脚设置:配置STATEPIN作为检查连接状态的输入。
OLED初始化:用I2C地址0x3C初始化OLED显示器,清除之前的任何内容,设置文本大小和颜色,定位光标,并向显示器打印初始消息“Data Received:”。
循环函数
Connection Check: loop函数首先通过读取STATEPIN来检查蓝牙模块的状态。如果读数为1,则表示客户端已连接。
断开连接更新:如果没有客户端连接(STATEPIN读取0),则重置数据变量,将“Disconnected”打印到串行监视器,并更新OLED显示为“Not connected”。
读取数据:如果客户端已连接,代码将进入一个循环,该循环检查是否有来自蓝牙模块的可用数据。它将可用数据读入data变量,打印到串行监视器,并通过发送“read”来响应蓝牙模块。stoppllistening()和listen()方法用于暂时停止和恢复软件串口上的侦听。
更新OLED显示屏:读取数据后,代码更新OLED显示屏。它清除显示器,打印接收到的数据,并显示“已连接”以指示活动连接。此更新提供了接收到的数据和连接状态的可视化确认。
应用程序
应用说明设置:
•为Arduino供电。
•现在,HC-05模块应该会快速闪烁。
•接下来,打开应用程序。
•允许它访问蓝牙设置。
•在列表中选择HC-05。
•选择控制台/终端模式。
•现在模块应该每2秒闪烁一次。
•OLED显示屏应该显示已连接。
•应该弹出一个带有键盘的控制台(见下文)。
•现在你输入的任何东西都应该出现在OLED显示屏上。
•享受吧!
本文编译自hackster.io