Arduino Uno 使用蓝牙 HC-05 模块的初学者指南
如何从 TMP36 向蓝牙终端发送数据,使用 HC-05 模块
引言
在本文中,我将演示如何使用 HC-05 蓝牙模块与 Arduino 建立蓝牙连接。我们将从 TMP36 温度传感器收集数据,然后将数据显示在蓝牙终端中。使用 HC-05 模块所需的所有用品将在下面的“材料”部分列出。完成本教程后,您将能够将信息从 Arduino Uno 发送到蓝牙终端。请注意,本教程是为 Arduino Uno 经验很少的人准备的,因此我将尽力详细介绍所有使用的材料。现在,废话不多说,让我们开始吧!
为 Arduino 供电
我们要做的第一件事是确保我们可以为 Arduino 和 HC-05 模块供电,但我们先从 Arduino Uno 开始。Arduino 需要 7-12 伏的电源才能正常工作,要获得此电压,只需将 Arduino 的电源线插入计算机/笔记本电脑上的 USB 端口即可。虽然有其他为 Arduino 供电的方法,但我们将使用此方法,因为它允许我们在本教程的后续部分上传代码。
注意:请勿在 Arduino 通电时对其进行操作,我们只是为以后使用进行设置。现在,将 Arduino 的电源线放在一边,在完成 HC-05 模块的设置后,我们将为其供电。
现在我们要为 HC-05 模块供电,为此,我们将使用几根跳线和一个面包板。面包板是允许我们搭建临时电路而无需焊接的设备,这使得它们非常适合测试 Arduino Uno 的新组件。首先,将一根跳线的一端连接到 Arduino 板上标有“5V”的部分,然后将另一端连接到最底部一行上的任意孔。接下来,再拿一根跳线,一端连接到标有“GND
”的 Arduino 引脚,另一端连接到标有减号的行上的任意孔。您应该得到类似这样的结果...
带有红线的行称为电源轨,我们用它来为所有组件供电。连接到该行的任何跳线都可以获得 5 伏电压,从而一次为多个组件供电。电源轨上方的行将所有组件连接到 Arduino 的接地引脚,称为接地轨。现在我们可以为蓝牙模块供电了,让我们来看看所有引脚以及它们的作用。
蓝牙模块
如前所述,HC-05 蓝牙模块允许我们建立蓝牙连接,但在将其连接到 Arduino 之前,让我们看一下 HC-05 的原理图。
不用担心蓝牙模块的第一个和最后一个引脚,因为本教程我们不会使用它们,其余引脚及其功能列出如下。
- RXD:这是模块的接收引脚,其作用是收集数据,并插入 Arduino 的发送器引脚 (TX)。
- TXD:这是模块的发送器引脚,其作用是发送它接收到的数据,并插入 Arduino 的接收器引脚 (RX)。
- GND:这是模块的接地引脚,其作用是为 VCC 引脚接收的电压提供接地,并插入面包板上的接地轨。
- VCC:这是模块的电压引脚,其作用是从 Arduino 获取电压,并插入面包板上的电源轨。
现在我们知道了每个引脚的作用,我们可以添加所需的跳线来使其工作,但是,让我们先从 RXD 引脚开始,因为它需要特殊的电压。所以为了给它供电,我们需要制作一个分压器。
分压器
与模块的其他引脚不同,RXD 引脚的逻辑电平* 是 3.3 伏而不是 5 伏,因此,我们需要使用分压器来减弱 RXD 引脚接收到的电压。分压器只是两个串联的电阻,但是我们将使用两个电阻之间的跳线与 RXD 引脚连接,其余电压将接地。像这样搭建您的电路...
注意:最靠近 Arduino 的电阻是 2k 欧姆电阻,离板子最远的电阻是 3k 欧姆电阻,另外,RXD 引脚位于 C25 位置(C 列,25 行)。
* 逻辑电平是指信号可以存在的特定电压。换句话说,信号可以以“高”状态或“低”状态存在,因此,如果我们的逻辑电平是 3.3v,那么 3.3 伏的信号将被设备视为“高”状态,而 0 伏的信号将被视为“低”状态。为设备提供超过其逻辑电平的电压可能会永久损坏设备。
剩余引脚
要将剩余的引脚连接到它们各自的位置,请遵循蓝牙模块部分中的项目符号点,完成后,您的电路板应如下所示。
注意:将 RXD 引脚放在位置 (C25),TXD 引脚放在 (C26),GND 引脚放在 (C27),VCC 引脚放在 (C28)。
TMP36
接下来,我们将把 TMP36 安装到 Arduino 板上。该设备将允许我们记录周围环境的温度,然后我们将把这些数据发送到蓝牙终端,但在开始之前,让我们快速看一下 TMP36 引脚,从左到右。
- V in:“V in”代表“电压输入”,顾名思义,该引脚的作用是接收 TMP36 可以使用的电压。
- V out:“V out”代表“电压输出”,这是我们将用于读取传感器结果的引脚。您可以将此引脚连接到任何一个数字引脚。
- GND:这是 TMP36 传感器的接地引脚,其作用是为 TMP36 接收的电压提供接地。
现在我们已经讨论了 TMP36 的引脚及其功能,让我们将 TMP36 连接到面包板。另外,请注意,我们将使用模拟引脚 0 和传感器,但如果您想使用其他引脚,那完全没问题,只需记住在 Arduino 代码中声明该引脚。
恭喜!您已经完成了 HC-05 模块设置的硬件部分。接下来,我们将进入模块设置的软件部分,并对 Arduino 进行编程,以便使用该模块与蓝牙终端通信。
软件
代码
现在我们将使用 HC-05 模块将 TMP36 的结果显示在蓝牙终端上。打开您的 Arduino IDE,创建一个新文件,然后复制以下代码。
int sensorPin = 0;
void setup() {
Serial.begin(9600); // Default communication rate of the Bluetooth module
}
void loop() {
int sensorVal = analogRead(sensorPin); //read the input from the sensor
float voltage = (sensorVal/1024.0) * 5; //convert the input into a voltage
float temperatureCelsius = (voltage - .5) * 100; //convert voltage into temperature
if(Serial.available() > 0) {
Serial.println(temperatureCelsius); //print results in bluetooth terminal
delay(100);
}
}
在我们将代码上传到 Arduino 之前,我将简要介绍一下程序的内容。首先,我们通过将一个整数设置为零来初始化模拟引脚。然后,在我们的 setup 函数中,我们将通信速率设置为 9600 波特,这是蓝牙通信的默认速率。之后,我们收集传感器数据,将数据转换为伏特,然后将这些伏特转换为摄氏度的可读温度。最后,如果我们的手机正在接收通信,我们将结果打印到蓝牙终端。
现在我们有了代码并理解了它的作用,我们就可以将代码上传到 Arduino Uno 了。按照以下列表将您的 Arduino 代码上传到开发板。
- 将您的 Arduino 插入电子设备上的 USB 端口之一(如果成功,您应该会在 Arduino 开发板上看到绿灯)。
- 打开您的 Arduino IDE,然后转到工具 -> 开发板,并确保已选择“Arduino/Geniuno Uno”。
- 接下来,按位于验证按钮旁边的上传按钮。
恭喜!您已完成本教程的软件部分。在我们的下一个也是最后一个部分,我们将设置蓝牙终端并与 Arduino Uno 建立蓝牙连接。
蓝牙终端
安装应用程序
我们要做的第一件事是下载一个蓝牙终端应用程序,我们可以将其用于我们的 Arduino。有很多应用程序都可以,但是为了让大家都在同一起跑线上,我建议使用 mightyIT 开发的Bluetooth Terminal HC-05应用程序。
建立蓝牙连接
在我们的应用程序成功下载并打开后,我们必须将 Arduino Uno 连接到手机。首先,确保您的 Arduino 已通电。接下来,转到手机的蓝牙设置并按“搜索”,然后点击以 HC-05 结尾的蓝牙设备。
然后会要求您输入连接 PIN 码。只需键入“1234
”并按 Enter 键。现在您已成功连接到您的蓝牙设备!
使用蓝牙终端
打开我们刚刚下载的蓝牙终端应用程序,然后在“配对设备”列表中,您应该会看到您的 HC-05 模块。如果看到了,请点击 HC-05 按钮,您应该会在蓝牙终端中看到温度读数。
恭喜!您已成功使用 HC-05 模块与 Arduino Uno 建立了蓝牙连接。请记住,您可以使用 HC-05 模块做更多的事情,我鼓励您继续使用 HC-05 模块并探索更多独特的使用方法。
材质
- 1 块 Arduino Uno
- 1 块半尺寸面包板
- 跳线
- TMP36
- 1 块 HC-05 蓝牙模块
- 1 块 2k 欧姆电阻
- 1 块 3k 欧姆电阻
- Arduino IDE (https://www.arduino.cc/en/Main/Software?)