0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP32-S3在ardinuo上如何与手机进行蓝牙互传?现在来教你!

瞿小洲 来源:jf_33322995 作者:jf_33322995 2024-07-05 10:05 次阅读

先简单介绍一下:

ESP32-S3 是一款低功耗的 MCU 系统级芯片 (SoC),支持2.4GHz Wi-Fi和低功耗蓝牙(Bluetooth LE)无线通信。芯片集成了高性能的Xtensa32位LX7双核处理器、超低功耗协处理器、Wi-Fi 基带、蓝牙基带、RF模块以及外设。

来看esp32 S3的配置

wKgaomaHT8aABd6_AAES0VeI9Fc088.png

支持 IEEE 802.11b/g/n 协议
在 2.4 GHz 频带支持 20 MHz 和 40 MHz 频宽
支持 1T1R 模式,数据速率高达 150 Mbps
低功耗蓝牙 (Bluetooth LE):Bluetooth 5、Bluetooth mesh
高功率模式 (20 dBm)
速率支持 125 Kbps、500 Kbps、1 Mbps、2 Mbps
广播扩展 (Advertising Extensions)
多广播 (Multiple Advertisement Sets)
信道选择 (Channel Selection Algorithm #2)
Wi-Fi 与蓝牙共存,共用同一个天线
Xtensa 32位 LX7双核处理器,主频高达 240MHz
45 × GPIO 口

wKgZomaHUx2AN1NpAALPIY7ydqk129.png

管脚介绍

wKgaomaHU_KAY57JAAML9lX8H2Q588.png

资料为esp32s3的datasheet 可以添加一下我的微信(xinsousou)来向我免费索取哦~

Arduino IDE设置

打开Arduino IDE。

在“工具”菜单中选择“开发板” -> “ESP32 Dev Module”。(注意:可能需要安装ESP32的板管理器URL,具体步骤参考ESP32的官方文档)

选择正确的串行端口和上传速度。

示例代码

cpp
#include     
BluetoothSerial SerialBT;   
void setup() {    
Serial.begin(115200);    // 初始化蓝牙并设置设备名称和PIN码(可选)    
SerialBT.begin("ESP32-S3-Bluetooth", true);    
Serial.println("Bluetooth device started");  
}    
void loop()
 {    // 从串口接收数据并发送到蓝牙    
if (Serial.available()) {      
	char received = Serial.read();      
	SerialBT.write(received);   
}      // 从蓝牙接收数据并发送到串口    
if (SerialBT.available()) {      
	char received = SerialBT.read();      
	Serial.write(received);    
}      // 延迟以减少处理压力    
delay(10);  
}

如果你想让它叫唤起来的话。。。。。

在ESP32-S3 Arduino环境中,如果你想在连接蓝牙后实现亮流水灯并蜂鸣的效果,且不使用外部设备(如额外的LED条或复杂的驱动电路),你可以使用ESP32-S3板载的LED(如果有的话,通常是内置的LED,如用于指示程序运行的LED)和GPIO引脚连接一个LED及一个无源蜂鸣器。我们将使用GPIO引脚来控制额外的LED来模拟流水灯效果。

以下是一个基本的示例代码,用于在ESP32-S3连接蓝牙后,通过蓝牙接收信号(或简单地按时间间隔)来控制GPIO引脚上的LED形成流水灯效果,并同时驱动无源蜂鸣器发声。

首先,你需要连接一个LED和一个无源蜂鸣器到ESP32-S3的GPIO引脚。这里我们LED连接到GPIO 2,蜂鸣器连接到GPIO 13,并都通过适当的电阻连接到GND以限制电流

cpp
#include     
BluetoothSerial SerialBT;    
#define LED_PIN_1 2    // 第一个LED连接的GPIO引脚  
#define LED_PIN_2 14   // 假设我们再连接一个LED到GPIO 14以模拟流水灯效果(可选)  
#define BUZZER_PIN 13  // 蜂鸣器连接的GPIO引脚    // 流水灯LED数组(可以扩展以包含更多LED)  
int ledPins[] = {LED_PIN_1, LED_PIN_2};  
int numLEDs = sizeof(ledPins) / sizeof(ledPins[0]);    
unsigned long previousMillis = 0;        // 上次执行时间  
const long interval = 500;               // 流水灯间隔时间,单位毫秒    
void setup() {    Serial.begin(115200);    // 初始化蓝牙    
SerialBT.begin("ESP32-S3-Bluetooth");    
Serial.println("Bluetooth device started");      // 初始化LED和蜂鸣器引脚为输出    
for (int i = 0; i < numLEDs; i++) 
{      
pinMode(ledPins[i], OUTPUT);    
}    
pinMode(BUZZER_PIN, OUTPUT);  
}    
void loop() {    // 从蓝牙接收数据(这里不直接处理,但你可以根据需要添加代码)      // 流水灯效果    
unsigned long currentMillis = millis();    
if (currentMillis - previousMillis >= interval) {      
previousMillis = currentMillis;        // 关闭所有LED      
for (int i = 0; i < numLEDs; i++) {        
digitalWrite(ledPins[i], LOW);      }        // 点亮下一个LED(循环点亮)      
static int currentLed = 0;      digitalWrite(ledPins[currentLed], HIGH);      
currentLed = (currentLed + 1) % numLEDs;        // 也可以在这里添加驱动蜂鸣器的代码,比如每次流水灯变化时让蜂鸣器响一下      
digitalWrite(BUZZER_PIN, HIGH);      
delay(50); // 蜂鸣器响50毫秒      
digitalWrite(BUZZER_PIN, LOW);    }      // 注意:这里我们没有直接从蓝牙接收信号来控制流水灯,    
// 但你可以通过监听SerialBT.available()并在接收到特定命令时改变流水灯的行为。  
}

使用步骤

上传代码:将ESP32-S3开发板连接到电脑,并在Arduino IDE中上传上述代码。

连接蓝牙

手机上启用蓝牙

打开手机设置,进入蓝牙设置界面。

确保蓝牙功能已开启,并设置为可被发现或可见。

搜索并连接ESP32

在手机的蓝牙设置中,搜索可用的蓝牙设备。

找到ESP32的蓝牙名称(在ESP32的代码中设置),并点击连接。

如果ESP32的蓝牙模块需要配对码(PIN码),请在手机上输入相应的配对码。这个配对码可能在ESP32的代码中预设,或者是在连接过程中由ESP32动态生成的。

数据通信

在Arduino IDE的串口监视器中发送数据,这些数据将被发送到已连接的手机。

在手机上使用蓝牙通信应用(如蓝牙终端或类似应用)发送数据到ESP32-S3,这些数据将在串口监视器中显示。

注意事项

确保ESP32-S3和手机在同一蓝牙频道上。

蓝牙通信的可靠性和距离可能会受到环境和其他无线设备的影响。

蓝牙名称和密码(如果设置了)应与手机中显示的一致。

通过以上步骤,能够使用ESP32-S3与手机通过蓝牙进行基本的数据传输。

为了支持您的项目开发需求,我们特别准备了详尽的开发资料(有例程)。若您对此感兴趣,并希望获得这些宝贵的资源以助力您的项目进展,欢迎添加我的微信(限前50位)xinsousou。我将免费为您发送这些资料,希望能为您的开发工作带来便利与启发,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    114

    文章

    5809

    浏览量

    170184
  • wi-fi
    +关注

    关注

    14

    文章

    2132

    浏览量

    124421
  • 低功耗
    +关注

    关注

    10

    文章

    2396

    浏览量

    103670
  • ESP32
    +关注

    关注

    18

    文章

    971

    浏览量

    17200
  • ardinuo
    +关注

    关注

    0

    文章

    1

    浏览量

    1460
收藏 人收藏

    评论

    相关推荐

    【AI技术支持】ESP32-S3模组EspBleOTA搜索不到ble_ota例程的蓝牙问题处理

    启明云端/01问题描述智能标识牌使用ESP32-S3-WROOM-1U模组,ESP-IDF版本为idf5.0.2时,客户
    的头像 发表于 12-13 18:06 85次阅读
    【AI技术支持】<b class='flag-5'>ESP32-S3</b>模组EspBleOTA搜索不到ble_ota例程的<b class='flag-5'>蓝牙</b>问题处理

    请问ESP32-S3蓝牙是否支持SPP?

    由于需要支持RGB565的LCD,选型ESP32-S3。 看介绍,ESP32-S3蓝牙似乎取消了对经典蓝牙的支持。 以前是使用STM32+HC-05模块连接,需要设置ROLE=1主角
    发表于 07-01 08:07

    ESP32-S3自带了蓝牙,是否可以做蓝牙音箱呢?

    因为我是新手,我都没有好好玩基础开发板,上来就买了ESP32-S3,当时不太懂,看说明有双模蓝牙的,但真正拿到后开始学习才发现,蓝牙音箱是要用基础蓝牙才可以做。 但是作为新产品,不是向
    发表于 07-01 07:45

    ESP32-S3芯片赋能设备,打造智能交互新体验

    物联网和人工智能(AI)技术融合的浪潮中,乐鑫ESP32-S3芯片以其卓越的性能和多功能性,成为智能家居和工业自动化领域的明星产品。ESP32-S3是一款基于XtensaLX7处理器的嵌入式系统级
    的头像 发表于 06-28 08:04 875次阅读
    <b class='flag-5'>ESP32-S3</b>芯片赋能设备,打造智能交互新体验

    esp32-S3支持arduino编程吗?

    arduino选开发板的时候没有es32-s3, 只有s2可选。 请问: 1. esp32-S3支持arduino编程吗 2. arduino下sample下的BLE库能用吗? 3.
    发表于 06-27 08:23

    如何关闭ESP32-S3中的FPU浮点数计算单元?

    如何关闭ESP32-S3中的FPU浮点数计算单元。如题,之前的项目esp32s2 上面运行良好,但是移植到esp32s3后由于fpu造成
    发表于 06-27 07:32

    esp-idf使用esp32-s3跑lvgl8,界面刷新很卡顿,如何对其进行帧率优化呢?

    esp-idf使用esp32-s3跑lvgl8,界面刷新很卡顿,如何对其进行帧率优化呢?
    发表于 06-19 07:54

    VScode目标设备选择esp32-s3时报错的原因?

    使用VS code编辑和编译esp32-s3,目标设备选择esp32-s3时报错,报错信息如附件图一 目标设备选择esp32-s3时报错信息 : 使用esp32-s2时编译和下载运行都
    发表于 06-19 06:45

    如何降低esp32-s3 ble功耗?

    当前仅使用esp32-s3 的ble与手机通讯,双核跑240Mhz。大概每50ms发送32字节。未开启modem sleep时电流为180ma,开启modem sleep后为140ma。请问下是否处于正常工况?有没有什么另外的
    发表于 06-14 07:13

    esp32-s3蓝牙仅支持BLE 5.0吗?

    1. esp32-s3蓝牙仅支持BLE 5.0吗?经典蓝牙是否支持,以及BLE 5.1 5.2 5.3是否支持 2. 如何选择1M 或2M 的phy?似乎没看到相应的api
    发表于 06-13 06:48

    请问ESP32-S3如何驱动QSPI接口的LCD?

    目前项目用ESP32-S3驱动QSPI接口的LCD,驱动IC为GC9B71(规格书参考附件)。试着ESP-IDF的范例spi_lcd_touch_example_main基础修改了
    发表于 06-07 06:51

    分享6个实用的ESP32-S3物联网项目:从智能设备到安全创新

    ESP32-S3是物联网领域的创新之一,具备2.4GHz Wi-Fi和蓝牙连接、先进的安全功能和各种接口协议的外设。该双核微控制器基于TSMC超低功耗40nm技术构建,适合轻量级AI应用。兼具
    的头像 发表于 05-17 10:15 755次阅读

    ESP32-S3模组烧录又失败?分享怎么排查原因

    ESP32-S3模组物联网中非常好用,可以做带屏小音箱、温控器、智能86盒、泳池清洁机器人等等,烧录的时候经常会遇到一些问题,这里分享一些烧录失败的原因或者烧录遇到的问题,教大家怎么排查原因
    的头像 发表于 05-11 08:04 3072次阅读
    <b class='flag-5'>ESP32-S3</b>模组烧录又失败?分享怎么排查原因

    借助ESP32-S3主控MCU、ChirpLAN™小网关搭建大网络

    借助先进的ESP32-S3主控MCU,ChirpLAN™小网关为您带来前所未有的网络体验。
    的头像 发表于 03-14 10:02 1000次阅读

    ESP32-S3 Wifi模组智慧酒店的应用

    ESP32-S3凭借其强大的计算能力和丰富的内存,有着丰富的创新应用,如语音交互、智能音频和基于机器学习的预见性维护设备等,经常会被应用到智慧酒店中。小启跟大家讲下ESP
    的头像 发表于 01-06 08:03 654次阅读
    <b class='flag-5'>ESP32-S3</b> Wifi模组<b class='flag-5'>在</b>智慧酒店的应用