【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十二:ESP32-S3 WROOM N16R8 CAM开发板WiFi+蓝牙模块
OV2640/5640摄像头模组
{花雕动手做}实验之五:综合采集ESP32-S3 N16R8 CAM的各种参数并串口输出
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十二:ESP32-S3 WROOM N16R8 CAM开发板WiFi+蓝牙模块
OV2640/5640摄像头模组
{花雕动手做}实验之五:综合采集ESP32-S3 N16R8 CAM的各种参数并串口输出
*/
#include <WiFi.h>
#include <esp_wifi.h>
#include <esp_system.h>
#include <esp_chip_info.h>
#include <esp_spi_flash.h>
// WiFi网络信息
const char* ssid = "zhz3";
const char* password = "z156721";
void setup() {
// 初始化串口
Serial.begin(115200);
Serial.println(" ");
Serial.println("ESP32-S3 N16R8 CAM 准备就绪!");
Serial.println(" ");
delay(1000);
// 连接WiFi
WiFi.begin(ssid, password);
Serial.print("连接到WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("...");
}
Serial.println(" 接通");
// 打印WiFi信息
Serial.print("IP地址: ");
Serial.println(WiFi.localIP());
Serial.print("信号强度 (RSSI): ");
Serial.println(WiFi.RSSI());
// 打印芯片信息
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
Serial.printf("ESP32 芯片型号: %d\n", chip_info.model);
Serial.printf("芯核数量: %d\n", chip_info.cores);
Serial.printf("芯片修订版本: %d\n", chip_info.revision);
// 打印CPU频率
Serial.printf("CPU 频率: %d MHz\n", getCpuFrequencyMhz());
// 打印内存信息
Serial.printf("当前内存大小: %d bytes\n", esp_get_free_heap_size());
Serial.printf("最小可用堆内存大小: %d bytes\n", esp_get_minimum_free_heap_size());
// 打印芯片温度
Serial.printf("芯片温度: %.2f°C\n", temperatureRead());
// 获取并打印芯片MAC地址
uint64_t chipid = ESP.getEfuseMac();
Serial.printf("芯片MAC地址: %04X%08X\n", (uint16_t)(chipid >> 32), (uint32_t)chipid);
// 打印芯片ID数字形式
uint32_t chipId = 0;
for (int i = 0; i < 17; i = i + 8) {
chipId |= ((chipid >> (40 - i)) & 0xff) << i;
}
Serial.printf("芯片ID : %u\n", chipId);
// 打印芯片架构信息
Serial.printf("芯片架构: %s\n", CONFIG_IDF_TARGET);
// 打印芯片复位原因
esp_reset_reason_t reset_reason = esp_reset_reason();
Serial.printf("复位原因: %d\n", reset_reason);
// 打印WiFi模式
wifi_mode_t mode;
esp_wifi_get_mode(&mode);
Serial.printf("WiFi模式: %d\n", mode);
// 打印WiFi信道
uint8_t primaryChan;
wifi_second_chan_t secondChan;
esp_wifi_get_channel(&primaryChan, &secondChan);
Serial.printf("WiFi信道: %d\n", primaryChan);
// 打印WiFi传输功率
int8_t power;
esp_wifi_get_max_tx_power(&power);
Serial.printf("WiFi传输功率: %d dBm\n", power);
}
void loop() {
// 在这里可以添加其他测试代码
delay(10000); // 每10秒打印一次
}
代码解读
1、WiFi连接与信息打印:
代码中通过WiFi.begin(ssid, password)连接到指定的WiFi网络,并打印连接状态、IP地址和信号强度(RSSI)。
2、芯片信息获取与打印:
使用esp_chip_info_t结构体获取芯片型号、核心数量和修订版本,并通过串口打印出来。
3、系统资源信息打印:
打印CPU频率、当前内存大小、最小可用堆内存大小等系统资源信息,帮助了解系统运行状态。
4、WiFi详细信息获取:
代码扩展了WiFi模式、信道和传输功率的获取和打印,提供更详细的网络状态信息。
5、芯片复位原因与架构信息:
打印芯片复位原因和架构信息,帮助诊断系统问题和了解硬件特性。
实验串口返回情况
实验场景图
评论