一种基于物联网的智能灌溉系统实现方法与流程

文档序号:22167388发布日期:2020-09-11 20:42阅读:381来源:国知局
一种基于物联网的智能灌溉系统实现方法与流程

本发明涉及一种智能灌溉系统,尤其涉及的是一种基于物联网的智能灌溉系统实现方法。



背景技术:

物联网具有结构紧凑、易于布置、易于维护、价格便宜、测量精度高等优点,非常适合环境监测。近年来,国内外研究人员对基于物联网的环境监测系统进行了相关研究,并取得了一定的研究成果。但是目前基于物联网的环境监测系统具有一点过的局限性,例如采用广播方式实现数据监测,因此代价较大。因此,如何降低基于物联网的环境监测延迟和代价成为近年来研究的热点问题。



技术实现要素:

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于物联网的智能灌溉系统实现方法。

技术方案:本发明公开了一种基于物联网的智能灌溉系统实现方法,所述系统包括控制器、传感节点和监测节点,控制器分为全局控制器和局部控制器;所述系统只有一个全局控制器;

一个控制器配置y个接口,y为大于1的整数,y的取值范围为10-50;每个接口使用不同的通信协议进行通信,不同的通信协议使用不同的频段,该通信协议称为该接口的接口id,接口id为p的接口简写为接口p;

每个传感节点配置一个接口,该接口使用的通信协议等于控制器配置的y个接口中的某一个接口使用的通信协议;

每个监测节点配置一个接口,该接口使用的通信协议等于控制器配置的y个接口中的某一个接口使用的通信协议;

全局控制器的每个接口链接一个监测节点或者一个局部控制器;

局部控制器的每个接口链接一个控制器或者一个传感节点;

一个传感节点的接口链接另外一个传感节点或者局部控制器;

一个监测节点的接口链接全局控制器;

局部控制器具有两个传输半径r1和r2,传输半径r2用于控制器之间的通信,传输半径r1用于与传感节点的通信,传输半径r2大于传输半径r1;

传感节点的传输半径为r1;

监测节点或者全局控制器的传输半径为r2;

每个传感节点具有唯一的坐标,该坐标称为该传感节点的传感id;

每个局部控制器具有唯一的坐标,该坐标称为该局部控制器的局部id;

全局控制器具有唯一的坐标,该坐标称为该全局控制器的全局id;

系统为y个接口中的每个接口的接口id配置一个密钥;

传感节点配置自己接口的接口id的密钥,并用该密钥和预先设置的对称加密算法加密自己的传感id获取加密传感id;对称加密算法可以是高级加密标准算法aes;

用户节点配置自己接口的接口id的密钥;

局部控制器具有自己每个接口的接口id的密钥,并保存一个通信表,一个通信表项包含接口id、密钥和加密局部id,针对自己的每个接口,该局部控制器用该接口的接口id的密钥加密自己的局部id获取加密局部id,创建一个通信表项,该通信表项的接口id等于该接口的接口id,密钥等于该接口的接口id的密钥,加密局部id等于获取的加密局部id;

全局控制器具有自己每个接口的接口id的密钥,并保存一个通信表,一个通信表项包含接口id,密钥和加密全局id,针对自己的每个接口,该全局控制器用该接口的接口id的密钥加密自己的全局id获取加密全局id,创建一个通信表项,该通信表项的接口id等于该接口的接口id,密钥等于该接口的接口id的密钥,加密全局id等于获取的加密全局id;

每个传感节点保存一个局部表,该局部表只包含一个局部表项,一个局部表项包含加密局部id、局部id、加密传感id和生命周期;

一个消息由消息id定义;所述系统定义了局部消息、全局消息、注册消息、请求消息和响应消息,消息id分别为1、2、3、4和5;

局部消息包含消息id、加密局部id和加密传感id;

每个局部控制器lc1定期执行下述操作:

步骤101:开始;

步骤102:局部控制器lc1设置一个接口id集合参数sp1,参数sp1的值等于局部控制器lc1的所有通信表项的接口id的并集;

步骤103:局部控制器lc1从参数sp1中选择第一个元素e0,选择一个通信表项,该通信表项的接口id等于元素e0,用通信半径r1从元素e0定义的接口发送一个局部消息,该消息的消息id为1,加密局部id等于该通信表项的加密局部id,加密传感id等于空;

