0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用笔记|基于STM32的物联网环境监测系统

机智云 2023-03-30 15:13 次阅读

本应用笔记以STM32单片机作为控制和数据处理的单元,使用AHT10、BH1750和BMP280传感器去监测周围的环境参数,在LCD屏完成传感器数据和相关信息的显示。

同时,采用了无线模组与单片机之间进行数据交互。当无线通讯模组成功连接网络,并接入机智云物联网云平台时,用户可以通过登录物联网云平台后台查看传感器上报的数据和进行远程控制。

目录预览

1. 总体方案设计

2. 系统硬件设计

3. 系统软件设计

4. 物联网平台设备接入

5. 软硬件实物调试

01

总体方案设计

环境监测系统设计选取了控制和数据处理能力强的ST32单片机作为核心部件。使用温湿度传感器对周围环境中的温度与湿度监测,选取高精度的光强度传感器完成对周围环境的光照强度的测量,对于气压数据的测量,将选取高精度的气压传感器完成工作。

该系统使用液晶显示屏幕完成对温湿度数值,光照强度数值,大气压强数值以及设备的状态信息的显示。当无线通讯模组成功连接网络之后,接入云平台。用户可以通过登录物联网云平台后台[4],查看传感器上报的数据信息和进行远程控制。开发Android上位机软件,使用户在上位机程序上实现对各种环境质量参数监测。整个系统的整体框架图如下图所示。

f9797ea2-cd40-11ed-ad0d-dac502259ad0.png

■1.1 控制模块方案

本环境监测系统设计使用单片机作为整个系统的控制中心。需要完成传感器数据的采集,无线通讯模组的数据交互,显示传感器数据的功能[5]。在本次的环境监测系统中,控制模块采用的是STM32系列单片机。

例如在芯片选择上面,有低功耗类型STM32L系列、主流类型F1系列、高性能F7/H7系列、以及异构系统架构下的 STM32MP157系列。在软件程序设计过程中,官方提供了图形化配置软件STM32CubeMX。可以快速生成底层配置代码,减少重复性移植。同时该32位芯片的相关技术资料和参考设计资料较多,因此被运用到各种电子系统设计之中。本应用笔记准备使用控制性能强劲和数据处理能力强的STM32F103ZET6芯片作为核心控制模块元件。

■1.2 环境监测传感器方案

环境监测系统主要需要监测的数据有温湿度数据,光照强度数据和大气压强数据等基本环境质量参数。因此需要选择相应的温湿度传感器,光强传感器,精度较高的气压传感器[6]。

温湿度数据采集传感器选择了AHT10。AHT10模块上面有一个湿度传感器元件和一个片上温度传感元件,该产品具有快速响应、抗干扰能力强和高精度等优点[7]。

