ESP32是一款集成了Wi-Fi和蓝牙功能的微控制器,广泛应用于物联网项目。它由Espressif Systems公司开发,具有强大的处理能力和丰富的外设接口。下面我们将详细介绍ESP32的基础功能和引脚功能,并通过具体的实例项目展示其应用。
主要功能
- 双核处理器:两个Xtensa LX6处理器,主频高达240MHz。
- 无线通信:集成2.4GHz Wi-Fi和蓝牙,支持802.11 b/g/n协议和蓝牙4.2 BR/EDR和BLE。
- 丰富的接口:GPIO、ADC、DAC、UART、SPI、I2C、PWM等。
- 低功耗设计:支持多种低功耗模式。
引脚功能表
引脚 | 功能 | 描述 |
---|---|---|
GPIO1 | UART_TX | 串口发送数据 |
GPIO3 | UART_RX | 串口接收数据 |
GPIO18 | SPI_CLK | SPI时钟信号 |
GPIO23 | SPI_MOSI | SPI主设备数据输出,子设备数据输入 |
GPIO19 | SPI_MISO | SPI主设备数据输入,子设备数据输出 |
GPIO21 | I2C_SDA | I2C数据线 |
GPIO22 | I2C_SCL | I2C时钟线 |
GPIO34 | ADC | 模拟信号转换为数字信号 |
GPIO25 | DAC | 数字信号转换为模拟信号 |
GPIO2 | PWM | 脉宽调制信号输出 |
GPIO36 | 输入 | 仅输入信号 |
GPIO39 | 输入 | 仅输入信号 |
EN | 使能引脚 | 复位模块 |
VIN | 电源输入 | 3.3V-5V电源输入 |
GND | 地 | 地线连接 |
实例项目:智能家居控制器
硬件接线图
代码示例
cpp
#include <WiFi.h>
#include <Wire.h>
#include "DHT.h"
#define DHTPIN 21
#define DHTTYPE DHT11
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
dht.begin();
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
if (t > 25) {
digitalWrite(1, HIGH);
} else {
digitalWrite(1, LOW);
}
delay(2000);
}
知识点总结
- ESP32微控制器:了解ESP32的基本功能和引脚配置。
- Wi-Fi连接:学习如何通过ESP32连接Wi-Fi,并实现与服务器的通信。
- 继电器控制:通过GPIO引脚控制继电器,实现对高压设备的控制。
- 传感器数据读取:通过I2C接口读取温湿度传感器的数据,并进行处理。
- 数据上传和命令接收:使用HTTP或MQTT协议实现数据的上传和命令的接收。
如果有不懂的可以私信问我!!!