【花雕学编程】Arduino动手做(230)---查询ESP32-CAM芯片ID
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
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之十六:查询 ESP32-CAM 芯片ID(MAC地址)
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十:ESP32 CAM开发板 带OV2640摄像头模块 WIFI+蓝牙模块
项目实验之十六:查询 ESP32-CAM 芯片ID(MAC地址)
*/
#include <Arduino.h>
// 定义一个变量用于存储芯片ID
uint32_t chipId = 0;
void setup() {
// 初始化串口通信,波特率设置为115200
Serial.begin(115200);
// 打印初始化完成信息
Serial.println("ESP32-CAM 准备就绪!");
Serial.println(" ");
}
void loop() {
// 通过循环计算芯片ID
// ESP.getEfuseMac() 获取芯片的MAC地址
// 通过位移和按位与操作提取MAC地址的部分值并组合成芯片ID
for (int i = 0; i < 17; i = i + 8) {
chipId |= ((ESP.getEfuseMac() >> (40 - i)) & 0xff) << i;
}
// 打印ESP32芯片的型号和版本
// ESP.getChipModel() 获取芯片型号
// ESP.getChipRevision() 获取芯片版本
Serial.printf("ESP32芯片型号 = %s Rev %d\n", ESP.getChipModel(), ESP.getChipRevision());
// 打印芯片的核心数量
// ESP.getChipCores() 获取芯片的核心数量
Serial.printf("这个芯片有 %d cores\n", ESP.getChipCores());
// 打印芯片ID
Serial.print("芯片 Chip ID: ");
Serial.println(chipId);
// 延时3秒,避免串口输出过于频繁
delay(3000);
}
【花雕学编程】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]