步骤104:局部控制器lc1从参数sp1中删除第一个元素e0,判断参数sp1是否为空集,如果是,则执行步骤105,否则执行步骤103;

步骤105:接收到该局部消息的传感节点用自己的密钥解密该局部消息中的加密局部id获取局部idlid0,该传感节点判断自己的局部表是否为空表,如果是,则执行步骤106,否则执行步骤107;

步骤106:接收到该局部消息的传感节点创建一个局部表项,该局部表项的加密局部id等于该局部消息中的加密局部id,局部id等获取的局部idlid0,加密传感id等于该局部消息中的加密传感id,生命周期等于最大生命周期,最大生命周期取值范围500ms-1s执行步骤112;

步骤107:接收到该局部消息的传感节点判断自己坐标与局部idlid0之间的距离是否大于自己坐标与局部表项中的局部id之间的距离,如果大于,则执行步骤113,否则执行步骤108;

步骤108:接收到该局部消息的传感节点判断自己坐标与局部idlid0之间的距离是否小于自己坐标与局部表项中的局部id之间的距离,如果小于,则执行步骤109,否则执行步骤110;

步骤109:接收到该局部消息的传感节点清空局部表,创建一个局部表项,该局部表项的加密局部id等于该局部消息中的加密局部id,局部id等获取的局部idlid0,加密传感id等于该局部消息中的加密传感id,生命周期等于最大生命周期,执行步骤112;

步骤110:接收到该局部消息的传感节点判断局部表项的生命周期是否大于阈值th0,阈值th0的取值范围等于最大生命周期的95%-99%,如果大于,则执行步骤113,否则执行步骤111;

步骤111:接收到该局部消息的传感节点将局部表项的加密传感id设置为该局部消息中的加密传感id,将生命周期设置为最大生命周期;

步骤112:接收到该局部消息的传感节点将该局部消息中的加密传感节点设置为自己的加密传感节点,发送该局部消息,执行步骤105;

步骤113:结束。

局部节点通过上述过程发送局部消息从而在距离自己最近的传感节点建立局部表进而建立自己到达每个传感节点的最优路由路径。上述过程通过生命周期确保局部表的有效性,从而确保了路由路径的有效性,进而提高了数据通信的高效性和有效性。

本发明所述方法中,每个局部控制器保存一个全局表,一个全局表项包含接口id、加密全局id、加密局部id和生命周期;每个局部控制器配置全局控制器的全局id;全局消息包含消息id、加密全局id和加密局部id;全局控制器gc1定期执行下述操作:

步骤201:开始;

步骤202:全局控制器gc1设置一个接口id集合变量sp2,变量sp2的值等于全局控制器gc1所有通信表项的接口id的并集;

步骤203:全局控制器gc1从变量sp2中选取第一个元素,选择一个通信表项,该通信表项的接口id等于该元素,从该通信表项的接口id所标识的接口发送一个全局消息,该全局消息的消息id等于2,加密全局id等于该通信表项的加密全局id,加密局部id等于空;

步骤204:全局控制器gc1从变量sp2中删除第一个元素,判断变量sp2是否为空集,如果是,则执行步骤205,否则执行步骤203;

步骤205:如果传感节点或者监测节点接收到该全局消息,则执行步骤212,否则执行步骤206;

步骤206:从接口f0接收到该全局消息的局部控制器选择一个通信表项,该通信表项的接口id等于f0,用该通信表项的密钥加密全局控制器的全局id获取加密全局id,判断获取的加密全局id是否等于该全局消息中的加密全局id,如果等于,则执行步骤207,否则执行步骤212;

步骤207:从接口f0接收到该全局消息的局部控制器判断是否存在一个全局表项,该全局表项的接口id等于f0且生命周期大于阈值th0,如果存在,则执行步骤212,否则执行步骤208;

步骤208:从接口f0接收到该全局消息的局部控制器判断是否存在一个全局表项,该全局表项的接口id等于f0,如果存在,则执行步骤209,否则执行步骤210;

