智能实验箱的设计与实现

2016-12-02 06:43:44罗家兵
现代计算机 2016年30期
关键词:电磁锁网关串口

罗家兵

(广州大学华软软件学院计算机系,广州 510990)

智能实验箱的设计与实现

罗家兵

(广州大学华软软件学院计算机系,广州 510990)

设计一款能够自动检测实验设备状态、自动记录实验设备使用情况的智能实验箱,其主要由设备信息检测、传输两部分组成。在硬件方面,主要研究ZigBee无线网络、超声波传感器、触碰传感器、RFID读卡器、压力传感器、继电器、s5pv210嵌入式开发板的外围设备;在软件方面,主要研究Linux操作系统、QT的串口编程、网络编程、JSON数据的解析等。

传感器;ZigBee无线网络;嵌入式Linux

0 引言

目前,存放实验设备的实验箱仅仅作为存放实验设备的一个容器而已,无法自动记录实验设备的相关信息,随着物联网技术的广发应用,有必要让实验箱进行信息化的改造,实现实验箱的智能化:

(1)可以预先设定实验箱的可能打开时间,例如上午九点某某班来做微机原理实验,学生只需要在实验台上登录验证,实验箱即可自动打开,这样实验管理员就不用跑到实验室逐个登记、发放实验箱;

(2)实验管理员坐在值班室就可以远程观察各实验箱的状态;

(3)如果某台实验箱出现问题,由于实验箱的自动记载使用记录,这样可以追查到是否是故意损坏。

1 智能实验箱国内外研究动态

近年来,物联网技术的逐步应用已经给人们的生产、生活带来了巨大的便利,相关的技术人员也在试图把物联网应用到更加广泛的领域。在各个科研机构、高校都会用到大量的实验设备,也需要对实验设备进行有效的管理。物联网技术也开始在实验设备管理方面应用起来。

目前市面上有关人员研究最多的是把物联网的RFID技术应用到实验设备的管理,其主要是给每一实验设备都贴上了一个RFID标签,通过该标签、读写器、后台数据库即可完成设备的智能化识别、管理,技术层面上都大致涉及下面几个方面:

①为实验箱配备具有唯一ID号的RFID标签,作为实验箱的识别标志;

②为实验箱的每一模块配备具有唯一ID号的RFID标签,作为模块的识别标志;

③RFID阅读器读写RFID标签的ID号,通过Zig-Bee网络将读取的数据发送到主节点;

④主节点将数据传送给上位机,进行数据分析、存档和处理,实现实验箱和模块的入库、借出、查询和归还等功能。

已有的物联网在实验设备上的应用主要是从设备的类别、数量上进行了有效的管理,也的确大大提高了管理的效率,但是却没有对存放实验设备的实验箱的管理,这样就无法自动获取实验设备何时从实验箱里取走、放回的信息。

2 智能实验箱模块分析和架构设计

2.1 系统模块分析

系统可以分为三层:感知程、网络传输层、应用层,

如图1所示。

图1 系统模块结构图

(1)Android手机App与Web应用模块

Web作为服务器实现对MySQL数据库的增删改查,方便管理人员后台的处理以及提供相关的接口实现与嵌入式Linux网关的数据交互。Android手机App应用主要是让管理员能够实时的观察到实验箱的状态,以及学生的一些相关信息,必要时可以控制实验箱的开关。

(2)嵌入式Linux网关数据传输模块

嵌入式Linux是整个系统的核心,在整个系统中起着承上启下的作用。底层ZigBee无线网络通过串口与嵌入式Linux网关进行数据的交互,使得底层数据能够有效的上发到应用层;而应用层与嵌入式Linux网关通过HTTP协议进行数据的交互,让上层应用可以间接的控制到底层。ZigBee无线网络数据采集与控制模块。

利用RFID读卡器采集学生的卡号、超声波模块检测实验箱是否存在、触碰传感器检测实验箱的开关状态、压力传感器检测实验箱内模块是否存在,实时的把信息发送到嵌入式Linux网关。在底层ZigBee无线网络中还使用了继电器、电磁锁来控制实验箱的开与关。实现了底层数据的采集与控制。

2.2 系统架构设计

