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

【花雕学编程】Arduino动手做(232)---综合采集ESP32-S3 N16R8 CAM的各种参数并串口输出 简单

头像 驴友花雕 2024.09.24 17 0

000-.jpg
000-0.jpg
09-.jpg

  【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、芯片复位原因与架构信息:
打印芯片复位原因和架构信息,帮助诊断系统问题和了解硬件特性。

 

实验串口返回情况

 

23.jpg

 

实验场景图

 

17.jpg

评论

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