ESP32 和 Arduino 之间建立蓝牙连接

ESP32 和 Arduino Uno 可以通过蓝牙进行通信。为此,您必须使用与 Arduino 兼容的蓝牙模块。我们将使用 HC-05(06) 蓝牙模块。

连接Arduino Uno和HC-05蓝牙模块

将 HC-05 蓝牙模块连接到 Arduino 板。将模块的VCC、GND、RX、TX引脚连接到Arduino的相应引脚,如下所示:

使用 Arduino IDE 进行蓝牙通信的 ESP32 代码

#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
uint8_t address_hc06[6] = {0x98, 0xDA, 0x60, 0x01, 0xF0, 0x57}; // HC-06的地址
String name_hc06 = "HC-06";  // HC-06的名字

bool connected;
void setup() {
  Serial.begin(115200);  // 用物理串行接口来输出字符串看是否连接成功
  SerialBT.begin("ESP32_bluetooth", true);   // 蓝牙名字任意
  Serial.println("ESP32 started in master mode!");//ESP32开始进入主模式
  connected = SerialBT.connect(address_hc06); // 通过地址匹配HC-06
  //connected = SerialBT.connect(name_hc06);  // 也可以通过名称匹配HC-06

  if(connected) {
    Serial.println("Connected!");
  } else {
    while(!SerialBT.connected(10000)) {         // 10秒的timeout时间
      Serial.println("Failed to connect.");
    }
  }
}
void loop() {
  if (Serial.available()) {
    SerialBT.write(Serial.read());//可以替换成自己的代码。
  }
  if (SerialBT.available()) {
    Serial.write(SerialBT.read());//可以替换成自己的代码。
  }
  delay(20);
}

用于蓝牙通信的 Arduino Uno 代码

#include <SoftwareSerial.h> 
SoftwareSerial BTSerial(2,3); // RX、TX 使用软串口与以上的图片连接方式不同。
void setup() { 
  Serial.begin(9600); 
  BTSerial.begin(38400); 

void Loop() { 
  if (BTSerial.available()) { 
    Serial.write(BTSerial.read()); } 
  } 
  if (Serial.available()) { 
    BTSerial.write(Serial.read()); 
  } 
}

注意:使用以前检查hc-06是否与别的模块配对,模块上的指示灯常亮表示已经配对,如果是这样必须首先取消与其他设备的配对,否则也无法成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/587186.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1.4 Java全栈开发前端+后端(全栈工程师进阶之路)-前置课程java基础语法、java面向对象编程

Java核心语法&#xff1a; 对象&#xff1a;对象是类的一个实例&#xff08;对象不是找个女朋友&#xff09;&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对象&#xff0c;它的状态有&#xff1a;颜色、名字、品种&#xff1b;行为有&#xff1a;摇尾巴、叫、吃等。…

目前全球各类遥感卫星详细介绍

一、高分一号 高分一号&#xff08;GF-1&#xff09;是中国高分辨率对地观测系统重大专项&#xff08;简称高分专项&#xff09;的第一颗卫星。“高分专项”于2010年5月全面启动&#xff0c;计划到2020年建成中国自主的陆地、大气和海洋观测系统。 高分一号&#xff08;GF-1&…

Open Life Science AI (OLSA)

文章目录 关于 Open Life Science ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/16d93b633c8442cc93ee6433ceea38e9.png 500x)关于 Open Life Science AI 关于 Open Life Science Open Life Science 是一个非营利组织。 官网&#xff1a; https://openlifesci…

实习面试算法准备之图论

这里写目录标题 1 基础内容1.1 图的表示1.2图的遍历 2 例题2.1 所有可能的路径2.2 课程表&#xff08;环检测算法&#xff09;2.2.1 环检测算法 DFS版2.2.2 环检测算法 BFS版 2.3 课程表 II &#xff08;拓扑排序算法&#xff09;2.3.1 拓扑排序 DFS版 1 基础内容 图没啥高深的…

【分布式通信】NPKit,NCCL的Profiling工具

NPKit介绍 NPKit (Networking Profiling Kit) is a profiling framework designed for popular collective communication libraries (CCLs), including Microsoft MSCCL, NVIDIA NCCL and AMD RCCL. It enables users to insert customized profiling events into different C…

Java项目:88 springboot104学生网上请假系统设计与实现

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本学生网上请假系统管理员&#xff0c;教师&#xff0c;学生。 管理员功能有个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;班级信息…

程序员与土地的关系

目录 一、土地对人类的重要性 二、程序员与土地的关系 二、程序员如何利用GIS技术改变土地管理效率&#xff1f; 四、GIS技术有哪些运用&#xff1f; 五、shapely库计算多边形面积的例子 一、土地对人类的重要性 土地资源对人类是至关重要的。土地是人类赖…

