Awesome ESP 项目教程

June 24, 2026 · View on GitHub

简介

awesome-esp 仓库是 ESP8266 和 ESP32 微控制器的项目、工具和资源精选集合。这些经济实惠、支持 WiFi 的芯片广泛应用于物联网、家庭自动化和嵌入式系统项目。

平台描述
ESP8266低成本 WiFi 微控制器,GPIO 有限
ESP32更强大的版本,带蓝牙、更多 GPIO、双核
ESP32-S2单核,带 USB OTG 和更多 GPIO
ESP32-S3双核,带 AI 加速和 USB
ESP32-C3基于 RISC-V,低成本,BLE 支持

硬件概述

ESP8266 开发板

开发板GPIOFlashWiFi价格
ESP-012512KB-4MB$2-3
NodeMCU104MB$4-6
Wemos D1 Mini114MB$3-5
ESP-12E/F104MB$2-4

ESP32 开发板

开发板GPIOFlashWiFiBLE价格
ESP32-DevKitC344MB$5-8
ESP32-WROOM-32344MB$4-6
ESP32-S3-DevKitC458MB$8-12
ESP32-C3-DevKitM224MB$4-6
TTGO T-Display204MB$10-15

引脚对比

特性ESP8266ESP32
CPU单核 80MHz双核 240MHz
RAM80KB520KB
GPIO1734
ADC1 (10-bit)18 (12-bit)
PWM8 通道16 通道
SPI24
I2C1 (软件)2 (硬件)
UART23
蓝牙是(经典 + BLE)

开发环境

Arduino IDE

步骤操作
1安装 Arduino IDE
2在偏好设置中添加 ESP 开发板 URL
3通过开发板管理器安装 ESP 开发板包
4选择开发板和端口
5上传草图

PlatformIO

特性描述
多平台支持 ESP8266 和 ESP32
库管理自动依赖处理
构建系统高级构建配置
IDE 集成VS Code、CLion 等

ESP-IDF

特性描述
官方 SDKEspressif 的官方开发框架
FreeRTOS实时操作系统支持
高级完全控制硬件
组件模块化组件系统

项目分类

家庭自动化

项目描述难度
智能开关控制灯光和电器初级
温度监控DHT22 传感器带 Web 显示初级
智能恒温器带定时的温度控制中级
安防系统运动传感器和告警中级
智能门铃摄像头和通知系统高级

物联网传感器

项目传感器输出
气象站BME280、雨量计Web 仪表板
空气质量监测MQ-135、PMS5003MQTT 数据
土壤湿度电容传感器灌溉控制
能源监测CT 钳、电压传感器电力仪表板
水位超声波传感器告警系统

通信项目

项目协议描述
MQTT 客户端MQTT物联网消息代理通信
HTTP 服务器HTTP基于 Web 的控制界面
WebSocketWebSocket实时双向通信
ESP-NOWESP-NOWESP 之间的点对点通信
蓝牙BLE移动设备通信

网络

WiFi 配置

#include <WiFi.h>

const char* ssid = "your_wifi_ssid";
const char* password = "your_wifi_password";

void setup() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
  }
  // 已连接 - 打印 IP 地址
  Serial.println(WiFi.localIP());
}

MQTT 通信

#include <PubSubClient.h>

const char* mqtt_server = "broker.example.com";
WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  client.setServer(mqtt_server, 1883);
  client.connect("esp32-client");
  client.publish("sensors/temperature", "25.5");
}

OTA 更新

方式描述
ArduinoOTA通过网络进行空中更新
HTTP OTA从 Web 服务器下载固件
MQTT OTA通过 MQTT 消息触发更新

传感器和模块

常用传感器

传感器测量接口价格
DHT22温度、湿度Digital$3-5
BME280温度、湿度、气压I2C/SPI$5-10
DS18B20温度1-Wire$2-4
HC-SR04距离Digital$2-3
PIR运动Digital$2-3
BH1750光照I2C$2-4
MPU6050加速度计、陀螺仪I2C$3-5
GPS (NEO-6M)位置UART$5-10

常用模块

模块功能接口
继电器开关大功率设备Digital
OLED 显示屏小屏幕显示I2C
SD 卡数据记录存储SPI
RF 433MHz无线通信Digital
LoRa远距离通信SPI
GPS位置追踪UART
Camera (OV2640)图像采集DVP

显示项目

OLED 显示屏

显示屏尺寸接口
SSD13060.96" 128x64I2CAdafruit_SSD1306
SH11061.3" 128x64I2CU8g2
SSD13511.5" 128x128SPIAdafruit_SSD1351

TFT 显示屏

显示屏尺寸接口
ILI93412.8" 320x240SPITFT_eSPI
ST77891.3" 240x240SPITFT_eSPI
ILI94883.5" 480x320SPITFT_eSPI

电源管理

省电模式

模式ESP8266ESP32唤醒源
Active全速运行全速运行N/A
Modem SleepCPU 开启,WiFi 关闭CPU 开启,WiFi 关闭定时器
Light SleepCPU 暂停CPU 暂停定时器、GPIO
Deep Sleep最低功耗最低功耗定时器、GPIO、ULP
HibernationN/A最低功耗RTC GPIO、ULP

电池项目

项目电池续航
气象站18650 锂电池1-6 个月
远程传感器CR2032 纽扣电池1-3 个月
太阳能传感器LiPo + 太阳能板持续
便携设备LiPo 电池数小时到数天

基础库

用途
WiFiWiFi 连接
PubSubClientMQTT 客户端
AsyncWebServer异步 Web 服务器
ArduinoJsonJSON 解析和创建
FastLEDLED 灯带控制
Adafruit_Sensor统一传感器接口
Blynk物联网平台集成
ESPAsyncWebServer异步 HTTP 服务器

库安装

方式描述
Arduino Library Manager内置库搜索和安装
PlatformIO自动依赖解析
Git clone从仓库手动安装

学习资源

文档

资源描述
ESP-IDF docsEspressif 官方文档
Arduino ESP32ESP32 的 Arduino 核心
Random Nerd Tutorials分步项目指南
Instructables社区项目说明

按难度分类的项目想法

难度项目
初级LED 闪烁、WiFi 扫描器、温度显示
中级Web 服务器、MQTT 客户端、传感器仪表板
高级摄像头流媒体、Mesh 组网、OTA 更新

总结

主题核心要点
硬件推荐新项目使用 ESP32,因 BLE 和更多 GPIO
开发初学者用 Arduino IDE,高级用户用 PlatformIO
网络WiFi、MQTT 和 HTTP 是常见通信方式
传感器广泛的经济实惠传感器可用
电源Deep Sleep 模式显著延长电池寿命
社区大型社区,拥有丰富的库和教程