一种基于边缘计算与区块链的LORA物联网环境数据采集与上链实现方法转让专利

申请号 : CN201811086769.4

文献号 : CN109194761B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 司鹏搏王道魁李萌杨睿哲孙恩昌张延华

申请人 : 北京工业大学

摘要 :

一种基于边缘计算与区块链的LORA物联网环境数据采集与上链实现方法属于物联网数据采集与储存相关领域。该机制提供克服上述问题或者至少部分地解决上述问题的可行性方法。该方法的实现系统架构如下:服务器实现区块链数据储存和至少一个LORA边缘网关通信;LORA组网技术满足物联网环境下的大量边缘设备接入需求,低成本;利用嵌入式微处理器实现边缘计算,对获取的环境数据进行预处理减小之后数据处理和分析的计算量、提高计算效率、减少网络传输负载、减少网络传输时延、节省能耗;利用区块链储存技术保证数据储存的可信性、安全性。

权利要求 :

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物联网环境数据采集与上

链实现方法

技术领域

[0001] 本发明属于物联网数据采集与储存相关领域,尤其涉及一种基于边缘计算与区块链的LORA物联网环境数据采集与上链机制。

背景技术

[0002] 随着信息技术及物联网技术的快速发展,数据已经成为影响行业升级和改造的重要因素。在现阶段的物联网环境数据采集系统中,是由多种类型的控制设备、传感器设备及
执行设备构成,其位置布局也相对分散。其中,传感器信号采集节点数量众多,也不具备数
据储存及转换能力;如果将所有采集的数据上传云端进行处理,则会增加网络的负担,严重
时导致网络全面瘫痪;这使得对于物联网数据的采集、分析、储存等处理变得困难。边缘计
算融合了网络、计算、储存、应用的核心能力,可以弥补现有物联网传感器系统在传感器信
号采集与处理上的缺陷,同时又可以解决物联网传感器系统高实时性与互联网服务质量不
佳的不确定性问题。边缘计算正是充分利用物端的嵌入式计算能力,以分布式信息处理的
方式实现物端的智能与自治,并与云端结合,实现对传感器系统的智慧运营。同时,针对物
联网采集数据容易被篡改,造成数据可信度低的问题,利用区块链的不可篡改和不可伪造
的特性保证上传数据的安全性、可靠性。
[0003] 边缘计算(Egde Computing)是指在网络边缘执行计算的一种新型模型。该模型提出将原有云服务器中心上运行的计算任务进行分解,然后将分解的计算任务迁移到边缘节
点进行处理,最后将云端请求的数据上传云端服务器,以此降低云服务器的计算负载。
[0004] 区块链(BlockChain)是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账,能够安全储
存简单的、有先后关系的、能在系统内验证的数据。
发明内容:
[0005] 针对现有技术中存在的问题,本发明提供了一种基于边缘计算与区块链的LORA物联网环境数据采集与上链的实现机制,该机制提供克服上述问题或者至少部分地解决上述
问题的可行性方法。
[0006] 一种基于边缘计算与区块链的LORA物联网环境数据采集与上链实现方法,该方法的实现系统架构如下:
[0007] 服务器实现区块链数据储存和至少一个LORA边缘网关通信;所述LORA边缘网关和至少一个边缘数据采集与处理模块通信。
[0008] 边缘数据采集与处理模块:该模块实现环境数据采集功能,边缘计算与储存功能和数据转发与接收功能;环境数据采集功能的实现通过各类传感器实现环境信息的采集,
例如通过温湿度传感器采集环境温度和湿度信息、激光粉尘传感器采集环境中PM2.5和
PM10信息等;边缘计算与存储功能的实现是基于32位的ARM微处理器对采集的数据进行处
理与存储;数据转发与接收功能通过将打包好的数据通过 LOAR节点发给LORA网关,并接收
LORA网关发送过来的信息。
[0009] LORA边缘网关,LORA边缘网关通过3G/4G/GPRS与服务器连接;多个边缘数据采集与处理模块和LORA边缘网关可以构成星型网络,满足物联网大容量接入的要求;该LORA边
缘网关用于接收来自服务器端的采集命令并输出给边缘数据采集与处理模块,以及接收来
自边缘采集与处理模块的数据转发给服务器。
[0010] 服务器端:主要实现将边缘采集与处理模块发送上来的预定数据格式的环境数据存入区块链数据库中,以及方便后期的检索与显示。
[0011] 所述方法实现包括以下步骤:
[0012] 步骤1:根据上述系统架构,搭建测试系统;该系统包括至少一个边缘数据采集与处理模块,至少一个LORA边缘网关与服务器连接。
[0013] 步骤2:搭建软件调试环境;主要是搭建在嵌入式ARM微处理器上和LORA边缘节点上的软件调试环境;
[0014] 步骤3:编写传感器数据采集驱动程序,采集相关环境数据信息。
[0015] 步骤4:在所述边缘处理器上对采集的数据进行格式转换,统一转换成十六进制数字进行存储;
[0016] 步骤5:在所述边缘处理器上对数据进行清洗,通过校验和的方法去除由于传输过程中出现的误差数据。
[0017] 步骤6:在所述边缘处理器上采用限幅滤波算法进一步对采集到的数据进行清洗。
[0018] 步骤7:在所述边缘处理器上对传感器的数据的误差进行校正以及漂移补偿,运用卡尔曼滤波算法和高通滤波算法进行融合来对数据进行滤波处理,采集数据首先经过离散
高通滤波算法进行初步滤波,然后再进行卡尔曼滤波;并且对于融合算法中卡尔曼滤波算
法进行简化为一阶卡尔曼滤波算法;对于融合算法中的高通滤波系数和卡尔曼滤波系数的
设定基于满足该算法的动态响应性能和收敛性的原则。
[0019] 步骤8:在所述边缘处理器上对相应的环境数据进行预警值设定,对环境变化进行预警处理上传预定格式的预警信息。
[0020] 步骤9:在所述边缘处理器上对边缘处理器连接的传感器进行监听,对发现工作异常的传感器信息按预定数据格式上报服务器,为及时排查故障提供信息。
[0021] 步骤10:在所述边缘处理器上对收集到的环境信息按照在区块链存储中预定设置好的协议进行数据格式打包;然后采用主动上报的方式将数据包发送给LORA节点,由LORA
节点发送给LORA边缘网关,再由网关上发服务器;可选地,在大量边缘节点接入边缘网关
时,可以采用LORA节点轮循上报的模式,避免发生网络阻塞。
[0022] 步骤11:服务器接收到上报的环境信息数据后,通过共识系统对数据进行共识,然后将共识并验证后的数据预定格式写入区块链数据库中。
[0023] 本发明方法优点和积极效果是:
[0024] 提供一种基于边缘计算与区块链的LORA物联网环境数据采集与上链机制,LORA组网技术满足物联网环境下的大量边缘设备接入需求,低成本;利用嵌入式微处理器实现边
缘计算,对获取的环境数据进行预处理减小之后数据处理和分析的计算量、提高计算效率、
减少网络传输负载、减少网络传输时延、节省能耗;利用区块链储存技术保证数据储存的可
信性、安全性。
[0025] 本发明方法的其他特征和优点将在随后的说明书中阐明,并且,部分的从说明书中变得显而易见,或者通过实施本发明方法而了解。本发明的目的和优点可通过在所写的
说明书、权利要求书、以及附图来实现和获得。
[0026] 下面通过附图和实施例,对本发明方法做进一步的详细描述。

