本项目基于stm32f103c8t6芯片通过集成众多模块和元器件,通过ESP01-S和阿里云平台实现智能插座的项目开展。资料获取到咸🐟:xy591215295250 \\\或者联系wechat 号:comprehensivable
随着电子科学与技术的快速发展,软硬件成本持续降低,智能家居逐渐进入公众视野,智能插座作为智能家居的一部分而备受关注。本项目主要目的为了减少由于家用电器使用不当引发火灾以及电器待机状态带来的能源浪费,促进智能家居的普及和推广节能减排的政策。
本文基于stm32构建了智能插座系统,该系统可测量用电器件的电压、电流和功率等参数,一旦电器功率超载,系统将自动断电并发出警报。系统的硬件部分整合了核心板、电源转换模块、电压电流互感器和继电器等组件,使用电压电流互感器获取电信号,通过ADC进行采样和数据传输,单片机处理数据后显示用电器件的参数信息,利用WIFI模块与手机实现远程信息传输,实现系统的监控和数据分析。该系统最终实现了智能插座的预想功能,通过手机APP监测插座的开关状态和显示电器设备的能耗情况,包括电压、电流和功率参数,并实时在OLED屏幕上显示。同时,当电器设备的功率超过设定阈值时,智能插座将自动切断电源并发出警报提示。经过测试,系统取得了预期的结果,智能插座的研究对于节能和家用电器安全使用具有重要意义,通过远程监控电器设备的能耗情况,有助于确保电器的安全使用。此外,在电器设备闲置时远程切断电源可实现节能效果,为节约能源做出贡献。
以上为本项目的摘要,其项目背景、项目主要内容和项目功能在摘要中已简要表达;
以下内容主要为详细的介绍本次项目中所使用到的硬件,包括整体硬件分布以及各个模块选型依据和主电路,主要包括核心控制模块、电源转换模块、电压电流信号采集电路、远程通信模块、显示屏模块和继电器模块。
本项目需要完成所预期的功能包括对用电器件的电压电流以及功率进行测量并且显示,超过阈值进行自动断电以及报警提示,使用手机上位机软件进行远程监控[26,27],对用电器件进行通断状态控制和用电数据统计,不同色彩led显示不同工作状况,采用电路板进行集成,整体集成电路板分布如下图3.1所示。
图3.1 整体硬件布局
通过采用PCB绘制软件来绘制电路板布局,提前分配好其MCU的管脚功能控制,尽量将整体紧凑排列,其中,由于一块电路板上涉及强电和弱电,需要进行电气隔离。
本设计中,主程序控制系统执行,首先对系统参数进行初始化,其中包括IO口、串口、定时器、ADC、按键等参数,系统使用OLED进行开机过渡,后续进行自检,包括对按键,继电器和LED等硬件检查是否正常,接入用电器件后,通过电压电流互感器采集电信号,通过ADC采集并且进行计算获得功率等数据,通过设定功率阈值,程序判断是否超过阈值,当超过阈值后进行断电并且报警提示,若是没有超过阈值便将相关数据显示于OLED上,其中使用WIFI模块进行远程监控[28],通过指令控制继电器通断来控制插座的通断,通过数据传输至手机上位机,对于用电器件的使用电量数据情况进行统计监控,其整体流程图见下图4.1所示。
图4.1 主程序流程图
采用远程通信目的主要为监控用电器件的用电信息以及控制插座的通断,当MCU通过传感器获得电信号后,通过ESP01-S模块连接WIFI以及通过TCPMQTT协议将数据进行上传到阿里云服务器,当要进行下发命令,则通过热点和蜂窝数据传输到我们手机上的APP,其数据交互框图见图4.8所示。
图4.8 数据交互框图
通过测试多个用电器件,并且将其用电信息进行统计,通过分析可以得到其测试用电功率和测评标注功率相差不大,其测试功率目的能够达到,其统计信息见表5.1所示。
表5.1 用电器件信息统计
用电器件 | 电压信息 | 测试电流信息 | 测试功率 | 理论功率 | 功率误差 |
吹风机 | 220V | 4.288A | 951.4W | 1000W | 4.9% |
充电器 | 220V | 0.303A | 66.1W | 67W | 1.34% |
台灯 | 220V | 0.016A | 3.6W | 4W | 10% |
电烙铁 | 220V | 1.29A | 284.6W | 286W | 0.49% |
热风枪 | 220V | 3.15A | 692.3W | 700W | 1.1% |
通过接入用电器件测试其功率,本项目中采用吹风机,充电器等常用设备进行测试,在测试过程中对所设定的功能进行测试,包括使用物理按键控制电路的通断,复位按键进行重启电路,远程APP对电路监控以及通断,超过设定阈值后自动断电以及报警提示,人为干涉后,恢复正常状态,其测试功率过程见图5.12所示
图5.12 用电器件测试过程
本课题采用AD软件进行电路的设计,其电路原理图见附图3所示。
ADC采样过程中调用AD转换函数,获得电压电流数据,为了保证测量用电器件功率的准确性,使用电阻以及示波器进行校准,获得电压电流后通过P=UI获得用电器件的功率,其部分代码如下。
adcx=Get_Adc_Average(ADC_Channel_1,10);
temp=(float)adcx*(3.3/4096);
ACvolt=(unsigned int)(temp*332.2);
if(ACvolt<15) ACvolt=0;
adcx=Get_Adc_Average(ADC_Channel_2,10);
temp=(float)adcx*(3.3/4096);
if(temp>0.02)
{
ACcurrent=(unsigned int)((temp-0.02)*2960);
}
else
{
ACcurrent=0;
}
基于STM32的家用插座监控系统研究