资源描述
课 程 设 计
课程名称 测控电路
题目名称 基GSM和手机终端的水满报警系统
学生学院 信息工程学院
专业班级 12级计算机测控(2)班
学 号 3112002375
学生姓名 杨继豹
指导教师 刘伟
2014 年 12 月 30日
目录
1. 课程设计任务书------------------------------------2
2. 摘要----------------------------------------------------------------------5
3. 系统组成框图及整体功能-------------------------------------------6
3.1水满报警电路-----------------------------------------------------7
3.1.1水满报警电路设计目的------------------------------------7
3.1.2水满报警电路工作原理------------------------------------7
3.1.3 主要元器件介绍--------------------------------------------8
3.1.4 电路参数的计算-------------------------------------------12
3.1.5设计的数据分析--------------------------------------------13
3.1.6 PROTEL制作PCB板--------------------------14
3.2单片机及GSM通信电路--------------------------------------15
3.2.1主控板电路设计-----------------------------15
3.2.2 GSM概述及GSM900A模块介绍----------------15
3.3 手机终端APP设计------------------------------17
3.3.1手机选择----------------------------------20
3.3.2手机端软件开发环境------------------------20
3.4 软件设计----------------------------------------------------------21
3.5 设计感悟--------------------------------------23
3.6 参考文献----------------------------------------------------------23
3.7作品展示和程序列表----------------------------------------------23
广东工业大学课程设计任务书
题目名称
水满报警电路
学 院
信息工程学院
专业班级
测控技术与仪器专业
计算机方向12(2)
姓 名
杨继豹
学 号
3112002375
一、课程设计的内容
1、设计内容
(1)电路工作原理分析;
(2)详细分析CD4011的多种具体应用典型电路;
(3)计算流过R4、R2、R1电阻的电流;
(4)计算与非门3、与非门4、R3、C1构成的振荡器频率,并分析起振原
理;
(5)分析VD1的作用;
2、电路仿真
根据水满报警电路工作原理,选用相应软件实现电路的仿真,并画出
电路各点的信号波形,测量振荡器频率。
3、使用Protel绘制电路原理图,布局PCB板,使用热转印或者曝光方法制作电路板,根据系统原理图及所选择的元件及参数,购买相应元器件,完成电路焊接、调试。
二、课程设计的要求与数据
1、完成水满报警电路的分析与制作;
2、讨论与分析,制作与调试,演示与答辩,提交设计报告。
三、课程设计应完成的工作
1、电路原理图设计;
2、电路工作原理分析;
3、电路参数计算与分析;
4、电路原理仿真;
5、电路制作、调试;
6、撰写设计报告;
7、实物演示与答辩。
四、课程设计进程安排
序号
课程设计各阶段内容
地点
起止日期
1
布置设计安排;讲授设计内容;说明设计要求
待定
14.12.22
晚上
2
方案设计、分析与比较
实验楼1-412
14.12.23
下午
3
确定方案和电路参数,理论计算、分析及仿真
实验楼1-412
14.12.24
4
绘制电路原理图;电路制作、调试;
实验楼1-412
14.12.25
5
撰写设计报告;
实验楼1-412
14.12.26
6
实物演示、答辩、成绩评定
实验楼1-412
14.12.30
五、应收集的资料及主要参考文献
1. 张国雄等编。测控电路,机械工业出版社,2001.8.
2. 赵负图主编,现代传感器集成电路,人民邮电出版社,2000.1.
3. 刘征宇主编,线性放大器应用手册,福建科学技术出版社,2005.1.
4. 蔡锦福等编,运算放大器原理与应用,科学出版社,2005.7.
5. 自编,测控电路设计型实验任务书.
发出任务书日期:2014年12月20日 指导教师签名:
计划完成日期: 2013年12月30日 基层教学单位责任人签章:
主管院长签章:
摘要
自动水满报警器是当今运用十分广泛的报警器产品,在消防部门、农业生产、公司安全和人们的日常生活都发挥着重要的作用。该电路设计方法颇多,然而其功能却相对单一,一般智能实现水满后自动报警,却无法对水位状态进行自我调节,一般更无法告知使用者从而达到对水满后的状态进行必要的控制,因而本文从自动水满报警电路出发出发设计了一个功能更为完善的电路,本文电路基于GSM和手机终端APP,通过对电路工作原理和元件参数选择处理进行了系统的分析,根据工作原理和调试的结果,从所存在的一些问题着手解决,改变电路结构和元件参数,从而基本实现了水满报警之后可通过GSM短信通知用户,用户收到报警信息后可通过手机终端实施远程泄水和加水的功能。
关键词:水满报警电路 GSM 单片机 手机APP
系统组成框图及整体功能
整体功能:
水满报警电路时刻监视水泵中水位的变化,当水位达到满状态时,水满报警电路将会发生报警动作,报警状态为高亮LED灯闪烁,压电陶瓷发出报警声响,同时控制继电器可以对水泵进行自我锁定水位;同时,水满报警电路向单片机传递水满信号,单片机接收此信号后自动通过GSM向用户手机发送一条水满短信;当用户接收到该信息后可以通过手机APP对水泵实施远程的控制。
水满报警电路
3.1.1水满报警电路设计目的
1)掌握电子系统的一般设计方法
2)培养综合应用所学知识来知道事件的能力
3)掌握常用元器件的识别和测试
4)熟悉常用仪表、了解电路的基本调试方法
5)了解CD4011、继电器和压电陶瓷片的功能和运用
3.1.2水满报警电路工作原理
工作原理:S1是电源开关,当S1按下时接通电源,电路正常工作;S1弹起时断开电源。电路图中4个与非门使用CD4011内部集成的与非门实现;
其中水箱中的A、B两根检测电极,作为水位控制的传感器。当水未满(或未达到预定水位时),A、B间为断开状态,阻值很大,所以与非门1的输入端为高电平,输出端为低电平,三极管VTl截止,则继电器J1线圈无电流通过,J1不工作。同时,由于与非门3的上输入端和与非门1的输出端相连,也为低电平,故由与非门3、4组成的音频振荡器停振而无信号输出,压电陶瓷片HTD不发出报警声响。另外,与非门2输出为高电平,发光二极管LED也不发光。 当水箱水位达到预定水位(如水位达到B电极位置时),A、B间因为水的连接而近似短路状态,所以与非门1的输入端为低电平,输出端为高电平,VT1导通,继电器J1线圈中有电流通过,继电器吸合,水泵电路导通,水泵工作抽水;同时与非门3的上输入端和与非门1的输出端相连,也为高电平,故由与非门3、4组成的音频振荡器起振,压电陶瓷片发出报警声响。另外,与非门2输出低电平,发光二极管LED发光。
3.1.3 主要元器件介绍
1) CD4011芯片的内部结构图和工作原理
输入与非门CMOS芯片
真值表:
CD4011是四2输入与非门,当两输入端有一个输入为0,输出就为1。当输入端均为1时,输出为0。当两个输入端都为0时,输出是1。
2)CD4011在实际中的典型应用电路
比如互锁开关电路(用于前置级音源的切换和等响度、平直开关控制,采用继电器切换,可以更合理地布局音频信号走线)、声控灯开关电路,一下就是声控灯开关电路的原理图:
其工作原理:D2~D5、R7、DW、C3组成稳压二极管稳压电路产生7.5V直流电压给控制电路供电。为了使声光控开关在白天开关断开,即灯不亮,由光敏电阻rg等元件组成光控电路,r5和rg组成串联分压电路,夜晚环境无光时,光敏电阻的阻值很大,Rg两端的电压高,即为高电平间t=2πr8c3,改变r8或c3的值,可改变延时时间,满足不同目的。vd3和vd4构成两级整形电路,将方波信号进行整形。当c3充电到一定电平时,信号经与非门vd3、vd4后输出为高电平,使单向可控硅导通,电子开关闭合;c3充满电后只向r8放电,当放电到一定电平时,经与非门vd3、vd4输出为低电平,使单向可控硅截止,电子开关断开,完成一次完整的电子开关由开到关的过程。二极管vd1~vd4将交流220v进行桥式整流,变成脉动直流电,又经r1降压,c2滤波后即为电路的直流电源,为bm、vt、ic等供电。D2~D5构成桥式电路,在U1D输出端为低电平时,可控硅SCR不导通, 电灯LAMP无电流通路不会点亮。只有在U1D输出端为高电平时,可控硅SCR1导通时,电灯LAMP才会点亮。
在实际中,CD4011还有着许许多多的应用,本次课程设计中,我们就用到了CD4011来完成水满报警的功能
3)压电陶瓷片HTD:
当电压作用于压电陶瓷时,就会随电压和频率的变化产生机械变形。另一方面,当振动压电陶瓷时,则会产生一个电荷。利用这一原理,当给由两片压电陶瓷或一片压电陶瓷和一个金属片构成的振动器,所谓叫双压电晶片元件,施加一个电信号时,就会因弯曲振动发射出超声波。相反,当向双压电晶片元件施加超声振动时,就会产生一个电信号。压电陶瓷片是一种电子发音元件,在两片铜制圆形电极中间放入压电陶瓷介质材料,当在两片电极上面接通交流音频信号时,压电片会根据信号的大小频率发生震动而产生相应的声音来。压电陶瓷片由于结构简单造价低廉,被广泛的应用于电子电器方面如:玩具,发音电子表,电子仪器,电子钟表,定时器等方面。
由特性图可知,当压电材料一定时,谐振频率与h成正比,与(D/2)2成反比。谐振频率fo与复合振动片的直径D呈指数关系,如图2(a)所示。显然D愈大,低频特性愈好。压电陶瓷片作传声器使用时,工作频率约为300Hz~5kHz。压电陶瓷片的阻抗Z取决于d/D之比,由图2(b)可见,阻抗随d/D比值的增大而降低。
压电陶瓷片有两种驱动方式。第一种是自激振荡式驱动。第二种为他激振荡式驱动,也就是本次设计所使用的方法,利用R3和C1组成的方波振荡器来激励发声。这时压电陶瓷片一般工作于fo之外的频率上,因此阻抗较高,输入电流较小,它居于电压驱动式。其优点是音域较宽。音色较好。
4)电磁继电器
电磁继电器的工作原理和特性:
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。
3.1.4 电路参数的计算
1)参数计算
①.R1在导通时与6V电源的正极相连,并且近似接地,所以R1两端的电压为6V,流通R1的电流I1=6V/220K=27.3uA。
②.电阻R2上的电流电压当水满电路接通时,1A输出状态翻转,由低电平变为高电平,再通过2A电压再次发生变化,发光二极管的管压降为0.7V
③.当接通(即水位达到警报水位的时候),通过与非门后,高电平为5V,三极管的导通压降为0.7V,R4=(5V-0.7V)/10K=0.43mA
2)起振原理的分析
计算与非门3、与非门4、R3、C1构成的振荡器信号频率,并分析起振原理;
根据公式f=(1-1.5)/RC,结合本次设计,R=100K,C=2000pF。所以有频率f=(5.0-7.5)KHz由仿真图有:振荡器的波形是一个振幅为5V的时钟脉冲,其中周期T=223.485ns,频率f=4.5KHz。
3)VD1的作用:
VD1为二极稳压管,稳压在0.7V,这是为了在水位上升,电路连通后,继电器线圈通电,VD起到保护继电器线圈的作用,防止启动电压过高烧毁继电器线圈,如果继电器短路或者断开,则线圈无法工作。
3.1.5 设计的数据分析
1)元器件清单表:
名称
规格
数量
备注
电阻
220K
1个
电阻
1K
1个
电阻
220
1个
电阻
10K
1个
电容
100uf
1个
杜邦线
若干
芯片
CD4011
1片
带底座
LED发光二极管
1盏
压电陶瓷片
1个
整流二极管
1个
继电器
D-06VDC-SL-C
2个
三极管
S9013
1个
PCB板
马达
3.1.6 PROTEL制作PCB板
原理图
PCB
单片机及GSM通信电路
3.2.1主控板电路设计
STC89C52作为普通51单片机已与广泛应用于各种产品中,其接口简单,方便使用,且功能可以满足本电路需求,因此本系统采用STC89C522单片机作为主控制芯片。
1) STC89C52的功能特性简述
STC89C52的主要性能:
与MCS-51单片机产品兼容
8K字节在系统可编程Flash存储器
1000次擦写周期
全静态操作:0Hz~33Hz
三级加密程序存储器
32个可编程I/O口线
三个16位定时器/计数器
八个中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。
和atmel的对比STC89C52RC单片机:
8K字节程序存储空间;
512字节数据存储空间;
内带4K字节EEPROM存储空间;
可直接使用串口下载;
AT89S52单片机:
8K字节程序存储空间;
256字节数据存储空间;
没有内带EEPROM存储空间;
(2)蓝牙通信电路
单片机和手机蓝牙之间的通信使用串口通信方式,且单片机也必须使用串口的方式进行程序的烧写工作,串口的原理图如下:
串口通信原理图
3.2.2 GSM概述及GSM900A模块介绍
GSM是Global System For Mobile Communications的缩写,由欧洲电信标准组织ETSI制订的一个数字移动通信标准,GSM是全球移动通信系统(Global System for Mobile communications) 的简称。它的空中接口采用时分多址技术。自90年代中期投入商用以来,被全球超过100个国家采用。GSM标准的设备占据当前全球蜂窝移动通信设备市场80%以上。
1)GSM Modem 的主要功能
a.收发短信;
b.借助短信实现远程小批量数据传输;
c.语音通话(GSM 电话);
d.数传模式实现无线实时数据通信;
e.无线上网(自动应答型)。
要实现目前GSM无线传输必须选择对应的设备,通过比较和核对,最终选定SIM900A模块来进行无线传输。
2)SIM900A模块概述
引脚定义
最基本应用所需引脚:
1.供电:可以5V供电,也可锂电池供电(3.1V-4.8V),电流到500MA,店铺里的锂电池完全可以用来供电,其他不保证
2.通信:4 5 6 三线UART串口通信(3.3V和5V均可,兼容3.3v单片机和5V单片机可直接接IO口)。
3.开机:上电自启动,可通过AT指令让模块休眠,关机。
其他引脚:
4. 3脚 DTR 可以用来进入和退出休眠模式,详见SIM900A官方手册。
5. 1脚STATUS 可以检测模块开关机状态,详见SIM900A官方手册。
6. 2脚 RTS 为低电平有效,最高3V,最好不用,出故障直接重启。
7. 音频引脚:9 10 11 12使用时加滤波电容,官方手册的3.9 音频接口一节。
三、指示灯描述:
可通过板子上的开关打开或者关闭指示灯
网络状态信号灯:开机后有反应
网络灯状态 SIM900A工作状况
熄灭 SIM900A没有工作
64ms亮/800ms熄灭 SIM900A 没有找到网络
64ms亮/3000ms熄灭 SIM900A 注册到网络
64ms亮/300ms 熄灭 GPRS 通讯
四、SIM卡选择:
1. 中国大陆:移动、联通
2. 外国:除台湾地区的其他亚洲地区均可
模块硬件图
手机终端APP设计
3.3.1手机选择
由于安卓系统的极速发展,现在安卓智能机的价格已经能降到600元以下,基于安卓的应用软件层出不穷。由于安卓系统所有源代码都已公开并且可以免费使用,各手机公司在开发自己产品时可以随意改动代码,进而在市场上出现了所谓的“基于Android的XXX改良系统”手机,源代码的改动会影响手机对安卓软件的兼容性,增大开发难度,因此必须选择“安卓原版”的手机开发软件,一般在手机制造领域较有地位的大生产商锁制造的手机都能满足基本的开发需求,本文我们采用了有国内有名手机生产商华为系列且搭载“安卓4.0.3”版本的操作系统的手机作为手机终端。
3.3.2手机端软件开发环境
Google公司提供的Android SDK中包括模拟硬件设备的Emulator,资源打包工具,调试监视服务,DX工具等。Android应用程序使用Java语言编写,而使用Java必须有JDK,需要下载和安装JDK,如IBM公司的Eclipse平台。
可以使用AVD在电脑上模拟一个虚拟的真实设备,可以由用户自己配置硬件配置,版本的选择,设备的屏幕尺寸大小等。通过Eclipse插件ADT便可以方便的创建一个Android应用。
软件设计
1) 软件设计框图
2) 单片机软件设计
/*实现思路::当水满时,水满报警电路发送一个高电平信号到单片机IO引脚,检测该引脚的电平(事先置低该引脚),当存在报警信号时,调用封装好的方法Send_info()通过GSM发送一条中文短信到用户手机,同时单片机进入用户操控等待查询中,分别对用户发送的控制指令进行判断并执行相应动作*/
3) 手机终端软件设计(略)
设计感悟
通过本次课程设计,使我增强了理论与实践结合的能力,在软硬件设计过程中遇到各种问题,问题主要体现在:
1) PCB的制作:在PCB的制作过程中由于设计设备的不完善,只能通过手工来制作,特别是在PCB转印中只能使用电熨斗来转印,从而直接导致了PCB板制作的失败,由于时间的原因,最终我们选择了焊接的方式以顺利完成设计工作;
2) 单片机硬件电路的设计:吸取了设备不足带来的高风险,本文的单片机板使用之前在PCB工厂中打印回来的板作为主板,虽然板中还有许多其它模块,但庆幸的是本板留出了蓝牙通信接口,从而解决了蓝牙的硬件电路问题;
3) GSM模块的测试:此次最大的问题出现在GSM模块的调试上,虽然对GSM短信模块的通信方式已经有了较为充分的认识,我们在GSM上花了整整两天的调试时间,我们使用串口调试助手分别对GSM进行调试,发现完全可以对目标手机发送短信,同时也单独使用单片机向串口发送相关的通信指令,也不存在错误,然而当将单片机和GSM连接时,发现单片机可以发送出通信指令,然而GSM却没有进行响应,最终导致信息没有成功发送出去,也正由于这个原因,我们重要的GSM部分没能正在实现我们的初衷功能,对此我们表示遗憾抱歉的同时也下定决定在接下来的时间会更着力去研究这个问题直至克服这个问题;
4) 手机APP的设计:此次APP的设计也用了几天的时间,虽然很累,却学习了很多之前还没有接触的知识(如手机侧滑效果等),在设计过程中也出现了很多次程序崩溃的致命问题,然而通过打Log的调试方式,对本APP的运行进行了详细到位的监控,最终查出了问题所在,并吸取教训一步步完成下去;
5) 报警电路,单片机电路和手机终端的连接问题:由于此次使用了水泵,水泵的使用功率很高,一般的电池无法满足驱动需要,因此我们使用了能提供较大驱动电流和功率的电源。然而,一开始我们的想法是直接使用该电源同时为水泵和电路提供电源,最终发现仅在报警电路的自我调节过程中水泵可以正常工作,而在手机控制时却发现水泵无法正常工作,这让我们很崩溃。但我们并不气馁,检查和完善继电器的接线方式,采用更合理的方式进行控制,这种方式就是使用较小功率的电源电路为电路提供电源,使用大功率的电源单独为水泵和继电器供电,最终解决的前面出现的问题。
这次虽然结果并没有完成实现初衷,然而在和同学的沟通和实践下意识到了团队合作远远大于个人的真理,我们的分工也相对较合理,充分发挥队员个人优势,队友负责硬件设计,而本人则负责软件和手机APP的设计,在长达五天的日夜努力下,终于基本完成了本次课程设计,锻炼了我们的意志,更使我们增强了信心,感谢老师给予我们这次机会,谢谢!
参 考 文 献
1 李华主编.MCS-51单片机实用接口技术.北京航空航天大学出版社,1993
2立民.单片机应用技术选编.北京航空航天大学出版社,1996
作品展示和程序列表
//单片机部分代码
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar rec_data=2;
uchar flag; //默认flag初始值为0
sbit water_bump=P2^4; //定义继电器控制口
/********* 中文文短信发送准备 ***********/
uchar code SMS_send[]= "AT+CMGS=";
uchar code SMS_PDU[]= "AT+CMGF=0";//PDU格式
uchar code Byte_num[]="49"; //PDU长度
uchar code Sms2_Pdu[]="0011000D91683156906670F6000800224E0053F76C346CF55DF27ECF6C346EE14E86FF0C8BF753CA65F659047406FF01FF01"; //内容是:一号水泵已经水满了,请及时处理!!
/****************延时子程序*****************/
void Delay(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
/*******************主函数:未加入GSM函数********************/
void main()
{
TMOD=0x20; //采用定时器T1的方式2
//TMOD是定时、计数的工作方式寄存 TH1=0xfd; //定时器装入初值 ,波特率为9600
TL1=0xfd;
TR1=1; //定时器T1的启停控制位,1是开起
REN=1; //串行口控制寄存器SCON寄存器,允许串口收
SM0=0;
SM1=1; //采用串行口工作方式1
EA=1; //开总中断
ES=1; //开串口中断
while(1)
{
if(flag==1) //进入中断
{
if(rec_data =='1')
{
water_bump =0; //开闸
flag=0;
}
else
{
water_bump =1; //关闸
flag=0;
}
}
}
}
/************中断服务子程序:接收数据***************/
void ser()interrupt 4
{
RI=0; //进入中断
rec_data =SBUF; //数据从code table[]存入SBUF缓冲区
flag=1; //接收到数据给后,检测标志位置1处理
}
/********************** 串口相关函数****************/
//发送单个字符
void send_char(uchar ch) //发送单个字符
{
TI=0;
ES=0;
SBUF=ch; //送入缓冲区
while(TI==0); //等待发送完毕
TI=0; //软件清零 TI=0;
ES=1;
Delay(100) ;
}
//发送字符串
void send_Str(uchar *str)
{
while(*str!='\0')
{
send_char(*str++);
}
}
/**************************************************************** 以下为GSM模块的通信函数******************************************************/
//GSM模式设置为发送中文格式
void GSM_AT(void)
{
send_Str(at);
send_char('\r'); //发送回车
ES=1;
Delay(1000);
}
//设置发送数据为PDU格式(中文的数据格式)
void GSM_PDU(void) //设置GSM为PDU格式
{
send_Str(SMS_PDU); //发送设置指令
send_char('\r'); //发送回车
ES=1;
Delay(1000);
}
//发送数据为PDU格式的短信内容
void GSM_PDU_SMS(void) //发送PDU格式内容
{
send_Str(SMS_send); //SMS_send[]= "AT+CMGS=";
send_Str(Byte_num); // Byte_num[]="55
send_char('\r'); //发送回车
send_Str(Sms2_Pdu); // 发送短息内容
send_char(0x1a); //发送短息内容结束符
ES=1;
Delay(1000);
Delay(5000);
}
//将上述GSM方法封装为一个发送方法,以供主函数直接调用
Void Send_info()
{
Delay(100) ;
GSM_AT();
GSM_PDU();
GSM_PDU_SMS();
P0=0x54;
Delay(100) ;
}
展开阅读全文