170浏览
查看: 170|回复: 4

[项目] 【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描

[复制链接]
【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描图1

处理器:
CPU:Xtensa 双核 32 位 LX6 微处理器,运行频率为 160 或 240 MHz,性能高达 600 DMIPS
超低功耗 (ULP) 协处理器
内存: 520 KiB SRAM
无线连接:
无线网络连接:802.11 b/g/n
蓝牙:v4.2 BR/EDR 和 BLE(与 Wi-Fi 共享无线电)
外设接口:
12 位 SAR ADC,多达 18 个通道
2 × 8 位 DAC
10 × 触摸传感器(电容式传感 GPIO)
4 × SPI
2 个 × I²S 接口
2 个 × I²C 接口
3 × UART
SD/SIO/CE-ATA/MMC/EMMC 主机控制器
SDIO/SPI 从控制器
以太网MAC 接口,支持专用 DMA 和 IEEE 1588 精确时间协议
CAN 总线 2.0
红外遥控器(TX/RX,最多 8 个通道)
电机 PWM
LED PWM(多达 16 个通道)
霍尔效应传感器
超低功耗模拟前置放大器
安全:
全部支持 IEEE 802.11 标准安全功能,包括 WFA、WPA/WPA2 和 WAPI
安全启动
Flash 加密
1024 位 OTP,客户最高 768 位
加密硬件加速:AES、SHA-2、RSA、椭圆曲线加密 (ECC)、随机数生成器 (RNG)
电源管理:
内部低压差稳压器
用于 RTC 的单个电源域
5μA 深度睡眠电流
从 GPIO 中断、定时器、ADC 测量、电容式触摸传感器中断中唤醒
电池管理
用于 3.7v 电池的连接器(如 18650)。


【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描图2

驴友花雕  中级技神
 楼主|

发表于 2024-10-29 14:23:44

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描

ESP32 SPP(Serial Port Profile)是一种基于蓝牙的经典蓝牙串口通信协议,它允许设备之间通过蓝牙进行串口数据传输。在ESP32中,SPP功能可以通过软件协议栈实现,使得ESP32可以作为一个蓝牙串口服务器或客户端与其他蓝牙设备进行通信。

1、Arduino
Arduino 是一种开源硬件和软件平台,用于制作电子项目和物联网(IoT)设备。它包括一个开发板和一套编程环境,使用户可以通过简单的代码来控制各种电子元件。

2、ESP32
ESP32 是由 Espressif Systems 设计的一款单片机(SoC),集成了 Wi-Fi 和蓝牙功能。它广泛应用于移动设备、可穿戴设备和物联网(IoT)应用。ESP32 提供丰富的外设接口和高性能,非常适合开发各种嵌入式系统。

3、SPP(Serial Port Profile)
SPP(Serial Port Profile) 是蓝牙协议中的一种,它模拟了传统的 RS-232(UART)串行连接。通过 SPP,ESP32 可以通过蓝牙与其他设备进行数据传输,就像通过串行端口一样。

4、Arduino ESP32 SPP
Arduino ESP32 SPP 指的是使用 Arduino 开发环境在 ESP32 上实现蓝牙串行端口协议(SPP)。通过这种方式,你可以编写代码来控制 ESP32 的蓝牙功能,使其能够与其他蓝牙设备进行通信。

5、全面详细的科学解释
1)Arduino 开发环境:Arduino 提供了一套开发环境,包括编译器、IDE(集成开发环境)和各种库,使用户可以通过简单的代码来控制硬件。
2)ESP32 硬件:ESP32 是一款集成了 Wi-Fi 和蓝牙的单片机,具有多个 GPIO 引脚、ADC、DAC、PWM 等功能,适用于各种嵌入式系统开发。
3)SPP 协议:SPP 是蓝牙协议中的一种,通过模拟 RS-232 串行连接,实现无线数据传输。SPP 通常用于替代传统的串行端口,使设备可以通过蓝牙进行通信。
4)Arduino ESP32 SPP 应用:通过 Arduino 开发环境在 ESP32 上实现 SPP,可以编写代码来初始化蓝牙、发现服务、建立连接、发送和接收数据。这种应用广泛用于物联网设备、远程控制和数据传输等场景。

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-29 15:25:04

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
     实验二百三十七:ESP32 V1.0.0 Rev1 wifi 蓝牙 CH340G 4MB
     FLASH ESP-WROOM-32开发板
   {花雕动手做}项目之三:扫描附近的蓝牙设备并打印设备名称、地址和信号强度

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.      实验二百三十七:ESP32 V1.0.0 Rev1 wifi 蓝牙 CH340G 4MB
  4.      FLASH ESP-WROOM-32开发板
  5.    {花雕动手做}项目之三:扫描附近的蓝牙设备并打印设备名称、地址和信号强度
  6. */
  7. #include <Arduino.h>
  8. #include <BLEDevice.h>
  9. #include <BLEUtils.h>
  10. #include <BLEScan.h>
  11. #include <BLEAdvertisedDevice.h>
  12. class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
  13.   void onResult(BLEAdvertisedDevice advertisedDevice) {
  14.     String deviceName = advertisedDevice.getName().c_str();
  15.     if (deviceName.length() == 0) {
  16.       deviceName = "未知设备";
  17.     }
  18.     Serial.print("设备名称:");
  19.     Serial.println(deviceName);
  20.     Serial.print("设备地址:");
  21.     Serial.println(advertisedDevice.getAddress().toString().c_str());
  22.     Serial.print("信号强度:");
  23.     Serial.println(advertisedDevice.getRSSI());
  24.   }
  25. };
  26. BLEScan* pBLEScan;
  27. void setup() {
  28.   Serial.begin(115200);
  29.   BLEDevice::init("");
  30.   pBLEScan = BLEDevice::getScan();
  31.   pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
  32.   pBLEScan->setActiveScan(true);
  33.   pBLEScan->start(10);
  34.   Serial.println("蓝牙BLE中心设备扫描已完成!");
  35. }
  36. void loop() {
  37.   delay(2000);
  38. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-29 15:28:20

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描

代码解读:
1、库的正确引用:确保只引用一个版本的BLE库,避免多个版本的冲突。通过清理项目缓存和更新库,可以减少冲突的可能性。

2、回调函数的定义:通过继承BLEAdvertisedDeviceCallbacks类,并在其中定义回调函数,处理发现的蓝牙设备信息。这确保了在扫描蓝牙设备时,可以正确处理和显示设备信息。

3、初始化和启动扫描:在setup函数中初始化BLE设备,并配置扫描参数,包括设置回调函数和启动扫描。确保初始化和扫描配置正确。

4、串口调试:通过串口打印调试信息,帮助监控蓝牙扫描过程中的状态和结果。通过串口调试信息,可以了解扫描到的设备和信号强度等信息。

5、代码的健壮性:在回调函数中处理未知设备名等特殊情况,确保代码在处理各种蓝牙设备时的健壮性。通过增加必要的判断和异常处理,提升代码的可靠性。

实验串口返回情况

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描图2

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-29 15:30:42

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描

实验场景图

【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1蓝牙扫描图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail