【花雕学编程】Arduino动手做(234)---WeMos D1 R32 ESP32设置蓝牙串口通信并手机控制板载LED

在这里插入图片描述

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十四:Wemos D1 迷你Arduino Uno R3 D1 R32 ESP32 Wifi蓝牙无线开发板CH340 4M内存

在这里插入图片描述

Wemos D1 ESP32 开发板是一款紧凑而强大的设备,它集成了天线和射频巴伦、功率放大器、低噪声放大器、滤波器和电源管理模块。整个解决方案占用的印刷电路板面积最少。该板采用台积电 40nm 低功耗技术,搭配 2.4GHz 双模 Wi-Fi 和蓝牙芯片,功率和射频性能最佳,安全可靠,可扩展至各种应用。将 WiFi 和蓝牙连接结合在单个 ESP32 芯片上。Wemos D1 ESP32 开发板是基于乐鑫 ESP32 芯片的开发板。它具有 Wi-Fi 和蓝牙连接,以及一系列用于连接传感器、执行器和其他设备的输入和输出引脚。该板具有高性能处理器和广泛的功能,是物联网和家庭自动化项目的理想选择。此外,该板具有易于使用的界面,采用 Arduino UNO 外形尺寸,并与 Arduino 平台兼容,可以轻松开发项目并与其他设备集成。借助 Wemos D1 ESP32 开发板,您可以轻松地为各种应用创建智能、互联的解决方案。该板的一些规格包括:

  • 240 MHz 双核 LX6 芯片
  • Wi-Fi 802.11 b/g/n 连接
  • 蓝牙 4.2 BLE 连接
  • 4 MB 闪存
  • 520 KB SRAM
  • 30 针输入/输出,包括 GPIO、I2C、SPI、UART 和 ADC
  • MicroSD支持
  • LiPo电池充电支持
    该板与 Arduino 平台兼容,可以使用 Arduino IDE 进行编程。此外,它还支持 MicroPython 平台,该平台允许使用 Python 进行编程。
    在这里插入图片描述
    在这里插入图片描述
    ESP32是一款功能强大的微控制器,内置了Wi-Fi和蓝牙功能。特别是其低功耗蓝牙(BLE)功能,使其在物联网(IoT)应用中非常受欢迎。以下是对ESP32 BLE的详细介绍:

1、BLE基础知识
BLE(Bluetooth Low Energy)是一种专为低功耗、短距离通信设计的无线技术。它在2.4 GHz ISM频段运行,适用于需要传输少量数据的电池供电设备,如可穿戴设备和传感器1。

2、ESP32的BLE功能
ESP32支持双模蓝牙,包括经典蓝牙(BR/EDR)和低功耗蓝牙(BLE)。其BLE功能具有以下特点:
多角色支持:ESP32可以同时作为BLE服务器和客户端运行。
高效的电源管理:BLE的设计使其在不活动时消耗极少的电力,非常适合电池供电的设备。
丰富的库支持:ESP32的开发环境(如ESP-IDF和Arduino IDE)提供了丰富的BLE库,简化了开发过程。

3、BLE架构
ESP32的BLE架构分为控制器(Controller)和主机(Host)两部分:
控制器:负责物理层和链路层的处理,包括发送和接收无线电信号。
主机:管理设备间的通信协议和数据处理,提供应用层接口。

4、应用场景
智能家居:通过BLE连接智能灯泡、门锁等设备,实现远程控制和自动化。
健康监测:结合心率监测器、血氧仪等设备,实时监测健康数据。
环境监测:使用BLE传感器网络,监测温度、湿度、空气质量等环境参数。

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十四:Wemos D1 迷你Arduino Uno R3 D1 R32 ESP32
Wifi蓝牙无线开发板CH340 4M内存
{花雕动手做}项目之三:WeMos D1 R32 ESP32设置蓝牙串口通信并
手机控制板载LED

实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
    实验二百三十四:Wemos D1 迷你Arduino Uno R3 D1 R32 ESP32
    Wifi蓝牙无线开发板CH340 4M内存
  {花雕动手做}项目之三:WeMos D1 R32 ESP32设置蓝牙串口通信并
  手机控制板载LED
*/

#include <BluetoothSerial.h> // 引入蓝牙串口库

BluetoothSerial SerialBT; // 创建蓝牙串口对象

#define LED_PIN 2 // 定义LED引脚为2

void setup() {
  Serial.begin(115200); // 初始化串口通信,波特率为115200
  SerialBT.begin("ESP32_BT"); // 初始化蓝牙串口,设置蓝牙设备名称为"ESP32_BT"
  pinMode(LED_PIN, OUTPUT); // 设置LED引脚为输出模式
  Serial.println("蓝牙串口通信已启动"); // 输出启动信息
}

void loop() {
  if (SerialBT.available()) { // 检查是否有蓝牙数据可读
    String data = SerialBT.readString(); // 读取蓝牙数据
    Serial.print("接收到数据:");
    Serial.println(data); // 在串口监视器上打印接收到的数据

    // 处理接收到的数据
    processData(data);

    // 发送响应
    SerialBT.print("已收到数据"); // 通过蓝牙发送响应
  }
}

void processData(String data) {
  // 这里可以添加对接收到的数据的处理逻辑
  if (data == "LED_ON") {
    digitalWrite(LED_PIN, HIGH); // 打开LED
    Serial.println("LED已打开");
  } else if (data == "LED_OFF") {
    digitalWrite(LED_PIN, LOW); // 关闭LED
    Serial.println("LED已关闭");
  } else {
    Serial.println("未知命令");
  }
}

程序解读
1、定义LED引脚:使用#define LED_PIN 2将LED引脚定义为2,解决了未声明的错误1。
2、引脚模式设置:在setup()函数中,使用pinMode(LED_PIN, OUTPUT)将LED引脚设置为输出模式。
3、数据读取与处理:在loop()函数中,读取蓝牙数据并调用processData()函数处理接收到的数据。
4、LED控制:在processData()函数中,根据接收到的命令控制LED的开关状态。
5、响应发送:处理完数据后,通过蓝牙发送响应,告知数据已收到。

实验串口返回情况

在这里插入图片描述

打开手机蓝牙,设备配对

在这里插入图片描述

打开手机APP——SPP蓝牙串口,连接后,在聊天窗口输入

在这里插入图片描述
实验串口返回情况

在这里插入图片描述
实验场景图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

驴友花雕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值