32浏览
查看: 32|回复: 5

[项目] 【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集

[复制链接]
【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集图1

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综合采集图2

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集图3

驴友花雕  中级技神
 楼主|

发表于 前天 11:25

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  {花雕动手做}项目之三:综合采集ESP32-S3 UNO(N16R8)的各种参数并串口输出

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  4.   {花雕动手做}项目之三:综合采集ESP32-S3 UNO(N16R8)的各种参数并串口输出
  5. */
  6. #include <WiFi.h>
  7. #include <esp_wifi.h>
  8. #include <esp_system.h>
  9. #include <esp_chip_info.h>
  10. #include <esp_spi_flash.h>
  11. // WiFi网络信息
  12. const char* ssid = "zhz3";
  13. const char* password = "z156721";
  14. void setup() {
  15.   // 初始化串口
  16.   Serial.begin(115200);
  17.   Serial.println(" ");
  18.   Serial.println("ESP32-S3 UNO(N16R8)准备就绪!");
  19.   Serial.println(" ");
  20.   delay(1000);
  21.   // 连接WiFi
  22.   WiFi.begin(ssid, password);
  23.   Serial.print("连接到WiFi");
  24.   while (WiFi.status() != WL_CONNECTED) {
  25.     delay(500);
  26.     Serial.print("...");
  27.   }
  28.   Serial.println(" 接通");
  29.   // 打印WiFi信息
  30.   Serial.print("IP地址: ");
  31.   Serial.println(WiFi.localIP());
  32.   Serial.print("信号强度 (RSSI): ");
  33.   Serial.println(WiFi.RSSI());
  34.   // 打印芯片信息
  35.   esp_chip_info_t chip_info;
  36.   esp_chip_info(&chip_info);
  37.   Serial.printf("ESP32 芯片型号: %d\n", chip_info.model);
  38.   Serial.printf("芯核数量: %d\n", chip_info.cores);
  39.   Serial.printf("芯片修订版本: %d\n", chip_info.revision);
  40.   // 打印CPU频率
  41.   Serial.printf("CPU 频率: %d MHz\n", getCpuFrequencyMhz());
  42.   // 打印内存信息
  43.   Serial.printf("当前内存大小: %d bytes\n", esp_get_free_heap_size());
  44.   Serial.printf("最小可用堆内存大小: %d bytes\n", esp_get_minimum_free_heap_size());
  45.   // 打印芯片温度
  46.   Serial.printf("芯片温度: %.2f°C\n", temperatureRead());
  47.   // 获取并打印芯片MAC地址
  48.   uint64_t chipid = ESP.getEfuseMac();
  49.   Serial.printf("芯片MAC地址: %04X%08X\n", (uint16_t)(chipid >> 32), (uint32_t)chipid);
  50.   // 打印芯片ID数字形式
  51.   uint32_t chipId = 0;
  52.   for (int i = 0; i < 17; i = i + 8) {
  53.     chipId |= ((chipid >> (40 - i)) & 0xff) << i;
  54.   }
  55.   Serial.printf("芯片ID : %u\n", chipId);
  56.   // 打印芯片架构信息
  57.   Serial.printf("芯片架构: %s\n", CONFIG_IDF_TARGET);
  58.   // 打印芯片复位原因
  59.   esp_reset_reason_t reset_reason = esp_reset_reason();
  60.   Serial.printf("复位原因: %d\n", reset_reason);
  61.   // 打印WiFi模式
  62.   wifi_mode_t mode;
  63.   esp_wifi_get_mode(&mode);
  64.   Serial.printf("WiFi模式: %d\n", mode);
  65.   // 打印WiFi信道
  66.   uint8_t primaryChan;
  67.   wifi_second_chan_t secondChan;
  68.   esp_wifi_get_channel(&primaryChan, &secondChan);
  69.   Serial.printf("WiFi信道: %d\n", primaryChan);
  70.   // 打印WiFi传输功率
  71.   int8_t power;
  72.   esp_wifi_get_max_tx_power(&power);
  73.   Serial.printf("WiFi传输功率: %d dBm\n", power);
  74. }
  75. void loop() {
  76.   // 在这里可以添加其他测试代码
  77.   delay(10000); // 每10秒打印一次
  78. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 11:44

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集

代码解读:
1、初始化串口通信:

  1. Serial.begin(115200);
  2. Serial.println(" ");
  3. Serial.println("ESP32-S3 UNO(N16R8)准备就绪!");
  4. Serial.println(" ");
  5. delay(1000);
复制代码


Serial.begin(115200);:设置串口通信的波特率为115200。
Serial.println(" ");:打印一个空行。
Serial.println("ESP32-S3 UNO(N16R8)准备就绪!");:打印一条消息,表示开发板已准备就绪。
delay(1000);:延迟1秒,给系统一些时间进行初始化。

2、连接WiFi:

  1. WiFi.begin(ssid, password);
  2. Serial.print("连接到WiFi");
  3. while (WiFi.status() != WL_CONNECTED) {
  4.   delay(500);
  5.   Serial.print("...");
  6. }
  7. Serial.println(" 接通");
复制代码


WiFi.begin(ssid, password);:开始连接到指定的WiFi网络。
Serial.print("连接到WiFi");:打印连接WiFi的提示信息。
while (WiFi.status() != WL_CONNECTED) { ... }:循环等待,直到WiFi连接成功。
Serial.println(" 接通");:打印连接成功的消息。

3、打印WiFi信息:

  1. Serial.print("IP地址: ");
  2. Serial.println(WiFi.localIP());
  3. Serial.print("信号强度 (RSSI): ");
  4. Serial.println(WiFi.RSSI());
复制代码


Serial.print("IP地址: ");:打印“IP地址”提示。
Serial.println(WiFi.localIP());:打印设备的IP地址。
Serial.print("信号强度 (RSSI): ");:打印“信号强度”提示。
Serial.println(WiFi.RSSI());:打印WiFi信号强度(RSSI)。

4、打印芯片信息:

  1. esp_chip_info_t chip_info;
  2. esp_chip_info(&chip_info);
  3. Serial.printf("ESP32 芯片型号: %d\n", chip_info.model);
  4. Serial.printf("芯核数量: %d\n", chip_info.cores);
  5. 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频率:

  1. Serial.printf("CPU 频率: %d MHz\n", getCpuFrequencyMhz());
复制代码


Serial.printf("CPU 频率: %d MHz\n", getCpuFrequencyMhz());:打印CPU的频率。

6、打印内存信息:

  1. Serial.printf("当前内存大小: %d bytes\n", esp_get_free_heap_size());
  2. 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、打印芯片温度:

  1. Serial.printf("芯片温度: %.2f°C\n", temperatureRead());
复制代码


Serial.printf("芯片温度: %.2f°C\n", temperatureRead());:打印芯片的温度。



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 11:46

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集

8、获取并打印芯片MAC地址:


  1. uint64_t chipid = ESP.getEfuseMac();
  2. 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数字形式:


  1. uint32_t chipId = 0;
  2. for (int i = 0; i < 17; i = i + 8) {
  3.   chipId |= ((chipid >> (40 - i)) & 0xff) << i;
  4. }
  5. 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、打印芯片架构信息:

  1. Serial.printf("芯片架构: %s\n", CONFIG_IDF_TARGET);
复制代码


Serial.printf("芯片架构: %s\n", CONFIG_IDF_TARGET);:打印芯片的架构信息。

11、打印芯片复位原因:

  1. esp_reset_reason_t reset_reason = esp_reset_reason();
  2. Serial.printf("复位原因: %d\n", reset_reason);
复制代码


esp_reset_reason_t reset_reason = esp_reset_reason();:获取芯片的复位原因。
Serial.printf("复位原因: %d\n", reset_reason);:打印复位原因。

12、打印WiFi模式:

  1. wifi_mode_t mode;
  2. esp_wifi_get_mode(&mode);
  3. 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信道:

  1. uint8_t primaryChan;
  2. wifi_second_chan_t secondChan;
  3. esp_wifi_get_channel(&primaryChan, &secondChan);
  4. 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传输功率:

  1. int8_t power;
  2. esp_wifi_get_max_tx_power(&power);
  3. 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网络,并通过串口输出各种系统和网络参数。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 11:48

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集

实验串口返回情况

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 11:51

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集

实验场景图

【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO综合采集图1
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail