CN108989455A - 一种基于LoRa物联网的数据上报和指令下发方法 - Google Patents
一种基于LoRa物联网的数据上报和指令下发方法 Download PDFInfo
- Publication number
- CN108989455A CN108989455A CN201810916776.6A CN201810916776A CN108989455A CN 108989455 A CN108989455 A CN 108989455A CN 201810916776 A CN201810916776 A CN 201810916776A CN 108989455 A CN108989455 A CN 108989455A
- Authority
- CN
- China
- Prior art keywords
- data
- lora
- packet
- data packet
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G08—SIGNALLING
- G08C—TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
- G08C17/00—Arrangements for transmitting signals characterised by the use of a wireless electrical link
- G08C17/02—Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于LoRa物联网的节点数据上报和指令下发方法,所述节点数据上报方法包括:步骤S1‑1)LoRa网络节点按照自定义数据格式将数据包上报至LoRa网关;步骤S1‑2)LoRa网关按照自定义数据格式解析数据包,进行各字段完整性和正确性校验以及丢包检测,校验和检测通过后,在数据包中添加入64位LoRa网关身份识别码,通过MQTT协议发送至MQTT服务器;步骤S1‑3)MQTT服务器按照自定义数据格式解析数据包,进校验和丢包检测通过后,对数据包的所有数据单元进行加密处理后,再将数据包通过MQTT协议发送至HTTP服务器;步骤S1‑4)HTTP服务器按照自定义数据格式解析数据包,校验和丢包检测通过后,对数据包的所有数据单元进行解密处理后,获取原始数据单元,再将数据包的各字段数据存入数据库。
Description
技术领域
本发明涉及基于LoRa的物联网数据传输领域,特别涉及一种基于LoRa物联网的数据上报和指令下发方法。
背景技术
LoRa作为一种广域物联网技术,具有远距离、低功耗、低运维成本等有点,目前已得到广泛应用,其主要应用于物联网节点的中短距离通讯,比如森林环境实时监控系统中传感节点与基塔通信,农场自动施肥灌溉系统中灌溉控制器与基站通信等。
一个完整的基于LoRa的物联网系统包括LoRa网络节点、天线收发系统、LoRa网关、MQTT服务器、HTTP应用服务器、数据库和客户端等基本组成部分,各部分放置位置及作用各不相同。例如,在LoRa森林环境实时监控系统中,网络节点主要分布在需获取森林环境信息的检测区域,将传感器获取的环境信息通过节点天线向外传输;天线收发系统和LoRa网关则分布在节点附近的基塔上,天线收发系统获取节点上报数据后传输给LoRa网关,网关再通过光纤将数据传输到护林站,再传入互联网;至于MQTT服务器、HTTP应用服务器和数据库均部署在互联网的云端,主要接收、处理和存储节点上报的森林环境信息;最后客户端需要能接入互联网,实时查看数据库中存储的森林环境信息。
基于LoRa的物联网系统在数据传输方面涉及环节众多,而且每个环节之间通信还需要携带很多参数信息,比如节点和网关通信需要携带LoRaWan Classes模式信息,网关和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位LoRaWan Classes、6位保留位、8位数据单元总数、8位包头、8位AppID、64位节点数据上报时间戳、16位校验和数据以及可变长的数据单元;
所述64位序号用于记录发包顺序,做丢包检测;
所述64位节点身份识别码用于标识节点的唯一身份;
所述32位固定头部用于记录发包节点的类别、型号、数据包传输方向、最终指向;
所述2位LoRaWan用于记录节点和天线收发系统通讯的模式,包含Class A、ClassB、Class C三种;
所述8位数据单元总数用于记录数据包长度;
所述8位包头用于记录节点硬件型号;
所述8位AppID用于记录客户端软件版本;
所述64位时间戳用于记录节点发包时间;
所述16位校验用于校验传输数据,将16位校验和初始化为0,把数据包每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,再取其补码作为校验和的值;
所述每个数据单元包含两个部分:16位单元类型字段和32位单元数据字段。
作为上述方法的一种改进,所述步骤S1-2)包括:
步骤S1-2-1)LoRa网关从步骤S1-1)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、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)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、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)上传的数据中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、LoRa网关身份识别码、校验和以及所有数据单元;
步骤S1-4-2)对解析出的各字段完整性和正确性进行校验,如果字段完整性和正确性不符合要求,则重传上一条数据至MQTT服务器,MQTT服务器再次发送上一条数据包;转入步骤S1-3-1);否则,数据字段完整性和正确性校验通过,进入步骤S1-3-3);
步骤S1-4-3)通过检测序号是否连续进行丢包检测,如果当前数据包和上一条数据包序号不连续,如果当前数据包和上一条数据包序号不连续,则HTTP服务器返回指定序号数据重传信息至MQTT服务器,MQTT服务器则再次发送缓存队列中指定序号的数据,转入步骤S1-4-1);否则,丢包检测通过,进入步骤S1-4-4);
步骤S1-4-4)对所有加密数据单元进行解密算法处理,获取原始数据单元,再将各字段数据存入数据库。
本发明还提供了一种基于LoRa物联网的指令下发方法,用于将客户端指令下发至LoRa网络节点;所述方法具体包括:
步骤S2-1)客户端将64位下发指令、64位节点身份识别码和64位网关身份识别码每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,再通过HTTP协议将下发指令、LoRa节点身份识别码、LoRa网关识别码、校验位发送至HTTP服务器;
步骤S2-2)HTTP服务器从步骤S2-1)下发的数据中解析出下发指令、节点身份识别码、LoRa网关身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,则将下发指令、节点身份识别码、网关身份识别码和校验位通过MQTT协议发送至MQTT服务器;
步骤S2-3)MQTT服务器从步骤S2-2)下发的数据中解析出下发指令、节点身份识别码、LoRa网关身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,对下发指令做加密算法处理生成加密指令,将64位加密指令和64位节点身份识别码每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,最后再将加密指令、节点身份识别码和新的校验位通过MQTT协议发送至指定身份识别码的LoRa网关;
步骤S2-4)LoRa网关从步骤S2-3)下发的数据中解析出加密指令、节点身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,将64位加密指令每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,最后再将加密指令和新校验位通过LoRaWAN协议无线传输至指定身份识别码的LoRa网络节点;
步骤S2-5)LoRa网络节点从步骤S2-4)下发的数据中解析出加密指令和校验位,首先对加密指令进行完整性和正确性校验,如果下发指令完整性和正确性不符合要求,则丢弃该数据;如果加密指令完整性和正确性校验通过,LoRa网络节点对加密指令做解密算法处理获取原始下发指令,并按指令要求执行相关操作,之后LoRa网络节点将指令执行结果上报至HTTP服务器,存入数据库。
作为上述方法的一种改进,所述方法还包括:
步骤S2-6)客户端定时3分钟内每30秒检索一次数据库中指令执行结果,如果数据库中执行结果不匹配当前指令执行要求则再次发送执行指令,超过6次检索结果均不匹配当前执行指令则说明指令无法成功下发。
本发明的优势在于:
本发明提出了的基于LoRa的物联网节点数据上报和指令下发方法,能够有效解决数据传输过程中经常出现的数据出错、数据不完整、数据丢失以及数据与时间不对应等问题,有利于提升物联网系统的数据可靠性。
附图说明
图1是本发明的基于LoRa的物联网系统组成示意图;
图2是本发明的基于LoRa的物联网的数据上报方法的流程图;
图3是本发明的节点上报数据至LoRa网关的数据格式;
图4是本发明的LoRa网关上报数据至MQTT服务器的数据格式;
图5是本发明的MQTT服务器上报数据至HTTP服务器的数据格式;
图6是本发明的基于LoRa的物联网的指令下发方法的流程图。
具体实施方式
现结合附图和具体实施例对本发明做进一步的描述。
如图1所示,基于LoRa的物联网系统包括:LoRa网络节点、天线收发系统、LoRa网关、MQTT服务器、HTTP应用服务器、数据库、客户端(PAD、PC、PHONE);
所述LoRa网络节点部署在森林、农场、渔场等实际应用场景,节点自身具有数据处理能力,此外还能和天线收发系统进行数据的无线传输;
所述天线收发系统用于和LoRa网络节点进行一对多的无线通信,从而实现不同节点数据的汇聚和分发;
所述LoRa网关位于天线收发系统周边,通过有线形式和天线收发系统进行数据传输,LoRa网关具有互联网通信接口,能够与云端的服务器进行数据通信;
所述MQTT服务器位于云端,用于数据加密处理和中转,将接收的数据加密后转发至指定LoRa网关或HTTP服务器;
所述HTTP应用服务器位于云端,用于数据解密、保存和传输,将MQTT服务器传输的数据解密后存入数据库,或者将客户端下发指令传输给MQTT服务器;
所述数据库部署在云端,用于存储HTTP应用服务器接收到的上报数据并将数据提供给客户端;
所述客户端需要能够接入互联网,能够访问数据库数据或下发指令至HTTP应用服务器。
如图2所示,本发明提供了一种基于LoRa的物联网的数据上报方法,用于将LoRa节点数据上报至数据库;包括以下步骤:
步骤S1-1)LoRa网络节点按照自定义数据格式将数据上报至LoRa网关;
如图3所示,LoRa网络节点自定义数据格式包含64位序号、64位节点身份识别码、32位固定头部、2位LoRaWan Classes、6位保留位、8位数据单元总数、8位包头、8位AppID、64位节点数据上报时间戳、16位校验和数据以及可变长的数据单元。其中64位序号用于记录发包顺序,做丢包检测;64位节点身份识别码用于标识节点的唯一身份;32位固定头部用于记录发包节点的类别、型号、数据包传输方向、最终指向等;2位LoRaWan用于记录节点和天线收发系统通讯的模式,包含Class A、Class B、Class C三种;8位数据单元总数用于记录数据包长度;8位包头记录节点硬件型号;8位AppID记录客户端软件版本;64位时间戳记录节点发包时间;16位校验和用于校验传输数据,首先将16位校验和初始化为0,再按图3自定义数据格式把数据每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,最后再取其补码作为校验和的值;每个数据单元包含两个部分,分别是16位单元类型字段、32位单元数据字段;
步骤S1-2)LoRa网关从步骤S1-1)上传的数据中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、校验和以及所有数据单元,对各字段完整性和正确性校验,如果字段完整性和正确性不符合要求,则返回重传上一条数据至LoRa网络节点,LoRa网络节点则再次发送上一条数据;数据字段完整性和正确性校验通过后再进行丢包检测,主要检测序号是否连续,如果当前数据和上一条数据序号不连续则MQTT服务器返回指定序号数据重传信息至LoRa节点,节点则再次发送缓存队列中指定序号的数据,如果丢包检测通过则向原数据包中添加入64位LoRa网关身份识别码,之后将16位校验和初始化为0,再按图4自定义数据格式把数据每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,最后取其补码作为新校验和,新校验和替代数据包中初始化校验和的值,再将数据包通过MQTT协议发送至MQTT服务器,其中64位LoRa网关身份识别码用于标识LoRa网关的唯一身份;
步骤S1-3)MQTT服务器从步骤S1-2)上传的数据中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、网关身份识别码、校验和以及所有数据单元,对各字段完整性和正确性校验,如果字段完整性和正确性不符合要求,则返回重传上一条数据至LoRa网关,网关则再次发送上一条数据;数据字段完整性和正确性校验通过后再进行丢包检测,主要检测序号是否连续,如果当前数据和上一条数据序号不连续则MQTT服务器返回指定序号数据重传信息至LoRa网关,网关则再次发送缓存队列中指定序号的数据,如果丢包检测通过则将所有数据单元进行加密算法处理,将加密数据单元替换掉原来的数据单元,之后将16位校验和初始化为0,再按图5自定义数据格式把数据每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,最后取其补码作为新校验和,新校验和替代数据包中初始化校验和的值,再将数据包通过MQTT协议发送至HTTP服务器;
步骤S1-4)HTTP服务器从步骤S1-3)上传的数据中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、网关身份识别码、校验和以及所有数据单元,对各字段完整性和正确性校验,如果字段完整性和正确性不符合要求,则返回重传上一条数据至MQTT服务器,MQTT服务器则再次发送上一条数据;数据字段完整性和正确性校验通过后再进行丢包检测,主要检测序号是否连续,如果当前数据和上一条数据序号不连续则HTTP服务器返回指定序号数据重传信息至MQTT服务器,MQTT服务器则再次发送缓存队列中指定序号的数据,如果丢包检测通过则对所有加密数据单元进行解密算法处理,获取原始数据单元,再将各字段数据存入数据库。
如图6所示,本发明提供了一种基于LoRa物联网的指令下发方法,用于将客户端指令下发至LoRa节点;包括以下步骤:
步骤S2-1)客户端(PAD、PC、PHONE)将64位下发指令、64位节点身份识别码和64位网关身份识别码每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,再通过HTTP协议将下发指令、LoRa节点身份识别码、LoRa网关识别码、校验位发送至HTTP服务器;
步骤S2-2)HTTP服务器从步骤S2-1)下发的数据中解析出下发指令、节点身份识别码、网关身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,则将下发指令、节点身份识别码、网关身份识别码和校验位通过MQTT协议发送至MQTT服务器;
步骤S2-3)MQTT服务器从步骤S2-2)下发的数据中解析出下发指令、节点身份识别码、网关身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,对下发指令做加密算法处理生成加密指令,将64位加密指令和64位节点身份识别码每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,最后再将加密指令、节点身份识别码和新的校验位通过MQTT协议发送至指定身份识别码的LoRa网关;
步骤S2-4)LoRa网关从步骤S2-3)下发的数据中解析出加密指令、节点身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,将64位加密指令每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,最后再将加密指令和新校验位通过LoRaWAN协议无线传输至指定身份识别码的LoRa网络节点;
步骤S2-5)LoRa网络节点从步骤S2-4)下发的数据中解析出加密指令和校验位,首先对加密指令进行完整性和正确性校验,如果下发指令完整性和正确性不符合要求,则丢弃该数据;如果加密指令完整性和正确性校验通过,节点对加密指令做解密算法处理获取原始下发指令,并按指令要求执行相关操作,之后节点再通过步骤S1-1)至步骤S1-4)将指令执行结果上报至HTTP服务器,存入数据库;
步骤S2-6)客户端定时3分钟内每30秒检索一次数据库中指令执行结果,如果数据库中执行结果不匹配当前指令执行要求则再次发送执行指令,超过6次检索结果均不匹配当前执行指令则说明指令无法成功下发。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
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用于记录节点和天线收发系统通讯的模式,包含Class A、Class B、Class C三种;
所述8位数据单元总数用于记录数据包长度;
所述8位包头用于记录节点硬件型号;
所述8位AppID用于记录客户端软件版本;
所述64位时间戳用于记录节点发包时间;
所述16位校验用于校验传输数据,将16位校验和初始化为0,把数据包每16bit分成一组,再将所有16bit的二进制数进行带循环进位的加法,再取其补码作为校验和的值;
所述每个数据单元包含两个部分:16位单元类型字段和32位单元数据字段。
3.根据权利要求2所述的基于LoRa物联网的节点数据上报方法,其特征在于,所述步骤S1-2)包括:
步骤S1-2-1)LoRa网关从步骤S1-1)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、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)上传的数据包中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、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服务器。
5.根据权利要求4所述的基于LoRa物联网的节点数据上报方法,其特征在于,所述步骤S1-4)包括:
步骤S1-4-1)HTTP服务器从步骤S1-3)上传的数据中解析出序号、节点身份识别码、固定头部、LoRaWan Classes、保留位、数据单元总数、包头、AppID、节点数据上报时间戳、LoRa网关身份识别码、校验和以及所有数据单元;
步骤S1-4-2)对解析出的各字段完整性和正确性进行校验,如果字段完整性和正确性不符合要求,则重传上一条数据至MQTT服务器,MQTT服务器再次发送上一条数据包;转入步骤S1-3-1);否则,数据字段完整性和正确性校验通过,进入步骤S1-3-3);
步骤S1-4-3)通过检测序号是否连续进行丢包检测,如果当前数据包和上一条数据包序号不连续,如果当前数据包和上一条数据包序号不连续,则HTTP服务器返回指定序号数据重传信息至MQTT服务器,MQTT服务器则再次发送缓存队列中指定序号的数据,转入步骤S1-4-1);否则,丢包检测通过,进入步骤S1-4-4);
步骤S1-4-4)对所有加密数据单元进行解密算法处理,获取原始数据单元,再将各字段数据存入数据库。
6.一种基于LoRa物联网的指令下发方法,用于将客户端指令下发至LoRa网络节点;所述方法具体包括:
步骤S2-1)客户端将64位下发指令、64位节点身份识别码和64位网关身份识别码每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,再通过HTTP协议将下发指令、LoRa节点身份识别码、LoRa网关识别码、校验位发送至HTTP服务器;
步骤S2-2)HTTP服务器从步骤S2-1)下发的数据中解析出下发指令、节点身份识别码、LoRa网关身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,则将下发指令、节点身份识别码、网关身份识别码和校验位通过MQTT协议发送至MQTT服务器;
步骤S2-3)MQTT服务器从步骤S2-2)下发的数据中解析出下发指令、节点身份识别码、LoRa网关身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,对下发指令做加密算法处理生成加密指令,将64位加密指令和64位节点身份识别码每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,最后再将加密指令、节点身份识别码和新的校验位通过MQTT协议发送至指定身份识别码的LoRa网关;
步骤S2-4)LoRa网关从步骤S2-3)下发的数据中解析出加密指令、节点身份识别码和校验位,对各字段进行完整性和正确性校验,如果字段完整性和正确性不符合要求,则丢弃该数据;如果数据字段完整性和正确性校验通过,将64位加密指令每8bit分成一组,再取所有8bit二进制数中的位置序号相同的二进制数做奇偶校验得到8位校验位,最后再将加密指令和新校验位通过LoRaWAN协议无线传输至指定身份识别码的LoRa网络节点;
步骤S2-5)LoRa网络节点从步骤S2-4)下发的数据中解析出加密指令和校验位,首先对加密指令进行完整性和正确性校验,如果下发指令完整性和正确性不符合要求,则丢弃该数据;如果加密指令完整性和正确性校验通过,LoRa网络节点对加密指令做解密算法处理获取原始下发指令,并按指令要求执行相关操作,之后LoRa网络节点将指令执行结果上报至HTTP服务器,存入数据库。
7.根据权利要求6所述的基于LoRa物联网的指令下发方法,其特征在于,所述方法还包括:
步骤S2-6)客户端定时3分钟内每30秒检索一次数据库中指令执行结果,如果数据库中执行结果不匹配当前指令执行要求则再次发送执行指令,超过6次检索结果均不匹配当前执行指令则说明指令无法成功下发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916776.6A CN108989455A (zh) | 2018-08-13 | 2018-08-13 | 一种基于LoRa物联网的数据上报和指令下发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916776.6A CN108989455A (zh) | 2018-08-13 | 2018-08-13 | 一种基于LoRa物联网的数据上报和指令下发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108989455A true CN108989455A (zh) | 2018-12-11 |
Family
ID=64553183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810916776.6A Pending CN108989455A (zh) | 2018-08-13 | 2018-08-13 | 一种基于LoRa物联网的数据上报和指令下发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108989455A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110336698A (zh) * | 2019-07-05 | 2019-10-15 | 精英数智科技股份有限公司 | 一种故障数据分析方法、服务器及存储介质 |
CN110362342A (zh) * | 2019-04-30 | 2019-10-22 | 广东侍卫长北斗科技股份公司 | 一种通用协议网关tcpudp服务器软件实现方法 |
CN110519008A (zh) * | 2019-07-31 | 2019-11-29 | 国网江苏省电力有限公司电力科学研究院 | 无线传感器网络数据传输方法和装置、可读存储介质 |
CN111835465A (zh) * | 2019-04-19 | 2020-10-27 | 武汉所为科技有限公司 | 一种Lora网络通信方法、Lora节点及Lora网络通信系统 |
CN112087431A (zh) * | 2020-08-14 | 2020-12-15 | 华新(北京)网络科技有限公司 | 一种基于国密的物联网数据传输方法 |
CN112261610A (zh) * | 2020-10-20 | 2021-01-22 | 深圳大学 | 基于奇异值检测的网关边缘计算方法及装置 |
CN112291296A (zh) * | 2020-08-27 | 2021-01-29 | 浙江八度科技有限公司 | 城市消防远程监控系统用物联设备接入系统及其方法 |
CN112367148A (zh) * | 2020-10-22 | 2021-02-12 | 华南农业大学 | 大面积山地果园LoRa无线传输丢帧检测方法和装置 |
CN112511631A (zh) * | 2020-12-01 | 2021-03-16 | 四川虹美智能科技有限公司 | 智能设备的控制系统和方法 |
CN112672304A (zh) * | 2020-12-24 | 2021-04-16 | 杭州凯达电力建设有限公司 | 一种基于高压输电线路的网关数据处理方法、装置及介质 |
CN113973299A (zh) * | 2020-07-22 | 2022-01-25 | 中国石油化工股份有限公司 | 具有身份认证功能的无线传感器以及身份认证方法 |
CN114172971A (zh) * | 2021-10-22 | 2022-03-11 | 杭州鸿雁电力电气有限公司 | 兼容多种不同协议子设备的网关应用系统及方法 |
CN115955318A (zh) * | 2023-03-13 | 2023-04-11 | 移动广播与信息服务产业创新研究院(武汉)有限公司 | 物联网系统的可信指令预警装置、方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254355A (zh) * | 2016-08-10 | 2016-12-21 | 武汉信安珞珈科技有限公司 | 一种网络协议数据包的安全处理方法和系统 |
US20170278059A1 (en) * | 2015-12-06 | 2017-09-28 | Adrich, Llc | Inventory management device |
CN107517261A (zh) * | 2017-08-31 | 2017-12-26 | 深圳市中兴物联科技有限公司 | 网关、服务器、方法、装置、存储介质和物联网系统 |
CN107958584A (zh) * | 2017-12-06 | 2018-04-24 | 广东温氏食品集团股份有限公司 | 一种基于养殖环境物联网的无线监测系统及方法 |
CN108153203A (zh) * | 2018-01-15 | 2018-06-12 | 昆明理工大学 | 一种LoRa星型网络结构的消火栓箱异动实时监控系统 |
-
2018
- 2018-08-13 CN CN201810916776.6A patent/CN108989455A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170278059A1 (en) * | 2015-12-06 | 2017-09-28 | Adrich, Llc | Inventory management device |
CN106254355A (zh) * | 2016-08-10 | 2016-12-21 | 武汉信安珞珈科技有限公司 | 一种网络协议数据包的安全处理方法和系统 |
CN107517261A (zh) * | 2017-08-31 | 2017-12-26 | 深圳市中兴物联科技有限公司 | 网关、服务器、方法、装置、存储介质和物联网系统 |
CN107958584A (zh) * | 2017-12-06 | 2018-04-24 | 广东温氏食品集团股份有限公司 | 一种基于养殖环境物联网的无线监测系统及方法 |
CN108153203A (zh) * | 2018-01-15 | 2018-06-12 | 昆明理工大学 | 一种LoRa星型网络结构的消火栓箱异动实时监控系统 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835465A (zh) * | 2019-04-19 | 2020-10-27 | 武汉所为科技有限公司 | 一种Lora网络通信方法、Lora节点及Lora网络通信系统 |
CN111835465B (zh) * | 2019-04-19 | 2023-03-24 | 武汉所为科技有限公司 | 一种Lora网络通信方法、Lora节点及Lora网络通信系统 |
CN110362342A (zh) * | 2019-04-30 | 2019-10-22 | 广东侍卫长北斗科技股份公司 | 一种通用协议网关tcpudp服务器软件实现方法 |
CN110336698A (zh) * | 2019-07-05 | 2019-10-15 | 精英数智科技股份有限公司 | 一种故障数据分析方法、服务器及存储介质 |
CN110519008A (zh) * | 2019-07-31 | 2019-11-29 | 国网江苏省电力有限公司电力科学研究院 | 无线传感器网络数据传输方法和装置、可读存储介质 |
CN113973299A (zh) * | 2020-07-22 | 2022-01-25 | 中国石油化工股份有限公司 | 具有身份认证功能的无线传感器以及身份认证方法 |
CN113973299B (zh) * | 2020-07-22 | 2023-09-29 | 中国石油化工股份有限公司 | 具有身份认证功能的无线传感器以及身份认证方法 |
CN112087431A (zh) * | 2020-08-14 | 2020-12-15 | 华新(北京)网络科技有限公司 | 一种基于国密的物联网数据传输方法 |
CN112291296A (zh) * | 2020-08-27 | 2021-01-29 | 浙江八度科技有限公司 | 城市消防远程监控系统用物联设备接入系统及其方法 |
CN112291296B (zh) * | 2020-08-27 | 2022-08-19 | 浙江八度科技有限公司 | 城市消防远程监控系统用物联设备接入系统及其方法 |
CN112261610A (zh) * | 2020-10-20 | 2021-01-22 | 深圳大学 | 基于奇异值检测的网关边缘计算方法及装置 |
CN112367148B (zh) * | 2020-10-22 | 2022-05-17 | 华南农业大学 | 大面积山地果园LoRa无线传输丢帧检测方法和装置 |
CN112367148A (zh) * | 2020-10-22 | 2021-02-12 | 华南农业大学 | 大面积山地果园LoRa无线传输丢帧检测方法和装置 |
CN112511631B (zh) * | 2020-12-01 | 2022-06-07 | 四川虹美智能科技有限公司 | 智能设备的控制系统和方法 |
CN112511631A (zh) * | 2020-12-01 | 2021-03-16 | 四川虹美智能科技有限公司 | 智能设备的控制系统和方法 |
CN112672304A (zh) * | 2020-12-24 | 2021-04-16 | 杭州凯达电力建设有限公司 | 一种基于高压输电线路的网关数据处理方法、装置及介质 |
CN114172971A (zh) * | 2021-10-22 | 2022-03-11 | 杭州鸿雁电力电气有限公司 | 兼容多种不同协议子设备的网关应用系统及方法 |
CN114172971B (zh) * | 2021-10-22 | 2024-05-14 | 杭州鸿雁电力电气有限公司 | 兼容多种不同协议子设备的网关应用系统及方法 |
CN115955318A (zh) * | 2023-03-13 | 2023-04-11 | 移动广播与信息服务产业创新研究院(武汉)有限公司 | 物联网系统的可信指令预警装置、方法、设备及存储介质 |
CN115955318B (zh) * | 2023-03-13 | 2023-05-23 | 移动广播与信息服务产业创新研究院(武汉)有限公司 | 物联网系统的可信指令预警装置、方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108989455A (zh) | 一种基于LoRa物联网的数据上报和指令下发方法 | |
CN106789259B (zh) | 一种LoRa核心网系统及实现方法 | |
CN109067617A (zh) | 一种v2x协议一致性测试方法、装置及系统 | |
EP3925239A2 (en) | Wireless time-sensitive networking | |
CN101272287B (zh) | 监控用户使用业务的服务质量的方法、装置和系统 | |
CN108964943A (zh) | 一种实现ioam封装的方法及装置 | |
CN107104929A (zh) | 防御网络攻击的方法、装置和系统 | |
CN106102051A (zh) | 一种局域网内安全发现智能设备的方法 | |
CN107820325A (zh) | 无线通信方法和系统、计算机存储介质及设备 | |
WO2016015511A1 (zh) | 一种网管测试事件的数据包模拟方法、装置及计算机存储介质 | |
CN106656679A (zh) | 可用带宽测量方法和装置 | |
CN107995250A (zh) | 自动抄表系统及方法 | |
CN104219117A (zh) | 基于业务类型的物联网接入请求汇聚方法 | |
CN109918211A (zh) | 一种自动填写验证码的方法、装置 | |
CN109995753A (zh) | 一种设备管理物联网云平台系统 | |
Martinez‐Caro et al. | A novel holistic approach for performance evaluation in Internet of Things | |
Bagaa et al. | Sedan: Secure and efficient protocol for data aggregation in wireless sensor networks | |
Alam et al. | Energy-efficient provenance transmission in large-scale wireless sensor networks | |
CN105357071A (zh) | 一种网络复杂流量识别方法及识别系统 | |
CN107579792A (zh) | 多型号在轨卫星工程参数并行解析方法 | |
CN110519008A (zh) | 无线传感器网络数据传输方法和装置、可读存储介质 | |
CN112738188A (zh) | 一种数据跨网传输方法及装置 | |
WO2018233049A1 (zh) | 一种物联网数据通信方法及系统 | |
CN104104548A (zh) | 一种基于sflow和owamp的网络安全态势信息获取系统及方法 | |
CN103532726A (zh) | 信息分发系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |