专栏首页腾讯云实践案例手搓一个分布式大气监测系统(一)系统功能与架构概述
原创

手搓一个分布式大气监测系统(一)系统功能与架构概述

“绿水青山,就是金山银山”,随着我国加强立法,大力投入环境治理,大家已经明显感觉到身边的大气环境在不断改善,那么除了国家气象局的城市级监测数据外,我们身边的微环境究竟什么样子了呢?接下来的进一步环保努力,应该在什么方向呢?

为了跟踪小区级的微环境质量,腾讯内部发起了一个实验性项目:细粒度的分布式大气监测。

此系统的核心部分,完全基于腾讯云搭建:

项目早期设定的目标是通过在目标小区部署终端,并以15秒的监测频率,记录、追踪空气质量的波动,将跟踪粒度,由大环境监测细化到微环境监测,实时监测如吸烟、厨房油烟对空气质量的影响。

但在原型系统上线后,仅在5个种子节点的情况下,我们意外的追踪到了大环境污染气团在深圳的移动过程。接下来,将分两个部分进行介绍,分别是“系统简介与追踪分析”及“系统技术架构”,详细的系统各组成部分的技术拆解说明,将在后续陆续放出。

1 系统简介与追踪分析

1.1 系统数据界面

先看一下系统的数据界面

实时数据

包含三个页面:

  • 带有地理位置展示的实时监测数据展示
  • 90分钟历史数据
  • 30天历史数据

1.2 监测节点分布

原型系统终端:拥有5个种子节点,均放置于志愿者家中的露天阳台上,直接监测生活环境数据。具体分布地点位于:

  • 001:南山区 - (前海:西南部)
  • 002:南山区 - (前海:东北部)
  • 003:南山区 - (后海:海岸城)
  • 004:宝安区 - (宝安:西部)
  • 005:宝安区 - (宝安:东部)

注1: 005节点选择了厨房外的阳台,用于局部真实环境数据的突出展示(吸烟、油烟等),所以后续展示数据中,短期波动比较大。

1.3 追踪数据与分析

短期污染气团移动的情况,出现过多次,这里针对一次典型的事件分析,来看一下具体情况的分析过程,事件时间是 2020年4月3日 星期五。

1.3.1 系统数据

实时监测页面

实时数据

由此截图可知,西侧的宝安、南山前海的空气质量尚可,但东侧的后海等地已经出现了读数升高的情况。是内源问题吗?是数据异常?

接下来看一下90分钟数据

20200403_002.png
20200403_007.png

由两个先后时间的截图可明显发现,这是一个外部颗粒物气团,且有一个明显的移动过程:

  1. 西侧的1、4节点,监测指标首先上升,首先下降。
  2. 东侧的2、3、5节点,监测指标延后上升,延后下降。

【初步判断,污染源是由外部进入深圳,是一个自西向东的移动过程。】

由于我们的节点较少,未覆盖深圳以外地区,所以接下来我们使用了中国气象局及aqicn.org(第三方数据,可信度未知,这里仅做参考)的数据,进行对比,及外源性分析。

1.3.2 公开数据

先看一下 国家气象局 深圳南油监测点的数据。

南油监测点

国家气象局数据,每小时更新一次,每次一个数据指标,就指标来看,监测数据确实存在一个上升过程,并在16点进入告警状态。

【也就是说,指标上升是真实存在的。】

再看一下 aqicn.org 的数据。(第三方参考数据,不对其可信度负责。可信数据请关注国家气象局数据)

aqicn.org

aqicn.org 虽然也是以小时为频率更新数据,但提供了地理维度的数据展示效果。从图中可以看到,顺德、中山出现了更高的监测指标,结合我们自己系统的污染源移动数据,初步的推断是

【也许顺德、中山首先受到了影响,且污染气团进一步越过珠江,到达了深圳。】

但顺德、中山位于深圳的西北方和西方,为什么我们的系统监测看,似乎仅仅是西方传播源呢?为了进一步了解这个问题,我们接下来看一下地理情况及路径分析。

1.3.3 污染来源与路径分析

先来看一下三地的地形情况

地形图

可以发现,有几座山岭隔开了西北方向的直达路径,且由于珠江入海口的海拔,提供了一个更通畅的传递通道。

西北模拟

我们假设有两个传播方向,猜测一下传播效果:

a) 西北方扩散而来

由于多个山岭的阻隔,比较难以快速到达,反而会在中山一带聚集,形成一个位于西方的滞留点。

b) 西方扩散而来

西模拟

横跨珠江,自西向东,通道顺畅,理论上是具备条件的。

【也就是说,无论污染气团是西北方传播过来,还是西方传播过来,都将产生我们系统中监测的数据效果。我们的监测系统,是真实有效的】

注:本实验性项目,仅仅是验证技术可行性,相关论述仅为模拟性推理,不代表实际情况。

2 系统技术架构

接下来,说明一下系统的组成,以及架构原理

2.1 系统架构图

本系统的核心部分,完全由腾讯云相关产品实现,并配合腾讯云兼容产品,共同搭建了系统。下图介绍了架构组成及使用的云产品。

