基于雾计算和区块链平台的分布式气象站系统及工作方法与流程

文档序号:21816921发布日期:2020-08-11 21:28阅读:216来源:国知局
基于雾计算和区块链平台的分布式气象站系统及工作方法与流程
本发明属于信息
技术领域
,具体涉及一种基于雾计算和区块链平台的分布式气象站系统及工作方法。
背景技术
:随着我国信息技术的发展,物联网技术也有了长足的进步,各类传感器以及嵌入式设备都的体积越来越小,而性能则越来越强。而借助于各类精确的传感器以及强大的嵌入式设备所制造的气象站,极大地方便了我们获取指定位置的气象数据。分布式气象站用于采集气象站所在区域的气象数据。一般的气象站,体积庞大,较为笨重,多用于采集固定地点气象数据,成本较高,不能做到广泛分布。目前出现的微型气象站体积较小,方便移动,可以广泛部署在任何一个角落。然而,一方面多用于交通,农业等外界环境,只能为单一的机构提供服务,面对着大量分布的气象站,缺少一个能够把位置各异、各自独立的气象站聚集在一起,以统一向用户提供气象数据获取服务的整合平台,这导致了微型气象站的使用受限,难以充分发挥其移动简易,易于部署,广泛分布的特点。此外,对于大量分布的气象站,面对海量数据的存储需求,一种现有技术是采用边缘存储,即数据完全存储在各个气象站上。然而,一般的微型气象站只负责数据的采集发送,本身不对数据做存储,缺少数据存储能力,由于mcu如arduino系列的存储容量大概仅仅为几kb到几十kb,如果想要存储连续几年的数据,无法仅仅靠气象站的微控制单元(mcu)实现,这也就导致传统微型气象站在保存、获取历史数据上力有未逮。如果另外采用具有几十gb的存储容量的雾节点代替mcu,使得气象站自身具备雾节点,把雾节点作为边缘设备使用,则需要部署大量雾节点,成本太高。另一种现有技术是云存储,即包括气象站系统包括气象站加中心服务器,大量分布的气象站通过路由向中心服务器发送数据,数据直接存储在中心服务器上,中心服务器被当做云端设备使用。然而,由于中心服务器的覆盖范围有限,其不能作为路由使用,因此距离较远的不同地区的气象站需要各自配置自己的路由才能连接上服务器,路由成本较高,且中心服务器需要同时处理来自所有气象站的数据,对中心服务器的存储和运算能力的要求很高,因此提高了成本。采用中心服务器进行中心化存储还存在安全性的问题,一旦机器故障,会丢失所有数据。物联网技术是通过信息传感设备,按照约定协议,将任何物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。物联网技术主要分为四个层次:感知技术、传输技术、支撑技术、应用技术。感知技术:能够用于物联网底层感知信息的技术。它包括射频识别(rfid)技术、传感器技术、gps定位技术、多媒体信息采集技术及二维码技术等;传输技术:能够汇聚感知数据,并实现物联网数据传输的技术,它包括互联网、移动通信网、无线网络、卫星通信、短距离无线通信等。支撑技术:用于物联网数据处理和利用的技术,它包括嵌入式系统、云计算技术、人工智能技术、大数据库与机器学习技术、分布式并行计算和多媒体与虚拟现实等。应用技术:用于直接支持物联网应用系统运行的技术:专家系统、系统集成技术、编解码技术。区块链技术本质上是一种分布式存储技术,最开始用于数字货币存储以及加密,具有以下特点:去中心化。区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。1、开放性。区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。2、独立性。基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。3、安全性。只要不能掌控全部数据节点的一半以上,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。技术实现要素:本发明的目的在于提供一种基于雾计算和区块链平台的分布式气象站系统及其工作方法,以增强气象站的存储能力,降低成本,同时解决气象数据发布平台的问题。为了实现上述目的,本发明提供了一种基于雾计算和区块链平台的分布式气象站系统,包括多个气象站、多个与所述气象站同分布的雾节点和一区块链平台,每个气象站只与一个雾节点通信连接,每个雾节点均与位于其通信范围内的多个气象站通信连接并作为该气象站的路由和存储节点,每个雾节点均与所述区块链平台通信连接,所述区块链平台为用户提供查询接口。每个气象站均包括彼此相连的一感知层和一mcu,所述感知层包括多个传感器。所述mcu具有wifi功能,气象站通过所述mcu与所述雾节点通信连接;或者mcu本身不支持wifi,每个气象站还包括一wifi模块,通过所述wifi模块与所述雾节点通信连接。所述雾节点支持mqtt协议并通过mqtt协议来与所述气象站、区块链平台通信连接。另一方面,本发明提供一种基于雾计算和区块链平台的分布式气象站系统的工作方法,包括:s1:提供一基于雾计算和区块链平台的分布式气象站系统,其包括多个气象站、多个与所述气象站同分布的雾节点和一区块链平台,每个气象站只与一个雾节点通信连接,每个雾节点均与位于其通信范围内的多个气象站通信连接并作为该气象站的路由和存储节点,每个雾节点均与所述区块链平台通信连接,所述区块链平台为用户提供查询接口;s2:每个气象站分别将数据采集并发布,并由对应的雾节点订阅并存储;s3:用户在区块链平台上指定要查询的气象站和参数,区块链平台相应地在雾节点中查询并获取指定的气象站和参数的数据,并返回给用户。所述步骤s3包括:s31:将对应于各个气象站的通信脚本打包成为docker镜像部署在在线存储库dockerhub上,所述docker镜像的id被注册在区块链平台上,作为商品供用户选择;s32:用户通过在区块链平台上选择对应于要查询的气象站的通信脚本,并指定参数,发起相应的下单调度请求;s33:区块链平台通过所述docker镜像的id拉取所述通信脚本的docker镜像并执行,雾节点根据所述下单调度请求查询指定的气象站和参数的数据,区块链平台获取指定的气象站和参数的数据,并返回给用户。所述雾节点支持mqtt协议并可以直接通过mqtt协议与区块链平台通信连接;在所述步骤s31之前,在各个气象站投入使用时,将其topic分别从对应的雾节点注册到各个通信脚本中,以得到对应于各个气象站的通信脚本。在所述步骤s32中,用户在区块链平台上注册,获得自己的数字货币钱包,并通过消耗所述数字货币钱包中的数字货币来发起相应的下单调度请求。在获取指定的气象站和参数的数据时,区块链平台通过链上多个空闲计算资源同时去获取指定的气象站和参数的数据并进行比较。所述步骤s2包括:s21:气象站对数据进行采集、处理和存储;s22:气象站等时间间隔地向对应的雾节点发布数据;s23:雾节点收到数据;s24:雾节点对收到的数据进行处理和存储。所述雾节点支持mqtt协议并直接通过mqtt协议与气象站通信连接,在所述步骤s23中,雾节点通过在气象站在投入使用时订阅以该雾节点为存储节点的所有气象站的topic,在对应的每个气象站的topic上收到数据。所述步骤s2包括:s21’:气象站对数据进行采集、处理和存储;s22’:雾节点等时间间隔地向区块链平台发送请求,要求获取对应的气象站的数据;s23’:气象站监听来自区块链平台的请求,在对应的雾节点发送请求时,气象站向区块链平台返回数据,区块链平台在收到数据后写入对应的雾节点;s24’:雾节点对收到的数据进行处理和存储。每个气象站均包括彼此相连的一感知层和一mcu,所述感知层包括多个传感器,mcu控制感知层等时间间隔地采集数据以对数据进行采集,并对数据进行处理和存储;对数据进行处理和存储,包括:将数据以整型格式存储在所述mcu的一循环队列中,并在每次循环队列存满之后统一取出并转为气象站的通信格式,以用于发布;雾节点中包含数据库以供查询,所述雾节点将收到的数据存储到所述数据库的关系表中;对收到的数据进行处理包括整理数据、求均值、添加字段和/或修改字段。本发明的基于雾计算和区块链平台的分布式气象站系统利用雾节点作为多个气象站的路由和存储节点,以增加额外的独立的存储容量,从而在雾节点中保存对应的多个气象站的历史气象数据,增强了气象站的数据存储能力;且通过与气象站同分布的雾节点作为路由进行消息转发,能够使得分布在不同的地理位置的气象站跨越地理空间的障碍,不需要额外的路由,从而降低成本。另一方面,本发明的基于雾计算和区块链平台的分布式气象站系统采用区块链平台,将广泛分布的气象站整合并提供一个服务平台,可令任意用户通过平台购买气象站服务。此外,采用存储节点可以实现分布式存储,当一个雾节点故障时,其他雾节点的数据依旧存在,不会丢失,从而一定程度上提高数据的安全性。附图说明图1为根据本发明的一个实施例的基于雾计算和区块链平台的分布式气象站系统的系统结构图。图2为根据本发明的一个实施例的基于雾计算和区块链平台的分布式气象站系统的通信架构图。图3为如图2所示的基于雾计算和区块链平台的分布式气象站系统的区块链平台的调度模式原理图。图4为如图3所示的区块链平台的信息获取流程图。图5为如图3所示的区块链平台的判断获取信息是否可靠的原理图。图6为根据本发明的另一个实施例的基于雾计算和区块链平台的分布式微型气象站系统的结构示意图。具体实施方式下面结合附图,给出本发明的较佳实施例,并予以详细描述。本发明提出了一种基于雾计算和区块链平台的分布式气象站系统及其工作方法,其适用于对气象数据有存储需求以及希望通过某个平台向用户发布气象数据的场景下,用于解决一般的微型气象站缺乏存储能力,同时对于大量的微型气象站,缺少一个整合平台为用户提供查询服务这些问题。第一实施例一种基于雾计算和区块链平台的分布式气象站系统如图1所示为根据本发明的第一实施例的基于雾计算和区块链平台的分布式气象站系统,其包括多个气象站1、多个与所述气象站1同分布的雾节点2和一区块链平台3,每个雾节点2均与位于其通信范围内的多个气象站1通信连接并作为所述气象站1的路由和存储节点,每个雾节点2均与所述区块链平台3通信连接,所述区块链平台3为用户4提供查询接口。其中,每个气象站1均包括彼此相连的一感知层11和一mcu12。所述感知层11包括多个传感器,例如温湿度传感器,光照传感器等,此外,还可以是其他任意的环境传感器。所述mcu12封装在一个塑料立方体的外壳中,以便防止外界干扰,保证稳定运行。该外壳的正上方设有至少一个传感器开口,感知层11位于所述外壳的外部并通过所述传感器开口与mcu12相连,且外壳的后部留出供电线,同时也是调试线,调试线用于更改气象站1的通信格式;以及气象站的topic的修改。所述mcu12设置为控制所述感知层11采集所述气象站1周围的数据并进行处理和存储,所述数据包括温度、湿度和光照强度等气象数据中的至少一种。在本实施例中,该处理包括:将数据的格式由存储在mcu12中的整型格式int处理为气象站1的通信格式,如json格式。例如,若一组数据中的温度,湿度,光照为20、80、50,为了在之后发送,因此数据的格式需要在mcu12中处理为气象站1的通信格式:{"\"temperature\":"20","\"humidity\":"80","\"light\":"50"}。气象站1的通信格式不限于json格式,只要通信两方协商好,也可以采用其他任意格式发送数据。雾节点2与气象站1的通信连接采用mqtt协议。其中,如果所述mcu12具有wifi功能,则气象站1通过所述mcu12与所述雾节点2通信连接。在本实施例中,所述mcu12的型号为wemosd1,wemosd1是一款自带wifi功能的mcu,其一方面处理感知层11的数据,另一方面与雾节点2通信连接。此外,在其他实施例中,如果mcu12本身不支持wifi,则每个气象站1还包括一wifi模块,通过所述wifi模块与所述雾节点2通信连接。雾节点2与气象站1并不保持一一对应,比如某楼1层布置了3个气象站1,该层由一个雾节点2负责3个气象站1的入网以及存储;2层布置了10个气象站,该层由2个雾节点2,每个雾节点2负责5个气象站1。雾节点2的数量的设置,一方面取决于该雾节点2的路由覆盖范围是否能完全覆盖附近所有气象站1,另一方面取决于平均每个气象站1分到的存储空间要是否足够,是否能存储每个气象站1的连续几年的数据。在本实施例中,每个雾节点2分别与多个气象站1通信连接,以负责多个气象站1的入网以及存储,每个气象站1只与一个雾节点2通信连接。雾节点2可以起到路由+计算机的作用,其一方面具有较强的运算能力,另一方面具有存储能力并具有如上文所述直接与气象站1、区块链平台3通信连接的通信能力,因此雾节点2能作为气象站1的逻辑上的存储模块来使用,而不必在气象站1的mcu12上进行存储,大大提高了单个气象站1的存储能力,其中,雾节点的存储容量能达到几十gb,可以存储连续几年的数据。雾节点2中包含数据库,其通过数据库为气象站1建立关系表以存储气象站1发送的数据,在本实施例中,所述数据库为mysql。雾节点2设置对收到的数据进行处理和存储,其中对收到的数据进行处理包括整理数据包括:通过其运算能力来解析气象站1发送的数据(json格式)、求均值、添加字段和/或修改字段。如图2所示,雾节点2支持应用层通信协议并通过应用层通信协议来与气象站1、区块链平台3通信连接,从而为对应的气象站1提供入网。如图2所示,在本实施例中,该应用层通信协议为mqtt协议,因此在雾节点2中的数据可以直接通过mqtt协议传输给所述区块链平台3。雾节点2与区块链平台3之间设有消息中转站mqttbroker,起到消息缓存的作用,任何两个通过mqtt协议通信的设备,在通信时都需要一个broker作为一个消息中转站,可以任意用一台服务器作为broker,在本实施例中,直接将雾节点2设为broker。气象站1分布在不同的地理位置,雾节点2为周围多个气象站1提供入网,且雾节点2作为自己搭建的消息中转站mqttbroker进行消息转发,能够跨越地理空间的障碍,方便区块链平台3从雾节点2中获取对应于不同位置的气象站1发送的信息。由此,雾节点本身作为路由为周围多个气象站1提供入网,同时作为周围多个气象站1的逻辑上的存储节点,这样既能控制雾节点的数量,同时也能为临近的mcu提供存储,有效降低了成本。如图2-图3所示,区块链平台3相当于云端服务器,向下起到了整合气象站1,经由雾节点2与气象站1通信的作用,任意一个气象站1,只要通过雾节点2入网并在区块链平台3上通信脚本中进行注册,区块链平台3就可以从雾节点2中获取对应的气象站1的数据。区块链平台3向上则为用户4提供了一个查询接口。区块链平台可以采用一运行于其上的通信脚本作为其查询接口。区块链平台1的本质上只提供计算机资源,商户可以在区块链平台上发布各种功能脚本作为商品,用户通过选择自己感兴趣功能脚本,支付一定的虚拟货币,随后由区块链平台执行该脚本,从而返回给用户结果。由此,用户4可以在区块链平台3上注册,获得自己的数字货币钱包,选中该通信脚本作为想要购买的服务,指定要查询的气象站1和日期,通过消耗数字货币下单来发起相应的下单调度请求;区块链平台3设置为执行所述通信脚本的docker镜像,根据用户4的下单调度请求在雾节点2中查询并获取对应的气象站1和日期的数据。查询到的数据通过mqtt协议从雾节点2传回区块链平台3,从而使得区块链平台3获取对应的气象站1的数据。例如,用户想要查询某地气象站的在2019/12/23这一天的气象信息,那么他需要在区块链平台3上选中对应的通信脚本作为想要购买的服务,指定地区,时间,支付一定的虚拟货币,随后区块链平台就根据用户4的下单调度请求会运行该通信脚本以获取对应雾节点中的数据。在本实施例中,该通信脚本就是通过mqtt协议获取雾节点2中的数据。第二实施例基于雾计算和区块链平台的分布式气象站系统的工作方法如图1-图3所示,根据上文所述的基于雾计算和区块链平台的分布式气象站系统,其工作方法具体包括以下步骤:步骤s1:提供上文所述的基于雾计算和区块链平台的分布式气象站系统,其包括多个气象站1、多个与所述气象站1同分布的雾节点2和一区块链平台3,每个气象站1只与一个雾节点2通信连接,每个雾节点2均与位于其通信范围内的多个气象站1通信连接并作为该气象站1的路由和存储节点,每个雾节点2均与所述区块链平台3通信连接,所述区块链平台3为用户4提供查询接口;步骤s2:每个气象站1分别将数据采集并发布,并由对应的雾节点2订阅并存储;所述步骤s2具体包括:步骤s21:气象站1对数据进行采集、处理和存储;每个气象站1均包括彼此相连的一感知层11和一mcu12,所述感知层11包括多个传感器,其中,mcu12控制感知层11等时间间隔地采集数据以对数据进行采集,并对数据进行处理和存储。在本实施例中,采集数据的时间间隔为1分钟。对数据进行处理和存储,包括:将数据以整型格式int(舍弃了精度)存储在所述mcu12的一循环队列中,并在每次循环队列存满之后统一取出并转为气象站1的通信格式,如json格式,以用于发布。在本实施例中,循环队列的长度为60,由于上文采集数据的时间间隔为1分钟,这样mcu12的循环队列中可以保存了该气象站所处地理位置的一小时内的环境数据,每隔1小时循环队列存满一次。此外,在其他实施例中,循环队列的长度还可以设置为其他值,只要长度不超过mcu的ram上限即可。例如,若一组存储在mcu12中的整型格式的数据中的温度,湿度,光照为20、80、50,为了在之后发送,因此数据的格式需要从mcu12中统一取出并处理为气象站1的通信格式,如json格式:{"\"temperature\":"20","\"humidity\":"80","\"light\":"50"}。此外,气象站1的通信格式不限于json格式,只要通信两方协商好,也可以采用其他任意格式发送数据。步骤s22:气象站1等时间间隔地向对应的雾节点2发布数据;发布数据的时间间隔为采集数据的时间间隔的整数倍,在本实施例中,发布数据的时间间隔为1小时。在本实施例中,所述mcu12具有wifi功能,气象站1通过所述mcu12与所述雾节点2通信连接。此外,在其他实施例中,如果mcu12本身不支持wifi,则每个气象站1还包括一wifi模块,通过所述wifi模块与所述雾节点2通信连接。其中,气象站1通过mqtt协议向对应的雾节点2发布数据,mqtt的服务质量(qos)定为2,以保证数据到达雾节点2且只到达一次。这种情况下能保证雾节点2不会存在数据缺失,也不会重复存储数据。发布的数据为处理为从mcu12中统一取出并处理为气象站1的通信格式的数据。步骤s23:雾节点2收到数据。收到数据的时间间隔为循环队列的长度与采集数据的时间间隔的乘积,且每次收到的数据条数为循环队列的长度。其中,所述雾节点2支持mqtt协议并可以直接通过mqtt协议与气象站1通信连接,在所述步骤s23中,雾节点2通过在气象站1在投入使用时订阅以该雾节点2为存储节点的所有气象站1的topic,在对应的每个气象站1的topic上收到数据。雾节点2收到数据的时间间隔为采集数据的时间间隔的整数倍,在本实施例中为1小时。步骤s24:雾节点2对收到的数据进行处理和存储。其中,雾节点2中包含数据库以供查询,其通过数据库为气象站1建立关系表以存储收到数据,所述雾节点2将收到的数据存储到所述数据库的关系表中。在本实施例中,所述数据库为mysql。对收到的数据进行处理包括整理数据(即解析气象站1发送的数据的格式)、求均值、添加字段和/或修改字段。例如,由于每次收到的数据条数为循环队列的长度,对收到的数据进行处理可以包括:对收到的数据的所有条数取均值,以获得一个发布数据的时间间隔中的数据平均值。在本实施例中,mcu每隔1分钟采集一次数据,每隔1小时发送一次数据给雾节点,那么每次发送的数据为60条,雾节点接收到这60条数据后,取均值从而获得当前时刻前1小时内的数据平均值。对收到的数据进行处理可以包括:添加表示接收到数据的日期时刻的字段,以便在之后按日期查询。具体来说,假如现在气象站发送湿度,温度这两个气象数据:温度:20湿度:50/.../温度:20湿度:5,一次发送了60条。雾节点接收后对其求均值,得到:温度:20湿度:50该条代表过去1小时内温度与湿度的平均值。随后获取接收到数据的日期时刻,比如2019-12-2310:01:32随后在关系表中写入所述气象数据和接收到数据的日期时刻的字段,以方便通过日期查询数据,写入的结果如表1所示。表1存储到关系表中的数据温度湿度当前日期时刻20592019-12-2310:01:32步骤s3:用户4在区块链平台3上指定要查询的气象站1和参数(如日期,地区名),区块链平台3相应地在雾节点2中查询并获取指定的气象站1和参数的数据,并返回给用户4。所述步骤s3具体包括:步骤s31:将对应于各个气象站1的通信脚本打包成为docker镜像部署在在线存储库dockerhub上,且docker镜像分别对应唯一一个id,所述docker镜像的id被注册在区块链平台上,作为商品供用户4选择。如图2所示,雾节点2支持mqtt协议并可以直接通过mqtt协议与区块链平台3通信连接。因此在雾节点2中查询的数据可以直接通过mqtt协议传输给所述区块链平台3。雾节点2与区块链平台3之间设有消息中转站mqttbroker,起到消息缓存的作用,任何两个通过mqtt协议通信的设备,在通信时都需要一个broker作为一个消息中转站,可以任意用一台服务器作为broker,在本实施例中,直接将雾节点2设为broker。由此,气象站1分布在不同的地理位置,mqtt协议通过雾节点2作为自己搭建的消息中转站mqttbroker进行消息转发,能够跨越地理空间的障碍。雾节点2为周围多个气象站1提供入网,方便区块链平台3从雾节点2中获取对应于不同位置的气象站1发送的信息。具体来说,通信脚本位于区块链平台中,且因为mqtt协议是发布订阅式的通信协议,每个气象站1有自己的topic,它向自己的topic上发布数据,区块链平台需要订阅该topic,才能获得对应气象站1的消息。因此,在所述步骤s31之前,在各个气象站1投入使用时,需要将气象站1的topic分别从对应的雾节点2注册到各个通信脚本中(若topic已注册则不必执行此步),以得到对应于各个气象站1的通信脚本,这样区块链平台3才能获取其消息。步骤s32:用户4通过在区块链平台3上选择对应于要查询的气象站1的通信脚本,并指定参数(如日期,地区名),发起相应的下单调度请求。其中,如果用户指定某地区的气象站1,比如是通过地区名指定,那么在通信脚本中就需要将其映射为对应的气象站1的topic,因为mqtt协议是发布订阅式的通信协议,每个气象站1都对应一topic,不能直接通过地区名来获取气象站信息,因此需要对地区名和对应的topic做一个映射,以便通信脚本根据用户的下单调度请求查询对应的气象站1的数据。此外,在所述步骤s32中,用户4在区块链平台3上注册,获得自己的数字货币钱包,并通过消耗所述数字货币钱包中的数字货币来发起相应的下单调度请求。步骤s33:区块链平台3通过所述docker镜像的id拉取所述通信脚本的docker镜像并执行,雾节点2根据所述下单调度请求查询指定的气象站1和参数的数据,区块链平台3获取指定的气象站1和参数的数据,并返回给用户4。如图4-图5所示,在获取指定的气象站1和参数的数据时,区块链平台3会通过链上多个空闲计算资源worker1、worker2…workern同时去获取指定的气象站1和参数的数据(即同一个topic的数据)并进行比较。由于是从对应于同一个气象站1和参数的数据,它们得到的数据应该是一致的。因此可以通过这样的方法来判断得到的数据是否经过篡改;如果某一台空闲计算资源worker得到的数据与其他的数据均不同,则认为该机器获取到的是不可靠的数据,将该数据舍弃掉。在这种情况下,除非攻击者能够攻击链上超过半数的空闲计算资源,否则得到的数据就是安全的,这大大提高了数据的可靠性。综上,通信脚本打包成为docker镜像部署在在线存储库dockerhub上且docker镜像的id被注册在区块链平台上,作为商品供用户选择,用户想要查看某个气象站1的数据时,在平台上选择对应的通信脚本,指定参数(日期,地点),支付货币后,区块链平台3通过所述docker镜像的id拉取所述通信脚本的docker镜像并执行,通过链上多个空闲计算资源获取气象站1的数据,再返回给用户。第三实施例基于雾计算和区块链平台的分布式气象站系统的工作方法区块链平台3不仅提供了一种整合,发布系统,由于区块链本身的性质,该区块链平台3也为获取气象数据提供了可靠性保障。因此出于这点考虑,可以更进一步利用区块链平台3以加强安全性。如图6所示,若气象站1也通过区块链平台3发布数据,这样不仅能够保障用户请求数据时不被篡改,而且加强了雾节点2中数据的可靠性。如图6所示,在第三实施例中,所述基于雾计算和区块链平台的分布式气象站系统的工作方法的步骤s1、s3不变,区别仅在于其步骤s2具体包括:步骤s21’:气象站1对数据进行采集、处理和存储;该步骤s21’与第一实施例中的步骤s21完全相同。步骤s22’:雾节点2等时间间隔地向区块链平台3发送请求,要求获取对应的气象站1的数据。其中,雾节点向区块链平台3发送请求的时间间隔为采集数据的时间间隔的整数倍,优选为1小时。雾节点2通过在气象站1在投入使用时订阅以该雾节点2为存储节点的所有气象站1的topic,以要求获取对应的气象站1的数据。步骤s23’:气象站1监听来自区块链平台3的请求,在对应的雾节点2发送请求时,气象站1向区块链平台3返回数据,区块链平台3在收到数据后写入对应的雾节点2。在本实施例中,所述mcu12具有wifi功能,气象站1通过所述mcu12与对应的雾节点2通信连接,进而通过雾节点2来向区块链平台3返回数据。此外,在其他实施例中,如果mcu12本身不支持wifi,则每个气象站1还包括一wifi模块,通过所述wifi模块与对应的雾节点2通信连接,进而通过雾节点2来向区块链平台3返回数据。其中,雾节点2的数量有多个,数据只到达为订阅该气象站1的一个雾节点2上。返回数据为mcu中循环队列的数据。将以json格式返回给区块链平台3。步骤s24’:雾节点2对收到的数据进行处理和存储。该步骤s24’与第一实施例中的步骤s24完全相同。以上所述的,仅为本发明的较佳实施例,并非用以限定本发明的范围,本发明的上述实施例还可以做出各种变化。凡是依据本发明申请的权利要求书及说明书内容所作的简单、等效变化与修饰,皆落入本发明专利的权利要求保护范围。本发明未详尽描述的均为常规技术内容。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1