当前位置:首页 > 技术学院 > 技术前线
[导读]基于51单片机的水塔水箱液水位监测控制系统无线WIFI报警

硬件电路的设计

(下方附文件)

系统的功能分析及体系结构设计

3.1.1系统功能分析

本系统分为主机和从机两部分组成。

主机由STC89C52单片机电路+液位传感器电路+WiFi模块ESP8266电路+电源电路组成。

从机由STC89C52单片机电路+蜂鸣器报警电路+WiFi模块ESP8266电路+电源电路组成。

1、主机通过液位传感器检测液位,检测到最低液位和最高液位时,然后将信息通过主机WIFI模块上传给从机的WIFI模块,从机收到后进行相应的处理,当液位处于最低和最高液位时,蜂鸣器报警;否则,蜂鸣器不报警。

2、从机接收到数据有,通过状态指示灯显示当前液位情况,如果连接成功后,设备通讯中断,所有指示灯熄灭,然后黄灯闪烁提醒。方便远程查看现成液位情况变化以及是否在线故障。

3、注意主从机模块配置以及单片机程序都不相同,不可以相互调换位置。

3.1.2系统总体结构

本系统具体框图如下图所示:


液位显示报警控制器

原理图:


液位显示报警控制器

5V电源电路设计

本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。


液位显示报警控制器

ESP8266WIFI模块电路设计电路设计

串口WIFI模块是新一代嵌入式WiFi模块,体积小,功耗低。采用UART接口。串口wifi模块是基于通用串行接口特性,符合IEEE802.11 协议栈网络标准,内置TCP/IP协议栈,使传统串口设备更好的加入无线网络。

ESP8266是一款超低功耗的模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和互联网的应用设计,可将用户的物理设备连接到WIFI无线网络上,进行互联网或局域网通信,实现联网功能。

ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。WiFi模块电路图如下图所示。


液位显示报警控制器

5V转3.3V电源电路设计

AMS1117-3.3是一种输出电压为3.3V的正向低压降稳压器,适用于高效率线性开关电源稳压器。其输出电流为1A,系统电路简单,工作稳定。本电路中,通过AMS1117-3.3芯片将5V直流电压降为3.3V,给系统的特定模块电路供电。

一、基本参数

(1)工作结温范围:-40~125°C

(2)最大输入电压:15V

(3)焊接温度(25秒):265°C

(4)存储温度:- 65~150°C

(5)输出电压:3.267~3.333V

(6)纹波抑制(最小):60dB

其电路原理图如下图所示。电容为电解电容,起到滤波作用,滤除电源中的低频参量,让电压输出更加平稳。


液位显示报警控制器

蜂鸣器报警电路(低电平有效)设计

有源蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。本系统所采用的报警模块为5V有源蜂鸣器模块,电路中采用三极管9012来驱动,只要单片机控制引脚为低电平,蜂鸣器就会鸣叫报警,反之则不鸣叫,可以通过控制单片机引脚方波输出形式控制蜂鸣器的鸣叫方式。电阻为限流电阻,保护作用。


液位显示报警控制器

FC-37水滴传感器模块电路设计

本系统选择FC-37传感器来检测水滴信号。传感器采用高品质FR-04双面材料,超大面积5.0*4.0CM,并用镀镍处理表面,具有对抗氧化,导电性,及寿命方面更优越的性能。

一、模块参数

(1)比较器输出,信号干净,波形好,驱动能力强,超过15mA;

(2)配电位器调节灵敏度;

(3)工作电压3.3V-5V

(4)输出形式 :数字开关量输出(0和1)和模拟量AO电压输出;

(5)使用宽电压LM393比较器

二、接线方式:

(1)VCC:接电源正极(3-5V)

(2)GND:接电源负极

(3)DO:TTL开关信号输出()

(4)AO:模拟信号输出

三、功能介绍:

接上5V电源,电源指示灯亮,感应板上没有水滴时,DO输出为高电平,开关指示灯灭 ,滴上一滴水,DO输出为低电平,开关指示灯亮,刷掉上面的水滴,又恢复到,输出高电平状态。AO模拟输出,可以连接单片机的AD口检测滴在上面的雨量大小。DO TTL数字输出也可以连接单片机检测是否有雨。