步骤209:从接口f0接收到该全局消息的局部控制器选择一个全局表项,该全局表项的接口id等于f0,将该全局表项的加密局部id设置为该全局消息中的加密局部id,将生命周期设置为最大值,执行步骤211;

步骤210:从接口f0接收到该全局消息的局部控制器创建一个全局表项,该全局表项的接口id等于f0,将该全局表项的加密全局id和加密局部id分别设置为该全局消息中的加密全局id和加密局部id,将生命周期设置为最大值;

步骤211:从接口f0接收到该全局消息的局部控制器选择一个通信表项,该通信表项的接口id等于f0,将该全局消息的加密局部id设置为该通信表项的加密局部id,从接口f0转发给全局消息,执行步骤205;

步骤212:结束。

全局控制器通过上述过程发送全局消息从而在每个局部控制器建立全局表进而建立自己到达每个局部控制器的最优路由路径。上述过程通过生命周期确保全局表的有效性,从而确保了路由路径的有效性,进而提高了数据通信的高效性和有效性。

本发明所述方法中,每个局部控制器用于控制水的电控阀门的开关实施灌溉;

全局控制器保存一个传感表,一个传感表项包含接口id、加密传感id和加密数据;

注册消息包含消息id、加密局部id、源加密传感id、目的加密传感id和加密数据;

传感节点sn1采集数据后,执行下述操作:

步骤301:开始;

步骤302:传感节点sn1用自己的密钥加密数据获取加密数据,发送一个注册消息,该注册消息的消息id为3,加密局部id为空,源加密传感id等于自己的加密传感id,目的加密传感id等于自己局部表项中的加密传感id,加密数据等于获取的加密数据;

步骤303:如果局部控制器从接口x0接收到该注册消息,则执行步骤306,否则执行步骤304;

步骤304:接收到该注册消息的传感节点判断自己的加密传感id是否等于该注册消息中的目的加密传感id,如果等于,则执行步骤305,否则执行步骤317;

步骤305:接收到该注册消息的传感节点将该注册消息中的目的加密传感id设置为自己局部表项的加密传感id,转发该注册消息,执行步骤303;

步骤306:从接口x0接收到该注册消息的局部控制器选择一个通信表项,该通信表项的接口id等于x0,用该通信表项的密钥解密该注册消息中的加密数据获取数据da0,如果数据da0小于预先设定的阈值,例如数据da0为湿度,阈值取值范围为5%到30%,则执行步骤307,否则执行步骤308;

步骤307:从接口x0接收到该注册消息的局部控制器打开水的电控阀门的开关,设置一个时钟tm1,时钟tm1的值为预先设置值,时钟tm1过期后,即衰减为0后,该局部控制器关闭水的电控阀门的开关;

步骤308:从接口x0接收到该注册消息的局部控制器将该注册消息的目的加密传感id设置为空,选择一个全局表项,该全局表项的接口id等于x0,将该注册消息的加密局部id设置为该全局表项的加密局部id,用半径r2从接口x0发送该注册消息;

步骤309:如果全局控制器从接口x1接收到该注册消息,则执行步骤314,否则执行步骤310;

步骤310:如果传感节点接收到该注册消息,则执行步骤304,否则执行步骤311;

步骤311:如果监测节点接收到该注册消息,则执行步骤317,否则执行步骤312;

步骤312:从接口x2接收到注册消息的局部控制器选择一个通信表项,该通信表项的接口id等于x2,判断该通信表项的加密局部id是否等于该注册消息中的加密局部id,如果等于,则执行步骤313,否则执行步骤317;

步骤313:从接口x2接收到注册消息的局部控制器选择一个全局表项,该全局表项的接口id等于x2,将该注册消息的加密局部id设置为该全局表项的加密局部id,用半径r2从接口x2发送该注册消息,执行步骤309;

步骤314:从接口x1接收到该注册消息的全局控制器判断是否存在一个传感表项,该传感表项的接口id等于x1且加密传感id等于该注册消息的源加密传感id,如果存在,则执行步骤315,否则执行步骤316;

步骤315:从接口x1接收到该注册消息的全局控制器选择一个传感表项,该传感表项的接口id等于x1且加密传感id等于该注册消息的源加密传感id,将该传感表项的加密数据设置为该注册消息的加密数据,执行步骤317;

