1. 项目概述与硬件选型

大家好,我是老张。做嵌入式这些年,我经手过不少能耗监测的项目。从工厂的配电柜到家里的智能电表,说白了,核心就三件事:测准、传稳、算明白

这一章,咱们先把地基打牢。你想想看,如果连项目要干什么、用什么芯片都不清楚,后面写再多代码也是白搭。

1.1 能耗监测系统到底是什么?

能耗监测系统,说白了就是给用电设备装一个「智能电表」。它能实时告诉你:

  • 现在功率是多少?
  • 今天用了多少度电?
  • 哪个时间段用电最猛?

我在一个工厂项目里遇到过这样的情况:老板总觉得电费不对劲,但查不出原因。装上监测系统后才发现,有一台老设备待机功耗竟然占了总用电的15%。你看,没有数据,你连问题在哪都不知道。

核心目标:用低成本、高可靠的方式,把交流电的电压、电流、功率因数抓取出来,算出有功功率和累计电量。

1.2 项目目标拆解

咱们这个课程,最终要做成一个能用的原型。目标很明确:

  1. 采集:单相交流电的电压(220V)、电流(0-10A)
  2. 计算:实时功率、累计电量、功率因数
  3. 显示:本地OLED屏幕显示关键数据
  4. 通信:通过串口或Wi-Fi把数据发到上位机

嗯,这里要注意:我们不做工业级产品,但原理和工业级完全一样。你学会了这套,换个高精度互感器就能直接上产线。

1.3 MCU选型:为什么选STM32?

选MCU这事儿,我踩过不少坑。曾经为了省几块钱选了一款小众芯片,结果开发到一半发现ADC精度不够,硬生生换了方案。所以这次我建议直接用STM32F103C8T6,也就是大家常说的「蓝 pill」板。

参数 STM32F103C8T6 为什么选它?
主频 72MHz 算功率绰绰有余
ADC 2个12位ADC,最多10通道 同时采电压和电流
价格 10元左右 性价比极高
生态 资料最多,库最全 遇到问题一搜就有答案

我的习惯:新手先用标准库开发,等熟悉了再切HAL库。标准库的代码更直观,适合理解底层原理。

1.4 传感器选型:电流与电压互感器

这是整个系统最关键的环节。选错了,数据全是废的。

电流互感器

我推荐开合式电流互感器 SCT-013-030。为什么?

  • 输出是0-1V的模拟电压,STM32的ADC可以直接读
  • 量程30A,家用场景完全够用
  • 开合式设计,不用断电就能安装

我曾经在一个项目中用了闭口式互感器,结果每次调试都要断电接线,效率极低。后来全换成开合式,省了一半时间。

电压互感器

电压采样我建议用ZMPT101B模块。它内部已经做了隔离和降压,输出0-5V的模拟信号,对应0-250V的交流电压。

注意:千万不要直接用电阻分压去采220V!我见过有人这么干,结果板子烧了,还差点出安全事故。隔离是必须的,别省这个钱。

1.5 整体硬件框图

来,咱们把整个系统的连接理一遍:

220V交流电
    │
    ├──→ 电压互感器 (ZMPT101B) ──→ STM32 ADC通道1
    │
    └──→ 电流互感器 (SCT-013)  ──→ STM32 ADC通道2
                                         │
                                    STM32计算功率
                                         │
                                    OLED显示 + 串口输出

这个结构很简单,但很实用。你想想看,两个模拟信号进ADC,MCU算一算,结果就出来了。没有复杂的协议,没有昂贵的专用芯片。

1.6 避坑指南

最后,分享几个我踩过的坑:

  • ADC参考电压:STM32的内部参考电压精度一般,建议外接一个3.3V的基准电压芯片(比如REF3033)。
  • 采样率:50Hz的交流电,至少每周期采64个点才能算准。我一般设采样率3.2kHz,也就是每周期64个点。
  • 零点漂移:互感器输出会有直流偏置,软件上要做零点校准。这个后面章节会详细讲。

好了,第一章就到这里。硬件选型定下来,后面的事情就顺了。下一章咱们开始搭建开发环境,把STM32跑起来。


公众号:蓝海资料掘金营,微信deep3321