找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 46|回复: 0

基于STM32的微型气象站设计

[复制链接]

268

主题

0

回帖

1280

积分

管理员

积分
1280
发表于 2026-7-1 10:14:00 | 显示全部楼层 |阅读模式
自动气象站被广泛应用于农业、环保监测、应急管理、交通行业及科研与教育等多个领域,在评估气候变化、预测异常天气、气象研究等方面具有重要实用价值。然而,国内现有地面自动气象站通常存在监测系统体积庞大、系统功耗大、建站成本高的不足,并且多采用GPRS技术将采集到的气象数据远程传输到中心站,不仅实时性差、易丢包,且伴随2G移动通信网络全面停运,此方式已无法满足微型气象站系统运营需求。因此,本文结合窄带通信技术和STM32微控制器,设计了一种微型自动气象站系统,采用雨量、风速、风向、温度、湿度、大气压力传感器采集六种常用气象数据,经以STM32F103微控制器为核心的数据采集板对传感器数据进行处理后,通过移远BC260Y NB-IoT模组将气象数据上传到阿里云平台。本系统具有建站成本低,且数据传输稳定的优点。

1 系统整体设计
本文设计的微型气象站,通过STM32控制外接的温度、相对湿度、大气压力、降雨量、风速、风向传感器,采集气象数据,并在数据解析和处理后,利用NB-IoT通信模组,将采集到的气象数据上传至阿里云物联网平台。微型气象站系统的整体功能如图1所示,分为温度监测、湿度监测、风速监测、风向监测、气压监测、雨量监测、STM32主控、通信模块及云平台等9个模块。

2 系统硬件设计
下面按照总体设计的功能模块进行系统硬件设计。首先,本设计采用正点原子出品的ALIENTEK精英STM32F103开发板作为主控板,主控板以STM32F103ZET6芯片作为主控制器;选用博世公司生产的BME280温度、湿度、气压一体MEMS传感器进行气压监测、温度监测和相对湿度监测;选用型号SN-3000-FXJT的聚碳风向变送器作为风向测量模块;选用型号为ZTS-3000-FSJT的聚碳风速传感器作为风速测量模块;选用型号为SM7005B的双通道红外光学雨量传感器作为雨量检测模块;选用BC260Y-CN模块作为通信模块。风向测量模块、风速测量模块和雨量检测模块与主控板在物理层上以RS485形式连接,这三个传感器均以Modbus RTU协议与主控通信;BME280传感器以I²C总线方式与主控板连接;BC260Y-CN模组以UART接口与主控板连接。
各传感器与主控板连接如图2所示,其中,风速传感器、风向传感器和雨量传感器均通过RS485芯片连接到STM32F103ZET6芯片的PA2和PA3引脚(即主控的UART2),主控与传感器依Modbus RTU协议通信;温湿度气压传感器的SCL和SDA分别接入STM32F103ZET6芯片PB6和PB7引脚;NB-IoT模组的TX、RX分别接入STM32F103ZET6芯片的PB10、PB11(即主控的UART3)。电源方面,本系统采用3节18650电池串联为整个系统供电,其中主控板输入电压为直流电压9伏到12伏;风速、风向和雨量传感器供电电压均为直流电压9伏到12伏。NB-IoT模块供电电压为直流5伏,由12伏转5伏直流电压转换器供电;BME280温湿度、大气压力传感器模块供电电压为直流3.3伏,由主控板3.3伏直流电源供电。

3 系统软件设计
图3为主程序流程图,系统软件主流程中,先进行系统的初始化,包括引脚初始化,然后进入系统的主循环。在主循环中,先采集风速、风向、雨量三个Modbus协议传感器数据;随后,采集IIC总线上的BME280温湿度、大气压力传感器数据;完成数据采集之后,通过串口3将数据传送给NB-IoT通信模组BC260Y,由BC260Y模组上传到阿里云物联网平台;至此,完成了一次气象数据采集与上报流程,程序循环到Modbus协议传感器数据采集模块,开始下一次气象数据采集与上报。
(图4 为挂载在Modbus总线上的传感器数据采集流程图。在初始化UART2后,发送读取传感器数据指令,随后等待传感器发回的数据,在解析返回数据后,完成了一次传感器数据读取。为提高数据精度,程序中连续读取10次传感器数据,并对10个传感器数据进行冒泡排序,在去掉最大值和最小值后,求取均值作为一次数据采集的结果。)
(图5 为挂载在IIC总线上的BME280温湿度、大气压力传感器数据采集流程图。在STM32微控制器初始化IIC模块后,发送读取传感器数据指令给BME280温湿度、大气压力传感器,随后等待BME280传感器返回温度、湿度和大气压力数据,完成一次传感器数据读取。与Modbus总线上的传感器数据采集类似,为提高温度、湿度和大气压力数据精度,程序中连续读取10次传感器数据,并对10个传感器数据进行冒泡排序,在去掉最大值和最小值后,求取均值作为一次数据采集的结果。)
(图6 为NB-IoT模组数据上报流程图。在初始化UART3端口后,先将待发送的传感器数据转存到UART3发送数组中,随后使用AT指令,控制BC260Y模组将UART3发送数组中的数据上报至阿里云物联网平台。到这里,微型气象站系统完成了一次气象数据采集与上报工作。)

4 测试结果
为了测试所设计的气象站系统的效果,将所有的硬件连接如图7所示。图中1号方框内为风速传感器,2号方框内为风向传感器,3号方框内为雨量传感器,4号方框内为3节18650锂电池,5号方框内为定制的直流12伏转5伏模块和BC260Y模块以及BME280模块线路板,6号方框内为ALIENTEK精英STM32F103主控板。
硬件上电后,所有的传感器开始工作,PC端串口助手显示需要测量的所有数据,如图8所示。图8展示的测试结果表明,所设计的微型自动气象站系统运行成功,完成了对气象数据的采集与上报。

5 结论
本文结合NB-IoT技术与Contex-M3内核的STM32微控制器芯片,设计了可以采集温度、湿度、风速、风向、气压及雨量的自动气象站,并利用移远通信公司的BC260Y通信模组将所采集气象数据上传到了阿里云物联网平台。测试表明,该系统具有实时性好、运行可靠的优点,为未来自动气象站建设提供了新的思路。
参考文献:
[1]楚天鹏,肖元秀,胡佳美.基于STM32的微型气象站设计[J].价值工程,2026,45(8):163-165.
声明:本文所用图片、文字均为转载,如有涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认并立即删除内容。本文内容系作者个人观点,不代表物联网123观点或立场。
特别提醒:物联网专业交流群欢迎物联网行业相关的人群加入,同时群内欢迎各路社牛、大咖、前辈加入,群内除了不能发敏感内容、色情内容,以及不太建议多次发送推广内容,其他内容皆可畅聊~——交流QQ群724511126,进群的朋友请备注:姓名-单位-研究方向(无备注请恕不通过),由编辑审核后邀请入群!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|物联网论坛|物联网BB|物联网之家|农业物联网|气象物联网|冷链运输物联网

GMT+8, 2026-7-26 23:53 , Processed in 0.046875 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2026 Tencent Cloud.

快速回复 返回顶部 返回列表