步骤316:从接口x1接收到该注册消息的全局控制器创建一个传感表项,该传感表项的接口id等于x1,加密传感id等于该注册消息的源加密传感id,将该传感表项的加密数据设置为该注册消息的加密数据;

步骤317:结束。

传感节点通过上述过程发送注册消息在全局控制器建立传感表以便监测节点能够获取数据,同时局部控制器根据传感数据实施灌溉。由此实现防止干旱,由于上述过程中数据通过加密形式进行传输,因此实现了数据通信的安全性和高效性。

本发明所述方法中,请求消息包含消息id;响应消息包含消息id和传感表;监测节点u1通过下述过程获取数据:

步骤401:开始;

步骤402:监测节点u1发送一个请求消息,该请求消息的消息id为4;

步骤403:从接口y0接收到该请求消息的全局控制器设置两个传感表变量tp1和tp2,变量tp1的值为空表,变量tp2的值等于全局控制器的传感表,选择一个通信表项ie0,通信表项ie0的接口id等于y0;

步骤404:从接口y0接收到该请求消息的全局控制器从变量tp2中选择第一个传感表项,选择一个通信表项ie1,通信表项ie1的接口id等于选中的传感表项的接口id,用通信表项ie1的密钥解密该传感表项中的加密传感id和加密数据获取传感id和数据,用通信表项ie0的密钥分别加密该传感id和数据获取加密传感ides0和加密数据ed0,将选中的传感表项的加密传感id和加密数据分别设置为加密传感ides0和加密数据ed0,将选中的传感表项加入到变量tp1中,从变量tp2中删除选中的传感表项;

步骤405:从接口y0接收到该请求消息的全局控制器判断变量tp2是否为空表,如果是,则执行步骤406,否则执行步骤404;

步骤406:全局控制器从接口y0发送一个响应消息,该响应消息的消息id为5,传感表等于变量tp1的值;

步骤407:如果局部控制器接收到该响应消息,则执行步骤410,否则执行步骤408;

步骤408:接收到该响应消息的监测节点从该响应消息的传感表中选择第一个传感表项,用自己的密钥分别解密该传感表项的加密传感id和加密数据获取并保存传感id和数据,从该响应消息的传感表中删除选中的传感表项;

步骤409:接收到该响应消息的监测节点判断该响应消息的传感表是否为空表,如果是,则执行步骤410,否则执行步骤408:

步骤410:结束。

监控节点通过上述过程发送请求消息从而从全局控制器获取数据,由于上述过程通过加密数据进行通信,从而确保的数据通信的安全性,同时上述过程通过一次数据通信可以监测所有的数据,从而实现了数据通信的高效性。

有益效果:本发明提供了一种基于物联网的智能灌溉系统实现方法,在所述系统中,用户节点通过单播可以快速获取数据从而实现对环境的实时监控并进行及时灌溉,降低了灌溉成本,提高了灌溉性能。本发明可应用于农作物灌溉和树木灌溉等领域,具有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本发明所述的局部表创建流程示意图。

图2为本发明所述的全局表创建流程示意图。

图3为本发明所述的注册流程示意图。

图4为本发明所述的数据通信流程示意图。

具体实施方式:

本发明提供了一种基于物联网的智能灌溉系统实现方法,在所述系统中,用户节点通过单播可以快速获取数据从而实现对环境的实时监控并进行及时灌溉,降低了灌溉成本,提高了灌溉性能。本发明可应用于农作物灌溉和树木灌溉等领域,具有广泛的应用前景。

图1为本发明所述的局部表创建流程示意图。所述系统包括控制器、传感节点和监测节点,控制器分为全局控制器和局部控制器;所述系统只有一个全局控制器;

一个控制器配置y个接口,y为大于1的整数,y的取值范围为10-50;每个接口使用不同的通信协议进行通信,不同的通信协议使用不同的频段,该通信协议称为该接口的接口id,接口id为p的接口简写为接口p;

每个传感节点配置一个接口,该接口使用的通信协议等于控制器配置的y个接口中的某一个接口使用的通信协议;

每个监测节点配置一个接口,该接口使用的通信协议等于控制器配置的y个接口中的某一个接口使用的通信协议;

