【Arduino框架】ESP32中蓝牙快速上手使用~

本文介绍了如何利用Arduino框架和BluetoothSerial库在ESP32上实现蓝牙串口通信。通过begin()初始化,end()停止,available(),read(),write(),print(),println()等函数进行数据传输。示例代码展示了发送HelloWorld!和通过蓝牙控制LED的开与关。
摘要由CSDN通过智能技术生成

💥💥💞💞欢迎来到本博客❤️❤️💥💥
本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~

📋📋📋本文目录如下:🎁🎁🎁

自带蓝牙是ESP32一大特点之一,本文就介绍一下如何快速通过Arduino框架使用ESP32的蓝牙功能

一. BluetoothSerial库以及内部常见函数介绍

BluetoothSerial.h是ESP32 Arduino中的蓝牙串口库,可以通过蓝牙串口与其他设备进行通信。常用的函数如下:

  1. begin:初始化蓝牙串口,必须在其他函数之前调用。
void begin(String localName = "ESP32");

  1. end:停止蓝牙串口,释放资源。
void end();

  1. available:检查是否有数据可读。
int available();

  1. read:读取一个字节的数据。
int read();

  1. write:向蓝牙串口写入一个字节的数据。
size_t write(uint8_t byte);

  1. print:向蓝牙串口写入字符串。
size_t print(const String &s);
size_t print(const char str[]);
size_t print(char c);
size_t print(unsigned char c, int base = DEC);
size_t print(int n, int base = DEC);
size_t print(unsigned int n, int base = DEC);
size_t print(double n, int digits = 2);


  1. println:向蓝牙串口写入字符串并换行。
size_t println(const String &s);
size_t println(const char str[]);
size_t println(char c);
size_t println(unsigned char c, int base = DEC);
size_t println(int n, int base = DEC);
size_t println(unsigned int n, int base = DEC);
size_t println(double n, int digits = 2);
size_t println(void);

这些函数可以帮助开发者实现蓝牙串口通信的相关操作。同时,Arduino开发环境中也提供了丰富的示例代码,可以帮助开发者快速上手使用蓝牙串口功能。

二. 代码示例

  1. 实现了 通过蓝牙一直发送hello world!
#include <BluetoothSerial.h>
BluetoothSerial SerialBT;

//ESP32 Bluetooth initialization and data transmission

//Initialize the Bluetooth module
 void setup(){ 
 Serial.begin(9600); 
 SerialBT.begin("ESP32"); //Set your ESP32 device name here
 Serial.println("Bluetooth is ready"); }
//Sending data 
void loop(){ 
SerialBT.print("Hello World!"); 
//Send data over Bluetooth 
Serial.println("Data sent"); 
delay(1000); 
}

  1. 通过蓝牙控制一个LED的亮灭
#include <Arduino.h>
#include <BluetoothSerial.h>
BluetoothSerial SerialBT;

//ESP32 Bluetooth initialization and data transmission

//Initialize the Bluetooth module
String BTData;
 void setup(){ 
pinMode(2,OUTPUT); // 对应led的管脚
 Serial.begin(9600); 
 SerialBT.begin("ESP32"); //Set your ESP32 device name here
 Serial.println("Bluetooth is ready"); 
  digitalWrite(2,LOW);
 }
//Sending data 
void CallBTData(String Data );
void loop(){ 
    if (SerialBT.available()) {
        BTData = SerialBT.readStringUntil('\xff');
        SerialBT.println(BTData);
        CallBTData(BTData);  // 蓝牙事件的处理
        //Serial.write(SerialBT.read());
    }

}

void CallBTData(String Data ){
   if(Data.substring(0,3) == "OON"){
        Serial.println("蓝牙事件:打开LED") ;
          digitalWrite(2,LOW);
        }

  else if(Data.substring(0,3) == "OFF"){
        Serial.println("蓝牙事件:关闭LED");
          digitalWrite(2,HIGH);
   
        } 
}

本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~

  • 6
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

おもいね

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值