回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕学编程】Arduino动手做(230)---使用BluetoothSerial库测试 ESP32-CAM 经典蓝牙 简单

头像 驴友花雕 2024.10.22 11 0

02.jpg

ESP32-CAM 是一款非常小的摄像头模块,配备 ESP32-S 芯片。除了 OV2640 摄像头和几个用于连接外围设备的 GPIO 外,它还具有一个 microSD 卡插槽,可用于存储使用摄像头拍摄的图像或存储文件以提供给客户。包括乐鑫 ESP32-S Wifi + 蓝牙+BLE 芯片、2MP 摄像头模块 OV2640 和带有 CH340 UART 芯片的 USB 编程适配器。

ESP32-Cam 是一款运行在 ESP32-S 芯片上并使用 OV2640 摄像头的小型摄像头模块。ESP32_Cam 也可以 OV7670 摄像头,但 OV2640 更好(更高的分辨率和内置的 JPEG 编码,这消除了 ESP32-S 的处理任务)。

ESP-32 Cam 规格
ESP-32 系列
它支持 Wi-Fi (802.11b/g/n)
支持蓝牙 (4.2 带 BLE)
内置 LED 闪光灯
9 个 IO 端口
支持 UART、SPI、I2C 和 PWM
内置 micro SD 读卡器
输入电源:3.3V / 5V(据报道,5V 供电比 3.3V 更稳定)

OV2640 摄像头
2 百万像素
阵列尺寸:UXGA (1600 x 1200)
镜头尺寸:1/4 英寸(6.35 毫米)
最大图像传输速率:15 帧/秒

 

06.jpg

ESP32-CAM 是一款具有摄像头功能的物联网模块,它支持经典蓝牙通信,以下是关于其经典蓝牙方面的介绍:
1、蓝牙功能支持:
ESP32-CAM 所使用的 ESP32 芯片本身内置了蓝牙功能,这使得 ESP32-CAM 能够与其他支持蓝牙的设备进行通信。经典蓝牙在 ESP32-CAM 中可实现数据的传输、接收以及与其他蓝牙设备的连接和交互。

2、通信距离和稳定性:
通信距离方面,在没有障碍物的理想环境下,ESP32-CAM 的经典蓝牙通信距离一般可以达到 10 米左右,但实际的通信距离可能会受到周围环境中障碍物(如墙壁、金属物体等)的影响而有所减少。
在稳定性上,ESP32-CAM 的经典蓝牙通信相对比较稳定,能够在一定程度上保证数据传输的可靠性。不过,如果在电磁干扰较强的环境中,可能会出现通信不稳定的情况。

3、应用场景:
远程监控与控制:可以与智能手机或其他蓝牙设备配对,实现对 ESP32-CAM 所连接的摄像头的远程监控和控制。例如,用户可以通过手机上的应用程序查看摄像头拍摄的画面,并控制摄像头的拍摄角度、拍照等操作。
数据传输:能够将摄像头拍摄到的数据通过经典蓝牙传输到其他设备上进行存储或进一步处理。比如,将拍摄的照片或视频传输到手机、平板电脑或电脑等设备上。
与其他蓝牙设备联动:可以与其他支持蓝牙的传感器、执行器等设备进行联动,实现更复杂的物联网应用。例如,与蓝牙温湿度传感器连接,将环境数据与摄像头拍摄的画面一起传输和处理。

4、开发与编程:
在开发方面,使用 Arduino IDE 等开发环境对 ESP32-CAM 的经典蓝牙功能进行编程。开发者可以通过调用相关的蓝牙库函数,实现蓝牙设备的搜索、连接、数据传输等操作。
需要注意的是,在编程过程中,要正确配置蓝牙的参数,如蓝牙设备名称、配对密码等,以确保蓝牙通信的正常进行。

 

76-2.jpg

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
 项目实验之二十八:使用BluetoothSerial库测试 ESP32-CAM 经典蓝牙

实验开源代码

 

代码
/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
  项目实验之二十八:使用BluetoothSerial库测试 ESP32-CAM 经典蓝牙
*/

#include "BluetoothSerial.h"

BluetoothSerial SerialBT;  //定义一个蓝牙对象

void setup() {
  Serial.begin(115200);
  SerialBT.begin("ESP32Fish");  //蓝牙的名字叫ESP32Fish, 从机模式
  Serial.println("The device started, now you can pair it with bluetooth!");
}

void loop() {
  char buf[129];
  //判断是否接收到数据
  if(SerialBT.available())
  {
  
    auto sz = SerialBT.readBytes(buf, 128); //从蓝牙接收数据
    if(sz)
    {
      buf[sz] = 0;
      Serial.println(buf);
      strcat(buf, " - Slave");
      SerialBT.write((uint8_t*)buf, strlen(buf));  //从蓝牙发送数据
    }
  }

  delay(20);
}

在手机端打开《蓝牙串口 SPP》app,连接ESP32,发送信息

 

76-1.jpg

实验串口返回情况

 

76.jpg

评论

user-avatar
icon 他的勋章
    展开更多