基于单片机的数字电能表设计_第1页
基于单片机的数字电能表设计_第2页
基于单片机的数字电能表设计_第3页
基于单片机的数字电能表设计_第4页
基于单片机的数字电能表设计_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的数字电能表设计摘要在智能电网建设全面推进、用电精细化管理需求持续提升的背景下,传统机械式电能表存在计量精度低、功能单一、无本地化过载保护、无法实现远程数据查看与管控等缺陷,已难以满足民用住宅、小型商铺及中小企业车间的用电数字化管理需求。针对上述问题,本文设计了一套以STM32F103C8T6单片机为核心的数字电能表系统。系统通过PZEM-004计量模块实时采集用电回路的电压、电流、有功功率参数,重点实现累计电能的双重精准计量,本地通过0.96寸OLED屏完成全参数可视化显示,支持按键设置功率阈值、清零累计电能、手动控制回路通断,超出阈值时快速触发声光报警并通过继电器切断供电回路;同时借助ESP8266WiFi模块将计量数据上传至Tlink云平台,实现云端数据长期存储、历史查询、用电趋势分析与移动端远程报警推送。文中详细阐述了系统的整体设计架构、硬件电路设计、模块化软件程序开发与云平台对接流程,经实际测试,系统运行稳定,电能计量精度符合相关国家标准,操作便捷、部署成本低,为多场景用电计量与安全防护提供了一套实用可行的解决方案。关键词:STM32单片机;电能计量;WiFi通信;过载保护AbstractUnderthebackgroundofthecomprehensivepromotionofsmartgridconstructionandthecontinuousimprovementofrefinedpowerconsumptionmanagementrequirements,thetraditionalmechanicalwatt-hourmeterhasdefectssuchaslowmeteringaccuracy,singlefunction,nolocaloverloadprotection,andinabilitytorealizeremotedataviewingandcontrol,whichhasbeendifficulttomeetthedigitalpowerconsumptionmanagementneedsofresidentialbuildings,smallshopsandsmallandmedium-sizedenterpriseworkshops.Aimingattheaboveproblems,thispaperdesignsadigitalwatt-hourmetersystembasedonSTM32F103C8T6single-chipmicrocomputer.Thesystemcollectsthevoltage,currentandactivepowerparametersofthepowercircuitinrealtimethroughthePZEM-004meteringmodule,andfocusesonthedualaccuratemeasurementofaccumulatedelectricenergy.Locally,thefull-parametervisualdisplayiscompletedthrougha0.96-inchOLEDscreen,whichsupportskeysettingofpowerthreshold,clearingofaccumulatedelectricenergy,andmanualcontrolofcircuiton-off.Whenthethresholdisexceeded,itquicklytriggersanaudibleandvisualalarmandcutsoffthepowersupplycircuitthroughtherelay.Atthesametime,themeteringdataisuploadedtotheTlinkcloudplatformthroughtheESP8266WiFimodule,realizinglong-termclouddatastorage,historicalquery,powerconsumptiontrendanalysisandmobileremotealarmpush.Thispaperdescribesindetailtheoveralldesignarchitecture,hardwarecircuitdesign,modularsoftwareprogramdevelopmentandcloudplatformdockingprocessofthesystem.Theactualtestshowsthatthesystemrunsstably,theelectricenergymeteringaccuracymeetstherelevantnationalstandards,theoperationisconvenient,andthedeploymentcostislow.Itprovidesapracticalandfeasiblesolutionformulti-scenepowerconsumptionmeteringandsafetyprotection.Keywords:STM32Microcontroller;ElectricEnergyMetering;WiFiCommunication;OverloadProtection目录TOC\o"1-3"\h\u3717摘要 I10647Abstract II276521绪论 -1-284851.1设计背景 -1-137191.2设计现状 -2-90351.2.1国外研究现状 -2-177651.2.2国内研究现状 -3-219961.3设计结构 -4-221471.4本章小结 -4-148852功能与设计方案 -5-110722.1系统功能要求 -5-244122.2系统总体设计方案 -5-231452.3系统设计原则与技术路线 -6-230562.4本章小结 -7-91893系统的硬件选型与电路设计 -8-231633.1器件方案对比 -8-284583.1.1主控芯片选型 -8-270693.1.2电能计量采集器件选型 -9-272173.1.3无线通信器件选型 -10-23323.1.4显示模块选型 -12-140393.1.5硬件选型清单 -13-146633.2STM32F103C8T6单片机最小系统 -14-37833.2.1电源电路 -15-29213.2.2复位电路 -16-97453.2.3时钟电路 -16-196193.3电能参数采集电路设计 -17-155493.40.96寸OLED显示电路设计 -17-109303.5按键输入电路设计 -18-104883.6WiFi通信电路设计 -19-33063.7声光报警与继电器控制电路设计 -20-243753.8总电路图设计 -22-242113.9本章小结 -23-275584系统的软件设计 -24-64374.1软件开发环境 -24-286554.2软件程序的设计 -25-300644.2.1主程序运行流程 -25-41644.2.2按键处理子程序流程 -26-89444.2.3数据显示子程序流程 -28-209614.2.4通信子程序流程 -29-79054.2.5系统整体工作流程 -31-159584.3本章小结 -32-206865系统的测试 -33-313155.1硬件单元性能测试 -33-132795.2软件功能完整性测试 -34-68475.3实物功能测试 -35-110275.3.1电能参数实时采集与显示功能 -35-61265.3.2阈值设置与修改功能 -39-291325.3.3过载报警与断电保护功能 -41-217815.4本章小结 -42-8704结论 -43-15007参考文献 -45-1935谢辞 -47-1绪论1.1设计背景随着我国智能电网建设的深度推进,以及“双碳”目标下全社会节能降耗需求的不断提升,用电管理正从传统的“事后抄表”向“实时监测、精细化管控”转型。传统机械式电能表存在计量精度低、易受环境干扰产生误差、无法实时查看用电参数、没有本地化用电安全保护功能、数据无法远程传输等固有缺陷,已难以适配当下民用住宅、小型商铺、中小企业车间等场景的用电数字化管理需求[1]。单片机技术、高精度电能计量技术与物联网通信技术的快速发展,为低成本、多功能、高可靠性的数字电能表设计提供了成熟的技术支撑[2]。本文设计的基于STM32单片机的数字电能表,可实现交流电压、电流、有功功率的实时采集,重点完成累计电能的精准计量,同时具备本地人机交互、过载自动断电保护、云端数据存储与远程查看功能,无需复杂布线与高额部署成本,可快速适配多场景的用电计量与管控需求,对推动用电管理的智能化、数字化具有重要的实际应用价值[3]。为了更好的判断传统电能表和数字电能标的区别下面分别给出两个电能标的清晰图。传统电能表如下图1.1所示:图1.1传统电能表如下是数字电能表图1.2所示:图1.2数字电能表数字电能表特点:计量精度高,小电流用电也计量准确;自身功耗小,省电;体积小巧,自带指示灯;智能化程度高,省去人工上门查表。老式机械电表主要功能及特点:结构简单、元器件少,抗雷击、抗电磁干扰强;无需供电就能工作,停电数据不丢失;故障率低、耐用,使用寿命长。数字电能表与老式机械电表最重要的区别:机械转盘计电量,数显芯片智能测电。1.2设计现状1.2.1国外研究现状国外在智能电能表及高级计量架构(AMI)领域起步较早,技术积累深厚。欧美等发达国家早在21世纪初便通过立法和政策补贴,推动智能电能表在民用与工业场景的大规模普及。以施耐德电气(SchneiderElectric)推出的PowerLogicION9000系列高级电能质量表为例,该产品不仅具备0.1S级的高精度双向计量能力,还集成了复杂的电网谐波分析、瞬态事件捕获等全流程电能质量监测功能[4]。在大型工业配电中,这类设备常与EcoStruxure架构联动,用于监测晶圆厂、大型数据中心等高精密用电环境的电网健康度。同样,西门子(Siemens)推出的SENTRON7KMPAC系列测量仪表,在市政电网与大型重工业场景中应用广泛,支持通过Profinet、ModbusTCP等多种工业总线进行多回路集中监测,并能与电网进行双向互动以响应需求侧管理(DSM)[5]。例如,在美国加州实施的虚拟电厂(VPP)项目中,特斯拉(Tesla)与当地电网协同,正是依赖这类具备双向互动能力的智能计量终端,来精准调控分布式光伏与储能系统的并网电量。然而,通过对上述国外主流技术的分析不难发现,这些国际顶尖企业的产品存在以下局限性:硬件及部署成本高昂:单台设备动辄数千至上万元,且需要配套专业的上位机系统、数据库服务器以及高标准的现场总线布线。运维门槛高:系统的配置与数据分析严重依赖专业的电力工程师进行后期运维。低压民用场景适配度差:这类产品臃肿的功能对于民用住宅、小型商铺及临时用电场所而言存在严重的“性能过剩”。同时,国外的相关学术研究也多聚焦于宏观层面的电网级电能质量分析、非侵入式负荷监测(NILM)算法、高压计量与智能调度技术,针对低压场景的小型化、低成本、软硬件一体化数字电能表设计研究相对较少,缺乏适用于微小用电单元的普适性解决方案。1.2.2国内研究现状国内智能电能表产业近年来在“智能电网”与“物联网”建设的浪潮下发展迅猛。以国家电网(SGCC)和南方电网(CSG)为主导的智能电表改装工程,已基本实现了全国居民住宅的广泛覆盖[6]。目前国内大面积铺设的单相智能电能表,虽然具备远程红外抄表、阶梯电价计费以及电力线载波(PLC)通信功能,但在实际民用和长租公寓、小商品市场等应用场景中,仍暴露出诸多痛点:数据交互闭环缺失:这类电表属于电网资产,数据直接上传至电网后台,用户端只能通过“网上国网”等APP查看具有较长延迟的结算电费,无法自主查看毫秒级的实时电压、电流和功率参数[7]。控制维度单一且滞后:电表内部虽有磁保持继电器,但该继电器仅用于远程欠费停电或电网应急调度,不具备本地化的、用户可自定义阈值的过载断电保护功能,无法在电器突发过载、漏电或超温时提供本地秒级响应的声光报警与安全防护。在国内工业级市场中,华为(Huawei)依托其数字能源产品线推出了面向数据中心机房、5G基站的智能配电监测模块;正泰电器(CHINT)也推出了DTSD系列三相多功能电能表。这些产品多针对企业级大型配电房或能耗管理系统(如日本常用的BEMS建筑能源管理系统理念)设计。虽然功能完善,但其单设备成本、体积和高昂的系统集成费用,让广大中小企业、个体商户以及个人用户难以承担[8]。此外,国内高校与科研机构的相关研究,也多集中于宽量程三相电能表、高精密电网专用计量芯片的研发、或基于大数据的电网负荷预测。针对民用与小型商用场景的、兼具精准电能计量、本地安全保护、用户自主配置与低成本远程管控功能的数字电能表,仍存在较大的市场空白。1.3设计结构本文共分为五个章节,各章节内容安排如下:第一章为绪论,阐述本次设计的研究背景与应用价值,分析数字电能表领域的国内外研究现状,明确本文的核心研究内容,同时介绍论文的整体组织结构。第二章为系统功能需求与总体设计方案,明确系统的核心功能需求与性能指标,介绍系统的整体分层架构,完成主控芯片、电能计量模块、无线通信模块的选型对比与论证,确定系统的整体设计方案。第三章为系统硬件选型与电路设计,分模块详细介绍各单元电路的设计原理、器件连接方式与设计要点,完成整个硬件系统的原理图设计与实物搭建。第四章为系统软件设计,介绍系统的软件开发环境,阐述主程序的整体运行流程,分模块讲解各功能子程序的设计逻辑,重点说明累计电能计量的软件实现方式,同时完成云平台的对接与配置说明。第五章为系统测试与验证,完成系统软硬件联合调试,对硬件单元性能、软件功能完整性、整机计量精度(灵敏度:最小信号变化量)与运行稳定性进行全面测试,验证系统是否达到设计要求。文末为结论、参考文献、谢辞与附录,总结本次设计的研究成果与不足,提出后续优化方向,同时列出研究参考的相关文献,附上系统硬件原理图与核心源程序。1.4本章小结本章首先阐述了本次设计的研究背景与应用价值,指出在智能电网建设与"双碳"目标的背景下,传统机械式电能表已难以满足用电精细化管理与安全防护的需求。随后分析了数字电能表领域的国内外研究现状,指出国外产品成本高、功能复杂,国内电网统一部署的电表用户自主性差,针对民用与小型商用场景的低成本多功能数字电能表仍存在较大市场空白。最后明确了本文的核心研究内容,包括系统需求分析与方案设计、硬件电路设计、软件程序开发与系统测试验证四个部分,并介绍了论文的整体组织结构。2功能与设计方案2.1系统功能要求结合民用住宅、小型商铺与中小企业车间实际用电计量管控需求,本课题基于STM32设计的数字电能表围绕实时计量、本地安全防护、WiFi云端远程监测三大实用功能开展设计,剔除未落地的分时计费、预付费、窃电记录等无法实现的功能,具体功能指标如下:在核心计量功能上,系统实时采集被测交流回路电压、电流、有功功率三项电气参数,完成累计电能精准统计,电能计量单位为kW・h,数据支持实时刷新、掉电保存与手动清零;设备搭载0.96寸OLED显示屏实现全部参数本地可视化展示,依托4枚独立按键完成人机交互,可切换显示界面、自定义功率保护阈值、一键清零累计电量,操作简单易上手[9]。在安全保护功能上,系统具备过载断电与声光报警功能。当回路实测有功功率超出用户设定阈值时,设备迅速驱动红色LED与有源蜂鸣器实现声光报警,同时控制继电器断开负载供电回路,规避线路过载发热隐患;故障排除后,可通过按键手动解除报警、恢复回路供电,也能通过按键直接手动通断负载回路,满足现场应急操作需求[10]。在远程管控功能上,依靠ESP8266-WiFi模块将电压、电流、功率、累计电能及设备报警状态数据定时上传至物联网云平台,设备触发过载故障时,云端同步推送报警信息,实现远程用电状态监测[11]。数字电能表是智能电网用电采集系统的核心终端设备,具备高精度计量、数据处理、智能控制与远程通信等综合功能,可满足现代电力系统智能化、信息化、自动化的运行需求。2.2系统总体设计方案本次数字电能表系统采用三层分布式架构设计,各层级分工明确、协同工作,完成电能计量、数据传输、安全保护、远程管控全流程功能,该架构兼顾现场控制实时性与远程管理便捷性,符合物联网智能监测系统设计规范[12]。现场计量控制层是系统核心基础,承担电能参数采集、数据处理、本地人机交互、过载保护控制,是整个系统的硬件执行与控制核心,负责将物理用电参数转化为数字信号,完成本地逻辑运算与控制指令输出[13]。网络传输层作为现场设备与云端平台的通信桥梁,负责将现场计量控制层处理后的标准化数据,通过无线通信方式稳定上传至云端,同时接收云端下发的控制指令并透传至现场控制层,实现双向数据交互,保障数据传输的实时性与可靠性[14]。云端应用层基于物联网云平台搭建,完成数据接收、解析、存储、可视化展示,支持历史数据查询、用电趋势分析、远程报警推送,配套移动端实现免APP便捷访问,为用户提供全方位远程管控服务[15]。系统上电后,先完成各模块初始化配置,随后进入循环工作模式:按固定周期采集电能参数、处理数据、刷新本地显示、判断功率阈值、执行保护逻辑、上传云端数据,持续稳定完成电能计量与用电监控任务。系统框图如下图2.1所示:图2.1系统框图2.3系统设计原则与技术路线为确保系统满足实用性、可靠性、低成本要求,本次设计遵循三大核心原则。模块化设计原则:将系统拆分为控制、计量、显示、输入、通信、保护六大模块,各模块独立设计、协同工作,便于开发、调试与后期维护[16]、低成本。设计原则:数字电能表的整体设计需遵循高精度、高可靠性、安全性、实用性与可扩展性五大核心原则,保障设备长期稳定、准确运行。首先是计量精准性原则,严格依据国家计量标准设计电路与算法,降低采样、运算误差,保证有功、无功、分时电量计量精度符合规范要求。其次是运行可靠性原则,器件选用工业级规格,优化电源与硬件电路,适应高低温、潮湿等复杂现场工况。技术路线:本文数字电能表采用模块化分层软硬件技术路线,整体分为信号采样、计量运算、主控处理、数据存储、人机交互、通信传输及电源防护七大层级。首先通过高精度电压、电流采样电路采集电网实时模拟信号,经过滤波降噪处理后送入专用电能计量芯片,完成有功、无功、功率因数等电气参数的精准运算,保证计量数据的准确性。由主控单片机控制系统运行,并将有效数据存储至掉电不丢失存储单元。同时驱动液晶显示界面,实现电量、故障信息的实时展示,搭配声光报警完成异常提示。通信层面依托无线通信模块,遵循标准通信规约,实现远程抄表、参数配置与远程通断电控制。2.4本章小结本章首先明确了数字电能表系统的核心功能需求,包括计量核心功能、安全保护功能与远程管控功能三大类,并提出了系统设计的性能指标与设计原则。随后介绍了系统采用的三层分布式架构设计,自上而下分为云端应用层、网络传输层与现场计量控制层,各层级分工明确、协同工作。最后通过多方案对比论证,完成了主控芯片、电能计量模块与无线通信模块的选型。3系统的硬件选型与电路设计3.1器件方案对比3.1.1主控芯片选型本次设计对主控芯片进行两种方案对比分析,结合系统多任务并行处理、高精度计量、无线通信、人机交互等综合需求,完成最终选型。方案一:STC89C52RC单片机:STC89C52RC为经典8位51内核单片机,最高工作频率33MHz,内置8KBFlash程序存储器与512BRAM,具备基础串口、IO口资源,开发门槛低、硬件成本极低。但该芯片运算性能有限,外设接口数量不足,无法同时支撑电能数据采集、双串口通信、高精度电能计算、OLED显示、WiFi数据上传等多任务并发处理,且为商业级设计,抗干扰能力较弱,在强电磁环境下长期运行易出现数据异常或程序跑飞,难以满足本系统稳定可靠运行要求。方案二:STM32F103C8T6单片机:STM32F103C8T6采用32位CortexM3内核,最高工作频率72MHz,内置64KBFlash与20KBRAM,拥有多路USART串口、I2C、SPI通信接口及多路ADC通道,中断资源丰富,运算能力强劲,可稳定实现数据采集、计量计算、逻辑控制、无线通信、人机交互等全功能并行运行。芯片为工业级设计,工作温度范围宽,抗干扰能力强,可适配配电场景复杂电磁环境,开发生态完善,可扩展性强,完全满足系统全部设计需求。关于主控芯片参数对比表如下3-1:表3-1主控芯片参数对比表对比项目STC89C52RCSTM32F103C8T6内核架构8位51内核32位CortexM3内核最高主频33MHz72MHz存储资源8KBFlash,512BRAM64KBFlash,20KBRAM通信接口1路串口,基础IO口多路USART、I2C、SPI、ADC工作等级商业级,抗干扰较弱工业级,抗干扰能力强需表3-1主控芯片参数对比表运行能力单任务,处理速度慢多任务并行,处理速度快成本极低较低,性价比高最终选型:STM32F103C8T6该芯片采用LQFP48封装,为方形薄型贴片式封装结构,引脚沿芯片四周均匀分布,芯片表面清晰印有ST品牌标识、型号及批次信息,抗干扰能力强,多任务并行,处理速度快,适合在数字电能表内部紧凑空间安装使用。关于STM32F103C8T6单片机实物图如下图3.1所示:图3.1STM32F103C8T6单片机实物3.1.2电能计量采集器件选型为实现电压、电流、有功功率、累计电能的精准采集,分别采用分立元件搭建电路与专用计量模块两种方案进行对比。方案一:分立元器件搭建电能采集电路通过电压互感器、电流互感器采集交流电压与电流信号,经整流、滤波、放大后送入单片机ADC进行转换,再由软件算法计算功率与电能。该方案硬件物料成本低,可灵活调整采样参数,但模拟电路设计复杂,后期校准难度大,在电磁干扰下测量精度难以保证,累计电能误差会随运行时间不断增大,开发周期长,不适合快速落地的低成本设计。方案二:PZEM004电能计量模块PZEM004内置高精度电能计量专用芯片,可直接输出校准后数字量,无需软件校准;测量范围为0~250V交流电压、0~100A交流电流,电压电流测量精度±0.5%,功率与电能计量精度±1%;模块内置过流、过压保护,外围电路简单,通过串口与主控通信,周期短,长期稳定可靠,完全适配民用与小型工业低压用电计量场景。关于电能采集器件参数对比表如下表3-2所示:表3-2电能采集器件参数对比表对比项目分立元件采集电路PZEM004计量模块采集方式互感器+模拟调理+ADC转换专用计量芯片一体化采集测量精度校准困难,误差较大电压/电流±0.5%,功率/电能±1%测量范围需自行设计0~250V,0~100A开发难度高,模拟电路复杂低,串口直接读取校准数据硬件复杂度高,需整流、滤波、放大低,仅需电源与通信接线长期稳定性误差易累积,稳定性差出厂校准,长期稳定可靠开发周期周期长周期短,可快速部署最终选型:PZEM004电能计量模块模块为标准PCB板载结构,配备交流输入端子、电流互感器卡口、通信端子,板载电源与数据传输指示灯,整体尺寸小巧,结构紧凑,可直接固定安装于电能表壳体内部,周期短,可快速部署,出场校准,长期稳定可靠。关于PZEM-004电能计量模块实物图如下图3.2所示:图3.2PZEM004电能计量模块实物3.1.3无线通信器件选型为实现数据远程上传与云端管控,对GPRS模块与WiFi模块两种方案进行对比。方案一:SIM800CGPRS模块SIM800C基于移动蜂窝网络传输数据,不受WiFi覆盖限制,支持短信报警,适合偏远无WiFi场景。但模块硬件成本较高,需配备SIM卡与流量套餐,产生持续运营成本,数据传输速率低、延迟较高,不适合高频实时数据上传,不符合系统低成本设计要求。方案二:ESP8266WiFi模块ESP8266内置完整TCP/IP协议栈,支持串口转WiFi透传,可快速接入局域网与互联网;模块体积小、功耗低,外围电路简单,通过串口与主控连接,开发便捷,支持AT指令配置,可直接对接Tlink云平台;数据传输速度快、延迟低,硬件成本极低,无需流量费用,在民用住宅、商铺、厂区WiFi全覆盖环境下适用性极强。关于无线通信器件参数对比表如下表3-3所示:表3-3无线通信器件参数对比表对比项目SIM800CESP8266(ESP01S)通信方式移动蜂窝网络(GPRS)WiFi局域网/互联网使用成本硬件成本高+SIM卡+流量费用硬件成本低,无后续流量费用传输速率/延迟速率低,延迟较高速率快,延迟低,实时性好开发难度中等,AT指令配置简单,串口透传,易对接云平台适用场景无WiFi覆盖偏远区域有WiFi的住宅、商铺、厂区体积/功耗体积偏大,功耗较高超小体积,低功耗运行云平台对接支持,配置繁琐支持,配置简单快捷最终选型:ESP8266(ESP01S)WiFi模块ESP01S为超小型板载WiFi模块,黑色PCB基板,采用8针单排接口,板载微型天线,整体体积约半枚硬币大小,占用空间极小,适合在数字电能表内部狭小空间安装部署。关于ESP8266无线模块实物图如下图3.3所示:图3.3ESP8266无线模块实物3.1.4显示模块选型为实现数字电能表各项用电参数的本地可视化显示,方便用户实时查看并配置功率上限,系统对LCD1602液晶屏与0.96寸OLED显示屏两种方案进行对比。方案一:LCD1602液晶显示模块LCD1602是一种工业字符型液晶,能够同时显示16x2共32个ASCII字符。该屏幕技术成熟、价格低廉、驱动程序编写简单。但LCD1602体积较大,点阵分辨率极低,无法显示中文字符与复杂的图形界面;其工作电压通常为5V,与本系统主控芯片STM32F103C8T6的3.3V逻辑电平不匹配,需要额外的电平转换电路;此外,该屏幕功耗较高,背光开启时电流较大,且显示视角较窄,整体视觉效果较差,难以满足数字电能表精细化、多参数同屏显示的设计要求。方案二:0.96寸OLED显示模块0.96寸OLED显示屏采用SSD1306作为核心驱动芯片,分辨率达128x64像素点。由于其采用自发光技术,无需背光,因此具有极高的对比度和超广的视角(>160°);模块支持I2C或SPI串行通信,本设计采用I2C接口,仅需4根引线(VCC、GND、SCL、SDA)即可完成与单片机的连接,极大节省了主控芯片的GPIO引脚资源;其工作电压为3.3V,可直接由单片机电源引脚供电,逻辑电平完全兼容;屏幕能够同时同屏显示多行汉字、数字及符号,刷新率高、响应速度快、功耗极低,在智能仪表和便携式设备中适用性极强。关于显示器件参数对比表如下表3-4所示:表3-4显示器件参数对比表对比项目LCD1602液晶屏0.96寸OLED显示屏显示原理被动液晶,需背光支持有机发光二极管,自发光分辨率/内容只能显示2行共32个英文字符/数字128x64点阵,可自由显示中英文字符、图形工作电压5.0V3.3V~5.0V引脚占用至少需要6根~11根数据/控制线I2C通信,仅需2根数据线(SCL,SDA)功耗/视角功耗较高,视角较窄功耗极低,超广视角,对比度高外形尺寸体积及厚度较大,占用正面面板空间超薄设计,体积轻巧,易于嵌入微型外壳界面美观度传统工业蓝屏/黄绿屏黑色背景高亮显示,字迹清晰综上所述,0.96寸OLED显示模块本系统最终选型0.96寸OLED显示屏。该模块外形尺寸仅为27.3mm×27.8mm,整体体积小巧、厚度极薄,非常适合安装在数字电能表狭小的外壳视窗内。通过标准I2C总线与STM32进行高速通信,能够在一屏内同时、清晰地显示“电压、电流、功率、电能”四项核心数据,极大提升了用户本地人机交互的体验,完全符合系统低成本、高集成度与低功耗的设计原则。3.1.5硬件选型清单综合上述各核心模块的选型论证,本次设计的数字电能表系统硬件选型清单如下表所示:关于系统硬件选型清单如下表3-5所示:表3-5系统硬件选型清单序号元器件名称型号规格数量主要功能1主控芯片STM32F103C8T61系统控制核心,负责数据处理与逻辑控制2电能计量模块PZEM-0041采集电压、电流、有功功率,计算累计电能3无线通信模块ESP8266(ESP-01S)1实现WiFi通信,上传数据至云平台4显示屏0.96寸OLED(I2C接口)1本地显示电能参数与系统状态5轻触按键6×6×5mm4实现本地人机交互与参数设置6继电器模块5V单路继电器(带光电隔离)1控制用电回路的通断7有源蜂鸣器5V有源蜂鸣器1实现过载声光报警8发光二极管红色高亮LED1实现过载声光报警9三极管S90122驱动蜂鸣器与继电器续表3-5系统硬件选型清单10线性稳压芯片XC6206-3.3V1将5V转换为3.3V为主控与外设供电11无源晶振8MHz1为主控芯片提供高速时钟源12无源晶振32.768kHz1为主控芯片RTC提供低频时钟源13电阻1K、4.7kΩ、10kΩ若干限流、上拉、下拉14电容100nF、22μF、100μF若干滤波、去耦15万能板9×15cm1搭建硬件电路16排针排母2.54mm间距若干模块连接与扩展(辅助器件选型)3.2STM32F103C8T6单片机最小系统主控最小系统是整个数字电能表的控制核心,所有电能数据的解析处理、累计电能的存储计算、人机交互逻辑、保护控制指令输出、无线通信调度,均由该芯片完成。芯片采用LQFP48封装,工业级工作温度范围,可适配不同应用场景的环境要求,最小系统电路围绕芯片的稳定运行设计,主要包含电源电路、时钟电路、复位电路、启动模式配置电路与程序下载接口五个核心部分。关于STM32F103C8T6单片机图如下图3.4所示:图3.4STM32F103C8T6单片机这是本次数字电能表设计采用的STM32F103C8T6单片机核心板,元件编号为U4,采用40引脚封装形式,板上标注了完整的引脚定义、已连接的外围电路以及构成最小系统的电源、复位、晶振相关电路部分:电源电路包含引脚19、40两个3.3V电源引脚(其中引脚40已连接3.3V电源)、引脚38一个5V电源引脚(已连接5V电源)、引脚20、39两个接地引脚(其中引脚39已连接电源地),还有引脚1的VBAT电池供电引脚,为单片机提供稳定的供电基础;复位电路的核心为引脚17标注的RESET硬件复位引脚,用于系统复位操作;晶振电路方面,引脚3标注的PC14和引脚4标注的PC15是低速外部晶振的输入输出端,用于为单片机内置实时时钟提供精准时基;通用IO引脚按端口划分,PC端口有PC13(引脚2),PA端口有PA0(引脚5)、PA1(引脚6)、PA2(引脚7)、PA3(引脚8)、PA4(引脚9)、PA5(引脚10)、PA6(引脚11)、PA7(引脚12)、PA8(引脚24)、PA9(引脚25)、PA10(引脚26)、PA11(引脚27)、PA12(引脚28)、PA15(引脚30),PB端口有PB0(引脚13)、PB1(引脚14)、PB10(引脚15)、PB11(引脚16)、PB12(引脚21)、PB13(引脚22)、PB14(引脚23)、PB15(引脚24)、PB3(引脚31)、PB4(引脚32)、PB5(引脚33)、PB6(引脚34)、PB7(引脚35)、PB8(引脚36)、PB9(引脚37);图中显示的外围电路连接为引脚22(PB13)和引脚23(PB15)各自通过一个1K限流电阻连接至5V电源。3.2.1电源电路电表电源主要把220V市电转换成5V、3.3V低压直流电,给主控芯片、计量模块、显示屏、通信电路供电。前端先加防护电路,用压敏电阻、TVS管吸收电网浪涌雷击干扰,避免高压烧坏元器件。简易单相表多用阻容降压方案:靠安规电容限流,整流后经LDO稳压输出低压,结构简单、成本低,但无电气隔离,功率偏小。智能电表普遍采用隔离反激开关电源,通过高频变压器实现强弱电彻底隔离,抗干扰强、带载稳定,电压精度更高。后级分两路稳压:3.3V供给计量、MCU精密电路,5V驱动继电器、485通信。还配有后备储能电路,断电后靠超级电容维持时钟走时和数据保存。PCB布局需强弱电分区留足安全间隙,做好滤波降纹波,保障计量精准和长期工作可靠。3.2.2复位电路电能表复位电路作用是上电、电压不稳、死机时强制让MCU、计量芯片回到初始状态,保障电表程序稳定运行。主流采用专用电源监控复位芯片方案,搭配简单外围元件。上电阶段:电源电压缓慢上升,芯片输出低电平复位信号,维持几十毫秒延时,等3.3V供电稳定后释放复位,主控正常启动工作。电网电压跌落、瞬间掉电时,监控芯片快速触发复位,防止程序跑飞、计量数据错乱。电路结构简单,复位引脚接上拉电阻,并联0.1μF滤波电容抑制干扰误触发;部分电路增设手动复位按键,调试时可人工重启。设计需兼顾抗浪涌、抗电磁干扰,远离电源开关高频走线,避免EMC干扰造成频繁误复位。同时配合掉电检测电路,断电前及时存储电量、事件记录,防止关键数据丢失,满足电表长期可靠运行要求。3.2.3时钟电路数字电能表时钟用于计量分时电量、事件记录,电路以高精度RTC芯片为核心,搭配主控单片机构成。选用内置晶振的实时时钟芯片,外接32.768kHz无源晶振与10~30pF微调电容,保障走时精度,环境温漂控制在月误差≤30秒。供电采用双电源架构:主电源取自电表辅助电源,断电后由纽扣备用电池独立供电,防止停电丢时;增设防反接二极管与限流电阻,避免电源倒灌损坏器件。芯片通过I²C总线与电能表MCU通信,实现时间读写、闰年自动校准。外围搭配低频滤波电容,抑制电网谐波干扰;预留温补设计适配高低温工况,满足电能表长期户外运行的计时可靠性,契合国网电表计时规范。3.3电能参数采集电路设计电能参数采集电路是数字电能表的核心,是所有计量数据的来源,系统的电压、电流、功率测量与累计电能计量,均基于该电路采集的数据实现。本次设计选用的PZEM-004模块,支持宽范围交流电压输入,完美适配国内220V民用与工业低压用电场景的计量需求,电路设计重点关注电气隔离与通信稳定性,避免强电回路的干扰串入低压数字电路,影响计量精度与系统运行。关于电能参数采集电路设计图如下图3.5所示:图3.5电能参数采集电路设计模块工作电源接入系统5V供电总线,GND引脚与主控芯片的数字地直接共地,保证串口通信的电平匹配,避免通信数据出现乱码与错误。模块的3引脚连接至主控芯片的PB11引脚,2引脚连接至主控芯片的PB10引脚;串口通信波特率配置为9600,与主控芯片USART3的配置保持一致,保证数据传输的同步性与准确性。模块的交流采样端并联接入被测用电回路,回路火线穿过模块内置的高精度电流互感器,实现交流电流的非接触式采样;电压采样端并联在回路的火线与零线两端,实现交流电压的同步采样。模块内置的电能计量芯片,可实时对采集到的电压、电流信号进行运算处理,计算出回路的有功功率与累计电能数值;主控芯片通过串口向模块发送标准读取指令,模块即可返回固定格式的数据帧,主控完成数据帧解析与校验后,即可得到精准的电压、电流、有功功率、累计电能参数,无需额外的软件校准,大幅简化了计量功能的开发流程,同时保证了计量精度的长期稳定性。3.40.96寸OLED显示电路设计显示电路是数字电能表本地人机交互的核心载体,可让用户直观查看实时用电参数与累计电能计量数据,无需额外的辅助设备。本次设计选用0.96寸OLED显示屏,分辨率为128×64,采用I2C串行通信方式,无需复杂的并行接口,接线简单,占用主控IO口资源少,完全适配系统的显示需求。关于OLED显示电路设计图如下图3.6所示:图3.6OLED显示电路设计屏幕VDD引脚接入系统5V供电端,GND引脚与主控数字地相连,在保证供电稳定的同时,避免电平不匹配导致的通信异常。屏幕SCK时钟引脚连接至主控PB6引脚,SDA数据引脚连接至主控PB7引脚,两路信号线均通过4.7K电阻上拉至3.3V,保证I2C总线空闲时的电平稳定,避免通信过程中出现数据跳变错误,提升通信可靠性。主控通过软件模拟I2C通信时序,即可完成屏幕初始化、清屏、字符与数字显示等操作,无需额外的硬件驱动芯片,大幅简化了电路设计。OLED屏为自发光器件,无需背光源,在强光与弱光环境下均能保持清晰的显示效果,可视角度接近180°,可满足用户不同角度的查看需求;同时屏幕全屏点亮时工作电流仅15mA,功耗极低,不会给系统电源带来额外负担。屏幕可分屏显示电压、电流、有功功率、累计电能等多项参数,界面布局清晰,数据读取便捷。3.5按键输入电路设计按键输入电路是用户进行本地参数设置与手动控制的核心途径,用户可通过按键切换显示界面、调整功率保护阈值、清零累计电能数值、手动控制供电回路的通断,满足日常使用的各类操作需求。本次设计采用4个独立的轻触按键,按键使用寿命长,操作手感清晰,可适配频繁操作的使用场景。关于按键输入电路设计图如下图3.7所示:图3.7按键输入电路设计按键顺序与功能定义(从上至下K1-K4):K1键(功能切换键):一端接地,另一端连接至主控PB9引脚。按下时系统在“实时计量数据显示模式”与“参数设置模式”之间循环切换,同时自动清屏并显示对应模式的界面内容。K2键(数值增加键):一端接地,另一端连接至主控PB8引脚。在参数设置模式下,每按一次功率保护上限阈值增加1W,调整范围为1-9999W,调整后的数值实时同步显示。K3键(数值减少键):一端接地,另一端连接至主控PC14引脚。在参数设置模式下,每按一次功率保护上限阈值减少1W,最低可调整至1W。K4键(确认与控制键):一端接地,另一端连接至主控PC15引脚。短按可手动切换继电器通断状态或解除报警;在参数设置模式下长按3秒可清零累计电能数值。四个按键功能划分清晰,操作逻辑简单,用户无需专业培训即可快速上手。按键布局预留了充足的操作间距,可适配戴手套操作的场景,避免操作时出现误触,提升了设备的操作便捷性。3.6WiFi通信电路设计WiFi通信电路是数字电能表实现远程管控的核心桥梁,负责将本地计量的电能数据与设备运行状态上传至云平台,同时接收云平台下发的控制指令并传输至主控芯片。本次设计选用ESP-01S型号的ESP8266模块,内置完整的TCP/IP协议栈,支持串口转WiFi双向透传功能,体积小巧,外围电路设计简单,可直接嵌入设备硬件中,无需复杂的额外设计。关于WiFi通信电路设计图如下图3.8所示:图3.8WiFi通信电路设计模块VCC引脚接入系统3.3V供电端,严禁直接接入5V供电,避免模块永久性烧毁;供电端并联100μF电解电容与104陶瓷电容,滤除电源纹波,由于模块在发射数据时会产生瞬时大电流,大容量电容可保证供电稳定,避免模块出现掉电复位的情况。模块GND引脚与主控数字地直接共地,保证串口通信的电平一致性;模块UTXD引脚连接至主控PA3引脚,URXD引脚连接至主控PA2引脚。模块CH-PD引脚通过10kΩ电阻上拉至3.3V,保证模块上电后直接进入正常工作模式;GPIO1与GPIO2引脚均通过上拉电阻固定电平,避免模块上电后误进入下载模式,无法正常启动运行[17]。3.7声光报警与继电器控制电路设计报警与控制电路是数字电能表实现用电安全保护的核心单元,当监测到用电回路功率超过设定阈值时,系统可快速触发声光报警,同时通过继电器切断供电回路,避免线路过载引发的安全事故,电路设计重点关注强电与弱电的电气隔离,以及动作的可靠性。关于声光报警电路如下图3.9所示:图3.9声光报警电路声光报警电路由红色高亮LED灯与有源蜂鸣器组成,LED灯正极通过1kΩ限流电阻接入5V供电,负极连接至S9012三极管的集电极;蜂鸣器正极接入5V供电,负极同样连接至该三极管的集电极,三极管基极通过1kΩ电阻连接至主控PB13引脚,发射极直接接地。当主控PB13引脚输出低电平时,三极管导通,LED灯同步点亮,蜂鸣器发出持续报警声,实现声光同步报警,醒目提醒用户排查用电异常。继电器控制电路采用5V单路继电器模块,内置光电隔离电路,可有效避免强电回路的干扰串入低压数字电路,保障系统运行安全。继电器线圈正极接入5V供电,负极连接至另一路S9012三极管的集电极,三极管基极通过1kΩ电阻连接至主控PB15引脚,发射极接地。当主控PB15引脚输出低电平时,三极管导通,继电器线圈得电,触点吸合,被测用电回路导通;反之则继电器触点断开,切断用电回路,实现过载自动断电保护。继电器触点额定电流可覆盖绝大多数民用与小型商用场景的用电需求,动作响应速度快,使用寿命长,可满足频繁通断的使用需求。关于继电器电路设计如下图3.10所示:图3.10用电参数检测电路3.8总电路图设计系统总电路图以STM32F103C8T6单片机最小系统为核心,采用模块化设计思想,将各功能单元电路有机整合,形成完整的数字电能表硬件系统。电源部分采用5VUSB输入,经XC6206-3.3V线性稳压芯片转换后为主控、OLED屏及ESP8266模块供电,5V电源直接为PZEM-004计量模块、继电器与蜂鸣器供电。PZEM-004模块通过USART3(PB10、PB11)与主控通信,实现电能参数采集;0.96寸OLED屏通过I2C总线(PB6、PB7)连接,完成数据显示;4个独立按键分别连接至PC14、PC15、PB8、PB9引脚,实现人机交互;ESP8266模块通过USART2(PA2、PA3)与主控通信,实现数据上传;声光报警与继电器控制电路分别由PB13、PB15引脚驱动。电路设计中加入了多处限流电阻与滤波电容,关键信号线上串联1kΩ电阻,电源端并联不同容量的滤波电容,有效抑制电磁干扰。整体电路布局紧凑,接线清晰,便于焊接调试与后期维护。关于总电路如下图3.12所示:图3.12总电路图3.9本章小结本章详细阐述了数字电能表系统的硬件电路设计。首先通过多方案对比完成了主控芯片、电能计量模块与无线通信模块的选型论证,并列出了系统完整的硬件选型清单。随后分模块详细介绍了STM32单片机最小系统、电能参数采集电路、OLED显示电路、按键输入电路、WiFi通信电路、声光报警与继电器控制电路的设计原理、器件连接方式与设计要点。最后给出了系统的总体硬件电路原理图,完成了整个硬件系统的设计与搭建。硬件设计过程中充分考虑了电气隔离与抗干扰措施,保证了系统在复杂电磁环境下的稳定运行。4系统的软件设计4.1软件开发环境本次数字电能表系统的软件开发,采用KeiluVision5集成开发环境完成,该环境专为ARMCortex-M系列内核单片机设计,内置完整的代码编译、链接、调试工具链,支持代码编辑、断点调试、在线仿真等全流程开发功能,完美适配STM32F103系列芯片的开发需求。系统程序代码采用C语言编写,语法简洁,执行效率高,可移植性强,适配嵌入式系统的开发场景;在程序开发过程中调用STM32标准外设库,大幅简化了芯片外设的配置流程,提升了代码的可读性与可维护性[18]。串口调试采用串口助手工具完成,用于ESP8266模块的AT指令调试、串口通信测试与数据传输校验,验证模块通信功能与数据传输的准确性。云平台配置通过Tlink云平台网页端完成,可实现设备创建、数据点定义、可视化界面设计、报警规则配置等操作,无需复杂的服务器后端开发,大幅降低了系统的开发难度与开发周期。移动端功能基于Tlink云平台配套的微信公众号实现,无需单独开发手机APP,进一步降低了开发成本,提升了用户使用的便捷性[19]。关于Keil_5软件界面如下图4.1所示:图4.1Keil_5软件界面4.2软件程序的设计4.2.1主程序运行流程系统的主流程图如图4.2所示,系统上电后,首先完成全系统的初始化配置,包括系统时钟配置、IO口初始化、串口通信配置、定时器中断配置、OLED显示屏初始化、按键接口初始化、ESP8266模块初始化;初始化完成后,OLED屏显示网络连接状态提示,等待WiFi模块连接周边WiFi网络与Tlink云平台,网络连接成功后清屏,进入系统主循环程序。主循环程序采用分时调度机制,通过定时器中断生成的时基,按照设定的周期依次执行按键扫描处理、电能数据采集与累计计量、显示内容刷新、阈值判断与过载保护控制、云端数据上传五项核心任务,各任务之间通过定时器标志位进行调度,避免出现任务阻塞,保证系统运行的实时性。定时器中断设置为1ms触发一次,用于生成系统精准时基,为按键消抖、数据采集周期、电能累计计量、数据上传周期提供准确的时间基准,保证系统各任务时序准确,不会出现时序混乱的问题。主循环设置了两种显示模式,模式0为实时计量数据显示模式,屏幕分屏显示当前回路的电压、电流、有功功率与累计电能数值;模式1为参数设置模式,可进行功率保护阈值设置与累计电能清零操作[20]。关于系统逻辑程序如下:#include"led.h"#include"delay.h"#include"sys.h"#include"usart.h"#include"oled.h"#include"key.h"#include"string.h"#include"timer.h"#include"usart2.h"#include"usart3.h"#include"esp8266.h"u8moshi=0;u16powe_h=500; //设置上限值 u8kg_flag=0; //开关标志位u8b1_flag=0;floatEne_num=0;unsignedlongVol_num=0,Ele_num=0,Pow_num=0;//定义四个数据变量intjs_num; 关于系统逻辑流程图如下图4.2所示:图4.2系统逻辑流程图4.2.2按键处理子程序流程按键子程序流程图如图4.3所示,按键处理子程序在主循环中持续循环执行,通过循环扫描四个按键的电平状态,配合软件延时消抖程序,识别有效的按键按下动作,并根据不同的按键执行对应的操作,有效避免按键误触发的问题。当功能切换键按下时,系统会切换显示模式,在实时计量数据模式与参数设置模式之间循环切换,同时执行清屏操作,显示对应模式的界面内容,避免显示内容重叠。在参数设置模式下,数值增加键与数值减少键按下时,会对应调整功率保护上限阈值的数值,阈值调整范围设置为1-9999W,可适配不同场景的用电保护需求,调整后的数值会实时同步至对应的全局变量中,同时在屏幕上刷新显示。当确认与控制键短按时,可手动切换继电器的通断状态,实现现场手动控制用电回路的通断;在报警触发状态下,短按该键可解除报警状态,恢复正常供电;在参数设置模式下,长按该键3秒,可执行累计电能数值清零操作,满足用户重新计量电能的使用需求。关于按键子程序流程图如下图4.3所示:图4.3按键子程序流程图关于按键子程序如下:voidKey_process(){ u8t=0; u8t1=0; t=KEY_Scan(0); //得到键值 t1=KEY_Scan(1); if(t==KEY0_PRES) { OLED_Clear(); moshi++; if(moshi>=2)moshi=0; if(moshi==0) { OLED_ShowStr(16,16,"电压:V",16); OLED_ShowStr(16,32,"电流:.A",16); OLED_ShowStr(16,48,"功率:W",16); } elseif(moshi==1)OLED_ShowStr(16,24,"功率上限:",16); }4.2.3数据显示子程序流程数据显示子程序流程如下图4.4所示,数据显示子程序会根据当前系统的显示模式与运行状态,实时刷新OLED屏的显示内容,保证显示数据与实际计量数据的同步性。在实时计量数据模式下,屏幕分四行分别显示当前回路的电压、电流、有功功率与累计电能数值,数值根据采集到的最新数据实时刷新,刷新周期与数据采集周期同步,为500ms,保证显示内容无延迟、无卡顿。在参数设置模式下,屏幕会显示当前设定的功率保护上限阈值,调整数值时,屏幕上的数值会同步更新,让用户直观看到调整后的数值;同时屏幕下方会显示长按确认键清零累计电能的操作提示,引导用户完成对应操作。当系统触发过载报警时,屏幕会自动切换至报警提示界面,全屏显示过载报警提示信息,同时闪烁显示当前的实时功率数值,醒目提醒用户注意用电异常。每次切换显示模式或界面时,都会先执行清屏操作,避免出现显示内容重叠、乱码的情况,保证屏幕显示清晰、整洁。关于显示子程序如下: LCD_ShowNum(56,16,Vol_num,3,16); //显示电压 LCD_ShowNum(56,32,Ele_num/10%10,1,16); //显示电流 LCD_ShowNum(72,32,Ele_num%10,1,16); LCD_ShowNum(56,48,Pow_num,3,16); //显示功率 if(kg_flag==1) //打开 { JDQ1=0; if(Pow_num>powe_h) //断电控制 { JDQ1=1;kg_flag=0;b1_flag=1; } }关于显示子程序流程图如下图4.4所示:图4.4显示子程序流程图4.2.4通信子程序流程本系统的通信子程序主要负责主控芯片STM32与外部ESP8266WiFi模块之间的数据交互,其详细执行流程如固件通信流程图所示。当系统上电复位后,程序首先进入初始化阶段,依次完成GPIO引脚配置、系统时钟初始化、OLED显示屏初始化以及定时器中断配置。紧接着,程序对系统串口进行初始化设置,分别配置连接WiFi模块的串口2与连接计量模块的串口3的通信参数。随后,主控芯片通过串口2向ESP8266模块发送配置AT指令,启动无线连接。程序在此处建立了一个握手循环架构:系统持续检测网络连接状态并判定是否连接成功,若连接失败或超时,程序将返回上一步重新发送配置指令进行握手;一旦网络成功连接并顺利接入Tlink云平台,OLED屏幕将刷新并跳转至初始化完成的主数据显示界面,随后系统正式开启定时发送机制。关于通信子程序:voidCommunication_Task(void){if(fs_flag!=1)return;//未到上传时间直接返回fs_flag=0;//清零上传标志位if(WiFi_Status!=WiFi_CONNECTED)return;//WiFi未连接不发送charsend_buf[64];//定义数据发送缓冲区//按Tlink协议打包电压、电流、功率、电能数据sprintf(send_buf,"#:%d,%d,%.1f,%.2f#",Vol_num,Ele_num/10.0,Pow_num/1.0,Ene_num);USART2_SendString(send_buf);//通过串口2发送给ESP8266//可选:添加发送成功日志//printf("Datasent:%s\r\n",send_buf);}关于通信子程序流程图如下图4.5所示:图4.5通信子程序流程图在系统进入主循环运行后,通信子程序采用标志位轮询机制来实现数据的周期性上传。主控芯片在循环中不断读取并判断发送标志位fs_flag的状态是否为1。若定时器未到设定时间、fs_flag为0,则程序直接跳过发送分支,继续执行本地的按键扫描与数据采集逻辑;当定时器计满周期触发中断,将fs_flag置为1时,程序立即进入数据发送分支。主控芯片首先将本地缓存的电压、电流、功率和电能等核心电力参数按照Tlink平台协议打包组帧,随后通过串口2将封装好的协议字符串发送给ESP8266模块,由其透传至云端。数据流发送完毕后,程序在分支末尾及时将标志位fs_flag清零复位,以防造成数据重复发送或通道堵塞。最后,程序退出发送逻辑,重新返回主循环入口进行下一次标志位轮询,从而在保障本地控制实时性的同时,实现了物联网端数据的稳定同步。4.2.5系统整体工作流程系统上电后,首先完成STM32单片机最小系统、OLED显示屏、按键接口、PZEM-004电能计量模块、ESP8266WiFi模块、声光报警与继电器控制模块的初始化配置。初始化完成后,OLED屏显示"Conecting..."提示信息,等待ESP8266模块连接周边WiFi网络与Tlink云平台。网络连接成功后,系统进入主循环工作模式,采用分时调度机制,按照设定的周期依次执行以下任务:按键扫描处理:每20ms扫描一次按键状态,识别用户的功能切换、数值调整、确认与控制操作。电能数据采集:每500ms向PZEM-004模块发送一次数据读取指令,解析返回的数据帧,获取电压、电流、有功功率参数,并通过软件积分算法计算累计电能。显示内容刷新:根据当前显示模式,实时更新OLED屏的显示内容,保证数据的实时性。阈值判断与过载保护:将采集到的有功功率与设定的保护阈值进行比较,若超过阈值则立即触发声光报警并切断继电器。云端数据上传:每1秒将最新的计量数据与设备运行状态上传至Tlink云平台。系统整体工作流程如下图4.6所示:图4.6系统整体工作流程图4.3本章小结本章介绍了数字电能表系统的软件设计与开发过程。首先说明了系统的软件开发环境,包括KeiluVision5集成开发环境、C语言编程语言以及STM32标准外设库的使用。随后详细阐述了系统的软件程序设计,重点介绍了主程序的运行流程,采用分时调度机制实现多任务并行处理;同时分模块讲解了按键处理子程序、数据显示子程序、电能数据采集子程序与云端数据上传子程序的设计逻辑。最后介绍了Tlink云平台的对接与配置方法,实现了云端数据存储、历史查询与移动端远程管控功能。软件设计采用模块化编程思想,代码结构清晰,可读性与可维护性强。5系统的测试5.1硬件单元性能测试系统硬件电路采用专业PCB板设计制作,板层为双层板,整体尺寸为90mm×150mm,与原万能板尺寸保持一致。PCB板采用绿色阻焊层,白色丝印标注各元器件位置与引脚定义,布局合理,走线清晰,有效减少了电磁干扰,提升了系统运行的稳定性。关于空PCB版实物图如下图5.1所示:图5.1空PCB板实物图PCB板按功能划分为六个核心区域:主控核心区:位于PCB板中央位置,集成STM32F103C8T6单片机最小系统,包括主控芯片、8MHz晶振、32.768kHz晶振、复位电路与SWD下载接口,是整个系统的控制中心。电源管理区:位于PCB板左上角,集成XC6206-3.3V稳压芯片、滤波电容与电源输入接口,负责将5V输入电压转换为3.3V稳定电压,为系统各模块供电。电能计量区:位于PCB板右上角,预留PZEM-004模块接口与电流互感器接线端子,实现交流电压、电流与功率参数的采集。人机交互区:位于PCB板左侧,集成0.96寸OLED显示屏接口与4个轻触按键,实现本地数据显示与参数设置功能。无线通信区:位于PCB板右下角,预留ESP8266WiFi模块接口,实现数据的远程上传与云端通信。保护控制区:位于PCB板左下角,集成继电器模块、有源蜂鸣器与红色LED灯,实现过载声光报警与用电回路通断控制。焊接前先核对所有元器件的型号、规格与数量,按照先矮后高、先弱电后强电的顺序进行焊接,避免出现虚焊、漏焊、连焊等焊接缺陷。焊接完成后,先不通电,使用万用表通断档测试各个电路的连接情况,重点检查电源与地之间是否存在短路,各信号线的连接是否正常,排查焊接过程中出现的短路、断路问题,确认电路无短路隐患后,再进行通电测试。通电测试时,先接入稳定的5V直流电源,使用万用表测试各个供电节点的电压值,没有图吗(没有)重点检测3.3V稳压芯片的输出电压是否稳定在3.25V~3.35V之间,各个外设模块的供电是否正常,避免电压异常烧毁元器件。随后逐个测试各个外设模块的工作状态,验证OLED屏能否正常点亮并显示内容,按键能否正常触发并被主控识别,继电器能否正常吸合与断开,蜂鸣器能否正常发声,ESP8266模块能否正常启动并进入工作模式,PZEM-004模块能否正常返回采集数据。针对测试中发现的虚焊、接线错误等问题,及时进行修复,最终所有硬件单元均能正常工作,各项性能指标满足设计需求。5.2软件功能完整性测试软件调试在KeiluVision5开发环境中完成,通过SWD仿真器连接主控芯片,采用断点调试、单步执行、变量实时监控的方式,前面没有对这个选型呀能实现吗(什么意思?这是软件啊)逐段验证代码的执行逻辑,排查代码中的语法错误与逻辑漏洞。首先调试各个外设的驱动代码,验证串口、IO口、定时器、OLED屏、按键的初始化是否正常,按键扫描能否准确识别按键动作,电能数据采集能否正常解析模块返回的数据帧,累计电能计量算法能否正常运行,保证各个外设的驱动代码可正常工作。随后调试ESP8266模块的驱动代码,验证AT指令的执行是否正常,模块能否正常连接WiFi网络与云平台服务器,数据上传是否稳定,数据格式是否符合平台要求,修复调试过程中出现的网络连接异常、数据上传失败等问题。最后调试系统的整体逻辑代码,验证阈值判断、过载保护、模式切换、远程指令解析的逻辑是否符合设计需求,优化代码执行效率,保证系统连续72小时运行不会出现死机、数据溢出、程序跑飞等问题。最终编译完成的代码无错误与警告,下载至主控芯片后,设备可正常启动并运行所有功能。5.3实物功能测试5.3.1电能参数实时采集与显示功能本项测试在不同负载条件下进行,分别接入10W、20W阻性负载与电机类感性负载,测试系统的采集与显示功能。测试结果显示,系统可实时采集被测用电回路的交流电压、交流电流、有功功率、累计电能四项核心参数,采集到的数据可在OLED屏上实时刷新显示,刷新周期500ms,数值显示清晰,无卡顿、跳变、乱码等情况,各项参数的显示单位准确,界面布局清晰,可满足用户本地查看的需求,功能符合设计要求。这些内容放到5.3如下是焊接完成后的实物板子图5.2所示:图5.2焊接完成后的实物板子图下面是焊接完之后板子上每一个硬件的功能:1.显示模块:连接被测的设备之后显示屏上显示采集到的电流、电压、功率和累计电能。2.灯L1:功率过大引起的过载报警之后灯L1亮。3.电源开关:控制总电路。4.电源插口1:连接电源插口1才能电源开关来控制总电路。5.SWD连接接口:用于电表MCU程序烧写、故障调试、参数读写与固定升级。6.32.768kHz晶振:是芯片吗(不是内部晶振)提供基准时钟,保障日历计时,分时计费,低功耗运行,断电维持始终走时。7.8MHz:芯片吗给主控MCU提供工作主频,驱动电表运算、计量;分频生成采样时钟,用于电能脉冲采集。8.单片机STM32F芯片:主控运算,处理电量采集,计费,按键,通讯,管控电表全功能,驱动液晶,参数存储。9.电源插口2:电源与电源插口2连接即可,就能运用数字电能表。10.按键K1:把显示屏原来的采集电流,电压,功率和电能屏幕能调换到上限功率屏幕。11.按键K2:阈值上升。12.按键K3:阈值下降。13.按键K4:继电器开关。14.继电器:产生过载报警时切断电源回路。15.WiFi通信模块:设备预先固化配网参数,使用手机搭建同名同密码无线网络,模块完成配网接入云端,依托云平台实现设备远程监测与控制。16.指示灯L2:继电器吸合导通时L2点亮,通过该指示灯的亮灭状态,直观判定继电器触点动作状态与回路通断工况。实物分步测试流程本样机整机测试分为七个试验步骤:步骤1:接入系统供电电源,闭合电源总开关,设备上电初始化,OLED显示屏跳转至电参量实时采集界面。步骤2:搭建配套无线热点,模块自动完成WiFi配网连接,组网成功后屏幕实时刷新电压、电流、有功功率、累计电能各项测量数据。步骤3:将待测用电负载接入计量回路,通过实体按键控制继电器闭合,导通负载供电回路。步骤4:依据被测负载额定功率,切换参数设置界面,通过加减按键修改系统过载保护功率阈值。步骤5:下调保护阈值至负载实际运行功率以下,系统判定功率超限,自动触发声光报警机制。步骤6:过载报警触发后,主控驱动继电器分闸,自动切断负载供电回路,实现过载断电保护。步骤7:可通过本地按键或移动端远程指令复位继电器,试验完毕后断开总电源,终止整机测试。如下是连接WiFi模块接之前的显示功能图5.3所示:图5.3连接WiFi模块之前的显示功能在移动端配置无线网络热点,热点名称设置为ESP8266A,热点密码与程序预设配网密钥保持一致;WiFi模块校验参数无误后自动接入无线网络,联网完成后OLED屏幕实时刷新电压、电流、有功功率、累计电能实测数据,联网后显示效果如图5.2所示。图5.2连接WiFi模块之后的显示功能连接WiFi之后手机上也可以操作,并且能够看到电气参数。下一步插好被测的设备,并且打开继电器开关,打开继电器之后右下角一个小灯会亮的,(看灯L2亮没亮能判断出继电器有没有损坏,能不能正常使用,还能判断出继电器是不是在操作。)显示屏上采集当前的功率,电压,电流,电能。因为用的设备电流太小,没有采集出来。如下是插好设备之后的显示功能图5.3所示:图5.3查好设备之后的采集显示打开启动继电器按键灯L2亮了这说明,继电器再正常工作,并且继电器已经启动了。5.3.2阈值设置与修改功能本项测试通过按键操作完成,测试结果显示,可通过功能切换键切换至参数设置模式,通过增减键调整功率保护上限阈值,调整范围1-9999W,调整后的数值可实时显示在屏幕上,设备断电重启后,阈值数值不会丢失,可长期存储;在参数设置模式下,长按确认键3秒,可完成累计电能数值的清零操作,清零后屏幕显示的累计电能数值归零,计量重新开始,操作逻辑清晰,功能符合设计要求。因为用的手机的功率实在太小,功率上限限制到了100W,不然功率上限太大,之间的误差也变大了,为了减小之间误差功率上限调小了点。如下是功率上限为100W时看到的图5.4所示图5.4阈值设置与修改功能插好被测的设备之后打开继电器开关。数字电能表已经设置好的上限有功功率值为500W,因为被测设备的有功功率有点小所以先跳到100W。然后确认,能看到电压、电流、率和累计电能,并且设备在正常工作。上限功率调到小于设备有功功率,如下是功率上限调到5W时的采集到的图:图5.5上限功率跳到5W时采集功能5.3.3过载报警与断电保护功能本项测试通过模拟过载工况完成,设定功率保护阈值为100W,通过接入大功率负载,使回路功率超过设定阈值。测试结果显示,当采集到的功率数值超过设定阈值时,系统可在80ms内触发声光报警,同时断开继电器切断用电回路,报警状态可通过按键手动解除,故障排除后可手动恢复正常供电;手动控制模式下,可通过按键直接控制继电器的通断,动作响应迅速,无延迟、误动作的情况,保护逻辑准确可靠,功能符合设计要求。如下是过载报警是所看到的图5-6所示:图5.6过载报警时采集显示产生过载报警的时候灯L1会亮的并且蜂鸣器响,同时继电器自动切断如下是过载报警结束之后所看见的图5.7所示:5.4本章小结本章完成了数字电能表系统的全面测试与性能验证。首先进行了硬件单元性能测试,通过万用表与示波器等工具,排查了硬件电路的焊接缺陷与连接问题,验证了各个外设模块的工作状态。随后进行了软件功能完整性测试,通过断点调试与单步执行的方式,逐段验证了代码的执行逻辑,修复了调试过程中发现的问题。最后进行了实物功能测试,重点验证了电能参数实时采集与显示功能、阈值设置与修改功能、过载报警与断电保护功能以及云端数据上传功能。测试结果表明,系统各项功能均符合设计要求,电能计量精度满足国家相关标准,设备运行稳定可靠,可适配多种应用场景的用电计量与管

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论