根据图2所示,基于物联网的智能实验箱分为三大层。感知层:包括RFID读卡器、超声波模块、压力传感器、继电器、电磁锁、ZigBee节点、ZigBee协调器;网络传输层:包括嵌入式Linux、Web服务器、MySql数据库;应用层:包括手机android端、网页端。整个系统实现了从感知层到应用层、从应用层到感知层数据之间的传输,实现了数据的存储,以及底层的控制。

3 系统通信协议的分析与设计

嵌入式Linux网关与ZigBee主要是通过串口进行数据的交互。ZigBee协调器通过HalUARTWrite函数把数据通过串口发送给嵌入式Linux网关,嵌入式Linux网关则调用串口的readAll函数进行数据的接收;嵌入式Linux网关通过串口的write函数给ZigBee协调器发送数据,ZigBee则通过回调函数与HalUARTRead函数进行数据的接收

图2 系统架构图

3.1 网关与ZigBee通信协议的设计

嵌入式Linux网关与ZigBee相关接口:

(1)网关串口读写接口

(2)ZigBee串口接口

3.2 网关与web服务器通信协议设计

嵌入式Linux网关与Web服务器之间的数据交互主要是通过HTTP协议实现。嵌入式Linux网关通过get请求向Web服务器请求服务,而Web服务器则以JSON的格式返回相关数据,嵌入式Linux网关接收到JSON数据后,进行数据解析并做相关的数据处理。

嵌入式Linux网关与Web服务器相关接口:

(1)状态接口

请求参数

state:0试验箱不存在,1存在

door:0柜子关闭1打开

matel_00表示器材名称00表示器材编号0表示不存在1表示存在

matel_01如上

返回参数

(2)登录接口

请求参数

rfid_id:用户id

opernation:open打开试验箱

返回参数

errorcode00成功

msg服务器提示信息

4 智能实验箱的实现

4.1 实验箱信息检测模块的实现

(1)实验设备存在检测模块的实现

超声波模块HC-SR04主要用于测距,检测实验箱是否被取走,它有VCC、trig(控制端),echo(接收端)、GND四个引脚。其主要工作原理是先给trig(控制端)高电平延时至少10us后再给trig(控制端)低电平,此时模块自动发送8个40KHz的方波,自动检测是否有信号返回,有信号返回,通过计算echo(接收端)高电平持续的时间,最后通过公式(测试距离=(高电平时间*声速(340m/s))/2)得到距离。

(1)对trig(控制端),echo(接收端)两个I/O口进行初始化

(2)先给trig(控制端)高电平延时至少10us后再给trig(控制端)低电平

(3)计算echo(接收端)高电平持续的时间

while(Echo==0);//等待ECHO管脚变为高电平

(4)通过公式(测试距离=(高电平时间×声速(340m/ s))/2)得到距离。

通过上面的步骤就可以获取超声波传感器获取的距离,由于考虑到ZigBee无线网络传输的效率比较低,所以当距离超过10cm是认为实验箱是被取走的,否则实验箱就是没被取走。然后发送0和1表示这两个状态。

(2)实验箱打开模块的实现

继电器通过控制电磁锁上电与不上电来控制实验柜的开关。继电器模块接口有VCC接5V、GND接电源负极、IN可以高或低电平控制继电器吸合、继电器常开接口,继电器吸合前悬空,吸合后与COM短接、继电器公用接口、继电器常闭接口,继电器吸合前与COM短接,吸合后悬空。电磁锁是利用电生磁的原理,当电流通过硅钢片时,电磁锁会产生强大的吸力紧紧的吸住吸附铁板达到锁实验柜的效果。当没有电流通过硅钢片时,电磁锁失去吸力即可开实验柜。控制继电器的开是通过命令“01O”来实现的,其中01代表实验柜的ID好,O表示open的意思,即打开实验柜01。当实验柜打开3s之后,会重新给电磁锁上电,以保证实验柜能被锁上。

代码实现步骤如下:

(1)继电器I/O口初始化,默认电磁锁是锁上的。

(2)通过接收到ZigBee协调器发来的命令来控制电磁锁断电

//ZigBee节点接收ZigBee协调器发来的数据的函数

4.2 实验箱信息传输模块的实现

ZigBee节点采集到各个传感器之后需要把数据通过ZigBee无线网络发送到ZigBee协调器。ZigBee节点需要做的工作分为以下几步,第一:在OSAL_SampleApp.c文件中的tasksArr[]添加新任务的事件处理函数;第二:在OSAL_SampleApp.c文件中的void osalInit-Tasks(void)函数中添加新任务的初始化函数;第三:编写新任务的初始化函数;第四:编写新任务的事件处理函数;第五:编写ZigBee节点数据发送函数和ZigBee协调器数据接收函数。

代码实现步骤如下:

(1)在OSAL_SampleApp.c文件中的tasksArr[]添加新任务的事件处理函数SampleApp_ProcessEvent

(2)在OSAL_SampleApp.c文件中的void osalInit-Tasks(void)函数中添加新任务的初始化函数SampleApp_Init(taskID);

(3)编写新任务的初始化函数void SampleApp_Init (byte task_id),主要工作是初始化任务的优先级、设备状态、节点描述符,用afRegister(&SampleApp_epDesc)函数将节点描述符进行注册。

(4)编写新任务的事件处理函数,对消息进行处理。

(5)编写ZigBee节点数据发送函数。

(6)编写ZigBee协调器数据接收函数的代码。

4.3 网关的实现

嵌入式Linux网关与Web服务器之间的数据交互实现步骤如下:

嵌入式Linux网关与Web服务器之间的数据交互实现步骤如下:

(1)实例化一个QNetworkRequest对象

QNetworkRequest*request=new QNetworkRequest();

//创建网络请求对象

(2)数据请求

(3)数据处理

当Web返回数据时,嵌入式Linux网关通过函数finishedSlot(QNetworkReply*reply)来接收JSON数据

(4)嵌入式Linux网关JOSN数据解析及处理

//获取要解析的JSON数据

QByteArray bytes=reply->readAll();

QString string=QString::fromUtf8(bytes);

//通过实例化一个QScriptEngine对象进行JSON数据解析

5 结语

本文从实验设备管理的智能化出发,应用传感技术、自动控制技术、无线通信技术设计和实现了一款基于物联网技术的智能实验箱,能够自动检测实验设备信息、使用状况,经过测试运行良好,能够给实验设备的管理带来方便。

[1]马建.物联网技术概论[M].北京:机械工业出版社,2011.2.

[2]王占军,李虹,史良伟.基于物联网架构的实验室智能管理系统的研究[J].工业控制计算机,2014,27(2).

[3]许毅,陈建军.RFID原理与应用[M].北京:清华大学出版社,2013.1

[4]霍雷,刘盛德,胡咸斌.ZigBee技术及应用[M].北京:北京航空航天大学出版社,2007.

[5]乔大雷.基于ARM9的嵌入式ZigBee网关设计与实现[D].中国矿业大学2007

Design and Implementation of Intelligent Experiment Box

LUO Jia-bing

(Department of Computer Science,South China Institute of Software Engineering,Guangzhou 510990)

Designs a model can automatically detect the device status,use of automatic recording equipment,intelligent experiment box,the main information detection of equipment,transmission of two parts.In the aspect of hardware,mainly studies the ZigBee wireless network,ultrasonic sensor,touch sensor,RFID reader,pressure sensor,relay,s5pv210 embedded development board peripherals;in the aspect of software,studies the Linux operating system,QT serial port programming,network programming,parsing the JSON data,etc.

Sensor;ZigBee Wireless Network;Embedded Linux

1007-1423(2016)30-0065-05

10.3969/j.issn.1007-1423.2016.30.017

罗家兵,男,讲师,硕士研究生,研究方向为嵌入式软件开发和物联网应用技术

2016-09-06

2016-10-18

猜你喜欢
电磁锁网关串口
基于FTA的电磁锁故障分析
浅谈AB PLC串口跟RFID传感器的通讯应用
基于改进RPS技术的IPSEC VPN网关设计
负极刀闸电磁锁故障分析及处理
科学与技术(2018年7期)2018-03-27 14:20:50
地铁安全门电磁锁的优化研究
基于DCS系统的厂用电设备防误配置策略
科学与财富(2017年6期)2017-03-19 09:31:15
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
地矿测绘(2015年3期)2015-12-22 06:27:26
LTE Small Cell网关及虚拟网关技术研究
移动通信(2015年18期)2015-08-24 07:45:08
应对气候变化需要打通“网关”
太阳能(2015年7期)2015-04-12 06:49:50