一种基于边缘计算与区块链的LORA物联网环境数据采集与上链实现方法转让专利
申请号 : CN201811086769.4
文献号 : CN109194761B
文献日 : 2021-03-30
发明人 : 司鹏搏 , 王道魁 , 李萌 , 杨睿哲 , 孙恩昌 , 张延华
申请人 : 北京工业大学
摘要 :
权利要求 :
1.一种基于边缘计算与区块链的LORA物联网环境数据采集与上链实现方法,其特征在于,该方法的实现系统架构如下:服务器实现区块链数据储存和至少一个LORA边缘网关通信;所述LORA边缘网关和至少一个边缘数据采集与处理模块通信;
边缘数据采集与处理模块:该模块实现环境数据采集功能,边缘计算与储存功能和数据转发与接收功能;环境数据采集功能的实现通过各类传感器实现环境信息的采集,数据转发与接收功能通过将打包好的数据通过LOAR节点发给LORA网关,并接收LORA网关发送过来的信息;
LORA边缘网关,LORA边缘网关通过3G/4G/GPRS与服务器连接;该LORA边缘网关用于接收来自服务器端的采集命令并输出给边缘数据采集与处理模块,以及接收来自边缘采集与处理模块的数据转发给服务器;
服务器端:实现将边缘采集与处理模块发送上来的预定数据格式的环境数据存入区块链数据库中,以及方便后期的检索与显示;
实现包括以下步骤:
步骤1:搭建环境数据采集硬件电路系统;
步骤1.1:采用STM32F103VE作为边缘MCU,采用LND433系列LORA模块作为无线数据传输,传感器采用SDS011激光粉尘传感器和DHT11数字温湿度传感器进行环境参数采集;边缘MCU通过单总线与DHT11连接,通过USART3与SDS011连接,通过UART5与LND433节点连接,LND433节点通过无线方式与LORA边缘网关通信,通行采用的频率为433MHZ,传输速率为
115kbps,LORA边缘网关通过3G无线网与服务器进行通信;
步骤2:搭建软件调试环境;
步骤2.1:采用STM32F103VE作为边缘处理器进行边缘计算;
步骤3:编写传感器数据采集驱动程序,采集环境数据信息;
步骤3.1:编写DHT11温湿度传感器的驱动程序,采集到的环境温度信息和湿度信息存储;
步骤3.2:由于SDS011激光粉尘传感器工作在主动上报或者查询模式,所以首先将SDS011激光粉尘传感器通过PC机将其设置成查询模式,通过给传感器发送查询指令查询当前传感器采集的环境中的PM2.5和PM10的数据并存储在数组DATA2;
步骤4:对采集的数据进行格式转换;
步骤4.1在边缘处理器MCU上对采集到的二进制温湿度数据转换成十六进制的数据;
DHT11的数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和,转换成十六进制存在数组DATA1中如下表2:DATA1[0] DATA1[1] DATA1[2] DATA1[3] DATA1[4] 湿度整数数据 湿度小数数据 温度整数数据 温度小数数据 校验和 步骤5:对数据进行清洗,去除由于传输过程中出现的误差数据;
步骤5.1在边缘处理器MCU上利用协议中检验和的方法对采集到的温度、湿度、PM2.5、PM10数据进行检验,初步去除误差数据;
如表1和表2的储存数据数组所示,进行如下校验:DATA1[4]=DATA1[0]+DATA1[1]+DATA1[2]+DATA1[3];
DATA2[8]=0x00FF&(DATA2[2]+DATA2[3]+DATA2[4]+DATA2[5]);
当以上校验等式成立时,说明数据传输过程中没有出现错误,反之说明数据在传输过程中出现误差,数据做异样数据处理;
步骤6:在边缘处理器上采用限幅滤波算法进一步对采集到的数据进行清洗;
步骤6.1DHT11的温度范围0‑50℃,所以设定阈值对超过50℃或者低于0℃的异常采样值进行剔除;湿度范围20‑90%,设定阈值下限为20,上线为90对异常采样数据进行剔除;
步骤6.2PM2.5和PM10设定阈值上限为500,下限为0对其异常值进行剔除;
步骤7在边缘处理器MCU上通过采用高通滤波算法和卡尔曼滤波算法来计算出当前的温度、湿度、PM2.5、PM10;
步骤7.1数字高通滤波算法通式为X[n]=k1*X[n‑1]+k2*Y,X[n]当前滤波结果值,X[n‑
1]前一个值,Y为当前值,k1、k2为滤波系数,其中,该方法中k1取0.2,k2取0.8满足动态性能的要求;
步骤7.2卡尔曼滤波算法:基于前一个历史状态预测当前状态值,此处采用简化的一阶卡尔曼滤波,减少滤波过程的运算量,卡尔曼滤波的系数设定Q=2,R=0.01;Q为系统过程的协方差,R为测量过程的协方差;
步骤8在边缘处理器MCU上对温度、湿度、PM2.5、PM10设定预警值,对观测值进行预警;
对温度警告,其值如下表3所示
对湿度警告,其值如下表4所示
预警选项 值
湿度正常 0x00
湿度过低 0x03
湿度过高 0x04
对PM2.5警告,其值如下表5所示预警选项 值
PM2.5正常 0x00
PM2.5过低 0x05
PM2.5过高 0x06
对PM10警告,其值如下表6所示预警选项 值
PM10正常 0x00
PM10过低 0x07
PM10过高 0x08
传感器异常警告,其值如下表7所示:预警选项 值
温湿度(DHT11)工作异常 0x09 激光粉尘传感器(SDS011)工作异常 0x0A 步骤9在边缘处理器MCU上对获取的温度、湿度、PM2.5、PM10数据进行整理后统一打包发送给LORA结点,数据包的协议由自己设定;协议设定原则:只发送必要信息,减小数据包的长度,减小网络负载;数据包发送原则:正常情况下只发送表8的数据包,出现异常情况时只发表9的数据包,目的是减小网络负载;
正常情况下发送数据包协议如下表8:异常情况下的数据包协议如下表9:步骤10所述LORA节点采用主动上报的方式,所述LORA节点接收到由边缘节点发送过来的数据包后,进行相应处理后,转发给LORA网关;
步骤11由LORA网关对数据进行加密后通过3G\4G上传接入服务器;
步骤12接入服务器接收收到LORA网关发送上来的数据后,进行解密;通过验证上传数据的数据头来判断数据是否需要存储;如果是预定协议环境数据信息则进行步骤13,否则丢弃数据包;
步骤13将上传的环境信息数据通过采用数据加密算法产生一个私钥;再通过采用加密算法进行处理,从私钥导出公钥,将公钥存储到后台管理数据库中用于后续查询;根据下表
10的格式,生成存储的数据条;如果没有上一个区块号,则设置为0;接着接入服务器发送验证请求至验证服务器;
步骤14验证服务器获得客户的存储请求,获得数据条;查询已有记录判断该区块是否存在,如已存在则忽略;验证服务器对数据条中的历史区块进行验证,确认合法性及序列号的正确性,并发送验证结果至其他验证节点;验证成功后将数据条写入区块链系统中相应的区块链中;未符合要求的数据条进入下一次共识,直到共识完成或者超时;
步骤15客户通过发送查询命令到接入服务器,接入服务器访问已验证的区块,根据公钥找出已存储记录并且回溯得到所有的历史记录,然后将结果回馈给客户。
说明书 :
一种基于边缘计算与区块链的LORA物联网环境数据采集与上
链实现方法
技术领域
背景技术
执行设备构成,其位置布局也相对分散。其中,传感器信号采集节点数量众多,也不具备数
据储存及转换能力;如果将所有采集的数据上传云端进行处理,则会增加网络的负担,严重
时导致网络全面瘫痪;这使得对于物联网数据的采集、分析、储存等处理变得困难。边缘计
算融合了网络、计算、储存、应用的核心能力,可以弥补现有物联网传感器系统在传感器信
号采集与处理上的缺陷,同时又可以解决物联网传感器系统高实时性与互联网服务质量不
佳的不确定性问题。边缘计算正是充分利用物端的嵌入式计算能力,以分布式信息处理的
方式实现物端的智能与自治,并与云端结合,实现对传感器系统的智慧运营。同时,针对物
联网采集数据容易被篡改,造成数据可信度低的问题,利用区块链的不可篡改和不可伪造
的特性保证上传数据的安全性、可靠性。
点进行处理,最后将云端请求的数据上传云端服务器,以此降低云服务器的计算负载。
存简单的、有先后关系的、能在系统内验证的数据。
发明内容:
问题的可行性方法。
例如通过温湿度传感器采集环境温度和湿度信息、激光粉尘传感器采集环境中PM2.5和
PM10信息等;边缘计算与存储功能的实现是基于32位的ARM微处理器对采集的数据进行处
理与存储;数据转发与接收功能通过将打包好的数据通过 LOAR节点发给LORA网关,并接收
LORA网关发送过来的信息。
缘网关用于接收来自服务器端的采集命令并输出给边缘数据采集与处理模块,以及接收来
自边缘采集与处理模块的数据转发给服务器。
高通滤波算法进行初步滤波,然后再进行卡尔曼滤波;并且对于融合算法中卡尔曼滤波算
法进行简化为一阶卡尔曼滤波算法;对于融合算法中的高通滤波系数和卡尔曼滤波系数的
设定基于满足该算法的动态响应性能和收敛性的原则。
节点发送给LORA边缘网关,再由网关上发服务器;可选地,在大量边缘节点接入边缘网关
时,可以采用LORA节点轮循上报的模式,避免发生网络阻塞。
缘计算,对获取的环境数据进行预处理减小之后数据处理和分析的计算量、提高计算效率、
减少网络传输负载、减少网络传输时延、节省能耗;利用区块链储存技术保证数据储存的可
信性、安全性。
说明书、权利要求书、以及附图来实现和获得。
附图说明
具体实施方式
构成对本发明方法的限制。
集,例如,如图2通过温湿度传感器采集环境温度和湿度信息、激光粉尘传感器采集环境中
PM2.5和 PM10信息;边缘计算处理器STM32F103VE通过单总线方式获取环境温湿度信息数
据,通过USART3获取PM2.5和PM10的信息数据,并对采集的数据进行处理与存储;数据转发
与接收功能是边缘计算处理器 STM32F103VE按照预定格式打包好的数据通过UART发给
LOAR节点,再由LOAR节点转发发给LORA网关,并接收LORA网关发送过来的信息。
LORA边缘网关5用于接收来自服务器端7的采集命令并输出给边缘数据采集与处理模块 1,
以及接收来自边缘采集与处理模块1的数据转发给服务器7。
集;如图2,边缘MCU通过单总线与DHT11连接,通过USART3与SDS011连接,通过UART5与
LND433节点连接,LND433节点通过无线方式与LORA边缘网关通信,通行采用的频率为
433MHZ,传输速率为115kbps,LORA边缘网关通过 3G无线网与服务器进行通信。
hd.s‑‑‑向工程中添加软件接口标准文件core_m3.c、system_stm32f10x.c‑‑‑向工程中添
加外设驱动程序‑‑‑向工程中添加主函数main.c,到此为止软件调试环境搭建完成。
04 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 02 AB)查询当前传感器采集的环境中
的 PM2.5和PM10的数据并存储在数组DATA2中如下表1:
度小数数据+8bit校验和,转换成十六进制存在数组DATA1中如下表2:
除。
统设计的动态性和收敛性。
性能的要求。
过程的协方差,R为测量过程的协方差。
温度过低 0x01
温度过高 0x02
湿度过低 0x03
湿度过高 0x04
PM10正常 0x00
PM10过低 0x07
PM10过高 0x08
否则丢弃数据包。
下表10的格式,生成存储的数据条;如果没有上一个区块号,则设置为0;接着接入服务器发
送验证请求至验证服务器。
列号的正确性,并发送验证结果至其他验证节点;验证成功后将数据条写入区块链系统中
相应的区块链中;未符合要求的数据条进入下一次共识,直到共识完成或者超时。