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:结束。