架构示意图

2.2 终端模块与功能

2.2.1 监测节点

监测节点由三个部分组成:

  • 固件:软件层,使用TencentOS Tiny,可以加密通信方式,对接腾讯云物联网开发平台。
  • 主控板:硬件层,使用兼容TencentOS Tiny的硬件产品,搭载固件,读取传感器,上报数据至腾讯云。
  • 传感器:硬件层,此处使用了比较常见的攀藤传感器,用于监测数据。

2.2.2 本地网关

网关分为两类,用于不同环境的接入,监测节点通过网关接入网络,并与腾讯云通信:

  • LoRa网关:支持LoRa协议终端的接入,单网关支持1km~10km的覆盖能力。由于是长距通信能力,所以在无法使用网关时,也可使用低轨卫星接入。
  • WiFi网关:支持WiFi协议终端的接入,用于家庭环境的接入。

2.3 云端模块与功能

2.3.1 物联网接入层

使用 腾讯云-物联网开发平台,实现终端加密接入腾讯云,具备多产品管理、多协议接入、数据解析、基础存储、状态监测等物联网核心能力。

本项目中将复杂的逻辑处理,转交其它云产品承接,使用了物联网开发平台的转推功能,将数据传递到应用接入模块。

2.3.2 应用接入层

使用 腾讯云-API网关,实现快速的REST服务接口,全面PaaS化的接入服务,后端衔接逻辑层,负担监测数据格式化、展示数据复合化的出入口功能。

2.3.3 逻辑层

使用 腾讯云-云函数,进行实时、定时的逻辑处理。有三种应用:

  • 实时入库:将API网关转发的数据,经拆解、分析、入数据库。
  • 定时分析:使用自带的定期任务能力,按小时、天等时间,对数据进行汇总分析。
  • 实时查询:基于严格鉴权,向展示层提供展示数据。使展示数据有更好的缓存、与复杂数据组合能力。

2.3.4 存储层

使用 腾讯云-云数据库,基于云数据库的高性能与高稳定性,且当前种子节点数据较少的情况,直接使用数据库记录数据。

2.3.5 展示层

使用 腾讯云-腾讯云图,利用云图强大的 地图、视效、多接口兼容能力,快速搭建丰富的展示效果。

在展示页中,所有的地图数据,均为实时绘制,通过 2.3.2、2.3.3 两个产品配合提供的接口数据,按指定经纬度展示数据效果。云图自带的2D、3D省市区展示效果,将应用在本项目的后续功能中。

3 小结

由于项目架构点多,且受限于篇幅原因,本文仅展示了实验性项目的核心效果与架构概述,具体每个模块的技术实现与处理细节,将在后续文章中,逐个展开说明。请大家关注后续文章。

注1:本项目为实验性项目,相关数据与推论均为简单分析,准确的监测数据值,还请关注国家气象局数据。

注2:本系统以数据为核心,具备边缘计算的架构扩展能力,并通过云产品的多地容灾能力,配合原生中间件架构,实现了广义形态上的分布式服务能力,故定义为分布式系统。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 200行代码落地人脸识别开锁应用

    2019年国庆,帮朋友实现了一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。几个月来运行稳定,体验良好,借着这个春节宅家的时间,整理一下这个应用的实现过...

    高树磊
  • 腾讯云实践案例:基于树莓派实现甲醛在线监测

    本案例针对传统甲醛检测的问题进行优化,通过远程在线监测甲醛指标的方式,解决了已有方案中“需现场人工查看”、“检测限于单次”等问题。

    高树磊
  • R语言实现常用的5种分析方法(主成分+因子+多维标度+判别+聚类)

    R语言多元分析系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析、简化数据集的技术。它把原始数据...

    CDA数据分析师
  • R语言多元分析系列

    系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析、简化数据集的技术。它把原...

    机器学习AI算法工程
  • 白皮书预约&分享活动获奖名单

    ?   新春将至,感谢大家对腾讯WeTest2019白皮书的支持,以下是“分享你的白皮书读后感 赢取专属好礼”活动(点击活动名称可跳转至原文查看)的获奖名单,...

    WeTest质量开放平台团队
  • 水晶报表的推模式

    在一个多层结构中,水晶报表的使用往往比较繁琐:     1、在项目中添加数据集,形成xsd文件     2、利用xsd文件,在水晶报表环境中生成报表     3...

    用户1075292
  • 华为腾讯为用户数据“掐架”;苹果加强在部分国家的数据采集 | DT数读

    过去一周,国际、国内的大数据相关公司都有哪些值得关注的新闻?数据行业都有哪些新观点和新鲜事?DT君为你盘点解读。

    DT数据侠
  • D3数据连接之“更新”和“退出”

    让我们回到之前那个“怪咖”Frank那里,重新审视一下他的那些小报封面数据,看一下Frank手头前3个月的数据,以及我们之前做过的事情。

    博文视点Broadview
  • python3 实现rc4 加密

    超级大猪
  • android中handler用法总结

    一、Handler的定义:  Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用。比如可以用handler发送...

    郭耀华

扫码关注云+社区

领取腾讯云代金券