蔡伟城,陈昭拼,巫志城,张 功,徐 军
(华南农业大学,广东广州 510642)
基于单片机的课室人数智能监测与自助查询系统研究
蔡伟城,陈昭拼,巫志城,张 功,徐 军∗
(华南农业大学,广东广州 510642)
研究了一种应用于课室在座人数实时监测的分布式自动化系统。该系统通过在课室安装一个以STC89C52单片机和YL-62红外线传感器为核心的人数进出信息反馈和处理模块,进行编码后经过CC1101无线数据发射模块将信息发送至连接PC机串口终端的接收模块,利用PC机进行解码和运算处理并最终显示在VB程序界面,从而达到远程监测与查询课室人数的目的。该系统结构简单,成本低廉,性能可靠,具有较大的应用前景。
52单片机;红外线传感器;数据无线传输;串口通信;VB界面
随着现代科技及我国大学教育的蓬勃发展,教学资源的智能化管理对学校而言尤为重要。当下,智能监测和管理技术与传统教学资源管理逐步结合,利用现代传感技术、自动化技术、网络技术等使课室人数及教学信息能够及时获取,既方便老师的教学管理,又有利于学生的学习安排。
本系统是针对上述情况而提出的。该系统可以改变传统的课室不能实时监测、实时反馈的弊端,能够通过自主查询随时随地地了解课室的在座人数和空位状况。对于老师而言,能够轻松掌握学生的出勤情况并做出针对性的考勤工作,既提高了工作效率,又节省了人力资源;对于学生而言,能通过网络了解具体空课室的自习人数并挑选好自习课室,既节省了时间和精力,又能充分利用教学资源。
此系统主要由52单片机系统[1-2]、YL-62红外线传感器模块、CC1011无线数据传输收发模块、PC机串口传输通道和VB显示界面组成。系统的结构框图如图1所示。
图1 系统结构框图
该系统首先通过一对红外线传感器模块进行数据收集,进而识别进出状态[3]。两个传感器的管脚分别接入单片机的INT0和INT1管脚[4],当有人进入课室时,先触发传感器1的感应,再触发传感器2的感应;当有人离开课室时,则是先触发传感器2的感应,再触发传感器1的感应。单片机系统根据这两种不同的状态作出响应,然后对数据进行编码,进而通过连接单片机串行口的无线数传收发模块,将数据经连接PC机串口的USB转TTL模块传送给PC机。在软件中通过一定算法将收到的数据进行解码,最终显示在VB界面上。当然,也可以通过Internet技术实现网络互联,实现远程访问的功能。
本系统使用的传感器是YL-62红外线传感器模块[5]。该传感器模块对环境光线适应能力强,具有一对红外线发射和接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比较器电路处理以后,绿色指示灯会亮起,同时信号输出接口输出一个低电平信号,可通过电位器旋钮调节检测距离,有效距离范围2~80 cm,工作电压3.3~5 V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等优点。红外线传感器模块的电路原理图如图2所示,实物图如图3所示。
图2 红外线传感器模块电路原理图
图3 红外线传感器模块实物图
本系统使用的无线数据传输收发模块选用CC1101芯片。该芯片是由美国TI公司出品的工作在低于1 GHz频段的无线数传芯片,是一款高性能射频收发器,工作在387.0~464.0 MHz频段;传输距离为300~400 m;最高可设置为+10dBm的发射功率;支持0.6~500 kbps的数据传输速率;支持多种调制方式,包括OOK、ASK、GFSK、4-FSK和MSK,具有高灵敏度、低电流消耗等优点。无线模块电路原理图如图4所示,组成模块的外围电路所需的元器件较少,电路的组成包括CC1101芯片、晶振部分、稳压部分和天线部分。
无线模块的实物图如图6所示,该模块采用邮票孔封装方式,可贴片焊接,模块大小27.8 mm ×14.4 mm×4 mm,很方便嵌入系统之内。模块上有PCB天线座ANT1,可通过同轴线,使用433M频段外接天线。
本系统没有使用传统的RS232串口数据线,而使用了以PL2302芯片为核心的USB转TTL模块。将模块的TXD、RXD、VCC和GND管脚分别与无线接收模块的RXD、TXD、VCC和GND管脚相连,然后将该模块与PC机的串口相连,安装相应的驱动后就可以实现将无线模块接收到的数据传输给PC机的功能,模块小巧,集成度高,使用起来比传统的RS232串口数据线更加方便。模块的电路原理图如图5所示,实物图如图7所示。
根据系统的结构框图和所选的模块,设计了如图8所示的系统电路原理图。电路板的供电电源为5V,可通过220V转5V的变压器接入板上的DC-005电源插口给52单片机、传感器模块、无线模块及LED提示灯进行供电。52单片机外接11.0592MHz的晶振;一对传感器模块通过接入板上的排针将信号输出管脚分别与单片机上的INT0和INT1管脚相连,一旦传感器有感应,便会触发单片机的外部中断从而对信息进行识别及处理;无线发射模块也通过接入板上的排针将RXD 和TXD管脚分别与单片机上的TXD和RXD管脚相连,一旦传感器有感应,单片机系统就会将信息进行编码,然后通过串行口传输给无线发射模块,进而发送给PC机。此外,单片机的I/O口还接有两个LED灯和一个共阳极三位数码管,前者用作人员进出课室的指示,后者用作课室在座人数的验证及PC机上VB界面中显示数据的对比。
图4 无线模块电路原理图
图5 USB转TTL模块电路原理图图7 USB转TTL模块实物图
图6 无线模块实物图
图7 USB转TTL模块实物图
图8 系统板的电路原理图
图9和图10分别为系统板的PCB布线图和实物图。该系统板采用单层双面板,以单片机为中心进行布线,元器件均安排在正面[6]。
图9 系统板PCB布线图
图10 系统板实物图
此系统的软件程序包括单片机模块程序和VB显示界面程序[7]。其中,单片机模块程序的开发是在Keil uVision4汇编器完成的;VB显示界面程序是在Visual Basic 6.0开发完成的。这两部分程序相互联系,协调作用,共同完成系统计数、通信和显示的功能。
单片机模块程序包括计数子程序和通信子程序。两个传感器分别安装在课室里外的门檐,门外传感器对应单片机中断引脚INT0;门内传感器对应单片机中断引脚INT1。计数子程序的程序流程图如图11所示,当没有人进出课室时,两个传感器传至单片机的信号均为高电平,不产生中断信号,数码管计数维持不变;当有人进入课室时,先触发门外传感器,使INT0引脚为低电平,产生外部中断0中断,进而判断是否接着触发门内传感器使INT1引脚为低电平,若是则最终识别人员为进入状态,数码管计数加1,红色指示灯闪烁一次;当有人离开课室时,先触发门内传感器,使INT1引脚为低电平,产生外部中断1中断,进而判断是否接着触发门外传感器使INT0引脚为低电平,若是则最终识别人员为离开状态,数码管计数减1,黄色指示灯闪烁一次。
图11 计数子程序的程序流程图
每一个单片机子模块先规定一个英文编码值,如第一块子模块为“A”,第二块子模块为“B”等等。在通信子程序中,令数码管的显示数值保存在temp变量中。若temp值发生变化,触发单片机的串行口中断,将temp值分别通过“temp/ 100、temp/100%10、temp%10”的方法提取出百位、十位和个位的数值,然后依次间隔20ms通过将数值赋值给SBUF,进而通过连接单片机RXD 和TXD引脚的无线发射模块将数据发送给PC机,最后把该单片机子模块的英文编码值也发送给PC机,作为子系统的识别符。通信子程序的程序流程图如图12所示。
当无线接收模块接收到单片机子模块发送的数据后,通过TTL转UBS模块将数据经串口传送给PC机,同时驱动了VB显示界面程序。PC机与单片机之间的通信使用VB通信中的MSComm控件。VB显示界面程序的程序流程图如图13所示,PC机的串口属性设置与单片机子模块的串口属性设置一致,采用串口通信模式1,波特率为9600bps,传输的数据包包含8个数据位、1个停止位、无奇偶校验位。
图12 通信子程序的程序流程图
VB界面的宽为7500twip,高为4575twip。界面中假定了3个课室,分别为01、02和03,其容量分别假定为120人、150人和200人。界面上具体需要显示的参数包括各个课室的“在座人数”、“剩余空位”及“空位状况”。此外,界面上还有设置3个命令按钮和当前时间显示。3个命令按钮包括“开始”、“清零”和“退出”。当按下“开始”按钮时,输入正确的PC机通信端口号,即可开始传输数据;当按下“清零”按钮时,界面上的参数归为初始值;当按下“退出”按钮时,退出VB界面。VB显示界面的外观图如图14所示。
当按下“开始”按钮时,正式驱动了VB界面的后台程序。程序中用变量buffer代表接收到的数据,用字符串变量X存储接收到的所有数据。当接收缓冲区有数据时,把buffer中的数据放到X中存储。判断buffer中的数据是否为英文字符,若是则进行通信解码以确定数据发送方。VB界面中,01、02和03课室的英文编码值分别为“A”、“B”和“C”。故只要判断出具体的英文字符,就能将发送方的数据相应的显示在界面的参数框中。
图13 VB显示界面的程序流程图
图14 VB显示界面
该系统经多次实际测试,表现较为稳定和准确。系统结构简单、易于操作、实用性强,只要根据不同场合,替换相应灵敏度的传感器及修改VB界面程序,就能推广至商店、图书馆、博物馆等地作为人数统计装置使用。在实际使用当中,系统或多或少总会遇到一些问题:若环境光线对传感器造成干扰,可在传感器上添加“保护罩”;若传感器的灵敏度或响应范围不够,可更换其他高灵敏度或宽响应范围的传感器;若课室众多,无线传输距离不够,可修改单片机的通信编码,且在传输途中适当添加一两个子模块作为“中继站”,数据经由子模块汇总再发送给PC机。本文所介绍的系统仅是将各个单片机子模块获得的数据通过无线收发模块发送给PC机并显示在VB界面上,若想达到网络共享数据、远程访问的功能,还需建立存储数据的数据库及编写相应的网页,连接服务器,上传互联网。
[1] 张鑫,郭洪岩,马国利.基于单片机的LED旋转式显示屏设计[J].大学物理实验,2014,6:31-34.
[2] 白炳良,周锦荣.基于单片机的开关电源并联供电系统的设计[J].大学物理实验,2013,6:20-23.
[3] 王建鹏,张聪.基于单片机的教室人数统计系统设计[J].民营科技,2011(11):331.
[4] 李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2006.
[5] 周杏彭.传感器与检测技术[M].北京:清华大学出版社,2010.
[6] 李建兵,周长林.EDA技术基础教程:Multisim与Protel的应用[M].北京:国防工业出版社,2013.
[7] 林卓然.VB语言程序设计[M].2版,北京:电子工业出版社,2009.
Research of Intelligent Monitoring and Self-inquiry System for Classroom Population Based on Single-chip Microcomputer
CAI Wei-cheng,CHEN Zhao-pin,WU Zhi-cheng,ZHANG Gong,XU Jun∗
(South China Agricultural University,Guangdong Guangzhou 510642)
A kind of distributed automatic system applied to real-time monitoring for classroom population is researched in this paper.The information of population is feedback and processed by a STC89C52 single-chip microcomputer and YL-62 infrared sensor module,which is installed in classroom.By using the CC1101 wireless data transmitter module,the coded information is sent to the receiver module connected to the serial terminal of PC.The information sent to the PC is decoded and computed.Finally it is displayed on the VB program interface.This achieves the aim of remote-monitoring and inquiry for classroom population.Our system is simple,low cost and high reliability.It may have a great application prospect.
52 single-chip MCU;infrared sensor;wireless data transmission;serial communication;VB interface
O4-39
A
10.14139/j.cnki.cn22-1228.2015.02.004
1007-2934(2015)02-0011-07
2014-10-28
广东省大学生创新创业训练计划项目(1056413103)
∗通讯联系人