全局控制器的每个接口链接一个监测节点或者一个局部控制器;

局部控制器的每个接口链接一个控制器或者一个传感节点;

一个传感节点的接口链接另外一个传感节点或者局部控制器;

一个监测节点的接口链接全局控制器;

局部控制器具有两个传输半径r1和r2,传输半径r2用于控制器之间的通信,传输半径r1用于与传感节点的通信,传输半径r2大于传输半径r1;

传感节点的传输半径为r1;

监测节点或者全局控制器的传输半径为r2;

每个传感节点具有唯一的坐标,该坐标称为该传感节点的传感id;

每个局部控制器具有唯一的坐标,该坐标称为该局部控制器的局部id;

全局控制器具有唯一的坐标,该坐标称为该全局控制器的全局id;

系统为y个接口中的每个接口的接口id配置一个密钥;

传感节点配置自己接口的接口id的密钥,并用该密钥和预先设置的对称加密算法加密自己的传感id获取加密传感id;对称加密算法可以是高级加密标准算法aes;

用户节点配置自己接口的接口id的密钥;

局部控制器具有自己每个接口的接口id的密钥,并保存一个通信表,一个通信表项包含接口id、密钥和加密局部id,针对自己的每个接口,该局部控制器用该接口的接口id的密钥加密自己的局部id获取加密局部id,创建一个通信表项,该通信表项的接口id等于该接口的接口id,密钥等于该接口的接口id的密钥,加密局部id等于获取的加密局部id;

全局控制器具有自己每个接口的接口id的密钥,并保存一个通信表,一个通信表项包含接口id,密钥和加密全局id,针对自己的每个接口,该全局控制器用该接口的接口id的密钥加密自己的全局id获取加密全局id,创建一个通信表项,该通信表项的接口id等于该接口的接口id,密钥等于该接口的接口id的密钥,加密全局id等于获取的加密全局id;

每个传感节点保存一个局部表,该局部表只包含一个局部表项,一个局部表项包含加密局部id、局部id、加密传感id和生命周期;

一个消息由消息id定义;所述系统定义了局部消息、全局消息、注册消息、请求消息和响应消息,消息id分别为1、2、3、4和5;

局部消息包含消息id、加密局部id和加密传感id;

每个局部控制器lc1定期执行下述操作:

步骤101:开始;

步骤102:局部控制器lc1设置一个接口id集合参数sp1,参数sp1的值等于局部控制器lc1的所有通信表项的接口id的并集;

步骤103:局部控制器lc1从参数sp1中选择第一个元素e0,选择一个通信表项,该通信表项的接口id等于元素e0,用通信半径r1从元素e0定义的接口发送一个局部消息,该消息的消息id为1,加密局部id等于该通信表项的加密局部id,加密传感id等于空;

步骤104:局部控制器lc1从参数sp1中删除第一个元素e0,判断参数sp1是否为空集,如果是,则执行步骤105,否则执行步骤103;

步骤105:接收到该局部消息的传感节点用自己的密钥解密该局部消息中的加密局部id获取局部idlid0,该传感节点判断自己的局部表是否为空表,如果是,则执行步骤106,否则执行步骤107;

步骤106:接收到该局部消息的传感节点创建一个局部表项,该局部表项的加密局部id等于该局部消息中的加密局部id,局部id等获取的局部idlid0,加密传感id等于该局部消息中的加密传感id,生命周期等于最大生命周期,最大生命周期取值范围500ms-1s执行步骤112;

步骤107:接收到该局部消息的传感节点判断自己坐标与局部idlid0之间的距离是否大于自己坐标与局部表项中的局部id之间的距离,如果大于,则执行步骤113,否则执行步骤108;

步骤108:接收到该局部消息的传感节点判断自己坐标与局部idlid0之间的距离是否小于自己坐标与局部表项中的局部id之间的距离,如果小于,则执行步骤109,否则执行步骤110;

步骤109:接收到该局部消息的传感节点清空局部表,创建一个局部表项,该局部表项的加密局部id等于该局部消息中的加密局部id,局部id等获取的局部idlid0,加密传感id等于该局部消息中的加密传感id,生命周期等于最大生命周期,执行步骤112;

