基于智能路由和聊天室机制的远程控制系统及方法与流程

文档序号:12067961阅读:431来源:国知局
基于智能路由和聊天室机制的远程控制系统及方法与流程
本发明涉及智能控制领域,尤其涉及一种基于智能路由和聊天室机制的远程控制系统,还涉及一种基于该系统的远程控制方法。
背景技术
:当前智能可移动设备(如智能小车等),一般都是近程控制,即上位机接入(主要是遥控器或手机APP)可移动设备的wifi或蓝牙配对状态下控制设备行走,超出wifi或蓝牙覆盖覆盖范围则不能接入,导致无法控制设备,具有局限性。有些能实现远程控制,从已有的远程控制设备技术来看,主要是一对一的关系,即一个上位机对一台设备的远程控制,还没有可以一对多进行远程控制的解决方案。技术实现要素:为解决现有技术中的问题,本发明提供一种基于智能路由和聊天室机制的远程控制系统,还提供了一种基于该系统的远程控制方法。本发明远程控制系统包括,智能可移动设备:用于根据服务器转发的控制指令执行操作,并上报数据给服务器;服务器:用于搭建聊天室,分发同一聊天室内上位机的控制指令给智能可移动设备,并将智能可移动设备上报的数据发送给上位机;上位机:用于通过服务器发送控制指令给智能可移动设备,接收服务器传输的智能可移动设备上报的数据并显示。本发明作进一步改进,所述智能可移动设备包括OpenWrt智能路由和arduino单片机,其中,所述OpenWrt智能路由为智能可移动设备主控板,通过串口与arduino单片机通信,控制智能可移动设备移动;所述arduino单片机控制可移动设备移动,数据上报。本发明作进一步改进,所述智能可移动设备还包括4G路由器,用于接入4G通信网。本发明作进一步改进,所述智能可移动设备、服务器和上位机之间通过websocket协议通信,所述聊天室为websocket聊天室。本发明作进一步改进,同一websocket聊天室内连接的智能可移动设备和上位机的数量为一个以上,其中智能可移动设备和上位机通过服务器内的websocket聊天室的通信形式包括一对一通信、一对多通信和多对多通信。本发明作进一步改进,所述智能可移动设备上设有摄像头和/或传感器。本发明还提供了一种基于上述远程控制系统的远程控制方法,包括如下步骤:S1:服务器搭建聊天室,智能可移动设备、上位机连网,能够访问服务器;S2:服务器将智能可移动设备和对应的上位机绑定,接入聊天室的同一房间;S3:上位机发送控制指令和消息给服务器;S4:服务器解析消息中的聊天室房间号和智能可移动设备编号,选择房间内转发的智能可移动设备,然后将控制指令发送给该智能可移动设备;S5:智能可移动设备接收到控制指令后执行相应操作,并将数据和消息上报给服务器;S6:服务器解析消息中的聊天室房间号和上位机号,选择房间内转发的上位机,然后将数据发送给该上位机;S7:上位机显示数据。本发明作进一步改进,在步骤S2中,将采用OpenWrt智能路由的智能可移动设备与上位机的用户微信号进行绑定,每个智能可移动设备在出厂时拥有一个该设备的MAC地址,将该MAC地址作为参数的临时二维码,服务器将智能可以只移动设备和上位机进行绑定的方法为:S211:用户通过上位机的微信,扫描智能可移动设备的带参数的临时二维码,关注设备的微信公众号;S212:用户微信openid和智能可移动设备的MAC地址在服务器上进行绑定;S213:服务器根据用户上位机上的微信openid生成专属于该用户的聊天室房间号的验证码和二维码,组关注公众号的图文消息;S214:服务器推送带聊天室房间号的验证码和二维码,关注公众号的图文消息给用户上位机的微信。本发明作进一步改进,在步骤S2中,智能可移动设备加入聊天室的方法为:S221:上位机接入采用OpenWrt智能路由的智能可移动设备内置wifi;S222:上位机扫描并填写包括上级路由ssid,密码,房间号验证码,智能可移动设备名称的信息;S223:智能可移动设备通过websocket协议发送登录消息;S224:服务器在收到登录消息后,将设备加入到与登录消息对应的聊天室中房间号,对该设备生成一个client_id;S225:服务器广播智能可移动设备的登录消息给该房间内已有的上位机。本发明作进一步改进,在步骤S2中,上位机加入聊天室的房间号的方法为:S231:上位机输入房间号验证码、给上位机命名,组登入消息,并发送登入消息给服务器;S232:搭建好聊天室功能的服务器收到登入消息后,将上位机加入到消息中对应的房间号,对该上位机生成一个client_id;S233:服务器返回带有当前房间号中已有设备和上位机的登录成功的消息给该上位机;S234:服务器向该房间内已有的上位机广播上位机登入的消息。与现有技术相比,本发明的有益效果是:能够实现一对一、一对多或者多对多的远程实时控制,通过将同一环境中多个设备加入聊天室同一房间中,便于用户通过设备上报数据及时查看了解设备运行情况,通过摄像头画面远程监控设备周围情况,如亲临现场,具有极强的可视感和操作感,操作简便;通过将不同环境中的设备加入同一房间,能够实现多个场景的远程同时监控,发现问题能及时处理,大大节约人力物力成本。附图说明图1为本发明远程监控系统交互示意图;图2为上位机与智能可移动设备绑定一实施例示意图;图3为智能可移动设备接入外网并加入聊天室房间的一实施例示意图;图4为上位机登入聊天室房间号一实施例示意图;图5为上位机远程控制智能可移动设备一实施例操作示意图。具体实施方式下面结合附图和实施例对本发明做进一步详细说明。如图1所示,本发明基于智能路由和聊天室机制的远程控制系统包括:(1)智能可移动设备(以下简称设备):用于根据服务器转发的控制指令执行操作,并上报数据给服务器。设备可做成四轮小车或履带方式等只要能够控制移动即可,应用领域包括智能玩具、智能家居、智能监控、野外探测设备等。其中,作为本发明的一个实施例,本例的智能可移动设备可以为可移动的智能家居设备,通过中继家用网关wifi实现远程控制,手机APP等上位机能够远程控制其行走并查看设备摄像头监控画面;作为可移动智能家居设备网关,控制设备移动到其他智能家居设备附近,通过视频监视可实时看到控制效果,如空调是否正常打开,窗帘是否拉开等。本例的智能可移动设备采用OpenWrt智能路由,便于软硬件的开发及控制。OpenWrt可以被描述为一个嵌入式的Linux发行版,而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许自定义设备,以适应任何应用程序。本例智能可移动设备包括OpenWrt智能路由和arduino单片机,其中,所述OpenWrt智能路由为智能可移动设备主控板,接入摄像头提供视频监控,通过串口与arduino单片机通信,控制设备行走。本例OpenWrt智能路由支持WebSocket协议,实现websocketclient功能。WebSocket是HTML5一种新的协议。它实现了浏览器与服务器全双工通信。所述arduino单片机实现控制智能可移动设备行走,旋转,避障等功能,实现控制摄像头云台旋转、上报接入的传感器数据等。Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。为了实现上位机控制智能可移动设备在户外行走,本例智能可移动设备还包括4G路由器,用于接入4G通信网,并产生wifi,当智能可移动设备在户外操作时需要。作为本发明的另一个实施例,本例的智能可移动设备为野外探测设备,通过在设备上放置4G路由器或开设热点的4G手机,设备接入手机热点wifi或4G路由器wifi。通过接入4G网络,设备能够接入到Internet,并连接上服务器,手机APP等上位机就能实现远程对设备的控制和接收设备的探测数据。此外,本例的智能可移动设备还能作为高级的智能玩具类应用,可以给创客和大中小学生一个学习智能设备开发和通过设备进行娱乐表演的环境。(2)服务器:用于搭建聊天室,分发同一聊天室内上位机的控制指令给智能可移动设备,并将智能可移动设备上报的数据发送给上位机。作为支持websocket协议的服务器,负责将设备和上位机进行绑定并通信,服务器搭建成聊天室形式,能够建立多个房间。将用户的多个设备和用户的各类上位机都加入到同一个聊天室房间,通信形式包括一对一、一对多、多对多等。一对一方式为一个上位机与一个智能设备会话过程,一对多为一个上位机同时与多个智能设备的会话过程,多对多为多个上位机与多个智能设备同时会话过程。(3)上位机:用于通过服务器发送控制指令给智能可移动设备,接收服务器传输的智能可移动设备上报的数据并显示。本例的上位机包括支持websocket协议的微信公众号、客户端浏览器、手机APP等。本发明基于聊天室机制,将智能设备和控制端上位机(包括安卓APP和微信等)加入到服务器创建的聊天室房间,实现基于聊天室的一对一,一对多及多对多的远程控制,方便有效,并能够实施查看控制效果。本发明采用开源的OpenWrt系统的智能路由器作为智能可移动设备的主控板,基于websocket技术实现用微信和手机APP等上位机远程控制智能可移动设备,通过借助于服务器(如阿里云服务器)中转,将设备和上位机一起加入到服务器创建的聊天室房间号中,实现人机的交互会话过程。如图1所示,作为本发明的一个实施例,上位机对设备的远程控制方法包括如下步骤:S1:服务器搭建聊天室,智能可移动设备、上位机连网,能够访问服务器;该步骤为实现远程控制的前提条件。作为本发明的一个实施例,服务器搭建基于websocket功能的聊天室可以这样实现:在阿里云等公网服务器上采用开源的高性能PHPwebsocket服务器框架-workerman实现的一个聊天室框架workerman-chat,安装workerman-chat并开启服务,等待上位机和智能可移动设备的接入,创建聊天室房间,并转发上位机和智能可移动设备间的通信消息。S2:服务器将智能可移动设备和对应的上位机绑定,接入聊天室的同一房间;S3:上位机用户执行UI(用户界面)操作,组指令json消息(消息格式见3-1),通过websocket技术发布控制指令给服务器;S4:服务器解析json消息中的聊天室房间号和智能可移动设备编号,选择房间内转发的智能可移动设备,然后通过websocket技术转发控制指令给选中的智能可移动设备;S5:智能可移动设备接收到控制指令后根据控制指令执行相应操作,生成包含摄像头画面的视频数据和传感器数据,组数据json消息(消息格式见3-2),通过websocket技术上报视频数据和传感器数据给服务器;S6:服务器通过解析的json消息中的聊天室房间号和上位机号,选择房间内转发的上位机,然后通过websocket技术转发视频数据和传感器数据给选定的上位机;S7:上位机显示上报的视频画面和传感器数据。具体地,在步骤S2中,本例将采用OpenWrt智能路由的智能可移动设备与上位机的用户微信号进行绑定。每个智能可移动设备在出厂时拥有一个该设备的MAC地址,将该MAC地址作为参数的临时二维码,拥有该设备的用户通过微信扫描该二维码后,将该设备的MAC地址和用户微信的openid进行绑定,将绑定关系写在服务器中的数据库对应表中,表示本设备的归属用户。服务器建立一个聊天室房间号(由用户的openid通过运算得到的八位字符和数字组成的字符串)作为验证码,并生成一个该房间号验证码作为参数的二维码。该用户(作为房间管理员)可以分享该二维码给其他用户,其他用户通过微信扫该二维码后也加入该房间,成为可以控制本房间内设备的上位机。房间管理员可以设置邀请加入到本房间的用户的权限,包括可控(能控制设备)、禁言(不能控制设备)、禁看(无法看到控制效果)、踢出房间等。如图2所示,服务器将智能可以只移动设备和上位机进行绑定的方法包括如下步骤:(1)用户用手机微信扫描智能可移动设备的带参数的临时二维码,关注设备的微信公众号;(2)用户微信openid和设备的mac地址在服务器上进行绑定;(3)服务器根据用户微信openid生成专属于该用户的聊天室房间号的验证码和二维码,组关注公众号的图文消息;(4)公众号推送带聊天室房间号的验证码和二维码关注公众号的图文消息给用户手机微信。如图3所示,用户通过本发明中智能可移动设备所对应的APP,打开设备后,手机登录其内置wifi,通过APP设置好智能可移动设备上级路由的ssid和密码和房间号的验证码,使设备能接入外网,并与服务器连接进入对应房间号。设备加入到聊天室的房间号的具体方法包括如下步骤:(1)用户手机APP接入采用OpenWrt智能路由的智能可移动设备内置wifi;(2)在APP中扫描并填写上级路由ssid,密码,房间号验证码,设备名称等信息;(3)设备通过上级路由连接服务器,生成登入json消息(消息格式见1-1);(4)设备通过websocket协议发送登入json消息;(5)服务器在收到登入json消息后,将设备加入到消息中对应room_id的房间号,对该设备生成一个client_id;(6)服务器返回简单的登入成功json消息给设备;(7)服务器广播设备登入的json消息(消息格式见1-2)给该房间内已有的上位机。若该用户还有其他设备,扫描设备的二维码后,同样将该设备的MAC地址和用户微信的openid进行绑定,并将绑定关系写在服务器的数据库对应表中,表示本设备为该用户的归属设备,但不再建立新的房间号,仍使用第一次产生的房间号验证码作为设备加入的房间号,加入房间号的方式同上。其中,当用户第一次打开本智能可移动设备对应的APP,输入绑定过程中产生的房间号的验证码,并输入本上位机的名称(用户命名,用于识别房间中的不同上位机),这样用户的手机APP也可以作为一个上位机登录到该房间,后续用户打开本APP后就直接进入房间号中。如图4所示,本例用户手机APP上位机加入到聊天室的房间号的方法包括如下步骤:(1)用户手机APP,输入房间号验证码、给上位机命名,组登入json消息,消息格式见2-1;(2)发送登入json消息给服务器;(3)搭建好聊天室功能的服务器收到登入json消息后,将上位机加入到消息中对应room_id的房间号,对该上位机生成一个client_id;(4)服务器返回带有当前房间号中已有设备和上位机的登录成功的json消息给该上位机,消息格式见2-2;(5)服务器向该房间内已有的上位机广播设备登入的json消息,消息格式见2-3。如图5所示,本例适用于多个上位机控制多个智能可移动设备,用户通过上位机(手机APP、微信等)连接服务器进入房间,可以查看到当前在房间中的设备和上位机列表并对设备进行控制,当多个上位机同时对同一个智能可移动设备进行控制时,难免会出现冲突情况,为了应对控制冲突,本例远程控制策略设置如下:一对一控制:用户选择在线设备,点击控制按钮,控制设备移动,移动包括前后左右移动及停止移动,然后上报数据,比如温度传感器可以将温度数据上报,上位机的控制按钮可以实现开关车灯等,根据使用场景可以增减功能。一对多控制:用户选择多个在线设备,切换到一组设备控制界面,用户可以通过设备上的视频画面同时看到控制效果。多对多控制:在同房间中的不同用户选择不同设备,可以对设备分别进行远程控制,但一个设备只能被一个上位机所控制。具体控制过程为:(1)用户打开上位机,进入房间号;(2)通过房间内的设备列表以广播、组播和单播的方式控制设备;其中,广播是控制设备列表中的所有设备,组播是控制设备列表中的多个设备,单播是控制设备列表中的单一设备。防止出现某一个设备被多个上位机同时控制,本例第一次被上位机选中的被控设备将被锁定,不能允许其他上位机控制,在上位机界面上以不能操作的灰度按钮表示,直到解锁,恢复能操作的按钮,才能再次被上位机控制。(3)当用户以广播形式控制所有设备时,上位机以一个界面按钮方式控制;当用户勾选一组设备以组播方式控制一组设备时,上位机以列表方式分别控制设备,同时分别显示设备反馈的视频画面;当用户以单播方式控制一个设备时,上位机以一个界面方式控制该设备,同时显示该设备反馈的视频画面及传感器数据。本例中用到的消息格式定义如下:消息格式1-1:设备登入消息如下表:服务器接收到设备发送的登入json消息后,将设备加入到room_id对应的房间号中,对该设备生成一个client_id,将设备登入消息修改成如下格式:消息格式2-1:服务器广播设备登入消息如下表:字段typesubtyperoom_idclient_nameclient_idtime含义login设备验证码用户给设备的命名登录时间对房间号内已登录的上位机进行广播该消息。上位机界面中就能对该设备进行选定操作。消息格式2-1:上位机登入消息如下表:字段typesubtyperoom_idclient_nametime含义login上位机验证码用户给上位机的命名登录时间服务器接收到上位机发送的登入json消息后,将上位机加入到房间号中,对该上位机生成一个client_id,将设备登入消息修改成如下格式:消息格式2-2:服务器响应上位机登入消息如下表subtypeNum-2client_nameclient_id...设备房间号内的设备数量用户给设备的命名...其中,表格中的...分别表示若num-1或num-2大于1,后面还有的对应的client_name,client_id对应关系。消息格式2-3:服务器广播登入消息如下表:字段typesubtyperoom_idclient_nameclient_idtime含义login上位机验证码用户给上位机的命名登录时间并将该上位机登入消息对房间号内已登录的上位机进行广播。上位机控制指令:上位机远程控制智能可移动设备的指令消息(消息格式3-1)如下表,根据设备功能不同可以增减指令。通过subtype消息子类型来区分不同控制指令,content字段即消息内容,Y表示打开,N表示关闭。若带有其他传感器则可相应增加消息条目。若上位机发出的是温度等传感器和摄像头等控制指令,设备需要回复对应的数据。回复的消息格式(消息格式3-2)如下:消息格式示例:比如,上位机控制设备向前行走的控制指令为:{"type":"say","subtype":"move","room_id":"r@R4$zqc","from_id":"7f00000108ff007","to_id":"7f00000108fd006","time":"2016-10-2008:07:09","content":"forward"}如果上位机要求上报温度指令,则指令消息格式为:{"type":"say","subtype":"temp","room_id":"r@R4$zqc","from_id":"7f00000108ff007","to_id":"7f00000108fd006","time":"2016-10-2008:03:09","content":"Y"}对于前述三种控制方式(广播/组播/单播),上位机下发指令都是以一对一方式下发,即一对多个设备时也是每个设备一条指令消息,这样服务器只需要中转,不需要重新组包。比如设备上报温度格式:{"type":"say","subtype":"temp","room_id":"r@R4$zqc","from_client_id":"7f00000108fd006","to_client_id":"7f00000108ff007","time":"2016-10-2008:03:18","content":"29.30"}设备上报的视频流数据则根据websocket协议的二进制数据传输方式进行。本发明针对基于OpenWrt智能路由的设备,通过采用websocket的聊天室工作机制,将设备和控制端的上位机(包括安卓APP和微信等)加入到服务器创建的聊天室房间,实现基于聊天室的一对一,一对多及多对多的远程控制,适用范围广,便于用户通过设备上报数据及时查看了解设备运行情况,通过摄像头画面远程监控设备周围情况,如亲临现场,具有极强的可视感和操作感,操作简便;通过将不同环境中的设备加入同一房间,能够实现多个场景的远程同时监控,发现问题能及时处理,大大节约人力物力成本。以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1