目 录CONTENT

文章目录

基于Arduino和NB-IoT的智能全自动微型气象站及数据可视化后台的探索

KD Mercury
2022-05-24 / 0 评论 / 0 点赞 / 16 阅读 / 0 字
温馨提示:
本文最后更新于2025-10-01,若内容或图片失效,请留言反馈。 多喝热水。想想有多久没有仔细瞭望星空了(

摘 要

基于Arduino和NB-IoT的智能全自动微型气象站及数据可视化后台的探索

随着家庭建设智的发展和普及,为了提高生活质量,人们将在日常生活中使用到更多的智能设备。但这些智能设备在天气信息获取方面主要依靠气象台发布的数据而不是当前区域的环境数据。本项目依托Arduino开源硬件以及BC260Y窄带物联网模块,建设一个智能的全自动微型气象站,并配以对应的可视化后台,可为多种平台、系统提供当前区域的室外环境参数,可以使智能家庭系统可以更智能;同时,可视化系统还给出一些相关的出行指南的建议。

关键词:Arduino 窄带物联网 智能气象站 可视化

Exploration of a novel automatic weather station equipment based on Arduino and narrowband Internet of things technology with visualization platform

Now a days, with the development of smart home system, people would like use more and more intelligent devices in their daily life in order to improve the quality of life. However, in terms of access the weather information, these devices still rely on the data which is released by the Weather Bureau rather than the environment data of the current area. Relying on Arduino open-source hardware and BC-260Y narrow-band Internet of Things module, this project will build an intelligent full-automatic mini weather station and which will be equipped with a data visualization website. This device can provide outdoor environmental parameters of the current area for a variety of Internet of things platforms and smart home systems, while it can make the smart home system more intelligent, also the visualization system could give some dressing suggestions.

Key Words: Arduino, NB-IoT, Intelligent weather station, Data visualization

第一章 前 言

1.1 设计需求与简要概述

随着家庭建设智能化的普及与发展,更多家庭为了提高生活质量选择在日常生活中融入一些智能化元素。当前大部分智能家庭系统获取环境信息的方式分为两种:第一种,从系统内的传感器组件获取室内环境参数;第二种,从气象台、互联网天气信息提供商等权威机构获取室外环境参数。

由于我国幅员辽阔,使得区域性较高精度的气象监测范围过小,加之传统气象数据采集具有灵活性差、稳定性低等缺点^[1]^,很难得到当前区域的精确气象数据。

智能家庭建设需要获取精准的室外环境参数的必然性,主要有以下几点原因:

1、时效性差

从传统气象台获取数据存在延迟,其获取的数据在气象站的收集、传输、分析方面仍要消耗大量的时间,因此等数据传输到气象台再发布,需要大概一个小时的时间^[2,3]^,数据的时效性相比于从系统所在地直接获取要差很多。

2、精确度因素

传统气象站由于高昂的建设成,不适合大规模建设,因此无法做到精确获取到每一户窗前或每一街区的精确数据。气象卫星受限于分辨率与功能的局限性,也不能获取如此高要求的数据。家庭里的智能设备需要根据当前环境的变化来做出响应,需要获得窗前或附近的精确环境数据,因此使用全自动智能微型气象站就更为合理了。

3、技术因素

传感器技术的广泛应用,在保证精度的前提下使制造成本在不断地降低。市场上的众多厂家生产出不同型号、不同用途的传感器,这也使微型气象站的设计与生产变得非常便捷,同时也使易用性得到了保证。

另一方面,随着我国的无线网络通信技术的高速发展,以及建设区域的广泛性,NB-IoT模块在各种智能设备中的使用愈加频繁。该模块具有灵活部署、低成本和高容量等特性,同时适用于低功耗,广覆盖等相关业务^[4]^。再加上传感器和计算机技术的高速发展,使得不同的传感器在不同的场景下的到了广泛的应用。

1.2 国内外研究现状

全自动气象站已应用与多种场景:气象、航空、工农业、林业等众多行业为顺应科技发展,国内外许多厂商在全自动气象站的设计、研发领域竞争激烈。

在国内例如天津气象仪器厂、上海气象仪器厂等,拥有能适用于不同行业的全自动气象站。这些设备测量参数大多都是相同的:温度、湿度、气压、风速风向等基本的参数,再依据不同的场景加入特定的功能:测量雪厚、土壤温湿度、空气中辐射数值等。我国全自动气象站大多应用于森林防火、水灾旱灾防控与智慧农业等方面并获得了令人满意的成果。

在国外,特别是一些发达国家中,全自动气象设施也通常应用于自然灾害预防、智能农业等领域。特别明显的几个例子:苏联曾计划推出一套智能化系统,用于收集苏联全境的所有数据,分析后用来辅助制定下一年的国家经济,其中包括了重要的气象数据;日本的科学家利用厘米级精度GPS传感器,用于检测火山附近的气象和地质变化情况;美国人使用多种传感器用于检测路面与天气状况^[5]^,以应对突发自然灾害对道路的影响;全球的科学家利用智能气象站与卫星结合,以预防和检测全球变暖的形式。

通过上述的表述,可以看出全自动气象站的应用范围非常广泛,从农业到全球环境检测,几乎都有它的身影。但也不难看出,这些高精度设备的造价是非常昂贵的,其维护通常也由专人负责,普通的家庭或社区很难维护得起这样一台设备。

1.3 研究目的与既定目标

本项目填补了全自动微型气象站在智能家庭领域的缺口,从硬件设计与软件设计这两个纬度对项目进行阐述。一则探索了全自动气象站在这一领域的应用,另一方面也锻炼了我们对问题、对事物分析与处理的能力,提高自身专业水平素养,为将来参与到建设伟大的社会主义祖国的事业当中打下一定基础。

智能全自动微型气象站的设计采用了全模块化的解决方案,为各种传感器、通信模块留出相关接口。在通信方面使用了NB-IoT模组,可以在原理无线局域网的地方安装气象站设备,提高了部署的灵活性,这也为后续的组网需求提供了可行方案。本设备将会有以下的特点:

  1. 便于普通用户安装,设备需要有多种安装方式供用户选择;
  2. 留有充足的传感器接口,以适应不同用户的定制化需求;
  3. 使用太阳能与低功耗系统,设备可以安装在远离市电的地方,提高应用范围,减少用户在电力方面的额外支出;
  4. 需要能连续记录较为精准的数据,可以为科研、特定区域的气象预测等方面提供数据,增加了设备的使用场景;
  5. 低成本生产,使用开源生态所支持的传感器,对于普通用户而言较低的价格可以带来广泛的市场,对于较专业用户,则可以进行大规模部署;

气象行业是服务型行业,从气象播报到现在的业务化,气象行业也在顺应时代的发展。全自动智能微型气象站还可以为不同的用户提供服务,例如在工厂附近检测环境参数、在智能农业方面、在科研用途方面等等。为扩展气象行业相关业务方面做出一小点贡献,从而推进气象事业的建设与发展,并使之更好的服务于大众^[5,6]^。

第二章 传感器与芯片既定指标

2.1 传感器测量精度规范

传感器的质量参差不齐,高精度的传感器价格也高,低精度的传感器虽然价格便宜,但不满足使用需求。传感器的选择直接影响到受众群体与用户的实际使用体验,但考虑到这个设备家用级的,因此需要制定一个测量精度范围,根据范围选择价格合适且符合要求的传感器。测量范围参考了由中国气象局出版的《生态气象观测规范(试行)》和《地面气象观测规范》。

表2.1 气象参数测量精度指标

测量要素 测量范围 分辨率 单位
气温 -50~+50 0.1
湿度 0~100 0.1 %
风向 0~360 45 °
风速 0~50 0.1 m/s
气压 100~300 0.1 hPa
PM 2.5 0~500 1 μg/m3
CO浓度 0~500 1 PPM
光照强度 0~10000 0.1 Lux

2.2 设备功能框架与芯片指标

根据表2.1可知气象站设备需要测量的基础项目有:温度、相对湿度、大气压强、PM2.5、风速、风向、空气中一氧化碳浓度以及光照强度(作为选配)。设备连接众多传感器,需要许多的引脚,在兼顾扩展性的同时还要考虑到数据处理的性能,是否高度集成以及是否能低功耗运行。

这里绘制出了一个设备框图,图2.1直观地展示出了使用需求:至少需要六个模拟端口、十三个数字端口,这里并未标出指示灯部分。

image-20220524184009771

图2.1 设备框图 展示了测量不同参数类型所需传感器所使用的通道:Analog代表模拟通道;IIC代表数字通道;Serial是串口,实际也使用数字通道;1-Wire 也是使用数字通道,与IIC不同的是,它没有时钟同步线。

第三章 技术路线

image-20220524184041420

图3.1 技术路线总图 (左)物联网层次结构与技术概述图:在感知层使用大量的开源硬件进行开发,可以快速降低成本,在网络层使用应用较为的NB-IoT传输数据,因为可以使用4G信号,其网络覆盖面较5G而言更为广阔,在应用层则基于低代码方式的IoT云平台进行开发,降低开发成本。 (右)产品功能图:左侧是气象站部分,展示了收集数据的类别,中间展示的是通信模块与网络协议,右侧上方是阿里云平台,右侧下方是本地数据处理平台;这张图展示了整个系统所有功能的分布情况与运行流程的概览。

第一部分的感知层,作为“感知”环境参数的部分,是整个气象站部分的核心,是信息采集的关键部分,利用常见的传感器技术手段收集环境参数,并利用MCU的算力对各传感器数据进行预处理、整合,之后形成Json格式的数据。MCU可以向NB-IoT模块发送指令,接收、发送数据。

第二部分的网络层,利用NB-IoT模块连接到互联网,这里主要处理相关网络协议,将感知层的设备接入互联网,保证其数据的正常上传。是整个设备必不可少的组件。该模块有较高的通用性,可以接入到各种平台、接口中,实现设备的上云。一个质量优秀的网络模块可以保证设备与互联网的连接质量与数据上传质量。

第三部分是应用层,这一部分作为气象站与用户的接口,设计上应与用户需求相结合,推出合适的应用、可视化界面,其主要为Web端和移动应用端。该部分主要用于展示气象站设备的气象参数。平台采用的是阿里云的平台,可以借助这个成熟的平台,将气象站设备接入到智能家庭系统中。

从功能的层次上来对整个项目进行划分,其主要功能的实现可以划分为三大部分:硬件部分、阿里云平台部分以及本地服务器部分(图3.1 b)。硬件部分通过MCU对多种传感器的源数据进行收集、预处理并按照一定的数据格式进行整理,通过中间的网络通信模块将数据上传至阿里云平台,一些处理过的数据可以直接在基于阿里云开发出来的Web端和小程序(移动端)上进行展示。本地的服务器通过阿里云的AMQP服务订阅一部分数据,通过一定的公式与数学方法对其进行分析,分析结果通过MQTT协议连接至阿里云平台并上传展示。

第四章 设备的硬件设计

市场上有众多数量的传感器,有的使用私有协议,有的使用通用协议,要从众多传感器中选择合适的解决方案,还需要遵循以下的这些原则:

  1. 具有通用性:市场上必须能找得到可替换产品,当传感器出现故障时用户可以快速自行替换传感器,因此尽量选择开源硬件生态所支持的传感器;
  2. 较好的稳定性:传感器必须能经得起长时间的使用;
  3. 对于使用场景有较好地宽容度:传感器/设备可以应用在多种环境当中而无需重新对传感器选型;
  4. 低成本;
  5. 必须符合气象参数测量精度指标或芯片指标;

之后可以在已有的框图上一步一步实施方案。

4.1 芯片的选型

为了满足指标的要求,我们参考过STM32系列新品以及著名开源硬件Arduino所使用的ATMega系列AVR芯片,最终在功耗、价格、外围电路复杂程度等多方面的比较之下,最终在原型机开发中使用ATMega 2560芯片。该芯片拥有充足的引脚数量,256KBit Flash Memory储存空间。又因在开发时不知要用多少储存空间,也算是保险的选择。不选ATMega 1280芯片是因为售价高于2560芯片,且储存空间缺失一半。ATMega 2560的芯片特性如下:

  1. 高性能的8位AVR微处理器;
  2. 在16MHz下性能高达16MIPS;
  3. 1万次Flash擦写和10万次EEPROM擦写;
  4. 86个可编程的I/O接口;
  5. 工作温度在零下40℃到85摄氏度之间;
  6. 超低功耗;

除了参考了其扩展能力以及性能表现,我们还看中了围绕该芯片的强大的、丰富的开源硬件生态。采用该芯片,用户后期可以根据自己的需求进行硬件上的自由更改,无论在扩展上还是维护性上,简易性和低成本方面都将得到提升。

4.2 电源部分

4.2.1 电源芯片选型

任何电子设备都离不开电源^[7]^,拥有质量良好的电源可以为精确收集数据打下良好的基础。在选择电源芯片的时候,应当从输入电压、输出电压、输出功率、转换效率、工作温度以及电路设计复杂程度等方面考虑。气象站设备的包含太阳能供电与电池供电这两部分,前者在光照充足时给设备供电,同时给电池充电;后者则是在光照不足时对电路进行供电。二者的切换方式也比较简单,本方案使用了一个肖基特二极管。

稳压部分在最初有两种解决方案,一种是基于开关电源的DC-DC转换,其在生活中的方方面面都得到了应用,其中BUCK控制芯片在计算机、通讯设备等产品中有着非常广泛的应用^[8]^,但是该控制芯片需要一个内部的5V供电来为芯片的低压电路供电^[9]^,这增加了整体电路的复杂程度。考虑到基于开关电源的DC-DC转换会产生较大的噪声,并且本项目的使用需求对电源的转换效率并不高、电路整体功耗不大,因此选择了更为稳妥的LDO低压差线性稳压器。

根据使用的传感器与芯片规格,主控板上需要有两种供电规格:3.3V与5V供电。因此,5V电路部分采用JC7805芯片,3.3V部分采用了AMS1117-3.3芯片。

截屏2022-05-24 18.45.10

图4.1 电源部分原理图 (a)太阳能输入稳压部分; (b)元器件5V稳压部分; (c)元器件3.3V稳压部分

4.2.2 电池组设计

在技术论证时,曾考虑过使用超级电容作为储电装置,因为超级电容利用双电层原理直接储存电能,其容量可以达到数万法拉,是介于蓄电池与传统电容器之间的一种新兴的储能装置。优点在于功率密度高、使用寿命长、工作温度范围宽等优点,但主要问题在于其生产与制造成本比较高昂^[10,11,12,13]^,以MAXWELL公司生产的16V100F超级电容为例,单块价格高达280~300人民币,且不提体积和重量问题,因此放弃使用超级电容作为储电装置改用较为常见的锂离子电池作为储电装置。

这里选择的是在日常生活中较为常见的、也是保有量名列前茅的18650锂离子电池,单节容量达到3450mAh,电压达到3.7V,使用串联方式以达到目标电压。

截屏2022-05-24 18.46.36

图4.2 电池组制作过程 (左)装配有均衡充电板的未完成组装的电池组; (右)正在打印中的电池组外壳组件

在加工工艺上,选择增材制造工艺制作原型机,材料使用PLA可降解塑料,正式版的外壳材料采用ABS工程塑料。电池与主板的连接需要满足以下几点要求:

  1. 连接牢靠,不能出现晃动,需要有螺丝固定;
  2. 输送电流时发热量小;
  3. 接口组件在生产环境中非常常见,并且价格适中;

因此,这里选择了电脑主板上常见的PCI-Express x8 插槽作为电池与主板的连接器。在电池组上安装有特别定制的金手指连接器,得益于众多的针脚,输送电流时热量会被有效地分散。两面都有针脚,分别作为电源的正负极。电池底座四周均有螺丝孔,用于与主控板背板进行固定。

截屏2022-05-24 18.48.10

图4.3 电池组组装图 (左)正在测试金手指与PCI-E x8插槽的连接性能,图片展示的电池组外壳的底部组件; (中)组装完成的电池组Beta 2版本的底部视图; (右)组装完成的电池组Beta 2版本的顶部视图;

表4.1 Beta 2版本电池组理论电气性能参数

要素 要素
电池满电电压 7.8V 电池容量 3250mAh
电池亏电电压 6.1V 过充保护
充电电压 8.4V~9V 过放保护
最大瞬时充电电流 5A 短路自恢复保护
最大工作充电电流 3A 最大充电功率 27W
瞬时最大放电电流 20A 平均充电功率 10W
最大工作放电电流 10A

从理论电气性能参数可以看出Beta 2版本的电池组符合设计要求,在经过实际的测试中可以发现:电池组在充电峰值24W的情况下,两个半小时即可充满电;电池组在峰值负载为2W的情况下,电池可以使用十一个半小时到十二个小时之间。

4.3 温湿度传感器

温度与湿度是气象监测中最常见的两个参数。温湿度传感器是环境参数数字化的重要组件,在开源生态中,最常见的两种采用复合采集元件技术的传感器是DHT-11型和DHT-22型传感器。

鉴于电气参数的对比,尽管DHT-22型传感器的采样率低于DHT-11型传感器,但为了获得更高精度、更广泛的测量范围,最终还是选择了DHT-22型传感器。由于设备对于续航有较高的要求,因此程序在设计时数据的采集间隔会比较长,这足以抵消掉低采样率的影响。

表4.2 DHT-11与DHT-22传感器相关电气参数

DHT11 对比项目 DHT22
0 ~ 50℃/±2℃ 温度测量范围及精度 -40 ~ 125℃/±0.5℃
20 ~ 80%/±5% 湿度测量范围及精度 0 ~ 100%/±2~5%
1Hz 采样率 0.5Hz
3 ~ 5V 工作电压 3 ~ 5V
2.5mA 工作时最大电流 2.5mA

DHT-22传感器是单排四引脚封装的,使用单线串行接口连接至单片机^[14]^。项目中的传感器只使用到了其中的三个接口:一个用于数据传输,两个用于供电。

image-20220524185109867

图4.4 DHT-22型传感器

4.4 大气压强传感器

大气压强简称气压,测量的方法通常有很多种,最常见的是振筒式压力传感器和水银气压表。这里采用在开源环境乃至于生活中最常见的数字气压传感器:Bosch的BMP280传感器,拥有较高的精度以及稳定性。精度的典型值为±0.12hPa,工作范围在100hPa至300hPa之间,完全符合前期设定的电气参数标准。

4.5 风向传感器

在风向传感器的选择上,使用了GT-3000-FX-V05风向传感器,使用铝合金材质以及电镀喷塑工艺,以保证其可以长期正常使用。数值的输出方面,采用了模拟信号输出,其测量范围有八个方向,符合前期设定的电气参数标准。

4.6 风速传感器

风速传感器采用传统的小型直流有刷电机与三杯式旋转风杯的组合,材料为ABS工程塑料。测量的范围从0到56 m/s的风速,完全符合前期制定的标准。在数据的采集方面使用模拟信号,精度为±0.55V。

截屏2022-05-24 18.53.14

图4.5 风向风速传感器 (左) GT-3000-FX-V05风向传感器; (右)三杯式旋转风杯风速传感器;

4.7 PM2.5传感器

灰霾天气对人们的生活和身体健康会造成不利的影响,检测颗粒物浓度的核心技术就是拥有一个准确可靠的传感器^[15]^,光电传感器采用光学元件作为检测元件,将环境参数转变为电信号。项目采用夏普公司的GP2Y1014AU0F型传感器,其通常应用于空气净化系统。可以检测最小0.8微米的粒子,测量步长为0.1mg/m³。

4.8 一氧化碳传感器和光照传感器

这两种传感器在开源环境下没有过多的选择余地,MQ系列传感器器是最常用的入门级气体检测模块,系列中所有传感器针脚定义是相同的,因此可以升级、定制使用不同检测目标的MQ系列传感器。光照传感器则采用了GY-302型传感器。

4.9 NB-IoT模块

窄带物联网模块的选择,是决定整个项目成败的关键因素,一切收集的数据都要通过该模块上传到物联网平台。选择的模块应遵循以下几点原则:

  1. 具有通用性;
  2. 易于维护;
  3. 低功耗;
  4. 支持MQTT协议;

因此在早期选择的时候,有三款物联网芯片脱颖而出。都是来自移远公司的产品。

BC-260Y、BC-35G和BC-95都有着优异的理论参数与实际性能表现,

image-20220524185527645

图4.6 移远公司生产的NB-IoT模块:从左到右依次是BC260Y、BC35G和BC95的针脚封装图

经过实际测试,考虑连接稳定性、体积大小、功耗与成本等诸多因素,最终选择了BC-260Y模块。

4.10 太阳能充电部分

本项目所设计设备的产品定位主要是面向个人、家庭用户,因此需要在各个组件的选择和设计上要尽量实现小型化与轻量化。光伏板发电效率与面积成正比,但是也与光伏板的种类有关系。市场上常见的光伏板分为两种:第一种是晶体硅太阳能板,另一种是非晶体硅太阳能板^[19]^。

表4.3 晶体硅太阳能电池板与非晶体硅太阳能电池的性能比较

种类 晶体硅 晶体硅 非晶硅
单晶体硅 多晶体硅
衰减 十年10% 十年10% 一年内 20% - 30%
成本 较高
寿命 25年以上 25年以上 10年
转换效率 15%-18% 13%-15% 5%-11%
重量 较重
环境适应性 适应强光 适应强光 适应强光、 弱光、散射光

不同种类光伏板的发电性能与使用寿命是有所不同的,我们在整体成本和发电效率之间寻找到平衡点,选择了晶体硅太阳能电池板中的多晶体硅太阳能电池板,尺寸为600 x 350 x 17毫米,标称峰值电压18V,峰值发电功率30W。

第五章 集成电路板绘制与制作

智能设备的小型化离不开PCB技术的应用^[16]^。本项目借助立创EDA工具绘制气象站主控板。主控板的主要元件类型可分为两类:一是主控芯片、下载器芯片;二是电源芯片。

5.1 原理图设计

在绘制电路板之前,我们使用面包板进行设备接线的可行性验证,在根据验证结果进行接线优化并给出可行的接线方案,再根据这个方案绘制电路原理图。

表5.1 接线方法:展示要使用的Arduino接口标号与芯片引脚编号的对应关系

对应Arduino 接口标号 芯片 引脚编号 对应Arduino 接口标号 芯片 引脚编号
SCL PD0 D11 PB5
SDA PD1 D12 PB6
D6 PH3 D13 PB7
D7 PH4 D50 PB3
D8 PH5 D52 PB1
TX0 PE1 A0 PF0
RX0 PE0 A1 PF1
D3 PE5 A2 PF2
D4 PG5 A3 PF3
D5 PE3 A5 PF5
D9 PH6

image-20220524185844718

图5.1 利用面包板与开发板验证接线方案

截屏2022-05-24 18.59.16

图5.2 主控板电路原理图:基于Arduino开源项目修改,根据芯片文档对部分电路的微调修改,加入了与项目有关的部分电路

程序烧录方案选择了CH340C的USB to TTL解决方案,因为该芯片不需要使用外挂晶振来驱动内部电路,因此可以减少电路板的布线难度,通过修改官方的给出的建议设计方案,在上下行信号线上安装有LED指示灯,以便于观察工作状态。在进行原型机开发的过程中,充满了不确定因素,因此将主控芯片未使用完的全部I/O接口引出,为开发调试留出充足的空间。

由于设备需要在夜间或光线不充足时长时间运转,因此设备主控板对功耗控制也提出了比较高的要求。

PCB的设计、线路的复杂程度以及加工工艺等设计要素因使用用途而有所差异:对续航有需求的设备在对PCB线路布局时,应当尽量避免在导线上的功率耗散;大功率设备应当充分考虑PCB走线宽度以及散热设计^[17]^。元件的布局在PCB设计中非常重要^[18]^,根据芯片的种类,外围电路的复杂程度以及电路走向等因素,进行布线、布局。气象站设备主控板采用的双层板工艺完全满足设计需求。电路部分分为了电源、主控芯片以及I/O接口这三大部分,自上到下排列^[16]^。

电源部分在主控板的上方,设置有两个接口,一个用于连接光伏板输入接口,另一个用于连接内置电池。绘制的时候,考虑到过长的导线会引起明显的降压和增加额外的耗散功率,因此将电源部分紧凑地绘制在电路板的上半部分。考虑到散热问题,在发热量较大的直插元件背面安装散热模块,而贴片元件则直接通过电路板来完成散热^[16]^。

截屏2022-05-24 19.00.35

图5.3 程序下载器与I/O接口布局:电路板主要功能集中在左半部分,右半部分用于安装电池^[16]^

为了充分考虑电池及电池背板安装空间,因此在电路板右侧空出了非常大的一块空间,是专门用来安装电池的。同时为了在开发中方便调试,也将针脚定义图绘制在了右侧较大的空间里。绘制的同时也有用于通信模块的拨码开关的用法图^[16]^。

在进行PCB元件布局上,去耦电容的正确位置摆放影响到整个系统的稳定性,因此电流先经过去耦电容,再到元件,减少由于高频信号线对电源的影响从而导致供电不及时的问题。之后对于PCB布线,首先进行供电部分的布线,供电部分的走线尽可能地短,以减少降压现象带来的影响,同时公共地线围绕在PCB的外围,形成环路,能够有效抑制噪声。之后对信号线部分进行布局,信号线的布局涉及到正反两面的走线,两面的导线尽可能的避免平行走线,以减少寄生耦合,同时为了保证数据准确无误的传输,各条地址线在设计时尽量保持等长,以免导致信号的时序混乱^[16]^。

5.2 电路板的制作与调试

image-20220524190121244

图5.4 正在使用恒温加热台加工的PCB板

相对比于直插型电子元器件,贴片形式在设计、加工过程与最终成品的美观程度上都更胜一筹。因此气象站设备主要元器件均采用贴片封装的形式,将PCB板与钢网对准、紧密贴合,均匀在开孔处刷焊锡膏后,根据BOM清单与PCB图将元件按照设计放置到正确的位置^[16]^。之后将待加工的电路板移至恒温230摄氏度的恒温加热台上进行焊接加工。加工完成之后,通过放大镜观察针脚与电路板是否都正确连接。

确认无误之后,需要通过主控板上预留的ICSP接口,使用配套的USBTinyISP下载器和专用软件烧写熔丝,并载入BootLoader引导程序。

截屏2022-05-24 19.02.11

图5.5 电路板调试 (左)使用USB-Tiny-ISP下载器连接主控板ICSP接口与计算机; (右)检测电路板运行状态并测试与传感器的连接状态:

第六章 结构件设计

利用CAD设计软件重建零件的三维模型,利用三维重建技术可以快速验证三维形状加工过程的可能性^[21]^,再通过增材制造(Additive Manufacturing)的方式“自下而上”积累材料最终制作出成品。通过该方法制作零件,不需要传统的刀具、夹具以及多道加工工序。该技术也曾被称为“快速原型”方式^[20]^。本项目的部分结构件使用这种方式制作而成,这加快了设计版本的迭代速度同时降低了加工成本。

气象站的箱体采用的是温州菲奈电气科技有限公司生产的含有透明顶盖的ABS防水箱。项目根据实际设计需求在箱体上开孔并做防水处理。

image-20220524190315389

图6.1 ABS防水箱尺寸:由温州菲奈电气科技有限公司销售人员提供

为了更加直观、生动地展现气象站设备内部各组件之间的关系,我们使用了三维建模技术来设计相关零件,并以爆炸图的形式直观地展示了组件间的关系。

image-20220524190352052

图6.2 主要部件的爆炸图:包含了箱体、风道、底部支撑结构、主控板与电源部分

ABS与PLA材料在民用级增材制造领域的使用非常普遍,前者加工出来的零件无论是在强度上还是耐用性上相较于PLA材料都高出了不少,后者则是生物可降解材料,在加工工艺上相较于对环境温度有着较高要求的ABS材料,要简单不少,因此在开放空间里使用3D打印技术,多数会选择PLA材质而非ABS材质。

在加工锂电池组外壳时(图4.2),最开始为了考虑长时间使用该电池组:在其他项目复用该电池组,因此使用ABS材料。但是受限于打印机是开放式的而非封闭式的,打印时经常出现翘边、脱落等问题,因此最终还是选择使用PLA材料。

有关气体检测方面的传感器,都集成于一个风道当中,内部由一个PWM调速的涡轮风扇控制换气速度。

image-20220524190421323

图6.3 风道及气体检测相关传感器:图片中右侧进气,顶部出气

风速、风向以及太阳能模块通过箱体上的航空插座、内部线缆连接到主控板上。最终将所有箱体内部组件完全放置于箱体内。

截屏2022-05-24 19.04.57

图6.4 总装完成的第一版气象站 (左)气象站正常工作时斜上方视图; (右)气象站夜间工作的视图

利用三维技术和增材制造技术大量降低了项目的制作成本并大幅缩减了各零件版本迭代的时间。增材制造及其相关原理有着非常大的发展空间^[20]^,随着新材料新技术的发展,相信在不久的将来,便宜、高强度的材料会应用在更为广泛的领域。

第七章 固件与数据可视化界面

7.1 气象站固件

固件部分的调用方式按照上文所述顺序进行讲解。

在温湿度检测中,Arduino代码需要引用DHT22所需的库文件--DHT.h,该库文件可以兼容DHT11,DHT12,DHT22,AM2301传感器。在代码中我们宏定义DHT22传感器的信号引脚接Arduino Mega2560的12号引脚,并且void setup中执行“dht.begin();”来实现温湿度传感器的初始化,对温湿度检测的数值以float浮点数进行取值,并且初始化数值为0.0。我们设置延时delay为400毫秒读取一次温度,湿度的数值,调用DHT.h库文件的函数dht.readHumidity()和dht.readTemperature()来读取传感器检测到的数值,之后向串口打印读取到的温度、湿度(float浮点数)的数值,最后返回温湿度值。

为了检测大气压强,选择了BMP280传感器,该传感器需用库文件Adafruit_BMP280和Adafruit_Sensor,BMP280传感器的数据是浮点型的。在开始使用该传感器之前,需要检测传感器是否可用,当传感器可用时,直接调用库文件里的方法读取数值。

这次使用的是VMS-3000-FX05-V05型风向传感器,该传感器通过电压的变化向主板回传风向数据。该型传感器可以回传八个方向,即:将360度水平垂直四个方向以及两两方位的夹角的平分线上四个,总计八个方向。

对于风速方面的计算,需要根据风速计的特性来设计程序。这次使用的传感器通过返回电压的大小来得出风速的大小,数值为浮点型。我们将传感器接到主板上的模拟接口上,读取其电压的变化,通过公式(7,1)计算得出风速的数值。

img (7,1)

为了保证兼容性以及测量数据的精准度,采用了夏普公司生产的GP2Y1010AU0F粉尘传感器。该型传感器有非常丰富的引脚,其中的measure脚连接主板A5接口,LEDPower引脚连接到11号数字引脚,在初始化的时候将LEDPower引脚定义为输出模式,PM2.5传感器的驱动条件是根据LED驱动周期和LED驱动时间而输出的,电压会变动。传感器上电后一秒内会变得稳定,能正常地运作。

MQ-7为一氧化碳检测模块,使用该模块需要使用到了一个模拟接口来读取数值,宏定义MQ-7的A0口引脚与气象站主板的A0引脚连接,我们设置延时delay为400毫秒读取一次烟雾数值,我们将读取到的烟雾数值以float浮点数的表示;调用库函数analogRead()来读取MQ-7引脚的数值,最后返回烟雾数值。

读取光照强度的传感器是GY-30,其读取的数据并不是最终的光照强度数值,我们需要按照下列公式来进行转换:

实际值 =测量值 /(1.2 *透光率 *高精度模式 2 调整值)

对于光照强度传感器,读取数据需要借助Wire.h库文件,这是一个IIC的库文件。初始化传感器需要通过IIC向传感器发送0x01,Wire.beginTransmission(address)开始一次传输数据,一个IIC开始字符,参数为address,GY-30的地址0x23。Wire.endTransmission()结束一个由beginTransmission()开始的并且由write()排列的从机的传输。

在设计气象站硬件的时候,应当有一种能够快速告诉用户设备运行状况的硬件,于是设计了指示灯,通过不同灯的亮灭,来反馈当前的运行情况。

设备拥有三个专门用来反馈运行情况的LED灯,将其写成一个函数,便于在程序中调用。在单个灯亮起时,第一种指示灯用来反馈设备的运行、健康情况;第二种指示灯用来反馈通信模组的运行情况;第三种指示灯用来反馈程序的运行情况;

当第一个和第二个灯交替闪烁时,代表传感读取正常。后续还有可以加入更多的使用方法。

7.2 数据的可视化设计与界面展示

一幅图胜过千言万语,人在感受外界的刺激方面处于强项,能够快速将眼前的信息快速加入到已有的认知里^[22]^。因此,有一个设计简洁优美的可视化界面,可以大大增加用户对气象站数据的感知。

可视化界面的设计需要考虑到两个群体的使用感受:熟悉移动应用的客户群体以及熟悉桌面应用的客户群体。因此可视化部分需要设计两套方案以满足用户需求。可视化界面使用阿里云物联网平台IoT Studio进行开发,无论是前端还是后端,都有着非常稳定的服务以及完善的技术支持

image-20220524190712599

图7.1 阿里云物联网平台IoT Studio主页界面

7.2.1 Web端开发与最终效果展示

img

图7.2 开发界面全览

阿里云物联网平台提供了低代码方案的Web可视化界面的搭建,其提供了非常丰富的组件,例如:常用的仪表盘、折线图、曲线表等,可以为不同的组件配置不同的数据源,以做到全方位、实时展示数据的变化。

在主界面右侧的仪表盘展示温湿度数值,设备运行状况表示当前主要模块是否在线,绿色在线,灰色离线;温湿度走势图展示近4小时内,温湿度实时变情况;左下角展示未来三天内天气情况与根据检测到气象数据来判断当天出行建议;右下角,以卡片的形式展示风力数据(风速、风向)和大气压强、紫外线强度;单击任意模块卡片可以跳转到该模块的详细数据页面。

img

图7.3 主页面展示

在数据详情页面,展示所有模块数据,左上角卡片展示温度,湿度,光照强度,紫外线辐射,雨量,风向,风速数据;左下角卡片展示模块内部风扇运行通风情况,以时间为基准的信息表格,右上角卡片更加详细的展示模块在线运行情况。

img

图7.4 数据详情页面

在风力数据页面里,详细展示了实时风力数据(风速,风向)以及风速历史走势图,还有风向传感器和风速传感器模块运行状况。

光照数据页面,详细展示光照数据:光照强度,空气指数,对紫外线光照数据的统计以及模块运行状态。

imgimg

图7.5 风力与光照数据展示页面 (上)风力数据页面; (下)光照数据页面;

空气数据页面展示空气质量数,大气压强,海拔高度,PM2.5浓度,一氧化碳浓度以及对于PM2.5和一氧化碳浓度统计的走势图。在模块运行状态页面详细展示当前气象站所有模块运行情况,部分模块电压配置,气象站设备电池工作状况(电量%,电压,功率),右边卡片统计气象站模块利用率,模块分布情况,模块数据雷达图。

imgimg

图7.5 空气数据与运行状态展示页面 (上)空气数据页面; (下)设备运行状态页面;

上面的图片展示了移动端的页面布局设计,使用了直观的图形化界面展示数据。部分界面还展示了多维度的数据。

7.2.2 移动端开发与展示

移动端的页面设计分区和Web端基本相似用户可以在支付宝里直接查看,其使用的数据源与Web端一致。主界面展示了各个模块的运行状态以及数据流。设有专门的温湿度页面来展示相关的详尽的数据。

截屏2022-05-24 19.10.05

图7.6 移动端界面预览

上面的图片展示了移动端的页面布局设计,使用了直观的图形化界面展示数据。部分界面还展示了多维度的数据。

7.3 数据处理

阿里云IoT Studio平台在提供便捷的前端设计同时,也提供了数据的上传与下载服务,项目从云端接收数据消息使用到的是阿里云的AMQP,也就是高级消息列队,这是一个提供统一消息服务的应用层标准协议。该协议有许多的特点:异步、安全、跨平台、中立、高效等,不受客户端、不同开发语言的限制^[23]^。

气象站设备每天都会上传大量的数据,对数据分析的一个核心问题就是在于如何有效地表达、解释数据^[24]^。数据的可视化是一个很好的解决方案,但需要后台提供一些特征数据。因此,在本地搭建服务器,利用AMQP协议从云平台获得用户上传的数据,在本地分析后,保存至数据库的同时使用MQTT协议再上传至云平台。

穿衣指数与推荐的穿衣服装款式参考了下面表7.1。

表7.1 服装厚度与服装款式 、穿衣指数对照表^[25]^

穿衣指数 服装厚度 服装款式品种
1级 0 - 1 .5 短衫、短裙、短裤、薄T 恤、短袖、敞领短袖、棉衫
2级 1 .5 - 4 短裙、短裤、衬衫、短套装、T恤
3级 4-6 单层薄衫裤、薄型棉衫、针织长袖衫、长袖T恤、长裤、薄型套装、牛仔衫裤
4级 6 -10 套装、夹衣、风衣、夹克衫、西服套装、马夹衬衫+夹克衫配长裤
5级 10-15 风衣、大衣、外套、毛衣、毛套装、夹大衣、薄棉外套
6级 15-20 棉衣、冬大衣、皮夹克、内着衬衫或羊毛内衣、毛衣、外罩大衣
7级 20-40 棉衣、冬大衣、皮夹克、皮褛、羊毛内衣、厚呢外衣、呢帽、手套
8级 40-70 羽绒服、风雪大衣、裘皮大衣、手套、呢帽、太空棉衣等

穿什么种类的衣服,通常是根据天气情况而定的:在夏天为了便于散热,穿的就薄一些;在冬天为了保暖,我们就穿得厚一些^[26]^。因此本项目的穿衣推荐主要依靠温度的变化进行判断。判断标准参考了这张综合了众多对照表制作出来的穿衣指数和温度对照表。

表7.2 穿衣指数和温度对照表

指数建议 温度范围
1级 >28℃
2级 24~28℃
3级 21~24℃
4级 18~21℃
5级 15~18℃
6级 11~15℃
7级 6~11℃
8级 ≤6℃

第八章 总 结

本文根据国内外相关研究现状、应用角度以及市场缺口对智能全自动微型气象站设备及相关应用从多个角度进行研究、设计与实现。主要完成的工作及测试效果如下:

  1. 完成了可行性分析与测量精度指标的确定,根据实际使用需求设计、制造出了可以达到设计要求的智能全自动微型气象站原型机,可以应用于大部分的室外环境,主板上预留的接口可以为日后的硬件升级提供便利;
  2. 通信模块使用NB-IoT模块,低功耗表现和4G信号的支持使设备可以部署在远离无线接入点的地方。通信模块支持MQTT协议,可以灵活根据网络质量提前选择、设定合适的数据传输质量;
  3. 可视化平台使用了阿里云的IoT Studio进行设计,本地的服务器通过AMQP协议订阅云平台的消息,将数据下载至本地进行简单地分析,根据预设标准给出相关建议,并使用MQTT协议将结果上传至云平台;

通过本次项目,更进一步了解ATMega 2560的芯片性能、软硬件开发流程以及项目进展管理等相关内容,通过对AVR单片机在多传感器调用、多数据采集方面的实践,进一步掌握了相关开发技能。使用IoT Studio简化了可视化部分与后端的开发流程,利用本地的服务器对数据进行简要分析,使笔者进一步锻炼了Python的开发能力。

在本次项目中,创新性的使用了三维技术进行辅助设计,通过计算机辅助设计软件生动地将各组件的空间关系展现出来,更有利于设计各组件的形状与安装位置。

根据本次项目的实践经历,对于未来智能气象站设备更进一步实现家用化提出了我们的看法:

  1. 任何设备的民用化、家用化都离不开生产、维护、运行成本的进一步降低,气象站设备更是如此,市面上常见的单个智能传感器的售价在40元到500元不等,个别专用的传感器价格可能会突破这个数字,因此如何将制造成本降低到这个区间内或者接近这个区间是目前的一大难题;
  2. 自动气象站的进一步小型化也是重中之重。从历史上来看,个人计算机的普及就离不开设备的小型化,从最早几间屋子的设备组成一台计算机到现在的笔记本电脑、智能移动终端,这是设备小型化带来的使用上的便利。智能气象站需要在保证测量精度与维护便捷程度的情况下,进行小型化、进一步集成化的设计,同时还要保留一定的模块化设计以方便用户定制特殊的传感器;
  3. 提升续航可以扩大气象站设备的环境适用范围,目前连续测量情况下的十一到十二小时续航,只能说勉强够用,是没有冗余量的,一旦超过这个时长就会面临断电掉线的问题。目前市面上常见的有锂离子电池盒聚合物电池,前者是圆柱形的含有钢制外壳的,后者是平板型的、在智能手机和平板电脑中能见到它们的身影。在小型化的过程中,应当使用聚合物电池,在保持电池所占空间不变的情况下可以进一步提高电池容量。也可以使用一种较为新兴的储能方案:使用超级电容与锂电池的混合储能方案,这种方案在于可以快速地将能量储存到电容当中,再为锂电池组进行充电,好处在于如果天气由晴转阴比较快,使用单一的锂电池储能方案可能存不了多少点,而使用混合储能方案可以较快地储存一定数额的能量,不过这又是另外一个研究了。主控芯片、传感器也应当尽量选择低电压、低功耗版本的,这样可以提升续航时间;
  4. 越是民用、家用的设备,对智能化的要求就越高,因此后续应当训练一些数据分析的模型并迁移到气象站设备上,让部分的数据在本地就可以进行分析,以方便用户将设备接入HomeAssistant或是通过HomeBridge接入苹果的HomeKit当中。
  5. 应当开放更多种的联网方式。本项目为了展示智能全自动微型气象站的灵活部署能力,故采用了NB-IoT模块进行联网。在实际的生活中,用户可以选择通过4G联网,也应当可以选择通过Wi-Fi接入点、以太网、POE等方式将设备接入互联网,以尽最大可能满足不同用户的不同联网需求。

在项目期间,发表了一篇论文于《电子世界》二〇二二年一月(下)刊:

\1. 邝 达, 杨义远. 低成本与高扩展能力PCB设计[J].电子世界,2022(02):124 -126 . DOI: 10. 19353/j.cnki.dzsj.2022.02.055.

第九章 参考文献

[1]冯兆宇,崔天时,张志超,吕信超.基于ZigBee无线组网的微型气象站设计[J].物联网技术,2016,6(06):43-44+47.

[2] Глушков В.М. Введение в кибернетику. – Киев: Изд-во Академии наук УССР, 1964.

[3]董炯明. 二进制与逻辑运算:电子计算机基础[M]. 科学出版社, 1977.

[4]戴国华,余骏华.NB-IoT的产生背景、标准发展以及特性和业务研究[J].移动通信,2016,40(07):31-36.

[5]刘红兵. 基于双单片机的智能遥测微型气象站[D].南京信息工程大学,2006.

[6] Alberto Mantovani.创建宽带数字家庭[J].今日电子,2001(07):28-29.

[7]马新芳. 便携式设备电源管理研究[D].华中师范大学,2008.

[8] KOSODE Y, OBARA H, KAWAMURA A, et al. High performance transient response of high/low pulse voltage using two-phase interleaved DC-DC Buck converter under half sampling time deadbeat control [J]. IEEJ Journal of Industry Applications, 2020, 9(4): 444-45

[9]屈柯柯,祝乃儒,张海波.一种集成于BUCK芯片的5 V低压差线性稳压器[J].电子与封装,2021,21(07):42-45.

[10]李海东. 超级电容器模块化技术的研究[D].中国科学院研究生院(电工研究所),2006.

[11] R. Kotz, *, M. Carlen. Principles and Applications of Electrochemical Capacitors [J]. Electrochemical Acta 45 (2000) 2483-2498

[12] Andrew Burke. Ultracapacitors: why, how, and where is the technology [J]. Journal of Power Sources 91 2000 37~50

[13] Lai, J. -S., Levy, S., Rose, M.F. High Energy Density Double-Layer Capacitors for Energy Storage Applications [J]. Aerospace and Electronic Systems Magazine, IEEE Volume 7, Issue 4, April 1992 Page(s): 14 - 19

[14]林珠妹.基于DHT22的数字式温湿度计的设计[J].佳木斯大学学报(自然科学版),2016,34(02):223-225.

[15]杨永杰,张裕胜,杨赛程,张小美.一种PM2.5检测传感器设计[J].传感器与微系统,2014,33(03):76-78+81.

[16]邝达,杨义远.低成本与高扩展能力PCB设计[J].电子世界,2022(02):124-126.DOI:10.19353/j.cnki.dzsj.2022.02.055.

[17]黄云生. 电子电路PCB的散热分析与设计[D].西安电子科技大学,2010.

[18]葛守仁.关于印刷电路及大规模集成电路布线设计的理论研究[J].重庆大学学报(自然科学版),1980(03):112-123.

[19]杨茜. 主动式太阳能技术与办公建筑设计一体化研究[D].重庆大学,2010.

[20]卢秉恒,李涤尘.增材制造(3D打印)技术发展[J].机械制造与自动化,2013,42(04):1-4.DOI:10.19344/j.cnki.issn1671-5276.2013.04.001.

[21]王春莉,梁立波,王宝玉.计算机三维重建技术发展与应用[J].沈阳大学学报,2003(02):25-26.

[22]任磊,杜一,马帅,张小龙,戴国忠.大数据可视分析综述[J].软件学报,2014,25(09):19 09-1936.

[23]高晓婷. 基于AMQP的信息发布与订阅[D].浙江工业大学,2013.

[24]程学旗,靳小龙,王元卓,郭嘉丰,张铁赢,李国杰.大数据系统和分析技术综述[J].软件学报,2014,25(09):1889-1908.DOI:10.13328/j.cnki.jos.004674.

[25]贾硕,吴萍萍,李仪芳,叶正谦.基于气象数据的天气穿衣指数的应用研究[J].农村实用技术,2019(03):89-90.

[26]杨雪艳,任丽梅.着装厚度及穿衣指数预报服务方法的初步探讨[J].吉林气象,2002(01):16-19.

0

评论区