步骤110:接收到该局部消息的传感节点判断局部表项的生命周期是否大于阈值th0,阈值th0的取值范围等于最大生命周期的95%-99%,如果大于,则执行步骤113,否则执行步骤111;

步骤111:接收到该局部消息的传感节点将局部表项的加密传感id设置为该局部消息中的加密传感id,将生命周期设置为最大生命周期;

步骤112:接收到该局部消息的传感节点将该局部消息中的加密传感节点设置为自己的加密传感节点,发送该局部消息,执行步骤105;

步骤113:结束。

局部节点通过上述过程发送局部消息从而在距离自己最近的传感节点建立局部表进而建立自己到达每个传感节点的最优路由路径。上述过程通过生命周期确保局部表的有效性,从而确保了路由路径的有效性,进而提高了数据通信的高效性和有效性。

图2为本发明所述的全局表创建流程示意图。每个局部控制器保存一个全局表,一个全局表项包含接口id、加密全局id、加密局部id和生命周期;每个局部控制器配置全局控制器的全局id;全局消息包含消息id、加密全局id和加密局部id;全局控制器gc1定期执行下述操作:

步骤201:开始;

步骤202:全局控制器gc1设置一个接口id集合变量sp2,变量sp2的值等于全局控制器gc1所有通信表项的接口id的并集;

步骤203:全局控制器gc1从变量sp2中选取第一个元素,选择一个通信表项,该通信表项的接口id等于该元素,从该通信表项的接口id所标识的接口发送一个全局消息,该全局消息的消息id等于2,加密全局id等于该通信表项的加密全局id,加密局部id等于空;

步骤204:全局控制器gc1从变量sp2中删除第一个元素,判断变量sp2是否为空集,如果是,则执行步骤205,否则执行步骤203;

步骤205:如果传感节点或者监测节点接收到该全局消息,则执行步骤212,否则执行步骤206;

步骤206:从接口f0接收到该全局消息的局部控制器选择一个通信表项,该通信表项的接口id等于f0,用该通信表项的密钥加密全局控制器的全局id获取加密全局id,判断获取的加密全局id是否等于该全局消息中的加密全局id,如果等于,则执行步骤207,否则执行步骤212;

步骤207:从接口f0接收到该全局消息的局部控制器判断是否存在一个全局表项,该全局表项的接口id等于f0且生命周期大于阈值th0,如果存在,则执行步骤212,否则执行步骤208;

步骤208:从接口f0接收到该全局消息的局部控制器判断是否存在一个全局表项,该全局表项的接口id等于f0,如果存在,则执行步骤209,否则执行步骤210;

步骤209:从接口f0接收到该全局消息的局部控制器选择一个全局表项,该全局表项的接口id等于f0,将该全局表项的加密局部id设置为该全局消息中的加密局部id,将生命周期设置为最大值,执行步骤211;

步骤210:从接口f0接收到该全局消息的局部控制器创建一个全局表项,该全局表项的接口id等于f0,将该全局表项的加密全局id和加密局部id分别设置为该全局消息中的加密全局id和加密局部id,将生命周期设置为最大值;

步骤211:从接口f0接收到该全局消息的局部控制器选择一个通信表项,该通信表项的接口id等于f0,将该全局消息的加密局部id设置为该通信表项的加密局部id,从接口f0转发给全局消息,执行步骤205;

步骤212:结束。

全局控制器通过上述过程发送全局消息从而在每个局部控制器建立全局表进而建立自己到达每个局部控制器的最优路由路径。上述过程通过生命周期确保全局表的有效性,从而确保了路由路径的有效性,进而提高了数据通信的高效性和有效性。

图3为本发明所述的注册流程示意图。每个局部控制器用于控制水的电控阀门的开关实施灌溉;

全局控制器保存一个传感表,一个传感表项包含接口id、加密传感id和加密数据;

注册消息包含消息id、加密局部id、源加密传感id、目的加密传感id和加密数据;

传感节点sn1采集数据后,执行下述操作:

步骤301:开始;

步骤302:传感节点sn1用自己的密钥加密数据获取加密数据,发送一个注册消息,该注册消息的消息id为3,加密局部id为空,源加密传感id等于自己的加密传感id,目的加密传感id等于自己局部表项中的加密传感id,加密数据等于获取的加密数据;

