Arduino Uno是电子爱好者和学生中最受欢迎的微控制器,并且非常容易使用Arduino在嵌入式系统上入门。但是Arduino的一个缺点是,它需要使用USB电缆连接到计算机以完成代码的上传板载支持无线通信。有时,如果您的项目固定在某处,则很难将开发板与PC连接起来。解决此问题的唯一方法是通过无线方式对Arduino进行编程。由于ESP8266和ESP32内置了Wi-Fi支持,因此可以轻松在ESP8266和ESP32中进行无线编程或OTA(无线)编程。但是在Arduino中,我们必须使用蓝牙模块对其进行无线编程。因此,这里我们将学习如何通过蓝牙对Arduino进行编程。
所需组件
- Arduino UNO
- HC05蓝牙模块
- 跳线
- 1K,2.2K电阻器
- 电容(0.1uF)
- 电源适配器
- 面包板
HC05蓝牙模块
HC-05模块是蓝牙串行端口协议模块,专门设计用于微控制器之间的无线通信。HC-05蓝牙模块提供主模式和从模式配置之间的切换模式,并通过串行通信以9600波特率进行通信,这使与控制器的连接变得容易。HC05模块的工作电压为3.3 V,但我们可以将其连接至5V的电源电压,因为该模块随附板载5v至3.3 V的稳压器。
蓝牙是最简单的无线通信方式,我们已经用它建立了许多有趣的项目,例如蓝牙控制机器人,蓝牙语音控制,蓝牙家庭自动化等。您可以在此处查看所有基于蓝牙的项目。
通过蓝牙编程Arduino
要无线编程Arduino,首先,我们必须对Arduino进行编程以响应AT命令。为此,将Arduino连接到Laptop的串行端口并上传以下代码:
#包括
该代码的前两行用于包括 SoftwareSerial 库,并定义连接蓝牙的发送器和接收器引脚。 SoftwareSerial 库用于允许与除Arduino的Hardware Tx和Rx引脚以外的数字引脚进行串行通信。可以使用 SoftwareSerial 库将多个软件串行端口用于串行通信。
#包括
现在,在 设置功能中 ,定义硬件和软件串行端口的波特率。硬件和软件串行端口的波特率分别为9600和38400。
void setup(){Serial.begin(9600); Serial.println(“ Enter AT命令:”); HC05.begin(38400); }
循环 函数中使用了两个 if 条件。第一个条件检查是否向HC05发出了任何命令,如果是,则将其写入Arduino串行监视器。第二个条件检查是否向Arduino Serial Monitor发出了任何命令,如果是,则将其发送到HC05。
void loop(){如果(HC05.available())Serial.write(HC05.read()); 如果(Serial.available())HC05.write(Serial.read()); }
接下来,将Arduino连接到HC05,将其置于AT Command模式。该电路图对同一给定如下:
在将Arduino连接到计算机之前,请按键按钮,然后将Arduino连接到计算机。按住按键,直到蓝牙模块LED开始以2秒的间隔闪烁。在命令模式下,蓝牙模块的LED闪烁比正常模式下慢。
现在打开一个串行监视器并输入以下命令,作为回报,每次命令成功运行时,开发板都会以“ OK ”响应。
AT + ORGL AT + ROLE = 0 AT + POLAR = 1,0 AT + UART = 115200,0,0 AT + INIT
成功测试AT命令后,只需断开所有连接,然后按照以下示意图进行连接即可。
使用适配器或9V电池为Arduino供电。之后,转到笔记本电脑中的“ 设备” ,打开蓝牙,然后将蓝牙模块连接到笔记本电脑。
成功配对设备后,下一个任务是找到HC05蓝牙模块的COM端口。为此,请转到“ 设备管理器” ,然后选中“ COM端口”选项。它将显示两个COM端口,一个用于传入,另一个用于传出。我们在上传程序时需要选择第二个COM端口号。
现在打开Arduino IDE,选择闪烁程序,选择正确的com端口,然后单击上载按钮。如果一切顺利,则Arduino板载LED将以1秒的间隔开始闪烁。
以下是完整的工作视频。