一种基于LoRa物联网的数据上报和指令下发方法技术

技术编号:19751560 阅读:54 留言:0更新日期:2018-12-12 05:49
一种基于LoRa物联网的节点数据上报和指令下发方法,所述节点数据上报方法包括:步骤S1‑1)LoRa网络节点按照自定义数据格式将数据包上报至LoRa网关;步骤S1‑2)LoRa网关按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,在数据包中添加入64位LoRa网关身份识别码,通过MQTT协议发送至MQTT服务器;步骤S1‑3)MQTT服务器按照自定义数据格式解析数据包,进校验和丢包检测通过后,对数据包的所有数据单元进行加密处理后,再将数据包通过MQTT协议发送至HTTP服务器;步骤S1‑4)HTTP服务器按照自定义数据格式解析数据包,校验和丢包检测通过后,对数据包的所有数据单元进行解密处理后,获取原始数据单元,再将数据包的各字段数据存入数据库。

【技术实现步骤摘要】
一种基于LoRa物联网的数据上报和指令下发方法
本专利技术涉及基于LoRa的物联网数据传输领域,特别涉及一种基于LoRa物联网的数据上报和指令下发方法。
技术介绍
LoRa作为一种广域物联网技术,具有远距离、低功耗、低运维成本等有点,目前已得到广泛应用,其主要应用于物联网节点的中短距离通讯,比如森林环境实时监控系统中传感节点与基塔通信,农场自动施肥灌溉系统中灌溉控制器与基站通信等。一个完整的基于LoRa的物联网系统包括LoRa网络节点、天线收发系统、LoRa网关、MQTT服务器、HTTP应用服务器、数据库和客户端等基本组成部分,各部分放置位置及作用各不相同。例如,在LoRa森林环境实时监控系统中,网络节点主要分布在需获取森林环境信息的检测区域,将传感器获取的环境信息通过节点天线向外传输;天线收发系统和LoRa网关则分布在节点附近的基塔上,天线收发系统获取节点上报数据后传输给LoRa网关,网关再通过光纤将数据传输到护林站,再传入互联网;至于MQTT服务器、HTTP应用服务器和数据库均部署在互联网的云端,主要接收、处理和存储节点上报的森林环境信息;最后客户端需要能接入互联网,实时查看数据库中存储的森林环境信息。基于LoRa的物联网系统在数据传输方面涉及环节众多,而且每个环节之间通信还需要携带很多参数信息,比如节点和网关通信需要携带LoRaWanClasses模式信息,网关和MQTT服务器通信需要携带网关身份识别码等。基于LoRa的物联网系统在数据传输方面涉及环节众多,且各环节参数个数及数据长度不一致;这就导致了系统数据传输及数据管理难度增大。因此,给出一套基于LoRa的完整通信协议就显得十分必要。
技术实现思路
本专利技术的目的在于克服上述技术问题,基于自定义的数据包格式,提出了一种基于LoRa物联网的数据上报和指令下发方法。为了实现上述目的,本专利技术提供了一种基于LoRa物联网的节点数据上报方法,用于将LoRa网络节点数据上报至数据库,所述方法包括:步骤S1-1)LoRa网络节点按照自定义数据格式将数据包上报至LoRa网关;步骤S1-2)LoRa网关按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,在数据包中添加入64位LoRa网关身份识别码,通过MQTT协议发送至MQTT服务器;步骤S1-3)MQTT服务器按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,对数据包的所有数据单元进行加密处理后,再将数据包通过MQTT协议发送至HTTP服务器;步骤S1-4)HTTP服务器按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,对数据包的所有数据单元进行解密处理后,获取原始数据单元,再将数据包的各字段数据存入数据库。作为上述方法的一种改进,所述步骤S1-1)的自定义数据格式包括:64位序号、64位节点身份识别码、32位固定头部、2位LoRaWanClasses、6位保留位、8位数据单元总数、8位包头、8位AppID、64位节点数据上报时间戳、16位校验和数据以及可变长的数据单元;所述64位序号用于记录发包顺序,做丢包检测;所述64位节点身份识别码用于标识节点的唯一身份;所述32位固定头部用于记录发包节点的类别、型号、数据包传输方向、最终指向;所述2位LoRaWan用于记录节点和天线收发系统通讯的模式,包含ClassA、ClassB、ClassC三种;所述8位数据单元总数用于记录数据包长度;所述8位包头用于记录节点硬件型号;所述8位AppID用于记录客户端软件版本;所述64位时间戳用于记录节点发包时间;所述16位校验用于校验传输数据,将16位校验和初始化为0,把数据包每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,再取其补码作为校验和的值;所述每个数据单元包含两个部分:16位单元类型字段和32位单元数据字段。作为上述方法的一种改进,所述步骤S1-2)包括:步骤S1-2-1)LoRa网关从步骤S1-1)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWanClasses、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、校验和以及所有数据单元;步骤S1-2-2)对解析出的各字段完整性和正确性进行校验,如果字段完整性和正确性不符合要求,则重传上一条数据包至LoRa网络节点,LoRa网络节点再次发送该条数据包至LoRa网关,转入步骤S1-2-1);否则,数据字段完整性和正确性校验通过,进入步骤S1-2-3);步骤S1-2-3)通过检测序号是否连续进行丢包检测,如果当前数据包和上一条数据包的序号不连续,则MQTT服务器返回指定序号数据重传信息至LoRa网络节点,LoRa网络节点再次发送缓存队列中指定序号的数据包至至LoRa网关,转入步骤S1-2-1);否则,丢包检测通过,进入步骤S1-2-4);步骤S1-2-4)在原数据包中添加入64位LoRa网关身份识别码,其中64位LoRa网关身份识别码用于标识LoRa网关的唯一身份;之后将16位校验和初始化为0,把数据包每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,取其补码作为新校验和,新校验和替代数据包中初始化校验和的值;步骤S1-2-5)将数据包通过MQTT协议发送至MQTT服务器。作为上述方法的一种改进,所述步骤S1-3)包括:步骤S1-3-1)MQTT服务器从步骤S1-2)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWanClasses、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、网关身份识别码、校验和以及所有数据单元;步骤S1-3-2)对解析出的各字段完整性和正确性进行校验,如果字段完整性和正确性不符合要求,则重传上一条数据包至LoRa网关,网关再次发送上一条数据包;转入步骤S1-3-1);否则,数据字段完整性和正确性校验通过,进入步骤S1-3-3);步骤S1-3-3)通过检测序号是否连续进行丢包检测,如果当前数据包和上一条数据包序号不连续,则MQTT服务器返回指定序号数据重传信息至LoRa网关,LoRa网关再次发送缓存队列中指定序号的数据包;转入步骤S1-3-1);否则,丢包检测通过,进入步骤S1-3-4);步骤S1-3-4)对所有数据单元进行加密算法处理,将加密数据单元替换掉原来的数据单元,之后将16位校验和初始化为0,把数据每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,取其补码作为新校验和,新校验和替代数据包中初始化校验和的值;步骤S1-3-4)将数据包通过MQTT协议发送至HTTP服务器。作为上述方法的一种改进,所述步骤S1-4)包括:步骤S1-4-1)HTTP服务器从步骤S1-3)上传的数据中解析出序号、节点身份识别码、固定头部、LoRaWanClasses、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、LoRa网关身份识别码、校验和以及所有数据单元;步骤S1-4-2)对解析出的各字段完整性和正确性进行校验,如果字段完整性和正确性不符合要求,则重传上一条数据至MQTT服务器,MQTT服务器再次发送上一条数本文档来自技高网
...

