最近设计了一个项目基于单片机的智能超声波水位流量检测系统的研制,与大家分享一下:
一、基本介绍
项目名:水位流量监测(仿真)
项目编号:mcuclub-fz-014
单片机类型:STC89C52
具体功能:
1、通过超声波测出水位,当剩余水位高于设置最大值或低于设置最小值,进行声光报警
2、通过流速传感器测出流速,当流速大于设置最大值,进行声光报警
3、通过按键可设置总高度、剩余水位最大、小值,流速最大值
4、通过显示屏显示数据
5、通过4G模块将测量数据发送到手机端,并显示出预警结果
二、仿真图
三、原理图
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
四、系统框图
本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成水位水流量检测的整个系统,其中包含中控部分、输入部分和输出部分。中控部分采用了STC89C52单片机,其主要作用是获取输入的部分数据,经过内部处理,控制输出部分。输入由四部分组成,第一部分是水流量检测模块,通过该模块可以检测当前的水流量;第二部分是超声波模块,通过该模块可以检测当前的水位;第三部分是按键模块,通过该模块可以控制设置水流量和水位;输出包括两个部分,第一部分是LCD1602显示模块,检测当前的水位和水流量;第二部分是报警模块,检测到水位水流量大于设置的最大值进行声光报警;除此之外,4G即作为输入又作为输出,将检测的数据通过该模块传输到手机,系统框图如图3.1所示。
五、软件设计流程
六、部分程序展示
软件版本:keil5
逻辑程序和驱动程序分开,分布于main.c和其他.c文件
*******处理函数
*****/
void Manage_function(void)
{
if(flag_display == 0) //测量界面
{
if(water_value > water_max || water_value < water_min || flow_value > flow_max) //水位低于最小值,关闭抽水,声光报警
{
if(time_num % 20 == 0)
{
LED = ~LED;
BEEP = ~BEEP;
}
}
else
{
LED = 1;
BEEP = 1;
}
}
else //设置界面,关闭声光报警
{
LED = 1;
BEEP = 1;
}
}