黄娇郁 唐海
摘要:针对于国家气象部门所用气象站维护难度大、专业要求高等问题,提出一种基于阿里云物联网平台的民用自动气象站设计方案。系统设计方案包括硬件部分和软件部分。其中,硬件部分包括以AM3358为主控制器的核心电路、Modbus传感器数据采集电路、4G通信模块等;软件部分包括设备端Link kit软件开发、云服务器端IoT Studio网站应用UI界面开发、后台数据服务开发、消息流转等内容。整个系统实现了六要素自动气象站的全部功能,并增加了一些实用功能,如在出现特定气象参数时,将消息发送至手机APP群组。实践测试表明其具有维护简单、成本低廉等优点,特别适用于农业生产、车站、港口等非气象部门中对气象要素的观测需求。
关键词:阿里云物联网;自动气象站;Modbus;MQTT
中图分类号:TP399 文献标识码:A
文章编号:0439-8114(2020)17-0166-04
Abstract: In view of the difficulty of maintenance and high professional requirement of meteorological station used by governmentalmeteorological department, a design scheme of civil automatic weather station based on Aliyun Internet of things platform is proposed. The system design includes hardware and software. The hardware part includes the core circuit of AM3358 controller, Modbus sensor data acquisition circuit ,4G communication module and so on. The software part includes device side Link kit software development, cloud server side IoT Studio website application UI interface development, background data service development, message flow and so on. All functions of the six-element automatic weather station are implementedin the system, and some practical functions are added, such as sending the message to the mobile phone APP group when a specific weather parameter appears. The practical test shows that it has the advantages of simple maintenance and low cost, which is especially suitable for the observation of meteorological elements in non-meteorological departments such as agricultural production, station and port.
Key words: Aliyun Internet of things; automatic weather station; Modbus; MQTT
隨着云计算和物联网技术的发展,越来越多的企业将核心业务转移到云端,而终端设备以物联网节点的形式和终端用户交互[1,2]。受维护成本和技术的限制,气象部门所维护的自动气象站的数量和分布区域有限,而与气象要素紧密相关的企事业单位难以独立维护气象观测设备[3]。如农田小气候的观测、港口、机场、车站气象监测等应用场合[4,5]。因此一种易维护、低成本的气象监测设备的研发变得十分必要。民用相关的气象传感器产品在市场上较普遍,因此数据的采集不是难点。数据的传输和处理是关键问题,普通单位没有条件建立一套完整的数据传输专网和数据处理中心。基于以上考虑,本设计借助云计算和物联网技术,实现一套维护简单、扩展灵活、不受地域范围限制的自动气象站设计方案,可以广泛用于生产实践。
本自动气象站包含常见的气象六要素传感器:风速、风向、雨量、温度、湿度、气压。传感器接口是RS-485,协议符合MODBUS-RTU。在此基础上,可以动态增加其他必要的传感器而不需要修改硬件设计,比如增加土壤、照度等传感器。
1 主控板硬件设计
1.1 主控芯片选型
自动气象站硬件需要很强的环境适应能力,主要包括对环境温度的适应能力和对电源的适应能力。处于野外的自动气象站需要在极热和极寒的条件下正常工作,且一般以太阳能电池和蓄电池作为电源,需要整机功耗较低才能适应长期连续不间断工作条件。
综合以上考虑,选用德州仪器(TI)的AM335x 微处理器,其基于 ARM Cortex-A8架构,满足工业温度范围要求(-40~85 ℃),且功耗较低,在典型CPU主频400 MHz的情况下,功耗仅约3 W,能适应在市电断电的情况下使用蓄电池和太阳能电池板长时间工作。
1.2 主控板设计
为了扩大硬件的灵活适应性,采用核心板加底板组合的方式,核心板包括了CPU和内存,底板引出AM335x丰富的外部接口,能满足自动气象站连接传感器和通信线路的需要。外部接口见表1,图1是整个硬件系统框架。
2 软件设计
为实现完整操作系统功能和网络接入能力,选择Linux操作系统内核和Debian根文件系统发行版。Debian 是一个自由操作系统[6],不只提供一个纯粹的操作系统,它还附带了大量的开源软件包,同时又具有丰富的上游软件库的支持,可以方便更新本地软件包。本方案的整个软件系统总体框架见图2。
2.1 系统镜像构建
在装有ubuntu 16.04的PC机上构建ARM平台的Debian根文件系统。安装 qemu 和 debootstrap 等工具,用 debootstrap 抽取系统。最终构建的根文件系统:bin boot dev etc home lib opt proc root run sbinsrv sys tmpusr var.
2.2 Modbus-RTU协议的支持
为支持工业现场总线Modbus-RTU协议,采用Linux下开源的libmodbus软件库。所有使用同一RS-485總线的传感器应该使用不重复的Modbus从站地址。其中温度、湿度、气压3个要素被集成在一个传感器上(表2)。以风速读取为例,使用0x03功能码,读取0x0016寄存器上的风速值,一次通信命令过程如下。
主控板发出 01 03 00 16 00 01 65 CE
传感器回复 01 03 02 00 0C B8 41
传感器回复的温度值是0x0C,把十六进制换算为十进制,此时得到的风速就是12 m/s。
3 设备接入
3.1 设备接入SDK
阿里云物联网平台的Link Kit软件开发包可以快速实现设备的连云开发,且有多种编程语言可以选择,比如C语言、Java和Python[7-9]。为支持底层硬件驱动访问和兼容Libmodbus,本方案选用C语言版本SDK。只需将云端设备的三元组(产品密钥、设备名称、设备密码)与软件开发包绑定,即可实现安全的数据传输。
Link Kit支持与云端的MQTT(ISO标准消息队列遥测传输)通信,这为低成本的设备连云提供了基础。MQTT是一个基于发布-订阅机制的轻量级传输协议,专为一些软硬件资源较少的物联网设备设计。
Link Kit支持FOTA(Firmware-Over-the-Air Technology),即空中下载技术[10]。物联网平台支持通过FOTA方式进行设备固件升级。FOTA对自动气象站的远程维护升级来说是非常必要的,通过FOTA流程,用户可以从云端远程更新Link Kit软件自身。
Link Kit的程序流程见图3。①初始化,导入设备三元组;②建立与服务器的MQTT连接;③注册服务、事件、属性、FOTA等回调函数;④开启数据采集线程;⑤进入消息循环,采集数据,检查是否有事件和属性需要上报。实现服务、事件、属性上报和FOTA更新的回调函数如下。
IOT_RegisterCallback(ITE_SERVICE_REQUEST,user_service_request_event_handler);
IOT_RegisterCallback(ITE_PROPERTY_SET,user_property_set_event_handler);
IOT_RegisterCallback(ITE_REPORT_REPLY, user_report_reply_event_handler);
IOT_RegisterCallback(ITE_TRIGGER_EVENT_ REPLY, user_trigger_event_reply_event_handler);
IOT_RegisterCallback(ITE_FOTA,user_fota_ event_handler).
3.2 阿里物模型编程
物模型指将物理空间中的实体数字化,并在云端构建该实体的数据模型[11]。在物联网平台中,定义物模型即定义产品功能。完成功能定义后,系统将自动生成该产品的物模型。物模型描述产品是什么,能做什么,可以对外提供哪些服务。物模型可以描述为一个JSON格式的文件。它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、服务和事件3个维度,分别描述了该实体是什么,能做什么,可以对外提供哪些信息。定义了这3个维度,即完成了产品功能的定义。
物模型将产品功能类型分为3类:属性、服务和事件。定义了这3类功能,即完成了物模型的定义(表3)。该自动气象站支持6个气象要素属性,1个设备自检服务和1个错误报警事件。
4 Web可视化界面设计
基于IoT Studio的Web可视化开发工作台是物联网应用开发工具。无需写代码,只需在编辑器中拖拽组件到画布上,再配置组件的显示样式、数据源及交互动作,即可以可视化的方式进行Web应用开发。开发好的Web应用直接托管运行在阿里云服务器上并全天运行,用户无需搭建自己的服务器。该方案所开发气象站及监控面板如图4所示。通过CNAME解析,可以将用户自己的域名和Web应用关联,从而实现Internet访问。
5 服务和消息开发
5.1 定时服务
翻斗式雨量传感器需要定期清零操作,使用阿里云物联网平台规则引擎中的定时服务实现。该规则引擎支持标准5位Cron表达式的计划任务,可以精确到分钟。例如,设定每个小时的整点时刻清零雨量,可以设定Cron表达式如下。
0 * * * *
其中,0表示每分钟的第0秒,其余“*”表示任意的小时、天、月和年。
当定时器满足条件时,执行雨量情况命令,即通過Modbus发送清零指令给传感器。以上过程皆由阿里云平台实现,用户无需维护服务器。
5.2 消息流转
阿里云平台支持和钉钉APP的及时交互,当气象站检测到特定的气象参数或者异常报警时,可以将消息发送到管理人员的钉钉群组,实现这一过程只需要设置相关的Webhook和钉钉账户信息(通常为手机号),在可视化界面编辑消息处理模块,设置各模块的输入和输出逻辑关系。如图5所示,传感器数据经过设备触发条件模块判断后,将结果送给路径选择模块做分类处理,从而发送给特定的钉钉机器人,产生不同的消息到特定钉钉APP群组。
6 小结
系统设计主要完成了以下几部分工作:自动气象站硬件设计,该部分电路是承载整个数据采集和传输业务逻辑的基础;基于Link Kit的数据采集和联网程序;基于Iot Studio的Web界面合计;基于阿里云平台的消息和服务设计。系统的创新主要体现在:①采用嵌入式SOC处理器运行Linux操作系统内核,结合Debian嵌入式操作系统栈,使得上层软件开发变得通用和便于移植,所有程序基于标准的POSIX,功能上与通用计算机兼容,同时系统功耗又非常低;②借助阿里云物联网平台,气象站的数据采集、处理、显示、运行维护可以全部在云端实现,用户无需自建服务器,真正实现低成本自动气象站的需求。
参考文献:
[1] 范天恩. 基于云服务的物联网嵌入式开发平台研究与设计[D]. 上海:上海师范大学,2018.
[2] 刘 强, 崔 莉,陈海明. 物联网关键技术与应用[J]. 计算机科学,2010,37(6):1-4.
[3] 李 岩,王 娟,王 胜,等. 基于DZZ6和TYQ200的新型区域气象站保障技术[J]. 湖北农业科学,2019,58(S1):67-69,95.
[4] 马召伟. 农田小气候监测预警系统[J]. 湖北农机化,2019(15):36.
[5] 陈斌源,纪立恒,邓晓璐. 农业气象自动观测采集系统对现代农业气象观测的作用[J]. 福建热作科技,2018,43(1):64-66.
[6] 王 洋. Debian架构研究[J]. 电脑知识与技术,2017,13(13):75-77.
[7] 刘 雨,望育梅,张 琳. 一种无线传感器网络中的信息驱动节点选择机制[J]. 北京邮电大学学报,2006(6):66-70.
[8] 熊梦彪,高 誉,周龙丽,等. 基于MQTT协议的物联网农业监测系统[J]. 科技经济导刊,2019,27(29):32.
[9] 陈玉兵. 农业物联网动态感知与智慧决策系统[A]. 2018年全国物联网技术与应用大会论文集[C]. 北京:中国通信学会,2018.
[10] 李备备,栾 勇,王 超,等. 基于AM3358处理器的嵌入式实时EtherCAT主站的构建[J]. 组合机床与自动化加工技术, 2015(5):5-9.
[11]OUSSAMA R,MOHAMED T,FABRICE MONTEIRO A D. Smart device for multi-band industrial IoT communications[J]. Procedia computer science,2019,155:660-665.