您的当前位置:首页正文

一种实验室远程控制系统[发明专利]

2023-06-02 来源:步旅网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 108810135 A(43)申请公布日 2018.11.13

(21)申请号 201810592159.5(22)申请日 2018.06.11

(71)申请人 南京邮电大学

地址 210003 江苏省南京市鼓楼区新模范

马路66号(72)发明人 李永涛 吴长亮 林爽 徐源泽 

董慧媛 邹辉 王增旭 (74)专利代理机构 南京正联知识产权代理有限

公司 32243

代理人 王素琴(51)Int.Cl.

H04L 29/08(2006.01)H04N 7/18(2006.01)

权利要求书1页 说明书5页 附图1页

(54)发明名称

一种实验室远程控制系统(57)摘要

本发明公开了一种实验室远程控制系统,包括用户模块、服务器模块以及用于实验操作的仪器设备模块,服务器模块与仪器设备模块之间通过网络代理和嵌入式系统实现信息交互,服务器模块与嵌入式系统通过反向代理的方式进行数据交互;嵌入式系统包括视频采集模块和控制模块,视频采集模块用于采集仪器设备模块操作过程中的视频数据;控制模块包括信号接收模块、信号传递模块和信号处理模块,通过信号接收模块接收从服务器模块发送过来的数据,信号传递模块用于设置数据的传输模式,数据处理模块对嵌入式系统接收到的数据进行处理后控制实验仪器执行相关操作;本发明实现了用户对实验仪器设备的远程控制,提高了实验仪器资源的共享率,值得推广应用。

CN 108810135 ACN 108810135 A

权 利 要 求 书

1/1页

1.一种实验室远程控制系统,包括用户模块、服务器模块以及用于实验操作的仪器设备模块,所述用户模块与服务器模块之间通过网站用户接口实现数据交互,所述服务器模块与所述仪器设备模块之间通过网络代理和嵌入式系统实现信息交互,其特征在于,所述服务器模块与所述嵌入式系统通过反向代理的方式进行数据交互;所述嵌入式系统包括视频采集模块和控制模块,所述视频采集模块用于采集仪器设备模块操作过程中的视频数据;所述控制模块包括信号接收模块、信号传递模块和信号处理模块,所述信号接收模块通过设置CGI程序实现与服务器模块之间的数据交互;所述信号传递模块用于设置所述信号接收模块与服务器模块之间进行数据交互时的数据传输模式;所述信号处理模块响应于所述信号接收模块接收到的从服务器模块发送过来的数据控制所述仪器设备模块中的实验仪器执行相关操作。

2.根据权利要求1所述的一种实验室远程控制系统,其特征在于,所述服务器模块与所述仪器设备模块之间通过构建网关实现两者间的数据交互。

3.根据权利要求1所述的一种实验室远程控制系统,其特征在于,所述视频采集模块通过Linux-C语言实现视频采集功能。

4.根据权利要求1所述的一种实验室远程控制系统,其特征在于,所述服务器模块与所述仪器设备模块设置于同一局域网中。

2

CN 108810135 A

说 明 书

一种实验室远程控制系统

1/5页

技术领域

[0001]本发明属于智能教学设备领域,尤其涉及一种实验室远程控制系统。

背景技术

[0002]实验操作在教学方案中始终都扮演着一个重要的角色,老师通过实验教学可以让学生更好理解相关的知识;同样的,学生通过自我动手进行实验操作,对相关知识会有更深刻的认知,因此在例如物理、化学等科目中一般都设置有一定的实验操作课程,但是由于很多实验中,有些实验器材比较昂贵,有些比较沉重,有些只有在特定环境下才可以进行实验等,导致很多学生只有在有限的实验课程中进行有限次的实验,如果学生想再次进行相关实验,则限于条件,导致学生能够实际进行实验操作的次数与时间并不多,使学生实践操作能力、研究能力、创新能力得不到良好的培养。发明内容

[0003]本发明的主要目的在于提供一种实验室远程控制系统,用于解决现有技术中由于实验仪器沉重而导致分光计实验由于仪器沉重无法推广的问题,具体技术方案如下:

一种实验室远程控制系统,包括用户模块、服务器模块以及用于实验操作的仪器设备模块,所述用户模块与服务器模块之间通过网站用户接口实现数据交互,所述服务器模块与所述仪器设备模块之间通过网络代理和嵌入式系统实现信息交互,所述服务器模块与所述嵌入式系统通过反向代理的方式进行数据交互;所述嵌入式系统包括视频采集模块和控制模块,所述视频采集模块用于采集仪器设备模块操作过程中的视频数据;所述控制模块包括信号接收模块、信号传递模块和信号处理模块,所述信号接收模块通过设置CGI程序实现与服务器模块之间的数据交互;所述信号传递模块用于设置所述信号接收模块与服务器模块之间进行数据交互时的数据传输模式;所述信号处理模块响应于所述信号接收模块接收到的从服务器模块发送过来的数据控制所述仪器设备模块中的实验仪器执行相关操作。[0004]作为优选,所述服务器模块与所述仪器设备模块之间通过构建网关实现两者间的数据交互。

