问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于STM32F407+NBIOT+华为云IOT平台设计的环境检测系统

创作时间:
作者:
@小白创作中心

基于STM32F407+NBIOT+华为云IOT平台设计的环境检测系统

引用
1
来源
1.
https://bbs.huaweicloud.com/blogs/429509

基于STM32F407、NBIOT模块BC26和华为云物联网云平台的环境检测系统是一个集环境数据采集、本地显示、远程监控和预警功能于一体的综合性系统。该系统通过STM32F407作为主控芯片,实现环境参数的采集与处理,包括使用SHT30传感器进行温湿度检测,MQ2传感器进行烟雾浓度检测,以及火焰检测传感器进行火光信息捕获。采集到的数据不仅能在本地通过0.96寸IIC协议OLED显示屏实时显示,还能通过NBIOT模块BC26实时上传到华为云物联网云平台,实现远程监控和数据存储。

一、项目介绍

随着物联网技术的快速发展,越来越多的设备和系统开始融入我们的生活和工作中。环境监测作为一个重要的应用领域,对于保障人们的健康和安全具有重要意义。基于STM32F407+NBIOT+华为云IOT平台设计的环境检测系统,实现对室内环境的实时监测,并通过物联网技术将数据传输至云端,为用户提供便捷的数据查询和远程监控功能。

系统主要功能

  1. 采集本地环境的温度、湿度、烟雾浓度和火光信息,并在OLED显示屏上显示。当检测到烟雾、温度或火光超过预设阈值时,触发蜂鸣器报警,以提醒用户采取相应措施。
  2. 通过NBIOT技术将本地设备采集的信息上传至华为云物联网云平台,实现数据的远程存储和管理。
  3. 利用Qt(C++)开发的Android手机APP,从华为云物联网云平台获取设备最新的数据进行显示,完成信息展示。在手机APP上可以显示检测到的温度、湿度、烟雾报警和火光报警信息。

硬件选型

  • 主控芯片:STM32F407
  • 环境温湿度传感器:SHT30
  • 烟雾传感器:MQ2
  • 火焰检测传感器
  • NBIOT模块:BC26
  • 电源:USB接口5V供电
  • 蜂鸣器:高电平触发的有源蜂鸣器
  • 显示屏:0.96寸IIC协议OLED显示屏

二、设计实现的功能

  1. 环境参数采集:利用STM32F407微控制器集成的高精度ADC及数字信号处理能力,系统能够实时采集SHT30温湿度传感器输出的温湿度数据,以及MQ2烟雾传感器和火光检测传感器提供的烟雾浓度和火光信息。
  2. 数据显示:采集到的数据通过I²C接口传输至0.96寸OLED显示屏上实时显示,提供直观的温湿度读数、烟雾浓度指标和火光警告信息。
  3. 本地预警系统:设定合理的阈值,当检测到的温度、湿度、烟雾浓度或火光强度超过预设安全范围时,系统将自动激活高电平触发的有源蜂鸣器,发出报警声。
  4. NBIOT通信:通过集成BC26 NBIOT模块,系统能够将本地采集的环境数据通过窄带物联网技术远程上传至华为云物联网平台。
  5. 云端数据处理与存储:上传至华为云的环境监测数据会被自动接收并存储,支持用户通过云端界面查看历史数据趋势,设置告警规则等。
  6. Android手机APP开发:利用Qt框架(C++)开发的Android手机应用程序,用户可以远程实时查看连接到华为云物联网平台的环境监测设备的最新数据。APP界面友好,直观展示当前的温度、湿度、烟雾报警状态和火光报警信息。
  7. 交互性与控制:手机APP除了被动接收数据展示外,还可以进一步设计实现远程控制功能,如调整报警阈值、查询历史记录或发送指令给STM32F407控制端进行特定操作。

三、项目硬件模块组成

  1. 主控单元 - STM32F407微控制器:作为整个系统的核心,负责数据采集、处理、显示控制以及与外部模块的通信协调。
  2. 温湿度传感器 - SHT30:用于测量环境中的温度和湿度,通过I²C接口与STM32F407通信。
  3. 烟雾传感器 - MQ2:用于检测环境中烟雾浓度,能对多种气体敏感,通过模拟信号输出至STM32F407。
  4. 火光检测传感器:专门设计用于探测火焰或高强度光源,通过其光电效应产生电信号。
  5. NBIOT通信模组 - BC26:负责将STM32F407处理后的环境监测数据通过NBIOT网络上传至华为云物联网平台。
  6. 电源模块:采用USB接口5V供电,为整个系统提供稳定可靠的能源。
  7. 蜂鸣器报警模块:高电平触发的有源蜂鸣器,当STM32F407检测到环境参数超过设定阈值时,通过GPIO输出高电平信号,激活蜂鸣器发出报警声音。
  8. OLED显示屏:采用0.96英寸I²C接口OLED显示屏,用于实时显示温湿度、烟雾浓度和火光报警等信息。

