193浏览
查看: 193|回复: 3

[项目] 【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID

[复制链接]
【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID图1

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 帧/秒


【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID图2

驴友花雕  中级技神
 楼主|

发表于 2024-9-21 15:43:15

【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
  项目实验之十六:查询 ESP32-CAM 芯片ID(MAC地址)

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
  4.   项目实验之十六:查询 ESP32-CAM 芯片ID(MAC地址)
  5. */
  6. #include <Arduino.h>
  7. // 定义一个变量用于存储芯片ID
  8. uint32_t chipId = 0;
  9. void setup() {
  10.   // 初始化串口通信,波特率设置为115200
  11.   Serial.begin(115200);
  12.   // 打印初始化完成信息
  13.   Serial.println("ESP32-CAM 准备就绪!");
  14.   Serial.println(" ");
  15. }
  16. void loop() {
  17.   // 通过循环计算芯片ID
  18.   // ESP.getEfuseMac() 获取芯片的MAC地址
  19.   // 通过位移和按位与操作提取MAC地址的部分值并组合成芯片ID
  20.   for (int i = 0; i < 17; i = i + 8) {
  21.     chipId |= ((ESP.getEfuseMac() >> (40 - i)) & 0xff) << i;
  22.   }
  23.   // 打印ESP32芯片的型号和版本
  24.   // ESP.getChipModel() 获取芯片型号
  25.   // ESP.getChipRevision() 获取芯片版本
  26.   Serial.printf("ESP32芯片型号 = %s Rev %d\n", ESP.getChipModel(), ESP.getChipRevision());
  27.   
  28.   // 打印芯片的核心数量
  29.   // ESP.getChipCores() 获取芯片的核心数量
  30.   Serial.printf("这个芯片有 %d cores\n", ESP.getChipCores());
  31.   
  32.   // 打印芯片ID
  33.   Serial.print("芯片 Chip ID: ");
  34.   Serial.println(chipId);
  35.   
  36.   // 延时3秒,避免串口输出过于频繁
  37.   delay(3000);
  38. }
复制代码



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-21 15:47:03

【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID

本帖最后由 驴友花雕 于 2024-9-21 15:48 编辑

代码解读
1、初始化串口通信:在setup函数中,通过Serial.begin(115200)初始化串口通信,设置波特率为115200,以便在串口监视器中查看输出信息。
2、计算芯片ID:在loop函数中,通过读取ESP32的efuse MAC地址并进行位移和按位与操作,计算出芯片ID。ESP.getEfuseMac()函数返回3、芯片的MAC地址,通过位移和按位与操作提取MAC地址的部分值并组合成芯片ID。
3、打印芯片信息:使用Serial.printf函数打印ESP32芯片的型号、版本和核心数量,方便了解芯片的基本信息。ESP.getChipModel()函数获取芯片型号,ESP.getChipRevision()函数获取芯片版本,ESP.getChipCores()函数获取芯片的核心数量。
4、打印芯片ID:通过Serial.print和Serial.println函数打印计算出的芯片ID,便于唯一标识每个ESP32芯片。
5、延时控制:在主循环中添加一个3秒的延时(delay(3000)),避免串口输出过于频繁,影响观察效果。

实验串口返回情况

【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-9-21 15:53:54

【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID

实验场景图

【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID图1
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail