开发环境、工具:VStudio、keil、C 语言
实现功能:
实时监测用电设备,采集其电气参数,在LCD液晶显示屏显示具体的参数。
可为电压、电流和功率设置参数上限,若超出上限则发出警报,以此保护电路运行。
具有自动断电保护功能,在监测设备电力参数异常时,自动断电保护电路。
用户可以使用机智云app连接设备,进行远程监控,设置参数上限和让断电设备恢复运作。
项目描述:
1、本项目为大学毕业设计。
2、处理芯片STM32F103C8T6
3、电气参数采集芯片CS5463
4、数据显示LCD12864液晶显
5、无线通信ESP8266
流程框架:
总体框架:
AT24C02存储模块:
首先检测I2C总线设备,向CPU发送设备地址,判断设备是否存在;若设备存在,从串行EEPROM指定地址处开始读取若干数据,随后EEPROM开始向内部写入数据,而写入数据需要一定时间,此时必须调用ee_WaitStandby函数,等待EEPROM内部时序,直到数据写入完毕。
按键模块:
首先开启时钟端口,配置端口的输入方式,对按键进行初始化;再检测是否被按下,若GPIO接口检测出是低电平,则说明按键没被被按下,而如果是高电平,则表示按键已被按下;在按键被按下的情况下,为了物理防抖,需要给予一段延时,然后检测按键是否被释放。
继电器模块:
首先等待电气参数采集模块的数据,然后与上限值进行数值比对,继电器保持开启状态,若其中一个电气参数存在超出预警值的情况,则RELAY(OFF)将继电器关闭,电路断电。
报警模块:
定义一个GPIO_InitTypeDef类型的结构体,开启开启控制蜂鸣器的GPIO的端口时钟,然后选择一个GPIO接口来控制蜂鸣器并设置好该GPIO接口的输入模式,初始化控制蜂鸣器的GPIO,与采集的数据进行对比,在触发继电器的断电保护后,led指示灯熄灭,调用BEEP_ON()开启蜂鸣器,在延时结束后关闭蜂鸣器。
CS5463参数采集模块:
首先检测是否有用电设备插入,即查看是否存在可监测的对象,确认有设备接入后,采集其电力参数,将数据写入CS5463芯片中,再将串口重新初始化,随后检测电力参数是否全部采集完毕,确认采集完毕后,系统读取电压和电流的有效值,并借此计算功率和用电量。
ESP8266无线通信模块:
初次接入联网模式时,有热点和一键配置两种模式可供选择,在本设计中采用一键配置。STM32F103C8T6通过USART接口将采集的数据信息发送至ESP8266芯片中,然后ESP8266再通过WIFI把数据传送至用户手机中。需要注意的是,如果此时正在执行参数上限值的设置,才能进行配网设置。
LCD12864液晶显示模块:
显示实时采集的电气参数以及用户设定好的参数上限。
功能测试: