基于GPRS的嵌入式远程控制系统的实现

2011-05-14 16:51丁玲玲
卷宗 2011年8期
关键词:远程控制蓝牙

丁玲玲

摘要:本课题基于ARM嵌入式硬件平台,以嵌入式Linux为操作系统,实现了一个远程控制系统。该系统主要包括远程控制终端系统、控制服务器系统和受控终端系统三大模块,实现了GSM短消息收发、GPRS数据传输、视频图像采集、蓝牙无线通信、直流电机变速控制和远程终端人机交互等功能。该系统可广泛应用于智能家居、工矿采集和机械生产等远程控制方面。

关键词:ARM;GSM;GPRS;蓝牙;远程控制

本文将在ARM嵌入式实验平台上,利用GPRS模块和蓝牙模块构建一个基于GPRS的嵌入式远程控制系统。该系统主要包括远程控制终端系统、控制服务器系统和受控终端系统三大模块。拥有GSM短消息收发、GPRS数据传输、视频图像采集、蓝牙无线通信、直流电机变速控制和远程终端人机交互等功能。

本系统可以应用于环境恶劣,不适于人们长期现场工作的场合,也可以应用于智能家居、工矿采集和机械生产等远程控制方面。例如,在智能家居控制系统中,本系统可以将许多相对独立的智能家居构成一个统一的系统,通过远程控制终端对控制服务器发送命令,由控制服务器实现对智能家居的综合管理和控制。

1 系统工作过程

(1)移动手机终端通过GSM网络得到控制服务器的IP地址。

(2)移动手机终端根据得到的服务器IP地址,通过GPRS网络连接到控制服务器系统。

(3)如果移动手机终端进入直流电机控制界面,并向控制服务器系统发送的是直流电机控制命令,控制服务器就将收到的控制命令通过蓝牙通信技术进行广播。受控终端接收到广播的控制命令后,判断接收到的命令是否为自己的控制命令,如果是就做出相应的反映,否则就丢弃接收到的命令。

(4)如果移动手机终端进入视频监视控制界面,并向控制服务器系统发送的是启动视频监视命令,控制服务器就会启动摄像头进行视频图像采集,并将采集的图像帧发送到远程控制手机终端上进行显示。

2 系统实现

在整个系统的具体实现过程中,远程控制终端的GPRS联网通信主要是利用socket网络连接来实现的;控制服务器系统的GPRS联网通信主要是通过AT指令来完成的;而控制服务器系统和受控终端的蓝牙联网通信都是利用L2CAP协议之上的socket来完成的。

2.1 控制服务器系统

控制服务器的主程序主要完成系统初始化操作和主要线程的创建工作。其中系统初始化操作包括串口初始化、全局变量初始化和视频采集初始化等过程。系统的主要线程包括串口监听线程、GPRS服务器线程和蓝牙服务器线程。

主程序流程图如图1.1所示:

整个控制服务器系统在主程序初始化完成后,GPRS服务器线程和蓝牙服务器线程会同时进行启动,而串口监听线程需要等到GPRS服务器线程将GPRS服务器启动结束后再进行启动。这样设计主要是因为GPRS服务器和蓝牙服务器之间相对比较独立,所以可以同时进行启动。然而,串口监听主要是要不断的读取串口中的信息,GPRS服务器启动需要向串口发送AT指令来完成。一旦GPRS服务器启动结束就可以不再继续进行启动,直到远程控制终端发送GPRS服务器重启的命令后再进行重新启动。因此,为了防止串口监听线程在读取信息过程中对GPRS服务器启动造成影响,在系统实现过程中通过一个GPRS的标志位来实现串口监听和GPRS服务器启动的异步性。

对于GPRS服务器线程主要是用来将GPRS模块连接到移动服务器,得到移动服务器分配的动态IP地址实现GPRS模块的上网功能。在启动GPRS模块时要将GPRS模块设为服务器端,实现监听远程控制终端的接入要求。

蓝牙服务器线程主要包括蓝牙初始化和监听已经连接到服务器的受控终端的行为。初始化主要实现了蓝牙服务器的构建。构建结束后,蓝牙服务器就可以接收蓝牙客户端的连接请求,并完成对接收的有效连接进行管理。

GPRS模块和应用系统是通过开发平台的2号串口进行连接的,控制系统通过向GPRS模块发送AT指令来控制模块的行为,因此,在进行短消息的收发和GPRS服务器的构建之前必须要对串口进行初始化。串口监听线程主要实现监听远程控制终端通过GSM网络发送的短消息和通过GPRS网络发送的控制命令。当控制服务器接收到短消息或控制命令后,会根据相应的命令来实现对控制服务器和受控终端的控制。

2.2 受控终端

受控终端主要实现了直流电机通过蓝牙无线通信技术来接收控制服务器的控制。在主程序中主要创建了电机线程和搜索蓝牙服务器的两个线程。电机线程主要完成直流电机的变速控制。搜索蓝牙服务器的线程主要完成了搜索附近所有的蓝牙设备,寻找目标蓝牙服务器的地址,然后根据寻找到的目标服务器地址构建蓝牙客户端等功能。

2.3 远程控制终端

远程控制终端为用户提供了一个友好的控制界面,该终端主要包括登入控制服务器界面、控制菜单界面、直流电机控制界面和视频监视查看等四个界面。主要用到了J2ME编程中的MIDP高级界面编程、低级用户界面编程和无线联网技术编程。

登入控制服务器界面应用J2ME中TextField控件来接收用户输入的控制服务器的IP地址,点击进入组件后,终端将进行与控制服务器的网络连接。为了避免网络连接阻塞用户响应线程,在此类中实现了Runnable接口,通过在Run()方法中调用Connector.open(serverAdd)来实现与控制服务器的连接,并通过openInputStream()方法来打开连接的输入数据流,通过openOutputStream()方法打开连接的输出数据流。连接的输出数据流和输入数据流分别用于远程控制终端向控制服务器发送控制命令和接受控制服务器采集的现场图像等信息。

3 总结

本论文基于ARM9的S3C2410开发平台,利用嵌入式Linux操作系统,运用GPRS无线通信技术和蓝牙无线通信技术搭建了嵌入式控制服务器系统。利用手机终端,运用J2ME编程实现了远程控制终端的设计,并利用另一个S3C2410开发平台的直流电机模块,通过蓝牙无线通信构建了远程控制系统的受控终端。整个系统包含了GSM短消息通信、GPRS远程控制、视频图像采集、蓝牙无线通信、直流电动机变速控制和远程控制人机交互等各大功能。

参考文献

[1]金纯等.蓝牙技术[M]. 西安:电子工业出版社,2001.3

[2]詹建飞.Java ME核心技术与最佳实践[M]. 北京:电子工业出版社,2007.1

[3]SIMCOM有限公司. SIM100-E_UGD[Z]. SIMCOM有限公司,2004.7

[4]孙天泽,袁文菊,张海峰. 嵌入式设计及Linux驱动开发指南[M]. 北京:电子工业出版社,2006.5

[5]Albert S. Huang,and Larry Rudolph. Bluetooth Essentials for Programmers[M]. Cambridge University Press, 2007

猜你喜欢
远程控制蓝牙
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
水冷发射机冷却系统故障分析及解决方案
基于GSM的远程控制系统