【花雕学编程】Arduino动手做(237)---ESP32 V1 Rev1采集参数
2024-10-281725
AI 快速预览详细
本文介绍了ESP32 V1 Rev1的参数采集功能。该设备配备了Xtensa双核32位LX6微处理器,运行频率高达240 MHz,内存为520 KiB SRAM。它支持802.11 b/g/n Wi-Fi和蓝牙4.2,并具备12位SAR ADC和8位DAC等多种外设接口。此外,ESP32 V1 Rev1还支持安全启动和Flash加密,适用于高精度数据采集项目。
![]() 处理器: CPU:Xtensa 双核 32 位 LX6 微处理器,运行频率为 160 或 240 MHz,性能高达 600 DMIPS 超低功耗 (ULP) 协处理器 内存: 520 KiB SRAM 无线连接: 无线网络连接:802.11 b/g/n 蓝牙:v4.2 BR/EDR 和 BLE(与 Wi-Fi 共享无线电) 外设接口: 12 位 SAR ADC,多达 18 个通道 2 × 8 位 DAC 10 × 触摸传感器(电容式传感 GPIO) 4 × SPI 2 个 × I²S 接口 2 个 × I²C 接口 3 × UART SD/SIO/CE-ATA/MMC/EMMC 主机控制器 SDIO/SPI 从控制器 以太网MAC 接口,支持专用 DMA 和 IEEE 1588 精确时间协议 CAN 总线 2.0 红外遥控器(TX/RX,最多 8 个通道) 电机 PWM LED PWM(多达 16 个通道) 霍尔效应传感器 超低功耗模拟前置放大器 安全: 全部支持 IEEE 802.11 标准安全功能,包括 WFA、WPA/WPA2 和 WAPI 安全启动 Flash 加密 1024 位 OTP,客户最高 768 位 加密硬件加速:AES、SHA-2、RSA、椭圆曲线加密 (ECC)、随机数生成器 (RNG) 电源管理: 内部低压差稳压器 用于 RTC 的单个电源域 5μA 深度睡眠电流 从 GPIO 中断、定时器、ADC 测量、电容式触摸传感器中断中唤醒 电池管理 用于 3.7v 电池的连接器(如 18650)。 ![]() |






实验二百三十七:ESP32 V1.0.0 Rev1 wifi 蓝牙 CH340G 4MB
FLASH ESP-WROOM-32开发板
{花雕动手做}项目之二:-综合采集ESP32 WeMos LOLIN32 Lite的各种参数并串口输出
实验开源代码
[code]/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十七:ESP32 V1.0.0 Rev1 wifi 蓝牙 CH340G 4MB
FLASH ESP-WROOM-32开发板
{花雕动手做}项目之二:-综合采集ESP32 WeMos LOLIN32 Lite的各种参数并串口输出
*/
#include
#include
#include
#include
#include
// WiFi网络信息
const char* ssid = "zhz3";
const char* password = "z156721";
void setup() {
// 初始化串口
Serial.begin(115200);
Serial.println(" ");
Serial.println("ESP32 WeMos LOLIN32 Lite准备就绪!");
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秒打印一次
}[/code]