FC-37水滴传感器模块内部电路图如下图所示,其中R1电阻为分压电阻,将水滴传感器检测到的水滴信息转化为模拟电压信号即AO,模拟量信号接入LM393比较器后,即可与LM393比较器芯片2号引脚所接的电位器分压后的模拟电压进行比较,进而得出DO数字信号(即高低电平信号)。C1、C2为滤波电容,C1电容对电源进行滤波,让电源输出更稳定。C2电容对模拟信号进行滤波,保证模拟信号输出的稳定性。R2、R3均为限流电阻,来保护LED灯,防止LED灯烧坏,LED灯均为低电平有效。R4为上拉电阻,上拉就是将不确定的信号通过一个电阻钳位在高电平,同时起限流作用。保证LM393比较器输出的高低电平信号在与单片机引脚连接时电平信号的读取更加稳定。


液位显示报警控制器

系统软件设计

程序流程图


液位显示报警控制器

#include

#include

#include

#include "delay.h"

sbit buzzer=P2^3; //引脚定义

sbit led_red=P2^4;

sbit led_yel=P2^5;

sbit led_gre=P2^6;

unsigned long times_20ms=0; //定时器计数

unsigned char i; //记录是否已经发送了短信

unsigned char buzzerlater=0; //蜂鸣器报警延时

unsigned char busyNum =0;//串口判忙

void Init_Timer0(void); //函数声明

void UART_Init(void);

void uartSendByte(unsigned char dat);

void uartSendStr(unsigned char *s,unsigned char length);

void main (void)

{

Init_Timer0(); //定时器0初始化

UART_Init();

led_red=0;led_yel=0;led_gre=0; //灯指示

buzzerlater=2;

DelayMs(100);

led_red=1;led_yel=1;led_gre=1;

for(i=0;i<40;i++)

{DelayMs(100);}

uartSendStr("AT+CWMODE=1\r\n",13); //打开多连接

for(i=0;i<5;i++)

{DelayMs(100);}

uartSendStr("AT+CWJAP=\"AUAISOUT000\",\"\"\r\n",27); //建立服务 端口号为8080

for(i=0;i<40;i++) //保留足够时间去获取ip

{DelayMs(100);}

while(1) //主循环

{

uartSendStr("AT+CIPSTART=\"TCP\",\"10.10.10.11\",8080\r\n",38); //打开多连接

for(i=0;i<25;i++) //实时去链接ap

{DelayMs(100);}

}

}

void Init_Timer0(void)

{

TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响

TH0=(65536-20000)/256; //重新赋值 20ms

TL0=(65536-20000)%256;

EA=1; //总中断打开

ET0=1; //定时器中断打开

TR0=1; //定时器开关打开

}

void UART_Init(void)

{

SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收

TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装

TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz

TL1 = TH1;

TR1 = 1; // TR1: timer 1 打开

EA = 1; //打开总中断

ES = 1; //打开串口中断

}

void uartSendByte(unsigned char dat)//串口发送单字节数据

{

unsigned char time_out;

time_out=0x00;

SBUF = dat; //将数据放入SBUF中

while((!TI)&&(time_out<100)) //检测是否发送出去

{time_out++;DelayUs2x(10);} //未发送出去 进行短暂延时

TI = 0; //清除ti标志

}

void uartSendStr(unsigned char *s,unsigned char length) //发送定长度字符串

{

unsigned char NUM;

NUM=0x00;

while(NUM

{

uartSendByte(*s); //放松单字节数据

s++; //指针++

NUM++; //下一个++

}

}

void Timer0_isr(void) interrupt 1

{

TH0=(65536-20000)/256; //重新赋值 20ms

TL0=(65536-20000)%256;

times_20ms++;

if(times_20ms%10==0) //定时到1s

{

if(buzzerlater>0) //延时打开蜂鸣器

{

buzzer=!buzzer;

buzzerlater--; //延时缩短

}

else

{buzzer =1;} //关闭蜂鸣器

if(busyNum>0)busyNum--; //接收数据过程中

else //接收不到数据

{led_red=1;led_yel=1;led_gre=1; }

}

}

void UART_SER (void) interrupt 4 //串行中断服务程序

{

unsigned char Rebuf;

if(RI) //判断是接收中断产生

{

RI=0; //标志位清零

Rebuf=SBUF;

busyNum = 4;

if(Rebuf=='h')

{

buzzerlater=4; //蜂鸣器延时报警

led_red=0;led_yel=1;led_gre=1; //灯指示

}

else if(Rebuf=='n')

{

buzzerlater=0; //蜂鸣器延时报警

led_red=1;led_yel=0;led_gre=1; //灯指示

}

else if(Rebuf=='l')

{

buzzerlater=4; //蜂鸣器延时报警

led_red=1;led_yel=1;led_gre=0; //灯指示

}

else if(Rebuf=='e')

{

buzzerlater=4; //蜂鸣器延时报警

led_red=0;led_yel=0;led_gre=0; //灯指示

}

}

if(TI) //如果是发送标志位,清零

TI=0;

}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