【技术保护点】
1.一种基于LoRa物联网的节点数据上报方法,用于将LoRa网络节点数据上报至数据库,所述方法包括:步骤S1‑1)LoRa网络节点按照自定义数据格式将数据包上报至LoRa网关;步骤S1‑2)LoRa网关按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,在数据包中添加入64位LoRa网关身份识别码,通过MQTT协议发送至MQTT服务器;步骤S1‑3)MQTT服务器按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,对数据包的所有数据单元进行加密处理后,再将数据包通过MQTT协议发送至HTTP服务器;步骤S1‑4)HTTP服务器按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,对数据包的所有数据单元进行解密处理后,获取原始数据单元,再将数据包的各字段数据存入数据库。

【技术特征摘要】
1.一种基于LoRa物联网的节点数据上报方法,用于将LoRa网络节点数据上报至数据库,所述方法包括:步骤S1-1)LoRa网络节点按照自定义数据格式将数据包上报至LoRa网关;步骤S1-2)LoRa网关按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,在数据包中添加入64位LoRa网关身份识别码,通过MQTT协议发送至MQTT服务器;步骤S1-3)MQTT服务器按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,对数据包的所有数据单元进行加密处理后,再将数据包通过MQTT协议发送至HTTP服务器;步骤S1-4)HTTP服务器按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,对数据包的所有数据单元进行解密处理后,获取原始数据单元,再将数据包的各字段数据存入数据库。2.根据权利要求1所述的基于LoRa物联网的节点数据上报方法,其特征在于,所述步骤S1-1)的自定义数据格式包括:64位序号、64位节点身份识别码、32位固定头部、2位LoRaWanClasses、6位保留位、8位数据单元总数、8位包头、8位AppID、64位节点数据上报时间戳、16位校验和数据以及可变长的数据单元;所述64位序号用于记录发包顺序,做丢包检测;所述64位节点身份识别码用于标识节点的唯一身份;所述32位固定头部用于记录发包节点的类别、型号、数据包传输方向、最终指向;所述2位LoRaWan用于记录节点和天线收发系统通讯的模式,包含ClassA、ClassB、ClassC三种;所述8位数据单元总数用于记录数据包长度;所述8位包头用于记录节点硬件型号;所述8位AppID用于记录客户端软件版本;所述64位时间戳用于记录节点发包时间;所述16位校验用于校验传输数据,将16位校验和初始化为0,把数据包每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,再取其补码作为校验和的值;所述每个数据单元包含两个部分:16位单元类型字段和32位单元数据字段。3.根据权利要求2所述的基于LoRa物联网的节点数据上报方法,其特征在于,所述步骤S1-2)包括:步骤S1-2-1)LoRa网关从步骤S1-1)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWanClasses、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、校验和以及所有数据单元;步骤S1-2-2)对解析出的各字段完整性和正确性进行校验,如果字段完整性和正确性不符合要求,则重传上一条数据包至LoRa网络节点,LoRa网络节点再次发送该条数据包至LoRa网关,转入步骤S1-2-1);否则,数据字段完整性和正确性校验通过,进入步骤S1-2-3);步骤S1-2-3)通过检测序号是否连续进行丢包检测,如果当前数据包和上一条数据包的序号不连续,则MQTT服务器返回指定序号数据重传信息至LoRa网络节点,LoRa网络节点再次发送缓存队列中指定序号的数据包至至LoRa网关,转入步骤S1-2-1);否则,丢包检测通过,进入步骤S1-2-4);步骤S1-2-4)在原数据包中添加入64位LoRa网关身份识别码,其中64位LoRa网关身份识别码用于标识LoRa网关的唯一身份;之后将16位校验和初始化为0,把数据包每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,取其补码作为新校验和,新校验和替代数据包中初始化校验和的值;步骤S1-2-5)将数据包通过MQTT协议发送至MQTT服务器。4.根据权利要求3所述的基于LoRa物联网的节点数据上报方法,其特征在于,所述步骤S1-3)包括:步骤S1-3-1)MQTT服务器从步骤S1-2)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWanClasses、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、网关身份识别码、校验和以及所有数据单元;步骤S1-3-2)对解析出的各字段完整性和正确性进行校验,如果字段完整性和正确性不符合要求,则重传上一条数据包至LoRa网关,网关再次发送上一条数据包;转入步骤S1-3-1);否则,数据字段完整性和正确性校验通过,进入步骤S1-3-3);步骤S1-3-3)通过检测序号是否连续进行丢包检测,如果当前数据包和上一条数据包序号不连续,则MQTT服务器返回指定序号数据重传信息...

【专利技术属性】
技术研发人员:李松斌刘鹏陈敬虎
申请(专利权)人:中国科学院声学研究所南海研究站
类型:发明
国别省市:海南,46

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1