zoukankan      html  css  js  c++  java
  • 鹅厂的这波青年,自发搭建了一套分布式大气监测系统

    ​引言

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

    为了跟踪小区级的微环境质量,腾讯内部发起了一个实验性项目:细粒度的分布式大气监测。此系统完全基于腾讯云搭建,组成部分包含:腾讯云-物联网开发平台、TencentOS tiny、腾讯云-API网关、腾讯云-云函数、腾讯云-云数据库、腾讯云-腾讯云图,以及配套的 NUCLEO LoRa 开发套件、攀藤 PMS7003 颗粒物传感器等。

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

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

    一、系统简介与追踪分析

    1. 系统数据界面


    先看一下系统的数据界面。
     


    包含三个页面:

    - 带有地理位置展示的实时监测数据展示;

    - 90分钟历史数据;

    - 30天历史数据。

    2. 监测节点分布



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

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

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



    3. 追踪数据与分析



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



    (1)系统数据

    实时监测页面

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

    接下来看一下90分钟数据


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


    - 西侧的1、4节点,监测指标首先上升,首先下降;

    - 东侧的2、3、5节点,监测指标延后上升,延后下降。

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

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



    (2)公开数据


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


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

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

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

    aqicn.org 虽然也是以小时为频率更新数据,但提供了地理维度的数据展示效果。从图中可以看到,顺德、中山出现了更高的监测指标,结合我们自己系统的污染源移动数据,初步的推断是:也许顺德、中山首先受到了影响,且污染气团进一步越过珠江,到达了深圳。

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



    (3)污染来源与路径分析



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


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

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

    a) 西北方扩散而来


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

    b) 西方扩散而来


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

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

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


     

    二、系统技术架构

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



    1. 系统架构图



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

    2. 终端模块与功能



    (1)监测节点



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

    - 固件:软件层,使用TencentOS Tiny,可以使用加密通信方式,对接腾讯云物联网开发平台。

    - 主控板:硬件层,使用兼容TencentOS Tiny的硬件产品,搭载固件,读取传感器,上报数据至腾讯云。

    - 传感器:硬件层,此处使用了比较常见的攀藤传感器,用于监测数据。



    (2)本地网关



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


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

    - WiFi网关:支持WiFi协议终端的接入,用于家庭环境的接入。


      
    3. 云端模块与功能



    (1)物联网接入层



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

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



    (2)应用接入层



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



    (3)逻辑层



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

    - 实时入库:将API网关转发的数据,经拆解、分析、入数据库。

    - 定时分析:使用自带的定期任务能力,按小时、天等时间,对数据进行汇总分析。

    - 实时查询:基于严格鉴权,向展示层提供展示数据。使展示数据有更好的缓存、与复杂数据组合能力。



    (4)存储层



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



    (5)展示层



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

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

    三、结语


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

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

    参考资料:

    [1] 腾讯云-物联网开发平台:

    https://cloud.tencent.com/product/iotexplorer

    [2] TencentOS tiny:

    https://github.com/Tencent/TencentOS-tiny

    [3] 腾讯云-API网关:

    https://cloud.tencent.com/product/apigateway

    [4] 腾讯云-云函数:

    https://cloud.tencent.com/product/scf

    [5] 腾讯云-云数据库:

    https://cloud.tencent.com/product/cdb

    [6] 腾讯云-腾讯云图:

    https://cloud.tencent.com/product/tcv

    作者简介

    高树磊,腾讯云高级生态产品经理,2015年加入腾讯,历任腾讯云基础产品经理及生态产品经理,拥有9项国家专利,现负责腾讯生态联合实验室建设及相关标准制定。

  • 相关阅读:
    2021/9/20 开始排序算法
    快速排序(自己版本)
    2021/9/17(栈实现+中后缀表达式求值)
    2021/9/18+19(中缀转后缀 + 递归 迷宫 + 八皇后)
    20212021/9/13 稀疏数组
    2021/9/12 线性表之ArrayList
    开发环境重整
    Nginx入门
    《财富的帝国》读书笔记
    Linux入门
  • 原文地址:https://www.cnblogs.com/qcloud1001/p/12883310.html
Copyright © 2011-2022 走看看