步骤303:如果局部控制器从接口x0接收到该注册消息,则执行步骤306,否则执行步骤304;

步骤304:接收到该注册消息的传感节点判断自己的加密传感id是否等于该注册消息中的目的加密传感id,如果等于,则执行步骤305,否则执行步骤317;

步骤305:接收到该注册消息的传感节点将该注册消息中的目的加密传感id设置为自己局部表项的加密传感id,转发该注册消息,执行步骤303;

步骤306:从接口x0接收到该注册消息的局部控制器选择一个通信表项,该通信表项的接口id等于x0,用该通信表项的密钥解密该注册消息中的加密数据获取数据da0,如果数据da0小于预先设定的阈值,例如数据da0为湿度,阈值取值范围为5%到30%,则执行步骤307,否则执行步骤308;

步骤307:从接口x0接收到该注册消息的局部控制器打开水的电控阀门的开关,设置一个时钟tm1,时钟tm1的值为预先设置值,时钟tm1过期后,即衰减为0后,该局部控制器关闭水的电控阀门的开关;

步骤308:从接口x0接收到该注册消息的局部控制器将该注册消息的目的加密传感id设置为空,选择一个全局表项,该全局表项的接口id等于x0,将该注册消息的加密局部id设置为该全局表项的加密局部id,用半径r2从接口x0发送该注册消息;

步骤309:如果全局控制器从接口x1接收到该注册消息,则执行步骤314,否则执行步骤310;

步骤310:如果传感节点接收到该注册消息,则执行步骤304,否则执行步骤311;

步骤311:如果监测节点接收到该注册消息,则执行步骤317,否则执行步骤312;

步骤312:从接口x2接收到注册消息的局部控制器选择一个通信表项,该通信表项的接口id等于x2,判断该通信表项的加密局部id是否等于该注册消息中的加密局部id,如果等于,则执行步骤313,否则执行步骤317;

步骤313:从接口x2接收到注册消息的局部控制器选择一个全局表项,该全局表项的接口id等于x2,将该注册消息的加密局部id设置为该全局表项的加密局部id,用半径r2从接口x2发送该注册消息,执行步骤309;

步骤314:从接口x1接收到该注册消息的全局控制器判断是否存在一个传感表项,该传感表项的接口id等于x1且加密传感id等于该注册消息的源加密传感id,如果存在,则执行步骤315,否则执行步骤316;

步骤315:从接口x1接收到该注册消息的全局控制器选择一个传感表项,该传感表项的接口id等于x1且加密传感id等于该注册消息的源加密传感id,将该传感表项的加密数据设置为该注册消息的加密数据,执行步骤317;

步骤316:从接口x1接收到该注册消息的全局控制器创建一个传感表项,该传感表项的接口id等于x1,加密传感id等于该注册消息的源加密传感id,将该传感表项的加密数据设置为该注册消息的加密数据;

步骤317:结束。

传感节点通过上述过程发送注册消息在全局控制器建立传感表以便监测节点能够获取数据,同时局部控制器根据传感数据实施灌溉。由此实现防止干旱,由于上述过程中数据通过加密形式进行传输,因此实现了数据通信的安全性和高效性。

图4为本发明所述的数据通信流程示意图。请求消息包含消息id;响应消息包含消息id和传感表;监测节点u1通过下述过程获取数据:

步骤401:开始;

步骤402:监测节点u1发送一个请求消息,该请求消息的消息id为4;

步骤403:从接口y0接收到该请求消息的全局控制器设置两个传感表变量tp1和tp2,变量tp1的值为空表,变量tp2的值等于全局控制器的传感表,选择一个通信表项ie0,通信表项ie0的接口id等于y0;

步骤404:从接口y0接收到该请求消息的全局控制器从变量tp2中选择第一个传感表项,选择一个通信表项ie1,通信表项ie1的接口id等于选中的传感表项的接口id,用通信表项ie1的密钥解密该传感表项中的加密传感id和加密数据获取传感id和数据,用通信表项ie0的密钥分别加密该传感id和数据获取加密传感ides0和加密数据ed0,将选中的传感表项的加密传感id和加密数据分别设置为加密传感ides0和加密数据ed0,将选中的传感表项加入到变量tp1中,从变量tp2中删除选中的传感表项;

