基本信息
文件名称:Arduino 系列:Arduino Uno 系列 (基于 ATmega328P)_(15).无线通信模块应用.docx
文件大小:25.14 KB
总页数:22 页
更新时间:2025-06-17
总字数:约1.04万字
文档摘要

PAGE1

PAGE1

无线通信模块应用

在现代物联网(IoT)应用中,无线通信模块是连接设备和网络的重要组成部分。本节将详细介绍如何在ArduinoUno上使用常见的无线通信模块,包括Bluetooth(蓝牙)、Wi-Fi和RF(射频)模块。我们将通过具体的例子和代码来展示如何配置这些模块,实现基本的无线通信功能。

Bluetooth(蓝牙)模块

HC-05蓝牙模块

HC-05是一款常用的蓝牙模块,支持SPP(SerialPortProtocol)通信,可以通过串口与ArduinoUno进行数据交换。HC-05模块支持主从模式,可以方便地与其他蓝牙设备进行配对和通信。

硬件连接

将HC-05模块与ArduinoUno连接如下:

VCC-Arduino5V

GND-ArduinoGND

TXD-ArduinoRX(通过一个1kΩ和2kΩ电阻分压后连接)

RXD-ArduinoTX(通过一个1kΩ和2kΩ电阻分压后连接)

STATE-可以悬空或连接到Arduino的一个数字引脚(用于指示模块状态)

配置HC-05模块

在使用HC-05模块之前,需要通过AT命令进行配置。以下是一些常用的配置命令:

AT:测试模块是否正常响应

AT+NAME?:查询模块名称

AT+NAME=NewName:设置模块名称

AT+PIN?:查询模块配对密码

AT+PIN=1234:设置模块配对密码

AT+ROLE=1:设置模块为主模式

AT+ROLE=0:设置模块为从模式

AT+BAUD8:设置模块波特率为9600

示例代码:通过蓝牙模块发送数据

#includeSoftwareSerial.h

//定义蓝牙模块的RX和TX引脚

#defineBLUETOOTH_RX10

#defineBLUETOOTH_TX11

//创建SoftwareSerial对象

SoftwareSerialbluetooth(BLUETOOTH_RX,BLUETOOTH_TX);

voidsetup(){

//初始化串口通信

Serial.begin(9600);

//初始化蓝牙模块通信

bluetooth.begin(9600);

}

voidloop(){

//检查是否有来自蓝牙模块的数据

if(bluetooth.available()){

chardata=bluetooth.read();

Serial.print(ReceivedfromBluetooth:);

Serial.println(data);

}

//检查是否有来自串口的数据

if(Serial.available()){

chardata=Serial.read();

bluetooth.print(ReceivedfromSerial:);

bluetooth.println(data);

}

//发送一些数据到蓝牙模块

bluetooth.print(HellofromArduinoUno);

delay(1000);

}

代码说明

SoftwareSerial库:用于通过软件实现串口通信,因为ArduinoUno只有一个硬件串口,我们需要将蓝牙模块连接到其他数字引脚。

初始化:在setup函数中,初始化串口和蓝牙模块的通信波特率。

数据收发:在loop函数中,通过bluetooth.available()和Serial.available()检查是否有数据可读,然后读取数据并通过另一个通信端口发送。

示例应用:蓝牙控制LED

接下来,我们将通过蓝牙模块控制一个LED。当接收到特定的字符(如‘1’)时,LED将亮起;接收到‘0’时,LED将熄灭。

#includeSoftwareSerial.h

//定义蓝牙模块的RX和TX引脚

#defineBLUETOOTH_RX10

#defineBLUETOOTH_TX11

//定义LED引脚

#defineLED_PIN13

//创建SoftwareSerial对象

SoftwareSerialbluetooth(BLUETOOTH_RX,BLUETOOTH_TX);

voidsetup(){

//初始化串口通信

Seri