光照强度数据采集的传感器选择了BH1750。BH1750是标准(I2C接口的16位数字输出类型的环境光强度传感器,可以利用BH1750模块的高分辨率探测较大范围内的光照强度变化情况[8]。

大气压强数据采集传感器选择了BMP280。数字式气压传感器BMP280,具有高精度的特点,而且也具有测量环境温度和高度的功能。

综上所述的传感器模块,在选择时考虑到了其成本,使用的方便性,相关设计资料的丰富性,传感器模块实物图如下图所示。

f987462c-cd40-11ed-ad0d-dac502259ad0.png

■1.3 无线模块方案

方案一:对于长距离无线通讯模块的选择。查询资料后,了解了国产LTE无线通讯模组上海合宙公司。该公司研发的LTE Cat 1无线通信模组提供了丰富的通用外设接口,并且支持Lua二次开发,合宙官方提供了嵌入式脚本运行框架LuatOS。但是模组价格比较贵,而且开发过程比较复杂,相关资料和设计参考较少,开发难度较大。

方案二:esp8266芯片是***公司乐鑫科技所研发的一款WiFi无线模组芯片。内置TCP/IP协议栈,支持AT本地升级和OTA远程升级。该无线模组能够很好的接入国内的开放的物联网云平台,具有易操作化的特点,主要是相关资料和设计参考较多,开发难度较小。

经过对上述方案对比,方案二中的ESP8266模块,拥有丰富的相关设计资料。最终选择了以ESP8266芯片作为核心的无线模组。作为单片机与物联网云端进行数据传输和交换的单元,无线模块实物图如下图所示。

f993aeda-cd40-11ed-ad0d-dac502259ad0.png

02

系统硬件设计

环境监测系统选取了STM32F103ZET6芯片作为电路的核心控制和数据处理单元。该芯片支持UART、SPI、I2C接口,芯片内部集成了512KB闪存和64KB SRAM,可以存储更多的程序和数据。环境监测系统的主控电路设计如下图所示。

f9a02958-cd40-11ed-ad0d-dac502259ad0.png

STM32芯片正常运行所需要的电压范围为2.0~3.6V,实际运行时的电流只有几十毫安,因此芯片功耗非常低。芯片可对系统电路之中的电压进行检测,可与电源芯片相接一起完成开关电源调节。

芯片正常运行时,需要一个外部时钟触发信号,为此将使用频率范围在4~16MHz之间的晶体振荡器。芯片内部存在一个自动校准的RTC振荡电路,其实际运行的频率能够达到32KHZ。在本次设计中,因为STM32系列拥有丰富的串口接口,因此可以实现与多个通讯模组通信。同时可以添加调试接口,利用串口软件实现调试功能,打印设备状态信息。

03

系统软件设计

基于STM32的环境监测系统的主程序流程如下。整个系统,在提供电源之后,开始进行系统模块的初始化操作。如进行传感器设备的初始化,LCD模块的初始化,无线通讯模组的初始化。当完成初始化操作之后,LCD屏幕则会显示初始化信息。

此时,利用路由器或手机热点提供WIFI信号,WIFI模块会进行联网操作。当联网成功时,系统开始接收传感器设备采集的数据,APP程序会显示相关传感器数据信息,LCD屏幕也会显示环境监测系统的主要监测数据。如果联网失败,则会重新尝试连接网络。主程序设计流程图如下图所示。

f9acbbdc-cd40-11ed-ad0d-dac502259ad0.png

04

物联网平台设备接入

在本次的环境监测系统的设计中,利用了无线模块进行基本通信操作。传统的无线模组与单片机进行数据交换,一般的方案是利用无线模组建立局域网实现通信功能。随着云计算等相关信息技术的进步,现在的无线通讯模组可以实现与云端连接,实现数据远程传输的功能。

在本次设计中,使用的无线模组需要连接网络,并接入云平台。用户可以通过登录机智云物联网云平台后台,查看无线通讯模块上报的传感器数据和进行远程控制等操作。在物联网云平台的选择中,选择了国内的机智云物联网平台。物联网设备接入的方案,如下图所示。

f9b9f4a0-cd40-11ed-ad0d-dac502259ad0.png

云平台提供了两种版本的GAgent通信协议的接入方案,主要是独立MCU方案和SOC方案两种。本次环境监测系统的设计中,选择了独立MCU方案接入平台。

在本次设计过程中,需要把GAgent协议移植到WIFI模组上面,从而实现对接云平台进行数据交互的功能。云平台提供了GAgent固件,GAgent固件的主要作用是完成对数据进行上报云平台和平台远程下发命令的功能[14]。固件下载效果如下图所示。

f9c8c50c-cd40-11ed-ad0d-dac502259ad0.png

4.1 接入机智云平台的流程

在本次的环境监测系统是软件设计中,采用了MCU+WIFI通信模组方案,现在介绍接入机智云平台的流程。第一步,注册IoT平台的开发者账号,并登陆选择产品类型并创建。第二步,填写产品相关的基本信息之后,获取到平台提供的Product Key和Product Secret等密钥信息[15],如下图所示。

f9d7be2c-cd40-11ed-ad0d-dac502259ad0.png

第三步,创建相关数据点信息,完成相关数据类型的填写。在环境监测系统的设计中,需要创建温度数据Temperature,湿度Humidity,光照强度Light_Intensity,气压Pressure等主要的传感器数据点,如下图所示。

f9e9007e-cd40-11ed-ad0d-dac502259ad0.png

第四步,使用IoT平台提供SDK文件包,进行相关代码移植。在SDK包生成的过程中,平台提供了两种类型。本次系统设计过程中,选择独立MCU方案作为最终方案。

在支持的硬件平台中,有常见MCU类型。例如有STM32平台,MSP430平台等,都提供了相关的测试SDK包。选择使用通用的MCU平台生成的SDK的代码移植,有利于之后移植到其他的MCU芯片平台上面去,选择如图4-11所示。

f9fcb8bc-cd40-11ed-ad0d-dac502259ad0.png

机智云SDK包的代码移植到STM32系列平台的流程如下。在整个代码移植的过程,主要是去移植串口初始化及配置,定时器的初始化及配置[16],传感器数据的采集接收和上报函数的配置,以及相关模块的初始化配置。

4.2 上位机软件应用开发

fa1097b0-cd40-11ed-ad0d-dac502259ad0.pngfa1f9ecc-cd40-11ed-ad0d-dac502259ad0.png

上位机软件应用开发。在本次的环境监测系统的设计中,采用了Android应用程序作为上位机软件。一般在APP开发设计过程中,主要是进行APP的UI界面设计,和相关功能模块底层逻辑设计。在APP的UI界面设计的过程中,选择使用XML进行布局,在应用程序的底层逻辑设计使用的Java语言。应用开发选择的是安卓平台,如下图所示。

fa2ae25a-cd40-11ed-ad0d-dac502259ad0.png

本次设计中,使用平台提供生成的SDK文件包进行修改。由于平台的提供的例程只是完成了基本的显示效果,界面效果一般。所以接下来的主要工作是对官方源码进行修改。打开Android Studio软件,导入从平台下载的Demo源码,通过修改src文件里面的layout的布局文件,进行界面UI设计和优化。

通过对src文件里面的java代码,进行底层逻辑代码修改[17]。在界面的UI设计工过程,主要是传感器的数据和系统状态信息显示,基本显示效果如图4-17所示。APP的界面设计需要优化,后期可以添加相关传感器历史数据的查看和实时动态曲线的功能[18]。

fa3b65bc-cd40-11ed-ad0d-dac502259ad0.png

05

软硬件实物调试

环境监测系统的硬件实物的初步实验性调试工作。在实验性调试中,通过USB线接上电脑USB接口,实现供电。系统供上电之后,会有开机启动界面显示。

开机结束之后,界面会停留在系统的功能选择界面。选择界面包括了三种功能展示。第一部分是传感器采集到的数据SensorMessage展示, 第二部分是系统的网络状态信息NetworkMessage展示, 第三部分是系统的基本信息SystemMessage展示。基本功能的选择界面,如下图所示。

fa49e966-cd40-11ed-ad0d-dac502259ad0.png

基于STM32的物联网环境监测系统的上位机软件调试。在使用该Android应用程序时,APP和无线模组需要一起配合操作。在配网时,需要把手机和WiFi同时连接到同一个热点信号下面,进行配置。输入WiFi的账号SSID和Password,选择WiFi模组的类型进行配置。

配置过程中APP和硬件设备不要进行任何操作,否则会出现配置失败的情况。如果配置失败,请按下配网按键,重新配置。APP配网流程如下图所示。

fa583818-cd40-11ed-ad0d-dac502259ad0.png

当配网成功时,会显示在物联网云平台上面注册的设备名称。点击进入,则会显示相关传感器数据信息,如下图所示。

fa6c8ade-cd40-11ed-ad0d-dac502259ad0.pngfa7b48b2-cd40-11ed-ad0d-dac502259ad0.png

登录物联网平台的后台,选择查看设备日志功能,在设备的运行记录里面,可以查看到上报的数据点信息,并支持动态曲线显示,如下图所示。

fa88a034-cd40-11ed-ad0d-dac502259ad0.png

06

总结

基于STM32的物联网环境监测系统的整个设计过程中,使用了相关的环境传感器设备去监测周围环境的基本质量参数。在整个设计过程中,利用LCD屏幕显示数据信息,能够显示基本传感器测量的数据。

由于显示效果一般,后期可以添加嵌入式GUI图形界面,例如LVGL,TouchGFX,emWin。使用无线通信模组与单片机进行数据交互,完成了基本的通信功能,但在模组的选择上需要考虑到其稳定性和功耗问题。

在上位机软件程序设计中,使用了Android应用程序去完成远程监测的功能,但是APP的界面设计需要优化,后期可以添加相关传感器实时动态曲线的功能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2870

    文章

    41654

    浏览量

    358420
  • STM32
    +关注

    关注

    2240

    文章

    10675

    浏览量

    348850
收藏 人收藏

    评论

    相关推荐

    环境监测的革新者:UWB模块在环境监测系统中的应用研究

    随着环境污染和气候变化等问题日益突出,环境监测成为了保护生态环境和人类健康的重要手段。超宽带(UWB)技术以其高精度、低功耗的特点,为环境监测系统
    的头像 发表于 04-12 15:03 111次阅读

    景区环境监测方案监测参数与功能

    和集中管理的应用需求,利用物联网技术、数据通讯技术、地理信息技术等。针对景区环境监测设计搭建了一套或多套在景区生态区域环境观测大气、水体等方面数据的监测方案,实现对景区
    的头像 发表于 04-11 17:24 101次阅读

    智慧旅游景区环境监测系统应用

    ,提升游客体验。 为了更好地满足环境监测的需求,智慧旅游景区环境监测系统应运而生。该系统集数据采集、存储、传输、管理于一体的环境自动监控
    的头像 发表于 04-09 15:57 117次阅读

    LoRa ZWS云应用(5)-环境监测系统组态篇

    面对环境监测需求复杂多变的行业现状,依托低代码平台快速构建环境监测行业系统效率高、投入低、响应快,已成为越来越多环境监测企业的心仪选择。应用介绍环境
    的头像 发表于 02-19 12:10 398次阅读
    LoRa ZWS云应用(5)-<b class='flag-5'>环境监测</b><b class='flag-5'>系统</b>组态篇

    LoRa ZWS云应用(4)-环境监测设备接入篇

    环境监测系统中,要将监测设备接入物联网云平台,才能进行对环境数据实现实时监测、统计分析等操作。
    的头像 发表于 01-26 08:25 411次阅读
    LoRa  ZWS云应用(4)-<b class='flag-5'>环境监测</b>设备接入篇

    智能工厂数字化环境监测联网解决方案

    环境监测联网系统是建立在数据采集技术、无线通信技术、传感器技术等基础上形成的综合性系统,能够实时感知智能工厂、数字化车间的环境变化并及时预
    的头像 发表于 01-24 17:15 239次阅读

    联网农业气象环境监测站详细介绍

    联网农业气象环境监测站是一款结合了物联网和气象技术的设备,用于监测和记录农田中的气象数据,能对农业环境中的气象要素进行连续
    的头像 发表于 01-16 14:04 157次阅读
    物<b class='flag-5'>联网</b>农业气象<b class='flag-5'>环境监测</b>站详细介绍

    粮情环境监测系统的意义

    系统。 粮情环境监测系统是一种集数据采集、处理、分析和传输于一体的现代化农业信息化技术。其核心原理是通过安装在农田中的各类传感器,实时采集农田土壤、气象、作物生长等环境参数,然后通过无
    的头像 发表于 01-08 09:51 259次阅读

    基于树莓派的环境监测系统

    树莓派(Raspberry Pi)是一种小型而功能强大的计算机,其性能和功能足以支持许多应用领域。在环境监测系统中,树莓派也被广泛应用。本文将详细介绍基于树莓派的环境监测系统的设计和实
    的头像 发表于 01-04 15:15 430次阅读

    联网网关设备在环境监测中应用实现对环境状况的全方位监测和管理

    、大数据、人工智能等技术的快速发展,环境监测行业也在不断升级和转型。其中,基于物联网环境监测系统得到了广泛应用,通过物联网网关连接传感器、
    的头像 发表于 12-07 16:46 270次阅读
    物<b class='flag-5'>联网</b>网关设备在<b class='flag-5'>环境监测</b>中应用实现对<b class='flag-5'>环境</b>状况的全方位<b class='flag-5'>监测</b>和管理

    基于WSN的果园环境监测系统的节点设计

    电子发烧友网站提供《基于WSN的果园环境监测系统的节点设计.pdf》资料免费下载
    发表于 10-24 09:53 0次下载
    基于WSN的果园<b class='flag-5'>环境监测</b><b class='flag-5'>系统</b>的节点设计

    STM32单片机学习笔记(7):智能环境监测系统

    该智能环境监测系统采用STMF103R4为主控MCU单元,主要外设有LCD1602,DHT11,EEPROM 24C02以及LDR光电检测单元,采用Proteus作为仿真平台用于对系统进行一个初步的验证,采用CubMX和Keil
    发表于 07-20 15:39 776次阅读
    <b class='flag-5'>STM32</b>单片机学习<b class='flag-5'>笔记</b>(7):智能<b class='flag-5'>环境监测</b><b class='flag-5'>系统</b>

    基于STM32设计的物联网环境监测系统(华为云IOT)

    该项目设计一个基于华为云IOT的物联网环境监测系统,实现对光照强度、温湿度等信息的实时监测,并将相关信息、设备状态信息等实时显示。通过ESP8266 Wi-Fi模块进行
    的头像 发表于 07-14 10:20 3057次阅读
    基于<b class='flag-5'>STM32</b>设计的物<b class='flag-5'>联网</b><b class='flag-5'>环境监测</b><b class='flag-5'>系统</b>(华为云IOT)

    联网环境监测(2)#联网

    联网
    学习硬声知识
    发布于 :2023年07月07日 12:50:49

    联网环境监测(1)#联网

    联网
    学习硬声知识
    发布于 :2023年07月07日 12:49:45