🔌 智能插座 · 30 章
📘 ESP32 功率监测 & 远程控制
30节
01
项目概述与硬件选型
智能插座能做什么?核心器件选型(ESP32、继电器、电流互感器、电源模块)
02
开发环境搭建
Arduino IDE 安装、ESP32 板级支持包配置、串口驱动安装与测试
03
GPIO 基础与 LED 控制
ESP32 引脚功能、数字输出、点亮板载 LED、编写 Blink 程序
04
按键输入与中断
机械按键消抖原理、外部中断配置、使用按键控制 LED 开关
05
继电器驱动与交流负载控制
继电器工作原理、ULN2003 驱动、控制 220V 灯泡通断
06
模拟量采集基础
ESP32 ADC 介绍、分辨率与衰减设置、读取电位器电压
07
电流互感器与 ACS712 模块
霍尔效应原理、ACS712 选型、输出特性曲线、连接电路
08
功率计算基础
瞬时功率与平均功率、纯阻性负载功率计算、采样率对精度的影响
09
电压过零检测
过零检测电路设计(光耦方案)、中断捕获过零信号、同步采样触发
10
有效值(RMS)算法实现
均方根公式、离散采样 RMS 计算、滑动窗口优化
11
校准与误差分析
零点漂移校正、增益校准、使用万用表进行多点标定
12
Wi-Fi 连接管理
Wi-Fi 库使用、STA 与 AP 模式、自动重连机制、Wi-Fi 配置保存
13
HTTP 客户端与 REST API
HTTP GET/POST 请求、JSON 数据封装、与服务器通信
14
MQTT 协议入门
MQTT 原理、发布/订阅模型、QoS 等级、Broker 选择
15
ESP32 MQTT 客户端实现
PubSubClient 库、连接与心跳、发布传感器数据
16
本地 Web 服务器搭建
ESP32 作为 Web 服务器、处理 HTTP 请求、生成动态页面
17
WebSocket 实时通信
WebSocket 协议、ESP32 WebSocket 库、实时推送功率数据
18
JSON 数据解析
ArduinoJson 库、序列化与反序列化、处理嵌套对象
19
NTP 时间同步
NTP 协议、获取网络时间、时间戳格式化、定时任务调度
20
数据存储与历史记录
Preferences 库(NVS)、SPIFFS 文件系统、CSV 日志存储
21
OLED 显示屏驱动
SSD1306 OLED、U8g2 库、显示功率、电流、IP 地址
22
电能累计与电费计算
千瓦时(kWh)计算、积分算法、电费单价配置与累计
23
定时开关与自动化策略
RTC 定时、日落日出时间计算、条件触发(过载保护)
24
OTA 远程固件升级
Arduino OTA 库、Web OTA、安全更新机制
25
低功耗模式设计
ESP32 睡眠模式(Modem-sleep / Deep-sleep)、定时唤醒、功耗测试
26
安全通信与加密
HTTPS 与 SSL/TLS、证书验证、MQTT TLS 加密
27
手机 App 控制(Blynk 方案)
Blynk 平台注册、虚拟引脚映射、仪表盘设计
28
手机 App 控制(MQTT Dashboard)
开源 MQTT App 配置、自定义控制面板
29
Home Assistant 集成
MQTT 自动发现、HA 实体配置、能源仪表盘接入
30
项目总结与产品化思考
常见故障排查、PCB 设计要点、外壳选型、CE/FCC 认证简介