为解决江河流域气象信息采集智能化不足导致的洪涝灾害预警难题,研究设计了基于STM32F103C8T6主控模块的气象信息采集系统。该系统集成多种传感器和WiFi模块,支持云端传输与手机APP实时监测及报警。实测表明,系统可实现0.5 Hz同步采集、2秒数据传输及3秒灾害预警响应,为智慧防洪工程提供可靠数据支持。
PART 01硬件电路设计
多元气象信息采集系统采用STM32系列中的STM32F103C8T6模块作为硬件平台的主控模块,数据采集部分则由风速、降雨量、温湿度等传感器模块组成。STM32F103C8T6是由意法半导体公司基于ARMCortex-M内核研发的一款STM32系列芯片。该芯片常用于中小型嵌入式系统设计,具有高性能、外设丰富、低功耗等特点,且外围电路搭建简单、价格实惠。
主控模块
STM32F103C8T6由意法半导体集团研发,采用32位ARM Cortex-M3内核,工作频率最高可达72 MHz;内置128 k B的闪存处理器和20 kB字节的随机存取存储器,共37个输入/输出端口、3个计时器、1个集成电路总线接口、1个串行外设接口、2个可通过串口通信控制通信模块的同步异步收发器接口;内嵌10个12位模拟/数字转换器,用于采集电压,转换时间为1μs,同时配备12个直接内存访问通道,可用于数据的快速传输。
传感器模块
1.2.1风速传感器模块
多元气象信息采集系统选用ZTS-3000型风杯式风速传感器,最低工作电压为12 V,量程为0~30 m/s,输出电压最高电平为3 V,最低电平为0 V。该类风速传感器工作原理如下:当风力作用在风杯上时,风杯会转动,进而带动传感器内的同轴多齿光盘转动,接着经过传感器内部电路处理产生与风速成正比的脉冲信号或电压模拟量信号,最终转换为风速数据。
1.2.2降雨量传感器模块
多元气象信息采集系统选用ZTS-3000型风杯式风速传感器,最低工作电压为12 V,量程为0~30 m/s,输出电压最高电平为3 V,最低电平为0 V。该类风速传感器工作原理如下:当风力作用在风杯上时,风杯会转动,进而带动传感器内的同轴多齿光盘转动,接着经过传感器内部电路处理产生与风速成正比的脉冲信号或电压模拟量信号,最终转换为风速数据。
1.2.2降雨量传感器模块
多元气象信息采集系统选用ZTS-3000型风杯式风速传感器,最低工作电压为12 V,量程为0~30 m/s,输出电压最高电平为3 V,最低电平为0 V。该类风速传感器工作原理如下:当风力作用在风杯上时,风杯会转动,进而带动传感器内的同轴多齿光盘转动,接着经过传感器内部电路处理产生与风速成正比的脉冲信号或电压模拟量信号,最终转换为风速数据。
1.2.2降雨量传感器模块
降雨量传感器以一系列平行外露铜迹线为导体,其中5条为电源线,5条为感应线,两种线交错排列,充当可变电阻器。将该传感器放在雨量杯中,当杯中没有液体时,电源线与感应线不相连;当杯中存在液体时,液体成为介质使电源线与感应线相连,且电阻随着迹线顶部到水面距离的变化而发生改变。
1.2.3温湿度传感器模块
温湿度传感器选用DHT11。DHT11由湿度传感器、温度传感器和一个高性能8位单片机组成。温度传感器是一枚包裹着负温度系数测温电阻的陶瓷片,其电阻值会随温度的升高而降低。湿度传感器则是一枚湿敏电阻,其电阻值会随着环境湿度变化而改变。上述两个电阻值会被转换为对应的数字信号传输给微控制器,再由微控制器解析生成一个9位的数据字,代表该传感器采集的温度和湿度。
1.2.4河流深度传感器模块
河流深度传感器选用广州市明远科技有限公司生产的投入式液位变送器。该传感器前端为一个高精度压力传感器,采用高性能隔离型扩散硅敏感元件,经过温度补偿后,可将静压转换为电信号。该传感器供电电压为12 V,需电源模块单独进行供电,量程为水深0~5 m,输出值为电压模拟量,最低电平为0 V,最高电平为3 V。
1.2.5河流流速传感器模块
河流流速传感器模块使用YF-S201霍尔水流量传感器。该传感器主要由霍尔传感器、水流转子及塑料阀体组成。在水力作用下,水流转子会转动,进而带动磁性转子转动,当磁性转子靠近传感器时,传感器导通,当磁性转子远离传感器时,传感器断开,因此,传感器输出脉冲频率随水流转子转速,即水流流速的变化而发生改变。
WiFi模块
WiFi通信模块主要使用深圳市安信可科技有限公司出品的ESP8266-01S模块。该模块是一款低功耗、高性价比的嵌入式无线网络控制模块,是常用的WiFi模块。ESP8266芯片作为该模块的核心,搭载了低功耗32位微型微控制单元,主频支持80 MHz和160 MHz,支持完整的传输控制协议/互联协议栈。ESP-01S模块引脚功能如表1所示。
电源模块
多元气象信息采集系统使用东莞市祺索电子有限公司生产的可充电锂电池进行供电。该锂电池可稳定提供12 V电压,拥有过流保护、短路保护等功能。主控模块及部分传感器模块工作电压普遍要求为3.3 V,因此采用AMS1117-3.3芯片作为降压芯片,将锂电池输出的12 V电压降压至3.3 V。
PART 02软件设计
2.1主程序流程
主程序会先运行环境信息采集子程序,采集并处理环境信息,将环境信息显示在有机发光二极管屏幕上,在联网成功的情况下,程序还会尝试获取机智云平台云端下发的指令,即手机APP上设置的各环境信息阈值。
机智云平台云端下发的指令为字典格式,包括风速、温湿度、降雨量等阈值的key和value值。接着主程序会运行数据接收子程序,对接收到的数据进行处理并存储,将采集到的环境信息与阈值进行对比,获得报警信息。然后主程序会运行数据传输子程序将采集到的环境数据与报警信息一同上传至机智云平台云端,完成一次循环。
2.2环境信息采集子程序设计
环境信息采集子程序共涉及5个传感器,分别为风速传感器、温湿度传感器、降雨量传感器、河流深度传感器、河流流速传感器。根据传感器采集信号的不同,可将环境信息采集子程序分为采集风速、降雨量与河流深度传感器的模拟量信号采集子程序、采集温湿度传感器的数字量信号采集子程序及采集河流流速传感器的脉冲信号采集子程序。
显示子程序
显示子程序先使用OLED_Init()方法初始化有机发光二极管屏幕,再使用OLED_Clear()方法清空有机发光二极管屏幕的内容,然后使用OLED_show()方法循环显示处理后的各传感器数据。由于有机发光二极管屏幕尺寸小,无法显示全部的传感器数据,因此,10 s循环显示风速、温湿度、降雨量与河流深度、河流流速两组数据。
2.4数据传输与接收子程序设计
通过WiFi连接至机智云物联网平台云端后,数据传输与接收子程序可以将本地数据上传至云端或接收云端发送的数据。主控模块通过ESP8266-01S通信模块将传感器采集且处理好的数据按照GAgent串口协议发送至机智云平台云端。同时,该模块将云端发送的数据根据平台定义的数据点生成相应数据,交由主控模块完成后续程序运行。
PART 03WiFi通信模块固件
2.5.1 GAgent固件
多元气象信息采集系统使用机智云物联网平台作为云端,因此需在ESP8266-01S通信模块中烧录机智云公司研发的GAgent固件,其集成了连接机智云平台所需的通信协议,可以实现手机APP到多元气象信息采集站的双向数据通信使用该固件将多元气象信息采集站接入机智云平台云端需经过设备上电、设备配置入网、设备绑定及数据上报与下发过程。
设备配置入网指基于WiFi将设备接入路由器的过程,先通过手机APP将路由器的名称与密码发送给通信模块,通信模块再使用收到的名称与密码。连接路由器,连接成功后会告知手机APP。
固件移植
待烧录GAgent固件前,需要在机智云官网下载对应版本的固件。由于系统使用的通信模块为深圳市安信可科技有限公司生产的ESP8266-01S模块,因此,需下载官网提供的GAgent for ESP8266(04020034)固件包。系统选择使用CH340模块进行烧录操作,其连接方式如表2所示。
机智云平台
2.6.1机智云云端服务器的搭建
首先,注册账号。注册机智云开发者账号,注册完成后即可进入开发者中心。其次,创建新产品。在开发者中心页面点击创建产品按钮,填入相关信息后完成江河流域气象监测产品的创建。最后,创建数据点。数据点用于描述产品的功能与参数,是连接手机APP、机智云平台云端、多元气象信息采集站的桥梁。三者之间需遵循设置的数据点协议进行数据传输。
APP开发
手机APP江河流域气象监测使用机智云官方提供的设备接入Android平台原生软件开发工具包(software development kit,SDK),该SDK封装了手机与机智云智能硬件,以及手机与云端的通信过程,这些过程包括配置入网、发现、连接、控制等。
从机智云官网下载WiFi/移动通信产品SDK for Android,将jar包导入Android Studio作为库文件,并添加so文件。
APP登录
先对AndroidManifest.xml文件进行配置和权限设置,再注册SDK通用监听器。该通用监听器能让手机APP收到来自GizWifiSDK类回调接口的响应事件,包括注册、登录、配置设备、绑定设备等。
然后使用在机智云官网为手机APP申请的Android APP ID调用startWithAPPID()方法,完成SDK的初始化。SDK可提供多种用户登录与注册方式,本系统采用了手机和邮箱两种登录与注册方式。
配置设备
当用户选择添加设备选项时,SDK会设置一个通用监听器。该过程会调用设备入网程序。要完成设备入网操作需ESP8266-01S模块进入AirLink配网模式,接着用户在输入框中输入当前手机WiFi的服务集标识(service set identifier,SSID)和密码,然后SDK会以SSID、密码及连接超时时间为参数,调用setDeviceOnboardingDeploy()方法进行用户数据报协议(user datagram protocol,UDP)广播,当通信模块收到广播包后会自动连接目标路由器。如果通信模块成功连接路由器,会发出配置成功广播,通知手机配置完成。
2.6.5设备的发现与订阅
手机APP设置监听并启动SDK后,即可接收设备列表推送。局域网设备或绑定设备变化时,SDK主动更新设备列表,手机APP通过getDeviceList()刷新用户界面(user interface,UI)。收到设备列表后,手机APP可调用setSubscribe(true)实现设备订阅,完成自动绑定与登录。
2.6.6 APP获得数据及报警信息
设备在线时,APP通过didReceiveData()从云端获取JSON格式的数据,存储于dataMap字典,并解析得到对应变量。使用handler机制更新UI,保持界面实时刷新。
UI分为3个部分:第一部分显示环境要素(只读),第二部分显示报警信息(布尔值,以图片形式显示温度、湿度、风速、降雨量、水深、水流速报警),第三部分显示阈值设定(可写,数值型数据)。点击任一阈值可弹出设定界面,设置后刷新显示。
PART 04系统程序运行
程序移植到硬件平台后,多元气象信息采集站能实时采集并上传风速、温湿度、降雨量等数据。通过手机APP可查看上述数据、设置报警阈值。当数据超过阈值时,系统会提交报警信息。设备上电后,其在APP列表中的状态由离线转为在线,点击设备即可浏览环境信息。将温度阈值从26.1℃调至23℃,APP界面的温度报警信息会从CLOSE变为OPEN。
PART 05结语
通过采取上述技术,基于STM32主控模块构建的多元气象信息采集系统与智能预警模型,实现了高精度数据的同步采集与实时预警。工程实践表明,采用该系统后,灾害预警响应时间缩短至3s,数据传输效率提升40%。
-
传感器
+关注
关注
2571文章
53564浏览量
773556 -
STM32
+关注
关注
2300文章
11056浏览量
367804 -
信息采集
+关注
关注
0文章
83浏览量
21575 -
硬件电路
+关注
关注
39文章
262浏览量
29946
发布评论请先 登录
【小蜜蜂】基于ZigBee的水情信息采集平台
基于STM32的微型分布式气象站设计!(附原理图+源码)
小流域洪水计算及防洪措施
VR-GIS技术在数字黑河流域飞行模拟中的应用
黄河数字流域模型
遥感降水产品等在海河流域的适用性研究

中小河流洪水预报智能调度平台关键技术

中小河流治理信息化监测系统解决方案

中小河流防洪监测预警系统解决方案

评论