曹永鸿
【摘要】本文介绍了一种综合利用单片机技术、vb编程及asp动态网页技术实现学校网络中心空调远程控制手段,涉及单片机温度采集、反馈控制以及与主机通信技术,vb、asp编程技术。综合性、实践性强有一定实用价值。
【关键词】WEB远程监控单片机温度采集串口通信vbasp
【中图分类号】G633.93 【文献标识码】A 【文章编号】2095-3089(2012)11-0090-02
通过对空调开关的研究,我们发现,空調控制器是块单片机电路,开关控制是由一个小触动按钮实现的,当按下该按钮,将单片机的引脚电平拉低,松开后又恢复正常高电平,这样单片机根据这个脉冲,判断是电源开关。如果我们采用另外一套单片机系统来产生该电源脉冲信号,配合温度传感器,我们就可以实现根据网络中心室内温度对空调开关进行控制的闭环控制系统。通过单片机和网络中心原有的web服务器的上下位机通信,配合特定的代理程序可以实现网络中心温度数据的上传和远程控制命令的下达;再通过asp网页的操作,实现网络中心空调的自动控制和远程监控。
下面就网络中心空调自动和远程监控系统作一详细说明。
系统功能:
夏季温度高(如30℃)时自动打开空调进行降温(事先空调处于待机状态,且设定为制冷模式)。
室内温度低于一定值(如20℃)时关闭空调。
通过学校外网平台监视网络中心温度数据,并提供手动操作远程控制空调的开关。
实现步骤:
根据系统功能,我们把整个系统划分为硬件和软件两大部分,就各部分分述如下:
硬件部分,又分为三部分:
一、空调及改造
拆开空调前面板,找到电路板,将电源按键的两极用网络双绞线的一股的两根线焊接上去(其它三股可空闲,也可以根据需要扩展到其它控制按钮上),经适当布线引入单片机系统的继电器输出口。根据具体情况双绞线可适当长些,这样可以将我们的控制系统远离空调,减少空调启动关闭大电流对系统的影响,也可以避免太靠近空调导致控制过程的波动效应。
二、单片机和温度传感器部分
单片机选用较常见、通用的51系列单片机,因本系统的接口较少,考虑采用AT89C2051,具有引脚少,支持c语言编程,体积小等优点,在电子类产品中有广泛的应用。
温度传感器采用DS18B20数字温度传感器,它采用单总线方式通信,接线方便,封装成后可应用于多种场合。
三、执行部件
空调启动的信号采用单片机控制的继电器闭合短路空调电源控制按钮的两脚产生,这样可实现电气隔离。继电器选择性能较好、全封闭、寿命长的,工作电压最好5v,考虑驱动的稳定性,我采用了林顿管集成片ULM2003A来驱动继电器,这要比三极管驱动方式稳定,减少故障。
软件部分,也分为三部分:
一、单片机工作程序
根据系统的功能,该部分主要完成温度的读取、上传、上位机命令的接受、继电器开关控制等几个部分,为提高编程效率,采用c语言编程。针对上述各功能,编写相应函数模块或代码段,如下:
1.温度读取
该功能是系统的核心,准确、稳定地读取DS18B20的温度数据是系统正确工作的前提。根据芯片的使用手册编写温度读取函数,在操作时序上要严格按照单总线的协议进行,具体细节可参阅芯片使用手册。
2.数据的发送和接收
该功能利用单片机和上位机(web服务器)的串口通信实现数据的收发,在上位机上运行vb编写的代理程序,它通过串口通信接收来自单片机的温度数据,并存入ACCESS数据库(该数据库在系统软件部分处于核心地位,保存了所有温度数据和远程控制数据);另外该代理程序也不断检测数据库中相关内容,判断是否向下位机发送控制命令。
因为单片机系统无法预知远程的人工控制命令何时产生,所以采用中断方式来读取串口数据,根据数据去控制空调的开关和一些状态值。
3.继电器控制
通过向与继电器控制端连接的单片机I/O端口写0或1来控制ULM2003A芯片的输入端,其输出控制继电器的闭合和断开,因空调开关需要的是一脉冲信号,因此继电器应先闭合然后再断开,中间加入一几十到几百毫秒的延时。
4.主程序工作
在主程序中完成如下工作:(1)中断初始化;(2)有关变量的初始化;(3按一定时间间隔读取温度值发送到上位机,并根据温度值去控制继电器的动作;(4)检查上位机发过来的命令执行继电器的动作需要特别指出,因上位机发送的手动操作命令是通过中断方式读取,且置标志变量有效,为了使系统能及时响应该命令,在延时等待函数中也必须检查该标志变量,若有效则立即退出延时等待。另外在程序中还需设置一些状态参数来识别空调的当前状态,经过一些技巧性处理可以实现正确逻辑,预防错误,纠正错误。
二、ASP交互网页
该页面完成用户验证,折线图方式显示温度值,当前开关状态显示,远程开关操作。因功能简单,所以选择asp网页实现,折线图的显示采用免费的图形控件FusionCharts完成,既专业又美观。
三、上、下位机通信代理程序
代理程序起到“桥梁”的作用,通过上文提到的数据库完成远程客户和单片机系统的数据交流,主要由以下几部分组成。
1.在串口事件代码中接收单片机发来的温度和状态数据,按一定时间间隔存入数据库。
2.向数据库写入温度和状态值,状态为1表示开空调,为0表示关,2表示有错误,3表示人工远程操作。
3.在程序中设置一定时器,时间间隔1000毫秒,在定时事件中完成数据库中关于远程控制信息的监视,一旦有远程控制的信息,即向下位机发送特定命令字符。
4.数据库的构成
数据库包含两个表:温度数据表,远程操作信息表。各数据表结构如下:
1.“温度数据”表结构:
■
2.“远程操作信息”表结构:
■
该表只需1条记录,其中包含操作密码和是否手动方式两条信息,密码内容可自行采用某种加密方式加密,这里不再赘述。
本文给出了一种基于单片机系统和WEB页面方式实现空调自动控制和远程控制,在此系统中稍加扩展还可以实现空调的更多控制,如温度设定,甚至通过代理程序控制与服务器连接的摄像头还可以完成更多有趣的操作。同样道理,也可以将此系统扩展到对其它设备、物理参数的控制,相信只要大家多动脑筋,我们的工作可以更轻松愉快!