【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集
ESP32-S3 UNO 开发板是基于 ESP32-S3-WROOM-1-N16R8 微控制器的扩展板,基于 Arduino 开发板架构。凭借 2.4GHz Wi-Fi 和集成蓝牙 5.0 等高级功能,它为开发各种项目提供了一个强大的平台。ESP32-S3 UNO 配备 16MB 闪存和 8MB RAM,特别适用于物联网 (IoT)、机器人和其他工程项目的复杂应用。该开发板支持 Python 和 C 等流行的编程语言,可以在 Arduino IDE 开发环境中轻松编程和使用。该板的高级功能,包括对多种通信协议的支持和高处理能力,使其成为专业工程师和开发人员的理想工具。
【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
{花雕动手做}项目之三:综合采集ESP32-S3 UNO(N16R8)的各种参数并串口输出
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
{花雕动手做}项目之三:综合采集ESP32-S3 UNO(N16R8)的各种参数并串口输出
*/
#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 UNO(N16R8)准备就绪!");
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秒打印一次
}
【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集
代码解读:1、初始化串口通信:
Serial.begin(115200);
Serial.println(" ");
Serial.println("ESP32-S3 UNO(N16R8)准备就绪!");
Serial.println(" ");
delay(1000);
Serial.begin(115200);:设置串口通信的波特率为115200。
Serial.println(" ");:打印一个空行。
Serial.println("ESP32-S3 UNO(N16R8)准备就绪!");:打印一条消息,表示开发板已准备就绪。
delay(1000);:延迟1秒,给系统一些时间进行初始化。
2、连接WiFi:
WiFi.begin(ssid, password);
Serial.print("连接到WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("...");
}
Serial.println(" 接通");
WiFi.begin(ssid, password);:开始连接到指定的WiFi网络。
Serial.print("连接到WiFi");:打印连接WiFi的提示信息。
while (WiFi.status() != WL_CONNECTED) { ... }:循环等待,直到WiFi连接成功。
Serial.println(" 接通");:打印连接成功的消息。
3、打印WiFi信息:
Serial.print("IP地址: ");
Serial.println(WiFi.localIP());
Serial.print("信号强度 (RSSI): ");
Serial.println(WiFi.RSSI());
Serial.print("IP地址: ");:打印“IP地址”提示。
Serial.println(WiFi.localIP());:打印设备的IP地址。
Serial.print("信号强度 (RSSI): ");:打印“信号强度”提示。
Serial.println(WiFi.RSSI());:打印WiFi信号强度(RSSI)。
4、打印芯片信息:
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);
esp_chip_info_t chip_info;:定义一个结构体变量来存储芯片信息。
esp_chip_info(&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);:打印芯片的修订版本。
5、打印CPU频率:
Serial.printf("CPU 频率: %d MHz\n", getCpuFrequencyMhz());
Serial.printf("CPU 频率: %d MHz\n", getCpuFrequencyMhz());:打印CPU的频率。
6、打印内存信息:
Serial.printf("当前内存大小: %d bytes\n", esp_get_free_heap_size());
Serial.printf("最小可用堆内存大小: %d bytes\n", esp_get_minimum_free_heap_size());
Serial.printf("当前内存大小: %d bytes\n", esp_get_free_heap_size());:打印当前可用的堆内存大小。
Serial.printf("最小可用堆内存大小: %d bytes\n", esp_get_minimum_free_heap_size());:打印自系统启动以来最小的可用堆内存大小。
7、打印芯片温度:
Serial.printf("芯片温度: %.2f°C\n", temperatureRead());
Serial.printf("芯片温度: %.2f°C\n", temperatureRead());:打印芯片的温度。
【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集
8、获取并打印芯片MAC地址:uint64_t chipid = ESP.getEfuseMac();
Serial.printf("芯片MAC地址: %04X%08X\n", (uint16_t)(chipid >> 32), (uint32_t)chipid);
uint64_t chipid = ESP.getEfuseMac();:获取芯片的MAC地址。
Serial.printf("芯片MAC地址: %04X%08X\n", (uint16_t)(chipid >> 32), (uint32_t)chipid);:打印芯片的MAC地址。
9、打印芯片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);
uint32_t chipId = 0;:初始化芯片ID变量。
for (int i = 0; i < 17; i = i + 8) { ... }:通过循环计算芯片ID。
Serial.printf("芯片ID : %u\n", chipId);:打印芯片ID。
10、打印芯片架构信息:
Serial.printf("芯片架构: %s\n", CONFIG_IDF_TARGET);
Serial.printf("芯片架构: %s\n", CONFIG_IDF_TARGET);:打印芯片的架构信息。
11、打印芯片复位原因:
esp_reset_reason_t reset_reason = esp_reset_reason();
Serial.printf("复位原因: %d\n", reset_reason);
esp_reset_reason_t reset_reason = esp_reset_reason();:获取芯片的复位原因。
Serial.printf("复位原因: %d\n", reset_reason);:打印复位原因。
12、打印WiFi模式:
wifi_mode_t mode;
esp_wifi_get_mode(&mode);
Serial.printf("WiFi模式: %d\n", mode);
wifi_mode_t mode;:定义一个变量来存储WiFi模式。
esp_wifi_get_mode(&mode);:获取当前的WiFi模式。
Serial.printf("WiFi模式: %d\n", mode);:打印WiFi模式。
13、打印WiFi信道:
uint8_t primaryChan;
wifi_second_chan_t secondChan;
esp_wifi_get_channel(&primaryChan, &secondChan);
Serial.printf("WiFi信道: %d\n", primaryChan);
uint8_t primaryChan;:定义一个变量来存储主信道。
wifi_second_chan_t secondChan;:定义一个变量来存储次信道。
esp_wifi_get_channel(&primaryChan, &secondChan);:获取当前的WiFi信道。
Serial.printf("WiFi信道: %d\n", primaryChan);:打印WiFi信道。
14、打印WiFi传输功率:
int8_t power;
esp_wifi_get_max_tx_power(&power);
Serial.printf("WiFi传输功率: %d dBm\n", power);
int8_t power;:定义一个变量来存储传输功率。
esp_wifi_get_max_tx_power(&power);:获取最大传输功率。
Serial.printf("WiFi传输功率: %d dBm\n", power);:打印WiFi传输功率。
主要目的是初始化ESP32-S3 UNO开发板,连接到WiFi网络,并通过串口输出各种系统和网络参数。
【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集
实验串口返回情况【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集
实验场景图
页:
[1]