四、开发工具的选择

设备端开发

STM32的编程语言选择C语言,开发工具选择Keil。因为当前芯片选择的是STM32F103系列,STMF103是属于ARM公司的芯片构架、Cortex-M3内核系列的芯片,所以使用Kile来开发STM32是有先天优势的。

上位机开发

上位机的开发选择Qt框架,编程语言采用C++。Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。

五、硬件选型

  1. STM32F407系统板
  2. 杜邦线
  3. SHT30温湿度模块
  4. OLED显示屏
  5. MQ2 烟雾传感器
  6. 火焰检测模块
  7. 电源扩展接口
  8. 蜂鸣器模块
  9. NBIOT模块

六、部署华为云物联网平台

物联网平台介绍

华为云物联网平台提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助我们快速构筑物联网解决方案。

开通物联网服务

开通之后,点击总览,也能查看接入信息。我们当前设备准备采用MQTT协议接入华为云平台,这里可以看到MQTT协议的地址和端口号等信息。

创建产品

产品创建完成之后,点击进入产品详情页面,翻到最下面可以看到模型定义。模型简单来说:就是存放设备上传到云平台的数据。

添加设备

产品是属于上层的抽象模型,接下来在产品模型下添加实际的设备。添加的设备最终需要与真实的设备关联在一起,完成数据交互。

MQTT协议主题订阅与发布

对于设备而言,一般会订阅平台下发消息给设备这个主题。设备想接收平台下发的消息,就需要订阅平台下发消息给设备的主题,订阅后,平台下发消息给设备,设备就会收到消息。

MQTT三元组

华为云提供了一个在线工具,用来生成MQTT鉴权三元组。打开这个工具,填入设备的信息,点击生成,就可以得到MQTT的登录信息了。

模拟设备登录测试

经过上面的步骤介绍,已经创建了产品,设备,数据模型,得到MQTT登录信息。接下来就用MQTT客户端软件模拟真实的设备来登录平台。测试与服务器通信是否正常。

创建IAM账户

创建一个IAM账户,因为接下来开发上位机,需要使用云平台的API接口,这些接口都需要token进行鉴权。简单来说,就是身份的认证。调用接口获取Token时,就需要填写IAM账号信息。

获取影子数据

设备影子就是一个用于存储和检索设备当前状态信息的JSON文档。每个设备有且只有一个设备影子,由设备ID唯一标识。设备影子仅保存最近一次设备的上报数据和预期数据。无论该设备是否在线,都可以通过该影子获取和设置设备的属性。

七、STM32设备端代码设计

BC26-NBIOT配置代码

定时器代码封装

串口配置代码

八、上位机开发

为了方便查看设备上传的数据,接下来利用Qt开发一款Android手机APP 和 Windows上位机。使用华为云平台提供的API接口获取设备上传的数据,进行可视化显示,以及远程控制设备。

Qt开发环境安装

Qt的中文官网:https://www.qt.io/zh-cn/

新建上位机工程

设计UI界面与工程配置

编译Windows上位机

配置Android环境

如果想编译Android手机APP,必须要先自己配置好自己的Android环境。然后才可以进行下面的步骤。

九、BC26-NBIOT模块调试过程

模块调试接线

测试模块

上电初始化操作

开启GPS定位

十、总结

基于STM32F407、NBIOT模块BC26和华为云物联网云平台设计的环境检测系统是一个集环境数据采集、本地显示、远程监控和预警功能于一体的综合性系统。该系统通过STM32F407作为主控芯片,实现环境参数的采集与处理,包括使用SHT30传感器进行温湿度检测,MQ2传感器进行烟雾浓度检测,以及火焰检测传感器进行火光信息捕获。采集到的数据不仅能在本地通过0.96寸IIC协议OLED显示屏实时显示,还能通过NBIOT模块BC26实时上传到华为云物联网云平台,实现远程监控和数据存储。

当系统检测到环境中的烟雾浓度、温度或火光超过预设的阈值时,会立即触发高电平触发的有源蜂鸣器进行声光报警,以提醒用户注意环境安全。这种实时预警功能大大增强了系统的实用性和安全性。

为了使用户能够方便地获取环境检测数据并进行监控,系统还开发了基于Qt(C++)的Android手机APP。该APP能够从华为云物联网云平台获取设备最新的数据,并以直观的方式展示给用户,包括温度、湿度、烟雾报警和火光报警等信息。用户无需现场操作,即可通过手机APP随时随地了解环境状况,极大地提高了系统的便捷性和灵活性。

该环境检测系统通过整合先进的硬件设备和软件技术,实现了环境参数的实时监测、数据远程上传和预警功能,为用户提供了一个高效、便捷、安全的环境检测解决方案。无论是在家庭、办公室还是工业环境中,该系统都具有广泛的应用前景和实用价值。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号