步骤405:从接口y0接收到该请求消息的全局控制器判断变量tp2是否为空表,如果是,则执行步骤406,否则执行步骤404;

步骤406:全局控制器从接口y0发送一个响应消息,该响应消息的消息id为5,传感表等于变量tp1的值;

步骤407:如果局部控制器接收到该响应消息,则执行步骤410,否则执行步骤408;

步骤408:接收到该响应消息的监测节点从该响应消息的传感表中选择第一个传感表项,用自己的密钥分别解密该传感表项的加密传感id和加密数据获取并保存传感id和数据,从该响应消息的传感表中删除选中的传感表项;

步骤409:接收到该响应消息的监测节点判断该响应消息的传感表是否为空表,如果是,则执行步骤410,否则执行步骤408:

步骤410:结束。

监控节点通过上述过程发送请求消息从而从全局控制器获取数据,由于上述过程通过加密数据进行通信,从而确保的数据通信的安全性,同时上述过程通过一次数据通信可以监测所有的数据,从而实现了数据通信的高效性。

实施例1

基于表1的仿真参数,本实施例模拟了本发明中的一种基于物联网的智能灌溉系统实现方法。局部控制器lc1启动后,定期执行步骤101-113发送局部消息,如果传感节点距离局部控制器lc1距离最近,则根据接收到的局部消息创建局部表项,该局部表项的加密局部id等于该局部消息中的加密局部id,局部id等获取的局部id,加密传感id等于该局部消息中的加密传感id,生命周期等于最大生命周期。例如,加密局部id为xy87uyea、局部id为a5ef23b9、加密传感id为abd93mn9,生命周期为500ms。局部节点通过上述过程发送局部消息从而在距离自己最近的传感节点建立局部表进而建立自己到达每个传感节点的最优路由路径。上述过程通过生命周期确保局部表的有效性,从而确保了路由路径的有效性,进而提高了数据通信的高效性和有效性。全局控制器gc1启动后,定期执行步骤201-212发送全局消息,从接口f0接收到该全局消息的局部控制器创建一个全局表项,该全局表项的接口id等于f0,该全局表项的加密全局id和加密局部id分别设置为该全局消息中的加密全局id和加密局部id,将生命周期设置为最大值,例如该全局表项的接口id等于ieee802.11,该全局表项的加密全局id和加密局部id分别等于uvn8m30x和xz09uyea。全局控制器通过上述过程发送全局消息从而在每个局部控制器建立全局表进而建立自己到达每个局部控制器的最优路由路径。上述过程通过生命周期确保全局表的有效性,从而确保了路由路径的有效性,进而提高了数据通信的高效性和有效性。传感节点sn1采集数据后定期执行步骤301-317发送注册消息,局部控制器接收到注册消息后,根据注册消息中采集的数据实施浇灌,从接口x1接收到该注册消息的全局控制器创建一个传感表项,该传感表项的接口id等于x1,加密传感id等于该注册消息的源加密传感id,该传感表项的加密数据设置为该注册消息的加密数据。例如传感表项的接口为ieee802.15.4,加密传感id等于e3a7fg98,加密数据为采集到的湿度的加密值。传感节点通过上述过程发送注册消息在全局控制器建立传感表以便监测节点能够获取数据,同时局部控制器根据传感数据实施灌溉。由此实现防止干旱,由于上述过程中数据通过加密形式进行传输,因此实现了数据通信的安全性和高效性。监测节点u1通过步骤401-410向全局控制器发送请求消息,全局控制器接收到请求消息后发送响应消息,这样监测节点u1可以获取全局控制器的传感表从而实时监测灌溉情况。监控节点通过上述过程发送请求消息从而从全局控制器获取数据,由于上述过程通过加密数据进行通信,从而确保的数据通信的安全性,同时上述过程通过一次数据通信可以监测所有的数据,从而实现了数据通信的高效性。当传感表数量较大时,数据通信延迟随之增加,当传感表数量较小时,数据通信延迟随之降低,监测节点获取数据的平均延迟为107ms。

表1仿真参数

本发明提供了一种基于物联网的智能灌溉系统实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1