物联网设备联动控制方法、系统、装置及存储介质
技术领域
本发明涉及分布式存储领域,特别涉及一种物联网设备联动控制方法、系统、装置及计算机可读存储介质。
背景技术
随着互联网和智能终端的发展,为了进一步方便人们的生活体验各种设备均开始联网以便于接受人们的远程控制,物联网这一概念便得到了极大地发扬。
物联网中会动态接入大量的设备,同时需要在不同的设备之间建立联动关系,比如温度低于20度开空调,PM2.5高于指定的值开新风等,现有技术中的建立联动的方法是在设备管理程序中设定指定的比较规则和指定动作(比如地址1的值大于20,那么向地址2发送数据10),这种联动只能适用于简单的数据变换之间的联动,对于复杂的情况,就没办法实现,同时逻辑的基础规则是写死的,动态拓展联动规则就需要修改代码升级程序,实现上和灵活性都不足。
为此,需要一种物联网设备控制方法,能够更为灵活,功能更强大。
发明内容
有鉴于此,本发明的目的在于提供一种物联网设备联动控制方法、系统、装置及计算机可读存储介质,能够更为灵活,功能更强大。其具体方案如下:
一种物联网设备联动控制方法,包括:
利用集中控制程序接收各独立设备上传的状态信息;
利用第一联动管理程序和相应的第一通信映射关系,从所述集中控制程序中获取相应的第一类独立设备上传的第一类状态信息;
利用所述第一联动管理程序调用与所述第一类独立设备的所述第一类状态信息对应的控制程序,生成相应的控制信息;
利用所述第一联动管理程序发送所述控制信息至所述集中控制程序;
利用所述集中控制程序发送所述控制信息至相应的独立设备和其它相应的联动管理程序,以控制各个设备并同步控制信息。
可选的,所述利用第一联动管理程序和相应的通信映射关系,从所述集中控制程序中获取相应的第一类独立设备上传的第一类状态信息的过程,包括:
所述第一联动管理程序利用所述第一通信映射关系加载相应的状态信息获取脚本,利用所述状态信息获取脚本从所述集中控制程序中获取相应的第一类独立设备上传的第一类状态信息。
可选的,所述利用所述第一联动管理程序调用与所述第一类独立设备的所述第一类状态信息对应的控制程序,生成相应的控制信息的过程,包括:
所述第一联动管理程序利用所述第一类独立设备的所述第一类状态信息和预先生成的信息控制映射关系,查找与所述第一类状态信息对应的控制脚本函数;
所述第一联动管理程序运行所述控制脚本函数,根据所述第一类状态信息,生成相应的控制信息。
本发明还公开了一种物联网设备联动控制系统,包括:
状态信息接收模块,用于利用集中控制程序接收各独立设备上传的状态信息;
状态信息获取模块,用于利用第一联动管理程序和相应的第一通信映射关系,从所述集中控制程序中获取相应的第一类独立设备上传的第一类状态信息;
控制信息生成模块,用于利用所述第一联动管理程序调用与所述第一类独立设备的所述第一类状态信息对应的控制程序,生成相应的控制信息;
控制信息发送模块,用于利用所述第一联动管理程序发送所述控制信息至所述集中控制程序;
控制信息同步模块,用于利用所述集中控制程序发送所述控制信息至相应的独立设备和其它相应的联动管理程序,以控制各个设备并同步控制信息。
可选的,所述状态信息获取模块,具体用于所述第一联动管理程序利用所述第一通信映射关系加载相应的状态信息获取脚本,利用所述状态信息获取脚本从所述集中控制程序中获取相应的第一类独立设备上传的第一类状态信息。
可选的,所述控制信息生成模块,包括:
脚本查找单元,用于所述第一联动管理程序利用所述第一类独立设备的所述第一类状态信息和预先生成的信息控制映射关系,查找与所述第一类状态信息对应的控制脚本函数;
脚本运行单元,用于所述第一联动管理程序运行所述控制脚本函数,根据所述第一类状态信息,生成相应的控制信息。
本发明还公开了一种物联网设备联动控制装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如前述的物联网设备联动控制方法。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的物联网设备联动控制方法。
本发明中,物联网设备联动控制方法,包括:利用集中控制程序接收各独立设备上传的状态信息;利用第一联动管理程序和相应的第一通信映射关系,从集中控制程序中获取相应的第一类独立设备上传的第一类状态信息;利用第一联动管理程序调用与第一类独立设备的第一类状态信息对应的控制程序,生成相应的控制信息;利用第一联动管理程序发送控制信息至集中控制程序;利用集中控制程序发送控制信息至相应的独立设备和其它相应的联动管理程序,以控制各个设备并同步控制信息。
本发明利用集中控制程序统一收集各个独立设备的状态信息,实现了对独立设备的统一信息收集,在利用各个预先设计好的联动管理程序获取所需的状态信息,各联动管理程序根据状态信息调用相应的控制程序,实现根据多个独立设备的状态信息,对多个独立设备进行联动控制的效果,同时还能够实现联动控制程序之间的控制共享。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种物联网设备联动控制方法流程示意图;
图2为本发明实施例公开的另一种物联网设备联动控制方法流程示意图;
图3为本发明实施例公开的一种联动管理程序实现流程示意图;
图4为本发明实施例公开的一种物联网设备联动控制逻辑示意图;
图5为本发明实施例公开的一种物联网设备联动控制系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种物联网设备联动控制方法,参见图1所示,该方法包括:
S11:利用集中控制程序接收各独立设备上传的状态信息。
具体的,每个在物联网中的设备,例如,温度计等传感器、空调和洗衣机等响应设备均可以通过相应的设备管理程序将自身的状态信息上传至集中控制程序。
其中,状态信息包括设备的运行状态和输出参数等,例如,温度计检测的温度值,空调的是否在运行、设定的温度和工作模式等信息。
具体的,集中控制程序用于接收指定区域内各个独立设备的状态信息,实现统一管理,以便统一收集各设备的状态信息便于后续程序获取多种设备信息。
S12:利用第一联动管理程序和相应的第一通信映射关系,从集中控制程序中获取相应的第一类独立设备上传的第一类状态信息。
具体的,由于可能存在多种独立设备,部分独立设备之间可能相关性不大不易联合控制,因此,可以同时运行多个联动管理程序,不同联动管理程序可以分别控制不同的多个多种独立设备,从而对一个区域或多个区域内的多个多种是独立设备实现联合控制。
例如,可以利用一个联动管理程序对多个灯进行灯光逻辑控制,利用另一个联动管理程序对多台空调进行联动控制,还可以利用一个联动管理程序对部分灯光和空调进行联动控制。
具体的,每个联动管理程序有着对应的通信映射关系,利用通信映射关系联动管理程序可以获取本次需要联动控制的第一类独立设备上传的第一类状态信息,从而实现对第一类独立设备进行联动控制。其中,第一类独立设备指的是第一联动管理程序要进行联动控制的一个或多个独立设备,第一类状态信息便包括第一类独立设备中各独立设备的状态信息。
可以理解的是,通过设定和修改通信映射关系就可以指定每个联动管理程序索要控制的独立设备,方便用户自定义控制,更加灵活。
S13:利用第一联动管理程序调用与第一类独立设备的第一类状态信息对应的控制程序,生成相应的控制信息。
具体的,在获取到第一类独立设备的第一类状态信息后,便可以调用与之相应的控制程序,通过将第一类状态信息输入至控制程序中,在满足条件下,控制程序将根据第一类状态信息生成相应的控制信息,以便控制第一类独立设备工作。
S14:利用第一联动管理程序发送控制信息至集中控制程序。
具体的,第一联动管理程序中的控制程序生成控制信息后,便可以将控制信息发送至集中控制程序,以便集中控制程序作为中转程序转发控制信息至各个独立设备。
S15:利用集中控制程序发送控制信息至相应的独立设备和其它相应的联动管理程序,以控制各个设备并同步控制信息。
具体的,由于各个联动管理程序之间的控制信息也可以作为触发动作,因此,在集中控制程序接收到控制信息后,还可以将控制信息转发至相应的联动管理程序,以便其它联动管理程序判断是否需要根据控制信息执行相应的联动管理。
具体的,联动管理程序之间可以预先进行关联,因此,集中控制程序可以根据预先建立好的关联将当前第一联动管理程序生成的控制信息转发至相应的其它联动管理程序,以实现联动管理程序之间的互通。
具体的,在实际应用场景中,例如,可以根据pm2.5>100、空调温度>30、客厅灯光打开和窗帘打开4个条件全部满足才触发动作,比如上面4个都满足时,执行动作打开空调、关闭主卧灯光、关闭窗帘和开启新风这4个动作,若第一联动管理程序收到pm2.5的值是200,但是发现温度才20度那么条件就不会触发;上例中,独立设备包括pm传感器、空调、灯具和窗帘控制装置,第一联动管理程序中的第一通信映射关系记载了第一联动管理程序需要获取pm值、空调温度、客厅灯光状态和窗帘状态4种第一类独立设备上传的第一类状态信息,第一联动管理程序通过第一类状态信息判断是否满足pm2.5>100、空调温度>30、客厅灯光打开和窗帘打开4个条件,若满足则调用相应的控制程序,生成执行动作打开空调、关闭主卧灯光、关闭窗帘和开启新风这4个动作的控制信息,通过集中管理程序将控制信息发送至各独立设备,实现联动控制。
其中,上例中控制信息可以包括4个子控制信息分别对应执行动作打开空调、关闭主卧灯光、关闭窗帘和开启新风这4个动作,集中管理程序将4种子控制信息分别对应的发送至相应的设备。
可见,本发明实施例利用集中控制程序统一收集各个独立设备的状态信息,实现了对独立设备的统一信息收集,在利用各个预先设计好的联动管理程序获取所需的状态信息,各联动管理程序根据状态信息调用相应的控制程序,实现根据多个独立设备的状态信息,对多个独立设备进行联动控制的效果,同时还能够实现联动控制程序之间的控制共享。
本发明实施例公开了一种具体的方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
S21:利用集中控制程序接收各独立设备上传的状态信息;
S22:第一联动管理程序利用第一通信映射关系加载相应的状态信息获取脚本,利用状态信息获取脚本从集中控制程序中获取相应的第一类独立设备上传的第一类状态信息。
具体的,根据第一通信映射关系中设计的第一联动管理程序所需控制的独立设备,第一联动管理程序通过脚本函数获取第一通信映射关系中记载的所需获取的第一类独立设备上传的第一类状态信息。
具体的,通过第一通信映射关系设置第一联动管理程序所需控制的独立设备,有助于日后对控制范围的更改。
具体的,参见图3所示,第一通信映射关系具体形式可以为地址映射表,利用相应的逻辑函数建立与能够通过集中控制程序获取独立设备状态信息的串口的地址连接。
S23:第一联动管理程序利用第一类独立设备的第一类状态信息和预先生成的信息控制映射关系,查找与第一类状态信息对应的控制脚本函数。
具体的,跟据第一类状态信息在信息控制映射关系中查找相应的预设的控制脚本函数,以便后续利用控制脚本函数生成相应的控制信息,通过信息控制映射关系,设计针对不同第一类状态信息所对应的控制脚本函数,实现根据独立设备不同状态进行单独控制的效果。
具体的,参见图3所示,第一联动管理程序根据定时器映射表启动相应的逻辑函数,每间隔预设时间启动地址映射表中记载的对应的逻辑函数加载串口映射表即信息控制映射关系中的逻辑函数即控制脚本函数,判断串口是否有数据,是否有相应的串口句柄,如果有则如S24中记载生成相应的控制信息。
S24:第一联动管理程序运行控制脚本函数,根据第一类状态信息,生成相应的控制信息。
S25:利用第一联动管理程序发送控制信息至集中控制程序;
S26:利用集中控制程序发送控制信息至相应的独立设备和其它相应的联动管理程序,以控制各个设备并同步控制信息。
具体的,本发明实施例逻辑框架如图4所示。
具体的,参见图3和图4所示,本发明实施例整体流程包括联动管理程序启动会先加载某些基础函数到脚本中,然后加载脚本,并解析脚本中的地址/定时器/串口映射表,并在内存中建立起地址/定时器id/串口句柄-->到脚本触发函数的映射,然后管理程序会一直监测设备状态的上报,定时器的触发和串口端的数据,如果收到了对应的数据,那么会查找映射表,找到对应的脚本函数,并执行对应的脚本函数。
其中,收到设备数据的时候,会将设备的数据存储到内存中,并提供了查询的函数GETVAL,脚本中可以直接调用GETVAL(addr)获取设备对应地址的数据。
其中,定时器是在管理程序中实现的,创建是脚本中调用c++接口创建的,在触发后,直接根据定时器的id调用对应的脚本函数
其中,对于串口的数据,wiser在接收到后,并拼装成脚本的数组格式,传递进脚本并调用串口数据接收的回调函数。在脚本中可以直接就收到的数据进行业务处理。
具体的,本发明实施例还公开了一种具体的脚本实现方法,如下:
联动脚本的规则如下
其中,WISER_INIT是初始化运行的函数,执行一些初始化操作,可以缺省;ADDTIMER是创建定时器,返回定时器的id UART_OPEN是打开串口返回的是句柄。
其中,gTimerFunc gUartFunc gFunc是3个固定的变量,用于实现映射,例如:
gTimerFunc[timerid]=function1--将timerid对应的定时器的触发函数指定为function1
gUartFunc[fd]=function2--将打开的句柄是fd的串口的接收数据处理函数指定为function2
gFunc[addr1:addr2:addr3]=function3--将设备地址addr1addr2 addr3的触发函数指定为function3(收到addr1 addr2 addr3的数据都会触发function3)
具体的,上面展示的是一个最简单的脚本的编写规则,wiser端提供了一些脚本接口函数,具体如下:
SLEEP(seconds) 延时秒
MSLEEP(mseconds) 延时毫秒
READ(addr) 去设备读取地址addr的值
READGROUP({addr}) 去设备读取批量地址addrs的值
SEND(addr,type,val) 设置设备地址addr的值
SENDGROUP({addr,type,val}) 设置设备多个地址addrs的值
PUSH(msg) 向手机推送消息msg
UART_OPEN(dev,buadrate,databits,parity,stopbit) 打开串口
UART_CLOSE(fd) 关闭串口
UART_SCLOSE(dev) 关闭串口
UART_SEND_STRING(handle,str) uart发送字符串
UART_SEND_BYTES(handle,{data})uart 发送数据
GETTYPE(addr) 获取地址的类型
ADDDATETIMER(week,hour,min,sec) 增加周时分秒的定时器
ADDTIMER(msec) 增加毫秒的定时器
DELTIMER(timerid) 删除定时器
ADDR2INT(addr) "1/1/1"类的地址转为int
MODBUS_RTU_OPEN(dev,baudrate,databits,parity,stopbits) 打开串口的modbus
MODBUS_TCP_OPEN(ip,port) 打开tcp的modbus
MODBUS_CLOSE(handle) 关闭modbus
MODBUS_READ_BITS(handle,slave,addr,count,{data}) 读取多个bits
MODBUS_READ_INPUT_BITS(handle,slave,addr,count,{addr:data}) 读取多个连续的bits
MODBUS_READ_REGISTERS(handle,slave,addr,count,data)modbus 读取多个地址的值
MODBUS_READ_INPUT_REGISTERS(handle,slave,addr,count,{addr:data})modbus 读取多个寄存器的多个连续值
MODBUS_WRITE_BIT(handle,slave,addr,data) modbus写入单个bit
MODBUS_WRITE_BITS(handle,slave,addr,{data}) modbus写入多个bit值
MODBUS_WRITE_REGISTER(handle,slave,addr,data) modbus写入单个寄存器值
MODBUS_WRITE_REGISTERS(handle,slave,addr,{data}) modbus写入多个寄存器值
GETVAL(addr) 获取设备地址的值
CHECK_TIME({weeks},firtime,sectime) 校验时间
相应的,本发明实施例还公开了一种物联网设备联动控制系统,参见图5所示,该系统包括:
状态信息接收模块11,用于利用集中控制程序接收各独立设备上传的状态信息;
状态信息获取模块12,用于利用第一联动管理程序和相应的第一通信映射关系,从集中控制程序中获取相应的第一类独立设备上传的第一类状态信息;
控制信息生成模块13,用于利用第一联动管理程序调用与第一类独立设备的第一类状态信息对应的控制程序,生成相应的控制信息;
控制信息发送模块14,用于利用第一联动管理程序发送控制信息至集中控制程序;
控制信息同步模块15,用于利用集中控制程序发送控制信息至相应的独立设备和其它相应的联动管理程序,以控制各个设备并同步控制信息。
可见,本发明实施例利用集中控制程序统一收集各个独立设备的状态信息,实现了对独立设备的统一信息收集,在利用各个预先设计好的联动管理程序获取所需的状态信息,各联动管理程序根据状态信息调用相应的控制程序,实现根据多个独立设备的状态信息,对多个独立设备进行联动控制的效果,同时还能够实现联动控制程序之间的控制共享。
具体的,上述状态信息获取模块12,具体用于第一联动管理程序利用第一通信映射关系加载相应的状态信息获取脚本,利用状态信息获取脚本从集中控制程序中获取相应的第一类独立设备上传的第一类状态信息。
具体的,上述控制信息生成模块13,包括:
脚本查找单元,用于第一联动管理程序利用第一类独立设备的第一类状态信息和预先生成的信息控制映射关系,查找与第一类状态信息对应的控制脚本函数;
脚本运行单元,用于第一联动管理程序运行控制脚本函数,根据第一类状态信息,生成相应的控制信息。
此外,本发明实施例还公开了一种物联网设备联动控制装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如前述的物联网设备联动控制方法。
另外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的物联网设备联动控制方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。