专利摘要
本发明提供了一种基于数据融合机制的物联网空气监测系统的实现方法,所述物联网空气监测系统包含一个接入节点和两个以上的传感节点,传感节点包括孤立节点、簇首节点和簇内节点;孤立节点为既不是簇首节点也不是簇内节点的传感节点;用户通过本发明所提供的物联网空气监测系统的实现方法能够快速获取空气参数,从而有效缩短了获取空气数据的延迟和代价,能够实时监测空气质,本发明可应用于空气监测等领域,具有广泛的应用前景。
权利要求
1.一种基于数据融合机制的物联网空气监测系统的实现方法,其特征在于,所述物联网空气监测系统包含一个接入节点和两个以上的传感节点,传感节点包括孤立节点、簇首节点和簇内节点;孤立节点为既不是簇首节点也不是簇内节点的传感节点;
一种类型的数据内容由一个名称定义,该种数据内容的值称为该数据内容的数据值;
一种传感节点能够采集一种以上类型的数据内容,接入节点不能采集任何类型的数据内容;
一种类型的消息由消息ID标识;接入节点和每个传感节点由一个节点ID唯一标识;每个传感节点预先配置物联网空气监测系统中接入节点AP1的坐标和节点ID;
名称NA0定义的数据内容为CD0,如果一个传感节点SN0能够采集数据内容CD0,那么对于传感节点SN0而言,名称NA0的连通度等于传感节点SN0的所有符合条件1的邻居传感节点的数量;
条件1:该邻居传感节点能够采集数据内容CD0;
每个传感节点保存一个邻居表,一个邻居表项包含节点ID、坐标、节点类型、名称集合和生命周期;节点类型值0表示节点ID标识的传感节点为孤立节点,节点类型值1表示节点ID标识的传感节点为簇首节点,节点类型值2表示节点ID标识的传感节点为簇内节点;
一个邻居消息包含消息ID、节点ID、节点类型、坐标和名称集合;
传感节点SN1的坐标为CO1,传感节点SN1能够采集一种以上的类型的数据内容,将定义这些数据内容的名称构建成名称集合NS1,传感节点SN1定期执行下述操作:
步骤101:开始;
步骤102:传感节点SN1发送一个邻居消息,该邻居消息的消息ID为1,节点ID等于自己的节点ID,坐标等于CO1,名称集合等于NS1,如果传感节点SN1为簇首节点,则该邻居消息的节点类型值为1,如果传感节点SN1为孤立节点,则该邻居消息的节点类型值为0,如果传感节点SN1为簇内节点,则该邻居消息的节点类型值为2;
步骤103:邻居传感节点接收到邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,则执行步骤104,否则执行步骤105;
步骤104:接收到邻居消息的邻居传感节点选择一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,将该邻居表项的坐标、节点类型值和名称集合分别更新为该邻居消息中的坐标、节点类型值和名称集合,将生命周期设置为最大值,执行步骤106;
步骤105:接收到邻居消息的邻居传感节点创建一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,将该邻居表项的坐标、节点类型值和名称集合设置为该邻居消息中的坐标、节点类型值和名称集合,将生命周期设置为最大值;
步骤106:接收到邻居消息的邻居传感节点判断该邻居消息中的节点类型值是否为1,是则执行步骤107,否则执行步骤109;
步骤107:接收到邻居消息的邻居传感节点判断自己是否为孤立节点,是则执行步骤108,否则执行步骤109;
步骤108:接收到邻居消息的邻居传感节点将自己标识为簇内节点;
步骤109:结束。
2.根据权利要求1所述的一种基于数据融合机制的物联网空气监测系统的实现方法,其特征在于,
每个传感节点保存一个连通度表,一个连通度表项包含节点ID、名称和连通度值;
信标消息包含消息ID、节点ID、名称和连通度值;
数据内容CD2由名称NA2定义,如果传感节点SN2能够采集数据内容CD2,那么传感节点SN2建立邻居表后执行下述过程获取数据内容CD2的连通度:
步骤201:开始;
步骤202:传感节点SN2设置一个连通度变量n2,连通度变量n2的初始值为0;
步骤203:传感节点SN2查看每个邻居表项,如果该邻居表项的名称集合中包含名称NA2,则将连通度变量n2的值递增1,否则连通度变量n2的值保持不变;
步骤204:传感节点SN2发送一个信标消息,该信标消息的消息ID为2,节点ID等于自己的节点ID,名称等于NA2,连通度值等于连通度变量n2的值;
步骤205:邻居传感节点接收到信标消息后判断是否存在一个连通度表项,该连通度表项的节点ID和名称分别等于该信标消息中的节点ID和名称,如果存在则将该连通度表项中的连通度值设置为该信标消息中的连通度值,否则创建一个连通度表项,该连通度表项的节点ID和名称分别等于该信标消息中的节点ID和名称,将该连通度表项中的连通度值设置为该信标消息中的连通度值;
步骤206:结束。
3.根据权利要求2所述的一种基于数据融合机制的物联网空气监测系统的实现方法,其特征在于,
设置每个传感节点或者接入节点AP1的传输半径为R1;
数据内容CD2由名称NA2定义,传感节点SN2为能够采集数据内容CD2的孤立节点,且名称NA2的连通度值为CN2,如果传感节点SN2的任何邻居表项中的节点类型值均不为1且满足条件2,或者同时满足条件3、条件4和条件5,则执行下述操作:
条件2:传感节点SN2的名称NA2的连通度CN2大于任何一个名称等于NA2的连通度表项的连通度值;
条件3:传感节点SN2的名称NA2的连通度CN2等于或者大于任何一个名称等于NA2的连通度表项的连通度值;
条件4:针对符合条件5的每个连通度表项CE1,传感节点SN2的坐标与该系统中接入节点AP1坐标之间的距离大于邻居表项NE1的坐标与接入节点AP1坐标之间的距离,其中,邻居表项NE1的节点ID等于连通度表项CE1的节点ID;
条件5:该连通度表项的名称等于NA2且连通度值等于CN2;
簇首消息包含消息ID、节点ID和名称;
步骤301:开始;
步骤302:传感节点SN2将自己标记为簇首节点,传感节点SN2选择所有符合条件6的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度表项,该连通度表项的连通度值最大,传感节点SN2发送一个簇首消息,该簇首消息的消息ID为3,节点ID等于该连通度表项的节点ID,名称等于NA2;
条件6:该邻居表项坐标与接入节点AP1坐标之间的距离小于传感节点SN2坐标与接入节点AP1坐标之间的距离;
步骤303:接收到簇首消息的传感节点判断自己的节点ID是否等于该簇首消息中的节点ID,是则执行步骤304,否则执行步骤307;
步骤304:接收到簇首消息的传感节点将自己标记为簇首节点,判断接入节点AP1坐标与自己坐标之间的距离是否不大于传输半径R1,是则执行步骤307,否则执行步骤305;
步骤305:接收到簇首消息的传感节点判断是否存在一个邻居表项,该邻居表项的节点类型值为1,名称集合包含簇首消息中的名称且坐标与接入节点AP1坐标之间的距离小于自己的坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤307,否则执行步骤306;
步骤306:接收到簇首消息的传感节点选择所有符合条件7的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,发送一个簇首消息,该簇首消息的消息ID为3,节点ID等于选中的连通度表项的节点ID,名称等于接收到的簇首消息中的名称,执行步骤303;
条件7:该邻居表项坐标与接入节点AP1坐标之间的距离小于接收到簇首消息的传感节点的坐标与接入节点AP1坐标之间的距离;
步骤307:结束。
4.根据权利要求3所述的一种基于数据融合机制的物联网空气监测系统的实现方法,其特征在于,
针对每一个名称,簇首节点保存一个数据表,该数据表的表名等于该名称,一个数据表项包含节点ID、数据值和生命周期;
采集消息包含消息ID、名称、节点ID和数据值;
簇内节点M1的簇首节点为H1,簇内节点M1能够采集数据内容CD1,数据内容CD1由名称NA1定义,簇内节点M1定期采集数据内容CD1的数据值并执行下述操作:
步骤401:开始;
步骤402:簇内节点M1发送一个采集消息,该采集消息的消息ID等于4,名称等于NA1,节点ID等于自己的节点ID,数据值等于采集的数据内容CD1的数据值;
步骤403:簇首节点H1收到采集消息后,判断是否存在一个表名等于该采集消息中名称的数据表,是则执行步骤405,否则执行步骤404;
步骤404:接收到采集消息的簇首节点H1创建一个数据表,该数据表的表名等于该采集消息中名称;
步骤405:接收到采集消息的簇首节点H1选择一个数据表,该数据表的表名等于该采集消息中名称,判断该数据表中是否存在一个数据表项,该数据表项的节点ID等于该采集消息中的节点ID,如果存在,则将该数据表项的数据值设置为采集消息中的数据值,将生命周期设置为最大值,否则创建一个数据表项,该数据表项的节点ID等于该采集消息中的节点ID,将该数据表项的数据值设置为该采集消息中的数据值,将生命周期设置为最大值;
步骤406:结束。
5.根据权利要求4所述的一种基于数据融合机制的物联网空气监测系统的实现方法,其特征在于,上传消息包含消息ID、节点ID、数据值和名称;簇首节点H1针对每个数据表DT1定期执行下述操作:
步骤501:开始;
步骤502:簇首节点H1计算数据表DT1中每个数据表项的数据值之和,然后求平均值AV1,平均值AV1等于计算的和除以数据表DT1中所有数据表项的个数,簇首节点判断是否存在一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含数据表DT1的表名,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤503,否则执行步骤504;
步骤503:簇首节点H1选择一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含数据表DT1的表名,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,簇首节点H1发送一个上传消息,该上传消息的消息类型为5,节点ID等于该邻居表项的节点ID,数据值等于平均值AV1,名称等于数据表DT1的表名,执行步骤505;
步骤504:簇首节点H1选择所有符合条件8的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,发送一个上传消息,该上传消息的消息类型为5,节点ID等于该连通度表项的节点ID,数据值等于平均值AV1,名称等于数据表DT1的表名;
条件8:该邻居表项坐标与接入节点AP1坐标之间的距离小于簇首节点H1的坐标与接入节点AP1坐标之间的距离;
步骤505:判断所述物联网空气监测系统的接入节点AP1是否接收到该上传消息,是则执行步骤514,否则执行步骤506;
步骤506:接收到该上传消息的传感节点判断自己的节点ID是否等于该上传消息中的节点ID,是则执行步骤507,否则执行步骤515;
步骤507:接收到该上传消息的传感节点判断自己是否为簇首节点,是则执行步骤509,否则执行步骤508;
步骤508:接收到该上传消息的传感节点将自己标记为簇首节点;
步骤509:接收到该上传消息的传感节点选择一个数据表,该数据表的表名等于该上传消息中的名称,在该数据表中创建一个数据表项,该数据表项的节点ID为空,数据值等于该上传消息中的数据值,生命周期为最大值,计算该数据表中每个数据表项的数据值之和,然后求平均值AV2,平均值AV2等于计算出的和除以该数据表中所有数据表项的个数,将该上传消息的数据值设置为平均值AV2,该传感节点判断自己坐标与接入节点AP1坐标之间的距离是否大于通信半径R1,是则执行步骤511,否则执行步骤510;
步骤510:接收到该上传消息的传感节点将该上传消息中的节点ID设置为接入节点AP1的节点ID,发送该上传消息,执行步骤505;
步骤511:接收到该上传消息的传感节点判断是否存在一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含该上传消息的名称,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤512,否则执行步骤513;
步骤512:接收到该上传消息的传感节点选择一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含该上传消息的名称,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,将该上传消息中的节点ID设置为该邻居表项的节点ID,发送该上传消息,执行步骤505;
步骤513:接收到该上传消息的传感节点选择所有符合条件9的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,将该上传消息中的节点ID设置为该连通度表项的节点ID,发送该上传消息,执行步骤505;
条件9:该邻居表项坐标与接入节点AP1坐标之间的距离小于接收到该上传消息的传感节点的坐标与接入节点AP1坐标之间的距离;
步骤514:接入节点AP1接收到该上传消息,保存该上传消息中的名称和数据值;
步骤515:结束。
说明书
技术领域
本发明涉及一种实现方法,尤其涉及的是一种基于数据融合机制的物联网空气监测系统的实现方法。
背景技术
近年来,很多研究工作致力于物联网空气监测,以便通过物联网能够快速获取空气监测网络服务。随着物联网的发展,物联网会成为未来提供服务的一种模式。
目前,物联网的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低物联网提供数据的延迟和代价成为近年来研究的热点问题。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于数据融合机制的物联网空气监测系统的实现方法。
技术方案:本发明公开了一种基于数据融合机制的物联网空气监测系统的实现方法,所述物联网空气监测系统包含一个接入节点和两个以上的传感节点,传感节点包括孤立节点、簇首节点和簇内节点;孤立节点为既不是簇首节点也不是簇内节点的传感节点;
一种类型的数据内容由一个名称定义,该种数据内容的值称为该数据内容的数据值,例如名称NA1定义的数据内容为温度,温度的数据值为35度;
一种传感节点能够采集一种以上类型的数据内容,接入节点不能采集任何类型的数据内容;
一种类型的消息由消息ID标识;接入节点和每个传感节点由一个节点ID唯一标识,例如MAC地址;每个传感节点预先配置物联网空气监测系统中接入节点AP1的坐标和节点ID;
名称NA0定义的数据内容为CD0,如果一个传感节点SN0能够采集数据内容CD0,那么对于传感节点SN0而言,名称NA0的连通度等于传感节点SN0的所有符合条件1的邻居传感节点的数量;
条件1:该邻居传感节点能够采集数据内容CD0;
每个传感节点保存一个邻居表,一个邻居表项包含节点ID、坐标、节点类型、名称集合和生命周期;节点类型值0表示节点ID标识的传感节点为孤立节点,节点类型值1表示节点ID标识的传感节点为簇首节点,节点类型值2表示节点ID标识的传感节点为簇内节点;
一个邻居消息包含消息ID、节点ID、节点类型、坐标和名称集合;
传感节点SN1的坐标为CO1,传感节点SN1能够采集一种以上的类型的数据内容,将定义这些数据内容的名称构建成名称集合NS1,传感节点SN1定期执行下述操作:
步骤101:开始;
步骤102:传感节点SN1发送一个邻居消息,该邻居消息的消息ID为1,节点ID等于自己的节点ID,坐标等于CO1,名称集合等于NS1,如果传感节点SN1为簇首节点,则该邻居消息的节点类型值为1,如果传感节点SN1为孤立节点,则该邻居消息的节点类型值为0,如果传感节点SN1为簇内节点,则该邻居消息的节点类型值为2;
步骤103:邻居传感节点接收到邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,则执行步骤104,否则执行步骤105;
步骤104:接收到邻居消息的邻居传感节点选择一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,将该邻居表项的坐标、节点类型值和名称集合分别更新为该邻居消息中的坐标、节点类型值和名称集合,将生命周期设置为最大值,生命周期最大值设置范围为500ms-1s,执行步骤106;
步骤105:接收到邻居消息的邻居传感节点创建一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,将该邻居表项的坐标、节点类型值和名称集合设置为该邻居消息中的坐标、节点类型值和名称集合,将生命周期设置为最大值;
步骤106:接收到邻居消息的邻居传感节点判断该邻居消息中的节点类型值是否为1,是则执行步骤107,否则执行步骤109;
步骤107:接收到邻居消息的邻居传感节点判断自己是否为孤立节点,是则执行步骤108,否则执行步骤109;
步骤108:接收到邻居消息的邻居传感节点将自己标识为簇内节点;
步骤109:结束。
本发明所述方法中,每个传感节点保存一个连通度表,一个连通度表项包含节点ID、名称和连通度值;
信标消息包含消息ID、节点ID、名称和连通度值;
数据内容CD2由名称NA2定义,如果传感节点SN2能够采集数据内容CD2,那么传感节点SN2建立邻居表后执行下述过程获取数据内容CD2的连通度:
步骤201:开始;
步骤202:传感节点SN2设置一个连通度变量n2,连通度变量n2的初始值为0;
步骤203:传感节点SN2查看每个邻居表项,如果该邻居表项的名称集合中包含名称NA2,则将连通度变量n2的值递增1,否则连通度变量n2的值保持不变;
步骤204:传感节点SN2发送一个信标消息,该信标消息的消息ID为2,节点ID等于自己的节点ID,名称等于NA2,连通度值等于连通度变量n2的值;
步骤205:邻居传感节点接收到信标消息后判断是否存在一个连通度表项,该连通度表项的节点ID和名称分别等于该信标消息中的节点ID和名称,如果存在则将该连通度表项中的连通度值设置为该信标消息中的连通度值,否则创建一个连通度表项,该连通度表项的节点ID和名称分别等于该信标消息中的节点ID和名称,将该连通度表项中的连通度值设置为该信标消息中的连通度值;
步骤206:结束。
传感节点通过上述过程建立邻居表,并通过邻居表获取每种名称的连通度,邻居表通过生命周期来确保有效性和实时性,同时通过坐标能够建立到达接入节点的最短路径,通过节点ID实现消息的转发,从而有效降低数据上传的代价和延迟。
本发明所述方法中,设置每个传感节点或者接入节点AP1的传输半径为R1;
数据内容CD2由名称NA2定义,传感节点SN2为能够采集数据内容CD2的孤立节点,且名称NA2的连通度值为CN2,如果传感节点SN2的任何邻居表项中的节点类型值均不为1且满足条件2,或者同时满足条件3、条件4和条件5,则执行下述操作:
条件2:传感节点SN2的名称NA2的连通度CN2大于任何一个名称等于NA2的连通度表项的连通度值;
条件3:传感节点SN2的名称NA2的连通度CN2等于或者大于任何一个名称等于NA2的连通度表项的连通度值;
条件4:针对符合条件5的每个连通度表项CE1,传感节点SN2的坐标与该系统中接入节点AP1坐标之间的距离大于邻居表项NE1的坐标与接入节点AP1坐标之间的距离,其中,邻居表项NE1的节点ID等于连通度表项CE1的节点ID;
条件5:该连通度表项的名称等于NA2且连通度值等于CN2;
簇首消息包含消息ID、节点ID和名称;
步骤301:开始;
步骤302:传感节点SN2将自己标记为簇首节点,传感节点SN2选择所有符合条件6的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度表项,该连通度表项的连通度值最大,传感节点SN2发送一个簇首消息,该簇首消息的消息ID为3,节点ID等于该连通度表项的节点ID,名称等于NA2;
条件6:该邻居表项坐标与接入节点AP1坐标之间的距离小于传感节点SN2坐标与接入节点AP1坐标之间的距离;
步骤303:接收到簇首消息的传感节点判断自己的节点ID是否等于该簇首消息中的节点ID,是则执行步骤304,否则执行步骤307;
步骤304:接收到簇首消息的传感节点将自己标记为簇首节点,判断接入节点AP1坐标与自己坐标之间的距离是否不大于传输半径R1,是则执行步骤307,否则执行步骤305;
步骤305:接收到簇首消息的传感节点判断是否存在一个邻居表项,该邻居表项的节点类型值为1,名称集合包含簇首消息中的名称且坐标与接入节点AP1坐标之间的距离小于自己的坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤307,否则执行步骤306;
步骤306:接收到簇首消息的传感节点选择所有符合条件7的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,发送一个簇首消息,该簇首消息的消息ID为3,节点ID等于选中的连通度表项的节点ID,名称等于接收到的簇首消息中的名称,执行步骤303;
条件7:该邻居表项坐标与接入节点AP1坐标之间的距离小于接收到簇首消息的传感节点的坐标与接入节点AP1坐标之间的距离;
步骤307:结束。
传感节点通过上述过程建立到达接入节点AP1距离最近的路由路径,构成路由路径的传感节点能够处理同一种数据,因此能够实现数据融合从而降低转发数据的大小,进而提高数据上传性能,降低上传数据的代价和延迟。
本发明所述方法中,针对每一个名称,簇首节点保存一个数据表,该数据表的表名等于该名称,一个数据表项包含节点ID、数据值和生命周期;
采集消息包含消息ID、名称、节点ID和数据值;
簇内节点M1的簇首节点为H1,簇内节点M1能够采集数据内容CD1,数据内容CD1由名称NA1定义,簇内节点M1定期采集数据内容CD1的数据值并执行下述操作:
步骤401:开始;
步骤402:簇内节点M1发送一个采集消息,该采集消息的消息ID等于4,名称等于NA1,节点ID等于自己的节点ID,数据值等于采集的数据内容CD1的数据值;
步骤403:簇首节点H1收到采集消息后,判断是否存在一个表名等于该采集消息中名称的数据表,是则执行步骤405,否则执行步骤404;
步骤404:接收到采集消息的簇首节点H1创建一个数据表,该数据表的表名等于该采集消息中名称;
步骤405:接收到采集消息的簇首节点H1选择一个数据表,该数据表的表名等于该采集消息中名称,判断该数据表中是否存在一个数据表项,该数据表项的节点ID等于该采集消息中的节点ID,如果存在,则将该数据表项的数据值设置为采集消息中的数据值,将生命周期设置为最大值,否则创建一个数据表项,该数据表项的节点ID等于该采集消息中的节点ID,将该数据表项的数据值设置为该采集消息中的数据值,将生命周期设置为最大值;
步骤406:结束。
簇内节点通过上述过程向簇首节点上传采集到的数据,从而使簇首节点保存最新的数据并执行数据融合同时向接入节点提供该数据,由于上述数据通过生命周期来确保其有效性和实时性,因此能够确保融合之后的数据的有效性和实时性。
本发明所述方法中,上传消息包含消息ID、节点ID、数据值和名称;簇首节点H1针对每个数据表DT1定期执行下述操作:
步骤501:开始;
步骤502:簇首节点H1计算数据表DT1中每个数据表项的数据值之和,然后求平均值AV1,平均值AV1等于计算的和除以数据表DT1中所有数据表项的个数,簇首节点判断是否存在一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含数据表DT1的表名,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤503,否则执行步骤504;
步骤503:簇首节点H1选择一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含数据表DT1的表名,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,簇首节点H1发送一个上传消息,该上传消息的消息类型为5,节点ID等于该邻居表项的节点ID,数据值等于平均值AV1,名称等于数据表DT1的表名,执行步骤505;
步骤504:簇首节点H1选择所有符合条件8的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,发送一个上传消息,该上传消息的消息类型为5,节点ID等于该连通度表项的节点ID,数据值等于平均值AV1,名称等于数据表DT1的表名;
条件8:该邻居表项坐标与接入节点AP1坐标之间的距离小于簇首节点H1的坐标与接入节点AP1坐标之间的距离;
步骤505:判断所述物联网空气监测系统的接入节点AP1是否接收到该上传消息,是则执行步骤514,否则执行步骤506;
步骤506:接收到该上传消息的传感节点判断自己的节点ID是否等于该上传消息中的节点ID,是则执行步骤507,否则执行步骤515;
步骤507:接收到该上传消息的传感节点判断自己是否为簇首节点,是则执行步骤509,否则执行步骤508;
步骤508:接收到该上传消息的传感节点将自己标记为簇首节点;
步骤509:接收到该上传消息的传感节点选择一个数据表,该数据表的表名等于该上传消息中的名称,在该数据表中创建一个数据表项,该数据表项的节点ID为空,数据值等于该上传消息中的数据值,生命周期为最大值,计算该数据表中每个数据表项的数据值之和,然后求平均值AV2,平均值AV2等于计算出的和除以该数据表中所有数据表项的个数,将该上传消息的数据值设置为平均值AV2,该传感节点判断自己坐标与接入节点AP1坐标之间的距离是否大于通信半径R1,是则执行步骤511,否则执行步骤510;
步骤510:接收到该上传消息的传感节点将该上传消息中的节点ID设置为接入节点AP1的节点ID,发送该上传消息,执行步骤505;
步骤511:接收到该上传消息的传感节点判断是否存在一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含该上传消息的名称,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤512,否则执行步骤513;
步骤512:接收到该上传消息的传感节点选择一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含该上传消息的名称,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,将该上传消息中的节点ID设置为该邻居表项的节点ID,发送该上传消息,执行步骤505;
步骤513:接收到该上传消息的传感节点选择所有符合条件9的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,将该上传消息中的节点ID设置为该连通度表项的节点ID,发送该上传消息,执行步骤505;
条件9:该邻居表项坐标与接入节点AP1坐标之间的距离小于接收到该上传消息的传感节点的坐标与接入节点AP1坐标之间的距离;
步骤514:接入节点AP1接收到该上传消息,保存该上传消息中的名称和数据值;
步骤515:结束。
簇首节点通过上述过程定期向接入节点上传自己的簇内节点采集的数据,从而使接入节点保存最新的数据并进行监测,由于上述过程采用数据融合机制上传数据,因此大幅度降低了数据上传的代价和延迟,同时减少了数据通信流量,提高了网络性能。
有益效果:本发明提供了一种基于数据融合机制的物联网空气监测系统的实现方法,用户通过本发明所提供的物联网空气监测系统的实现方法能够快速获取空气参数,从而有效缩短了获取空气数据的延迟和代价,能够实时监测空气质,本发明可应用于空气监测等领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的建立邻居表流程示意图。
图2为本发明所述的建立连通度表流程示意图。
图3为本发明所述的建立路由路径流程示意图。
图4为本发明所述的建立数据表流程示意图。
图5为本发明所述的上传数据流程示意图。
具体实施方式:
本发明提供了一种基于数据融合机制的物联网空气监测系统的实现方法,用户通过本发明所提供的物联网空气监测系统的实现方法能够快速获取空气参数,从而有效缩短了获取空气数据的延迟和代价,能够实时监测空气质,本发明可应用于空气监测等领域,具有广泛的应用前景。
图1为本发明所述的建立邻居表流程示意图。所述物联网空气监测系统包含一个接入节点和两个以上的传感节点,传感节点包括孤立节点、簇首节点和簇内节点;孤立节点为既不是簇首节点也不是簇内节点的传感节点;
一种类型的数据内容由一个名称定义,该种数据内容的值称为该数据内容的数据值,例如名称NA1定义的数据内容为温度,温度的数据值为35度;
一种传感节点能够采集一种以上类型的数据内容,接入节点不能采集任何类型的数据内容;
一种类型的消息由消息ID标识;接入节点和每个传感节点由一个节点ID唯一标识,例如MAC地址;每个传感节点预先配置物联网空气监测系统中接入节点AP1的坐标和节点ID;
名称NA0定义的数据内容为CD0,如果一个传感节点SN0能够采集数据内容CD0,那么对于传感节点SN0而言,名称NA0的连通度等于传感节点SN0的所有符合条件1的邻居传感节点的数量;
条件1:该邻居传感节点能够采集数据内容CD0;
每个传感节点保存一个邻居表,一个邻居表项包含节点ID、坐标、节点类型、名称集合和生命周期;节点类型值0表示节点ID标识的传感节点为孤立节点,节点类型值1表示节点ID标识的传感节点为簇首节点,节点类型值2表示节点ID标识的传感节点为簇内节点;
一个邻居消息包含消息ID、节点ID、节点类型、坐标和名称集合;
传感节点SN1的坐标为CO1,传感节点SN1能够采集一种以上的类型的数据内容,将定义这些数据内容的名称构建成名称集合NS1,传感节点SN1定期执行下述操作:
步骤101:开始;
步骤102:传感节点SN1发送一个邻居消息,该邻居消息的消息ID为1,节点ID等于自己的节点ID,坐标等于CO1,名称集合等于NS1,如果传感节点SN1为簇首节点,则该邻居消息的节点类型值为1,如果传感节点SN1为孤立节点,则该邻居消息的节点类型值为0,如果传感节点SN1为簇内节点,则该邻居消息的节点类型值为2;
步骤103:邻居传感节点接收到邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,则执行步骤104,否则执行步骤105;
步骤104:接收到邻居消息的邻居传感节点选择一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,将该邻居表项的坐标、节点类型值和名称集合分别更新为该邻居消息中的坐标、节点类型值和名称集合,将生命周期设置为最大值,生命周期最大值设置范围为500ms-1s,执行步骤106;
步骤105:接收到邻居消息的邻居传感节点创建一个邻居表项,该邻居表项的节点ID等于该邻居消息中的节点ID,将该邻居表项的坐标、节点类型值和名称集合设置为该邻居消息中的坐标、节点类型值和名称集合,将生命周期设置为最大值;
步骤106:接收到邻居消息的邻居传感节点判断该邻居消息中的节点类型值是否为1,是则执行步骤107,否则执行步骤109;
步骤107:接收到邻居消息的邻居传感节点判断自己是否为孤立节点,是则执行步骤108,否则执行步骤109;
步骤108:接收到邻居消息的邻居传感节点将自己标识为簇内节点;
步骤109:结束。
图2为本发明所述的建立连通度表流程示意图。每个传感节点保存一个连通度表,一个连通度表项包含节点ID、名称和连通度值;
信标消息包含消息ID、节点ID、名称和连通度值;
数据内容CD2由名称NA2定义,如果传感节点SN2能够采集数据内容CD2,那么传感节点SN2建立邻居表后执行下述过程获取数据内容CD2的连通度:
步骤201:开始;
步骤202:传感节点SN2设置一个连通度变量n2,连通度变量n2的初始值为0;
步骤203:传感节点SN2查看每个邻居表项,如果该邻居表项的名称集合中包含名称NA2,则将连通度变量n2的值递增1,否则连通度变量n2的值保持不变;
步骤204:传感节点SN2发送一个信标消息,该信标消息的消息ID为2,节点ID等于自己的节点ID,名称等于NA2,连通度值等于连通度变量n2的值;
步骤205:邻居传感节点接收到信标消息后判断是否存在一个连通度表项,该连通度表项的节点ID和名称分别等于该信标消息中的节点ID和名称,如果存在则将该连通度表项中的连通度值设置为该信标消息中的连通度值,否则创建一个连通度表项,该连通度表项的节点ID和名称分别等于该信标消息中的节点ID和名称,将该连通度表项中的连通度值设置为该信标消息中的连通度值;
步骤206:结束。
传感节点通过上述过程建立邻居表,并通过邻居表获取每种名称的连通度,邻居表通过生命周期来确保有效性和实时性,同时通过坐标能够建立到达接入节点的最短路径,通过节点ID实现消息的转发,从而有效降低数据上传的代价和延迟。
图3为本发明所述的建立路由路径流程示意图。设置每个传感节点或者接入节点AP1的传输半径为R1;
数据内容CD2由名称NA2定义,传感节点SN2为能够采集数据内容CD2的孤立节点,且名称NA2的连通度值为CN2,如果传感节点SN2的任何邻居表项中的节点类型值均不为1且满足条件2,或者同时满足条件3、条件4和条件5,则执行下述操作:
条件2:传感节点SN2的名称NA2的连通度CN2大于任何一个名称等于NA2的连通度表项的连通度值;
条件3:传感节点SN2的名称NA2的连通度CN2等于或者大于任何一个名称等于NA2的连通度表项的连通度值;
条件4:针对符合条件5的每个连通度表项CE1,传感节点SN2的坐标与该系统中接入节点AP1坐标之间的距离大于邻居表项NE1的坐标与接入节点AP1坐标之间的距离,其中,邻居表项NE1的节点ID等于连通度表项CE1的节点ID;
条件5:该连通度表项的名称等于NA2且连通度值等于CN2;
簇首消息包含消息ID、节点ID和名称;
步骤301:开始;
步骤302:传感节点SN2将自己标记为簇首节点,传感节点SN2选择所有符合条件6的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度表项,该连通度表项的连通度值最大,传感节点SN2发送一个簇首消息,该簇首消息的消息ID为3,节点ID等于该连通度表项的节点ID,名称等于NA2;
条件6:该邻居表项坐标与接入节点AP1坐标之间的距离小于传感节点SN2坐标与接入节点AP1坐标之间的距离;
步骤303:接收到簇首消息的传感节点判断自己的节点ID是否等于该簇首消息中的节点ID,是则执行步骤304,否则执行步骤307;
步骤304:接收到簇首消息的传感节点将自己标记为簇首节点,判断接入节点AP1坐标与自己坐标之间的距离是否不大于传输半径R1,是则执行步骤307,否则执行步骤305;
步骤305:接收到簇首消息的传感节点判断是否存在一个邻居表项,该邻居表项的节点类型值为1,名称集合包含簇首消息中的名称且坐标与接入节点AP1坐标之间的距离小于自己的坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤307,否则执行步骤306;
步骤306:接收到簇首消息的传感节点选择所有符合条件7的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,发送一个簇首消息,该簇首消息的消息ID为3,节点ID等于选中的连通度表项的节点ID,名称等于接收到的簇首消息中的名称,执行步骤303;
条件7:该邻居表项坐标与接入节点AP1坐标之间的距离小于接收到簇首消息的传感节点的坐标与接入节点AP1坐标之间的距离;
步骤307:结束。
传感节点通过上述过程建立到达接入节点AP1距离最近的路由路径,构成路由路径的传感节点能够处理同一种数据,因此能够实现数据融合从而降低转发数据的大小,进而提高数据上传性能,降低上传数据的代价和延迟。
图4为本发明所述的建立数据表流程示意图。针对每一个名称,簇首节点保存一个数据表,该数据表的表名等于该名称,一个数据表项包含节点ID、数据值和生命周期;
采集消息包含消息ID、名称、节点ID和数据值;
簇内节点M1的簇首节点为H1,簇内节点M1能够采集数据内容CD1,数据内容CD1由名称NA1定义,簇内节点M1定期采集数据内容CD1的数据值并执行下述操作:
步骤401:开始;
步骤402:簇内节点M1发送一个采集消息,该采集消息的消息ID等于4,名称等于NA1,节点ID等于自己的节点ID,数据值等于采集的数据内容CD1的数据值;
步骤403:簇首节点H1收到采集消息后,判断是否存在一个表名等于该采集消息中名称的数据表,是则执行步骤405,否则执行步骤404;
步骤404:接收到采集消息的簇首节点H1创建一个数据表,该数据表的表名等于该采集消息中名称;
步骤405:接收到采集消息的簇首节点H1选择一个数据表,该数据表的表名等于该采集消息中名称,判断该数据表中是否存在一个数据表项,该数据表项的节点ID等于该采集消息中的节点ID,如果存在,则将该数据表项的数据值设置为采集消息中的数据值,将生命周期设置为最大值,否则创建一个数据表项,该数据表项的节点ID等于该采集消息中的节点ID,将该数据表项的数据值设置为该采集消息中的数据值,将生命周期设置为最大值;
步骤406:结束。
簇内节点通过上述过程向簇首节点上传采集到的数据,从而使簇首节点保存最新的数据并执行数据融合同时向接入节点提供该数据,由于上述数据通过生命周期来确保其有效性和实时性,因此能够确保融合之后的数据的有效性和实时性。
图5为本发明所述的上传数据流程示意图。上传消息包含消息ID、节点ID、数据值和名称;簇首节点H1针对每个数据表DT1定期执行下述操作:
步骤501:开始;
步骤502:簇首节点H1计算数据表DT1中每个数据表项的数据值之和,然后求平均值AV1,平均值AV1等于计算的和除以数据表DT1中所有数据表项的个数,簇首节点判断是否存在一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含数据表DT1的表名,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤503,否则执行步骤504;
步骤503:簇首节点H1选择一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含数据表DT1的表名,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,簇首节点H1发送一个上传消息,该上传消息的消息类型为5,节点ID等于该邻居表项的节点ID,数据值等于平均值AV1,名称等于数据表DT1的表名,执行步骤505;
步骤504:簇首节点H1选择所有符合条件8的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,发送一个上传消息,该上传消息的消息类型为5,节点ID等于该连通度表项的节点ID,数据值等于平均值AV1,名称等于数据表DT1的表名;
条件8:该邻居表项坐标与接入节点AP1坐标之间的距离小于簇首节点H1的坐标与接入节点AP1坐标之间的距离;
步骤505:判断所述物联网空气监测系统的接入节点AP1是否接收到该上传消息,是则执行步骤514,否则执行步骤506;
步骤506:接收到该上传消息的传感节点判断自己的节点ID是否等于该上传消息中的节点ID,是则执行步骤507,否则执行步骤515;
步骤507:接收到该上传消息的传感节点判断自己是否为簇首节点,是则执行步骤509,否则执行步骤508;
步骤508:接收到该上传消息的传感节点将自己标记为簇首节点;
步骤509:接收到该上传消息的传感节点选择一个数据表,该数据表的表名等于该上传消息中的名称,在该数据表中创建一个数据表项,该数据表项的节点ID为空,数据值等于该上传消息中的数据值,生命周期为最大值,计算该数据表中每个数据表项的数据值之和,然后求平均值AV2,平均值AV2等于计算出的和除以该数据表中所有数据表项的个数,将该上传消息的数据值设置为平均值AV2,该传感节点判断自己坐标与接入节点AP1坐标之间的距离是否大于通信半径R1,是则执行步骤511,否则执行步骤510;
步骤510:接收到该上传消息的传感节点将该上传消息中的节点ID设置为接入节点AP1的节点ID,发送该上传消息,执行步骤505;
步骤511:接收到该上传消息的传感节点判断是否存在一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含该上传消息的名称,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,如果存在,则执行步骤512,否则执行步骤513;
步骤512:接收到该上传消息的传感节点选择一个邻居表项,该邻居表项的节点类型值等于1,名称集合包含该上传消息的名称,坐标与接入节点AP1坐标之间的距离小于自己坐标与接入节点AP1坐标之间的距离,将该上传消息中的节点ID设置为该邻居表项的节点ID,发送该上传消息,执行步骤505;
步骤513:接收到该上传消息的传感节点选择所有符合条件9的邻居表项,针对每个邻居表项,选择一个连通度表项,该连通度表项的节点ID等于该邻居表项的节点ID,从所有选中的连通度表项中选择一个连通度值最大的连通度表项,将该上传消息中的节点ID设置为该连通度表项的节点ID,发送该上传消息,执行步骤505;
条件9:该邻居表项坐标与接入节点AP1坐标之间的距离小于接收到该上传消息的传感节点的坐标与接入节点AP1坐标之间的距离;
步骤514:接入节点AP1接收到该上传消息,保存该上传消息中的名称和数据值;
步骤515:结束。
簇首节点通过上述过程定期向接入节点上传自己的簇内节点采集的数据,从而使接入节点保存最新的数据并进行监测,由于上述过程采用数据融合机制上传数据,因此大幅度降低了数据上传的代价和延迟,同时减少了数据通信流量,提高了网络性能。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种基于数据融合机制的物联网空气监测系统的实现方法。
首先,传感节点SN1启动后,执行步骤101-109建立邻居表,传感节点SN1发送一个邻居消息,接收到该邻居消息的邻居传感节点创建传感节点SN1的邻居表项,例如邻居表项的节点ID为12ef:2e45:3fec,坐标为(29,31),节点类型为0,名称集合为{Temperature,Humidity},生命周期为500ms,如果该邻居传感节点为孤立节点且接收到的邻居消息中的节点类型值为1,则将自己标记为簇内节点。传感节点SN1建立邻居表后,执行步骤201-206建立连通度表,传感节点发送一个信标消息,接收到该信标消息的邻居传感节点创建传感节点SN1的连通度表项,例如该连通度表项的节点ID为12ef:2e45:3fec,名称为Temperature,连通度值等于4。如果数据内容CD2由名称NA2定义,传感节点SN2为能够采集数据内容CD2的孤立节点,且名称NA2的连通度值为CN2,传感节点SN2的任何邻居表项中的节点类型值均不为1且满足条件2,或者同时满足条件3、条件4和条件5的情况下,传感节点执行步骤301-307选举簇首节点并建立到达接入节点AP1的路由路径,例如节点ID分别为1234:2e45:3fec,4fce:2345:3fe8以及23fc:12ef:cdfe的传感节点被选举为簇首节点,这些簇首节点同时建立了到达接入节点AP1的路由路径。如果簇内节点M1的簇首节点为H1,簇内节点M1能够采集数据内容CD1,数据内容CD1由名称NA1定义,则簇内节点M1定期采集数据内容CD1的数据值并执行步骤401-406建立数据表,簇内节点M1向簇首节点H1发送一个采集消息,簇首节点H1针对该采集消息建立一个数据表项,例如该数据表项所在的数据表表名为Temperature,该数据表项的节点ID为12fe:23f8:4598,数据值为23度,生命周期为500ms。簇首节点H1利用自己的数据表定期执行步骤501-515向接入节点AP1上传自己的簇内节点采集的数据,从而使接入节点AP1保存最新的数据并进行监测,例如上传数据的名称为Temperature,数据值为25度,由于上传数据的过程采用数据融合机制上传数据,因此大幅度降低了数据上传的代价和延迟,同时减少了数据通信流量,提高了网络性能。性能分析如下:当数据长度较大的情况下,数据上传延迟随之增加,当数据长度减少的情况下,数据通信延迟随之稍微下降。数据获取的平均延迟为86.7ms。
表1仿真参数
本发明提供了一种基于数据融合机制的物联网空气监测系统的实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
一种基于数据融合机制的物联网空气监测系统的实现方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0