附图说明

[0027] 图1为本发明方法的实施例中的系统功能模块示意图。
[0028] 图2为本发明方法实施例中的边缘数据采集与处理模块方框图。

具体实施方式

[0029] 下面结合附图对本发明的具体实施方式进行详细说明。附图用来提供对本发明方法的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不
构成对本发明方法的限制。
[0030] 如图1所示,一种基于边缘计算与区块链的LORA物联网环境数据采集与上链实现方法,该方法的实现系统架构如下:
[0031] 服务器7实现区块链数据储存8和至少一个LORA边缘网关5通信;所述LORA边缘网关5和至少一个边缘数据采集与处理模块1通信。
[0032] 边缘数据采集与处理模块1:该模块1实现环境数据采集功能,边缘计算与储存功能和数据转发与接收功能;环境数据采集功能的实现通过各类传感器实现环境信息的采
集,例如,如图2通过温湿度传感器采集环境温度和湿度信息、激光粉尘传感器采集环境中
PM2.5和 PM10信息;边缘计算处理器STM32F103VE通过单总线方式获取环境温湿度信息数
据,通过USART3获取PM2.5和PM10的信息数据,并对采集的数据进行处理与存储;数据转发
与接收功能是边缘计算处理器 STM32F103VE按照预定格式打包好的数据通过UART发给
LOAR节点,再由LOAR节点转发发给LORA网关,并接收LORA网关发送过来的信息。
[0033] LORA边缘网关5,LORA边缘网关5通过3G/4G/GPRS与服务器7 连接;多个边缘数据采集与处理模块1和LORA边缘网关5可以构成星型网络,满足物联网大容量接入的要求;该
LORA边缘网关5用于接收来自服务器端7的采集命令并输出给边缘数据采集与处理模块 1,
以及接收来自边缘采集与处理模块1的数据转发给服务器7。
[0034] 服务器端7:主要实现将边缘采集与处理模块1发送上来的预定数据格式的环境数据存入区块链数据库8中,以及方便后期的检索与显示。
[0035] 该实施例具体实现方法的详细实施步骤如下:
[0036] 步骤1:搭建环境数据采集硬件电路系统。
[0037] 步骤1.1:采用STM32F103VE作为边缘MCU,采用LND433系列 LORA模块作为无线数据传输,传感器采用SDS011激光粉尘传感器和 DHT11数字温湿度传感器进行环境参数采
集;如图2,边缘MCU通过单总线与DHT11连接,通过USART3与SDS011连接,通过UART5与 
LND433节点连接,LND433节点通过无线方式与LORA边缘网关通信,通行采用的频率为
433MHZ,传输速率为115kbps,LORA边缘网关通过 3G无线网与服务器进行通信。
[0038] 步骤2:搭建软件调试环境。
[0039] 步骤2.1:采用STM32F103VE作为边缘处理器进行边缘计算,所以搭建一个在STM32F103VE上运行环境,步骤:新建工程‑‑‑向工程中添加启动文件startup_stm32f103x_
hd.s‑‑‑向工程中添加软件接口标准文件core_m3.c、system_stm32f10x.c‑‑‑向工程中添
加外设驱动程序‑‑‑向工程中添加主函数main.c,到此为止软件调试环境搭建完成。
[0040] 步骤3:编写传感器数据采集驱动程序,采集环境数据信息。
[0041] 步骤3.1:编写DHT11温湿度传感器的驱动程序,采集到的环境温度信息和湿度信息存储。
[0042] 步骤3.2:由于SDS011激光粉尘传感器工作在主动上报或者查询模式,所以首先将SDS011激光粉尘传感器通过PC机将其设置成查询模式,通过给传感器发送查询指令(AA B4 
04 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 02 AB)查询当前传感器采集的环境中
的 PM2.5和PM10的数据并存储在数组DATA2中如下表1:
[0043]
[0044] 步骤4:对采集的数据进行格式转换。
[0045] 步骤4.1在边缘处理器MCU上对采集到的二进制温湿度数据转换成十六进制的数据。DHT11的数据格式:8bit湿度整数数据+8bit 湿度小数数据+8bi温度整数数据+8bit温
度小数数据+8bit校验和,转换成十六进制存在数组DATA1中如下表2:
[0046] DATA1[0] DATA1[1] DATA1[2] DATA1[3] DATA1[4]湿度整数数据 湿度小数数据 温度整数数据 温度小数数据 校验和
[0047] 步骤5:对数据进行清洗,去除由于传输过程中出现的误差数据。
[0048] 步骤5.1在边缘处理器MCU上利用协议中检验和的方法对采集到的温度、湿度、PM2.5、PM10数据进行检验,初步去除误差数据。
[0049] 如表1和表2的储存数据数组所示,进行如下校验:
[0050] DATA1[4]=DATA1[0]+DATA1[1]+DATA1[2]+DATA1[3];
[0051] DATA2[8]=0x00FF&(DATA2[2]+DATA2[3]+DATA2[4]+ DATA2[5]);
[0052] 当以上校验等式成立时,说明数据传输过程中没有出现错误,反之说明数据在传输过程中出现误差,数据做异样数据处理。
[0053] 步骤6:在边缘处理器上采用限幅滤波算法进一步对采集到的数据进行清洗。
[0054] 步骤6.1 DHT11的温度范围0‑50℃,所以设定阈值对超过50℃或者低于0℃的异常采样值进行剔除。湿度范围20‑90%,设定阈值下限为20,上线为90对异常采样数据进行剔
除。
[0055] 步骤6.2 PM2.5和PM10设定阈值上限为500,下限为0对其异常值进行剔除。
[0056] 步骤7在边缘处理器MCU上通过采用高通滤波算法和卡尔曼滤波算法来计算出当前的温度、湿度、PM2.5、PM10,通过该算法来减小测量值与实际值之间的误差,可以满足系
统设计的动态性和收敛性。
[0057] 步骤7.1数字高通滤波算法通式为X[n]=k1*X[n‑1]+k2*Y,X[n] 当前滤波结果值,X[n‑1]前一个值,Y为当前值,k1、k2为滤波系数,其中,该方法中k1取0.2,k2取0.8满足动态
性能的要求。
[0058] 步骤7.2卡尔曼滤波算法:基于前一个历史状态预测当前状态值,此处采用简化的一阶卡尔曼滤波,减少滤波过程的运算量,卡尔曼滤波的系数设定Q=2,R=0.01;Q为系统
过程的协方差,R为测量过程的协方差。
[0059] 步骤8在边缘处理器MCU上对温度、湿度、PM2.5、PM10设定预警值,对观测值进行预警;
[0060] 对温度警告,其值如下表3所示
[0061] 预警选项 值温度正常 0x00
温度过低 0x01
温度过高 0x02
[0062] 对湿度警告,其值如下表4所示
[0063] 预警选项 值湿度正常 0x00
湿度过低 0x03
湿度过高 0x04
[0064] 对PM2.5警告,其值如下表5所示
[0065]
[0066]
[0067] 对PM10警告,其值如下表6所示
[0068]预警选项 值
PM10正常 0x00
PM10过低 0x07
PM10过高 0x08
[0069] 传感器异常警告,其值如下表7所示:
[0070]
[0071] 步骤9在边缘处理器MCU上对获取的温度、湿度、PM2.5、PM10 数据进行整理后统一打包发送给LORA结点,数据包的协议由自己设定;
[0072] 协议设定原则:只发送必要信息,减小数据包的长度,减小网络负载;
[0073] 数据包发送原则:正常情况下只发送表8的数据包,出现异常情况时只发表9的数据包,目的是减小网络负载。
[0074] 正常情况下发送数据包协议如下表8:
[0075]
[0076] 异常情况下的数据包协议如下表9:
[0077]
[0078] 步骤10所述LORA节点采用主动上报的方式,所述LORA节点接收到由边缘节点发送过来的数据包后,进行相应处理后,转发给 LORA网关。
[0079] 步骤11由LORA网关对数据进行加密后通过3G\4G上传接入服务器。
[0080] 步骤12接入服务器接收收到LORA网关发送上来的数据后,进行解密;通过验证上传数据的数据头来判断数据是否需要存储;如果是预定协议环境数据信息则进行步骤13,
否则丢弃数据包。
[0081] 步骤13将上传的环境信息数据通过采用数据加密算法产生一个私钥;再通过采用加密算法进行处理,从私钥导出公钥,将公钥存储到后台管理数据库中用于后续查询;根据
下表10的格式,生成存储的数据条;如果没有上一个区块号,则设置为0;接着接入服务器发
送验证请求至验证服务器。
[0082]
[0083] 步骤14验证服务器获得客户的存储请求,获得数据条;查询已有记录判断该区块是否存在,如已存在则忽略;验证服务器对数据条中的历史区块进行验证,确认合法性及序
列号的正确性,并发送验证结果至其他验证节点;验证成功后将数据条写入区块链系统中
相应的区块链中;未符合要求的数据条进入下一次共识,直到共识完成或者超时。
[0084] 步骤15客户通过发送查询命令到接入服务器,接入服务器访问已验证的区块,根据公钥找出已存储记录并且可以回溯得到所有的历史记录,然后将结果回馈给客户。