力扣HOT100 - 131. 分割回文串

解题思路&#xff1a; class Solution {List<List<String>> res new ArrayList<>();List<String> pathnew ArrayList<>();public List<List<String>> partition(String s) {backtrack(s,0);return res;}public void backtrack(Str…

Windows下面源码安装PostgreSQL

目录 一、环境&#xff1a; 二、安装MSYS2 三、安装PG 四、初始化数据库 五、启停数据库 六、调试PG 平时我们在LINUX下&#xff0c;使用源码安装PG的比较多&#xff0c;但在WINDOWS下安装&#xff0c;一般是使用二机制安装包来安装&#xff0c;能否使用源码来安装呢&…

力扣82-链表、迭代 的思考

题目解读 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 两个示范 思考 返回链表&#xff1a;返回更新链表后的头结点&#xff1b; 更新链表&#xff1a;判断重复元素&#xff0c;改变指针…

政府统计中如何使用大数据

当今世界&#xff0c;科技进步日新月异&#xff0c;互联网、云计算、大数据等现代信息技术深刻改变着人类的思维、生产、生活、学习方式。信息技术与经济社会的交汇融合引发了数据爆发式增长&#xff0c;数据已成为重要生产要素和国家基础性战略资源。近年来&#xff0c;国家统…

AI家居设备的未来:智能家庭的下一个大步

&#x1f512;目录 ☂️智能家居设备的发展和AI技术的作用 ❤️AI技术实现智能家居设备的自动化控制和智能化交互的依赖 AI家居设备的未来应用场景 &#x1f4a3;智能家庭在未来的发展和应用前景 &#x1f4a5;智能家居设备的发展和AI技术的作用 智能家居设备的发展和AI技术的…

【webrtc】MessageHandler 9: 基于线程的消息处理:执行Port销毁自己

Port::Port 构造的时候,就触发了一个异步操作,但是这个操作是要在 thread 里执行的,因此要通过post 消息 MSG_DESTROY_IF_DEAD 到thread跑:port的创建并米有要求在thread中 但是port的析构却在thread里 这是为啥呢?

【C# IO操作专题】

FileStream 是一个在多种编程语言中常见的概念&#xff0c;它代表了一个用于读写文件的流。在不同的编程语言中&#xff0c;FileStream 的实现和使用方式可能会有所不同&#xff0c;但基本概念是相似的&#xff1a;它允许程序以流的形式访问文件&#xff0c;即可以顺序地读取或…

二分图--判定以及最大匹配

水了个圈钱杯省一&#xff0c;不过估计国赛也拿不了奖&#xff0c;但还是小小挣扎一下。 什么是二分图&#xff1a;G(V,E)是一个无向图&#xff0c;若顶点V可以分为两个互不相交的子集A,B&#xff0c;并图中的每一条边&#xff08;i,j)所关联的ij属于不同的顶点集&#xff0c;…

2024 华东杯高校数学建模邀请赛(A题)| 比赛出场顺序 | 建模秘籍文章代码思路大全

铛铛&#xff01;小秘籍来咯&#xff01; 小秘籍团队独辟蹊径&#xff0c;以图匹配&#xff0c;多目标规划等强大工具&#xff0c;构建了这一题的详细解答哦&#xff01; 为大家量身打造创新解决方案。小秘籍团队&#xff0c;始终引领着建模问题求解的风潮。 抓紧小秘籍&#x…

24 JavaScript学习:this

this在对象方法中 在 JavaScript 中&#xff0c;this 的值取决于函数被调用的方式。在对象方法中&#xff0c;this 引用的是调用该方法的对象。 让我们看一个简单的例子&#xff1a; const person {firstName: John,lastName: Doe,fullName: function() {return this.firstN…

批处理优化

1.4、总结 Key的最佳实践 固定格式&#xff1a;[业务名]:[数据名]:[id]足够简短&#xff1a;不超过44字节不包含特殊字符 Value的最佳实践&#xff1a; 合理的拆分数据&#xff0c;拒绝BigKey选择合适数据结构Hash结构的entry数量不要超过1000设置合理的超时时间 2、批处理优…

cnPuTTY 0.81.0.1—PuTTY Release 0.81中文版本简单说明~~

2024-04-15 官方发布PuTTY 0.81本次发布主要修复了使用521位ECDSA密钥时的一个严重漏洞(CVE-2024-31497)。 如果您使用521位ECDSA私钥与任何早期版本的PuTTY组合&#xff0c;请考虑私钥已泄露的问题。强烈建议从相关文件中删除公钥&#xff0c;并使用新版本程序重新生成密钥对。…

6.C++模板(超全)

目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.2 函数模板的原理 2.3 函数模板的实例化 2.4 模板参数的匹配原则 3. 类模板 1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& right) {int temp left;…