[0005]作为优选,所述视频采集模块通过Linux-C语言实现视频采集功能。[0006]作为优选,所述服务器模块与所述仪器设备模块设置于同一局域网中。[0007]本发明的实验室远程控制系统中,服务器模块与仪器设备模块之间通过网络代理和嵌入式系统实现信息交互,而在嵌入式系统中通过设置视频采集模块和控制模块,通过视频采集模块来采集实验过程中相关仪器的操作过程数据和实验数据,然后发送至服务器模块,让用户可通过服务器模块与用户模块之间的网络用户接口来实现对视频采集模块采集到的视频数据进行多次重复的观看;而通过控制模块内的信号接收模块可接收从用户模块在服务器模块上设置的操作命令数据,然后通过信号处理模块来对操作命令数据进行处理,从而生产可以用于控制仪器设备模块中的仪器执行相对应的操作,实现对实验室中实验仪器的远程控制;与现有技术相比,本发明实现了用户对实验仪器设备的远程控制,提高

3

CN 108810135 A

说 明 书

2/5页

了实验仪器资源的共享率,这样可以大大提高学生的实践动手能力。

附图说明

[0008]图1为本发明所述实验室远程控制系统的结构组成框图示意;

图2为本发明所述服务器模块与嵌入式系统之间的数据交互流程图示意。

具体实施方式

[0009]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。[0010]参阅图1和图2,在本发明实施例中,提供了一种实验室远程控制系统,包括用户模块、服务器模块以及用于实验操作的仪器设备模块,用户模块与服务器模块之间通过网站用户接口实现数据交互,服务器模块与所述仪器设备模块之间通过网络代理和嵌入式系统实现信息交互,服务器模块与所述嵌入式系统通过反向代理的方式进行数据交互;嵌入式系统包括视频采集模块和控制模块,视频采集模块用于采集仪器设备模块操作过程中的视频数据;控制模块包括信号接收模块、信号传递模块和信号处理模块,信号接收模块通过设置CGI程序实现与服务器模块之间的数据交互;信号传递模块用于设置信号接收模块与服务器模块之间进行数据交互时的数据传输模式;信号处理模块响应于信号接收模块接收到的从服务器模块发送过来的数据控制仪器设备模块中的实验仪器执行相关操作。[0011]优选的,在是实施例中,服务器模块与仪器设备模块之间通过构建网关实现两者间的数据交互。[0012]具体的,在本发明实施例中,服务器模块与仪器设备模块设置于同一局域网中,但由于服务器模块与仪器设备模块中的嵌入式系统中使用的操作系统不一致,为了实现服务器模块可与嵌入式系统进行数据交互,同时保障数据交互过程中的信息安全,通过使用反向代理的方式进行交互,即在同意局域网中通过设置一个代理服务器,通过这个代理服务器来接收网络中的连接请求,然后通过代理服务器将请求转发至服务器模块中,并通过代理服务器将服务器模块上得到的结果反馈至网络中请求连接的客户端,最后实现嵌入式系统与网络的连接。[0013]优选的,本发明中的视频采集模块中用于采集视频数据的仪器为USB摄像头;当然,对此本发明并未进行限制和固定,可根据实际情况选择。[0014]在本发明实施例中,视频采集模块采用三星Exynos 4412处理器作为核心处理器,搭载最小Linux系统,使用Linux-C进行嵌入式开发,使用libjpeg库以及MJPG-Streamer进行视频采集,并搭建本地TCP服务器进行视频数据转发;其中,MJPG-Streamer是基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,MJPG-Streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有的工作都是通过它的各个插件完成的,在MJPG-Streamer进行视频采集过程中,需要使用到input_testpicture.so文件,通过input_testpicture.so文件可以将预设好的图像编译成一个头文件,并在没有摄像头的情况下传输图像,从而方便调试程序;input_uvc.so文件,通过input_uvc.so文件可以调用

4

CN 108810135 A

说 明 书

3/5页

USB摄像头驱动程序V4L2,从摄像头读取视频数据;input_control.so文件,通过input_control.so文件来设置摄像头控制接口的设置;output_http.so文件,output_http.so文件用于设置一个功能齐全的网站服务器,通过这个网站服务器可以实现对单一文件夹中文件的处理功能,执行指定命令功能,处理输入插件中指定图像功能,以及将输入插件的视频文件根据MJPEG标准以视频数据服务流形式输出的功能等。[0015]优选的,可以在服务器模块和嵌入式系统中设置其网络的IP地址,使其可以获取由图像构成的视频流,并且通过设置验证密码,以保证图像视频流的安全性。[0016]在本发明实施例中,控制模块主要通过从服务器模块接收用户模块发送的信号数据流,以实现对步进电机、传感器、继电器等的控制,实现用户对实验室的远程控制功能,主要包括信号接收、信号传递和信号处理三个过程,对应的,在控制模块中设置有信号接收模块、信号传递模块和信号处理模块,且控制模块优选使用树莓派作为模块的核心处理器,使用Python作为控制编码的语言,当然,对此,本发明并为进行限制和固定,亦可根据实际情况进行抉择;下面将对信号接收模块、信号传递模块和信号处理模块进行详细的描述:

信号接收模块:由于嵌入式系统与服务器模块之间通过反向代理的方式进行数据交互,所以首先需要单间一个中间服务器,本发明通过在树莓派核心处理器上搭建一个BOA服务器来实现,BOA服务器为单任务的WEB服务器,对于用户的请求,BOA服务器只能按照先后顺序进行执行完成,而不会在执行过程中创建出新的子进程而发生并发连接请求,且BOA服务器支撑CGI,可为CGI程序创建相对应的进程来执行,这样可以保证数据交互过程中的流畅性和安全性;在BOA服务器搭建完成后,控制模块即可通过CGI程序来与服务器模块中标准外部接口连接,实现通过CGI程序实现控制模块与服务器模块之间的信号传递过程。[0017]优选的,本发明使用Python语言进行CGI脚本的编写,从而获取HTTP访问,即实现与服务器模块之间的连接,具体编程语言为:

print \"Content-Type:text/html\\n\\n\"form = cgi.FieldStorage()json = form.getvalue('json')在这过程中,使用json作为编码传输的字符串,json是一种轻量级的数据交换格式,能够方便的将数组,对象和字符串相互转换;Json格式定义的编程语言为:

type: start/stop 表示电机开始或停止A:0/1 A,B,C表示选择电机译码信号B:0/1C:0/1DIR:0/1 方向信号

Rate:数字PWM信号的频率综上可知,通过搭建BOA服务器并设置CGI程序即可实现控制模块从服务器模块中接收信号数据的功能。[0018]信号传递模块:在信号接收模块与服务器模块之间进行数据传输过程中,CGI程序控制模块的程序控制程序之间需要进行数据传输,此时,进程间就需要通信,由于BOA服务器为在消息处理过程中为依次处理的顺序,本发明通过信号传递模块使进程间通过消息队列的形式进行通信,本发明优选以RabbitMQ消息队列为例说明,其中,在CGI程序中,将消息

5

CN 108810135 A

说 明 书

4/5页

队列初始化名为ctrl_inf,同时,将json数据传入消息队列ctrl_inf中就需要使用消息队列的方式进行进程间,其Python编程语言为:

connection= ika.BlockingConnection(pika.ConnectionParameters('localhost'))

channel = connection.channel()

channel.queue_declare(queue='ctrl_inf')channel.basic_publish(exchange='', routing_key='ctrl_inf', body=json)connection.close()

控制模块的对应的接收编程语言为:

channel.basic_consume(callback,queue='ctrl_inf',no_ack=True)此外,在控制模块接收消息队列的过程中,还需通过callback回调函数对接收到的消息进行处理,在callback函数中,将json字符串解析成数组对象,并且分析具体字段并进行信息处理。[0019]信号处理模块:在本发明中,信号接收模块接收到的用户通过服务器发送的信号主要为电机启停控制信号,继电器控制信号等

由于电机控制信号主要通过脉冲信号来实现,本发明通过使用Python的RPi.GPIO库,在RPi.GPIO库中定义PWM信号来实现,且由于PWM信号是一种连续的方波信号,GPIO库中使用GPIO.PWM来定义一个PWM信号,并且可以控制信号的占空比,频率,以及启停操作,嵌入式系统接收到的启停信号,就是调用PWM库的start()函数以及stop()函数来实现的;此外,本发明使用了红外限位器对电机的操控范围进行了限制,利用红外限位器的信号端口,作为嵌入式芯片的IO输入端口,通过对IO端口的边沿检测来实现中断操作,保证电机控制信号的控制电机时可以随时进行中断操作,防止机械部件越过限定范围造成严重的机械损伤,具体通过如下Python编程语言实现:

GPIO.add_event_detect(16,GPIO.BOTH,callback=my_callback, bouncetime=200)通过my_callback函数,实现上升沿和下降沿信号的中断处理,对应的中断处理过程就是:将电机运动的方向反向,并且运行一小段时间,起到防止机械部件越过限定范围造成严重机械损伤的效果。[0020]综上可知,本发明的实验室远程控制系统中,服务器模块与仪器设备模块之间通过网络代理和嵌入式系统实现信息交互,而在嵌入式系统中通过设置视频采集模块和控制模块,通过视频采集模块来采集实验过程中相关仪器的操作过程数据和实验数据,然后发送至服务器模块,让用户可通过服务器模块与用户模块之间的网络用户接口来实现对视频采集模块采集到的视频数据进行多次重复的观看;而通过控制模块内的信号接收模块可接收从用户模块在服务器模块上设置的操作命令数据,然后通过信号处理模块来对操作命令数据进行处理,从而生产可以用于控制仪器设备模块中的仪器执行相对应的操作,实现对实验室中实验仪器的远程控制;与现有技术相比,本发明实现了用户对实验仪器设备的远程控制,提高了实验仪器资源的共享率,这样可以大大提高学生的实践动手能力。[0021]以上仅为本发明的较佳实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利

6

CN 108810135 A

说 明 书

5/5页

用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

7

CN 108810135 A

说 明 书 附 图

1/1页

图1

图2

8

因篇幅问题不能全部显示,请点此查看更多更全内容