arduino环境下ESP32的蓝牙通信

本文介绍了如何在Arduino环境下利用ESP32的内置蓝牙功能进行通信。通过选择正确的开发板,使用示例程序,特别是从机模式的蓝牙示例(BT),详细解释了初始化设置、蓝牙名称设置、串口通信以及数据发送和接收的实现过程。
摘要由CSDN通过智能技术生成

之所以用ESP32是因为它有自带的蓝牙和WIFI等通信功能,我所使用的型号是GOOUUU-esp32
在arduino ade中可以直接找到esp32蓝牙的示例程序
首先在“工具”一栏里选择相应的开发板
在这里插入图片描述
然后在“文件-示例”中找到相应的蓝牙示例
在这里插入图片描述
图中有两个蓝牙相关的示例后缀为“BT”的是作为从机的蓝牙示例,而后缀为“BTM”的是作为主机的蓝牙示例,这两个是用于两个ESP32之间互相通信时的两个相关示例,这里只说一下从机的示例
点击后缀为“BT”的示例以后系统将给出一下程序

//This example code is in the Public Domain (or CC0 licensed, at your option.)
//By Evandro Copercini - 2018
//
//This example creates a bridge between Serial and Classical Bluetooth (SPP)
//and also demonstrate that SerialBT have the same functionalities of a normal Serial

#include "BluetoothSerial.h"

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

BluetoothSerial SerialBT;

  • 12
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
上一期免费开源项目中,我最新发布了:最简单DIY的51蓝牙遥控小车设计方案,地址是:https://www.cirmall.com/circuit/20328当时测试用的是手机蓝牙调试助手来遥控智能小车的,那么这次开源免费项目中,我要用ESP32来实现串口蓝牙的功能来完全替代手机蓝牙调试助手来无线控制蓝牙智能小车。 优酷视频演示地址: 友情提示:蓝牙控制的设备是智能小车,想下载的买家可以到上面的网址免费下载,配套使用的。本次设计采用Arduino开发环境编写ESP32 C++程序,不会搭建开发环境的买家可以到:https://www.cirmall.com/circuit/19141自行按照说明搭建,这次为了改变口味,我用的是ESP32DEVKITV1开发板,价格更低十几块在某宝就能买到,这次下载程序可以直接使用手机数据线跟ESP32连接,在arduino里面直接点击下载就可以把程序下载进去了。 彩图如下: 科普一下:串口蓝牙就是模块设定为master模式,自动连上蓝牙设备-智能小车(client模式),不需要使用AT指令(我这个方案的优势),连上蓝牙设备之后将串口的数据通过蓝牙方式转发出去(注意我用的不是串口蓝牙模块),最后达到遥控蓝牙智能小车的效果,我现在用arduino自带的串口调试助手来测试。 下面是全家福照片: 下面是本次项目的主角: 源码代码截图: 注意了:我用的蓝牙设备-智能小车上安装的是串口蓝牙模块的型号是HC-05,所以我的串口蓝牙遥控器编写的程序里面写死了适配蓝牙的名字和密码,买家根据自己的情况来修改了。 下面是串口调试截图: 按照图上的配置信息配置,烧录源码,重启,输入FFF,点击“发送”按钮,小车就前进,串口调试窗口就看到小车回复了FFF,输入BBB就是倒退,左转是LLL,右转是RRR。 稍微说一下程序原理:电脑串口传输字符串给ESP32ESP32将字符串通过蓝牙天线发送给智能小车,智能小车的串口蓝牙接收到信号之后触发串口中断,在中断服务程序执行控制小车行动的逻辑,然后再返回一个相同的字符串给ESP32ESP32接收到字符串之后打印到电脑串口显示端上显示出来。 下一期我将会用ESP32DEVKITV1开发板做一个脱离电脑的串口蓝牙遥控器,通过摇杆AD转换成蓝牙控制信号来控制智能小车,敬请期待。
要在Arduino环境中使用ESP32通过蓝牙模拟串口发送数据,你可以使用ESP32内置的蓝牙功能和`SoftwareSerial`库来模拟串口通信。以下是一个示例代码: 首先,确保你已经安装了`SoftwareSerial`库。在Arduino IDE中,选择 "工具" -> "管理库",然后搜索并安装 "SoftwareSerial" 库。 然后,使用以下示例代码: ```cpp #include <SoftwareSerial.h> SoftwareSerial bluetoothSerial(10, 11); // RX, TX (使用不同的引脚号,例如10和11) void setup() { Serial.begin(115200); bluetoothSerial.begin(9600); // 设置蓝牙模块的波特率 Serial.println("Bluetooth Serial started"); } void loop() { if (bluetoothSerial.available()) { char data = bluetoothSerial.read(); Serial.print("Received data from Bluetooth: "); Serial.println(data); // 发送数据给蓝牙模块 bluetoothSerial.print("Hello, Bluetooth!"); bluetoothSerial.println(); } if (Serial.available()) { char data = Serial.read(); Serial.print("Received data from Serial: "); Serial.println(data); // 发送数据给蓝牙模块 bluetoothSerial.print("Received data from Serial: "); bluetoothSerial.print(data); bluetoothSerial.println(); } } ``` 在此代码中,我们使用了`SoftwareSerial`库创建了一个虚拟的串口对象`bluetoothSerial`,用于与蓝牙模块进行通信。 在`setup()`函数中,我们初始化串口和蓝牙模块的通信。在这个示例中,我们将蓝牙模块的波特率设置为9600bps。 在`loop()`函数中,我们检查蓝牙串口是否有可用数据。如果有可用数据,我们将接收到的数据打印到串口监视器,并通过调用`bluetoothSerial.print()`和`bluetoothSerial.println()`将数据发送回蓝牙模块。 同时,我们还检查串口监视器是否有可用数据。如果有可用数据,我们将接收到的数据打印到串口监视器,并通过调用`bluetoothSerial.print()`和`bluetoothSerial.println()`将数据发送回蓝牙模块。 请注意,你需要根据你所使用的蓝牙模块的具体配置和波特率来调整代码。另外,确保你已正确连接蓝牙模块的RX和TX引脚,并使用正确的引脚号初始化`SoftwareSerial`对象。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值