基于STM32设计的矿山环境监测系统(NBIOT)_262

文章目录

  • 一、前言
    • 1.1 项目介绍
      • 【1】开发背景
      • 【2】研究的意义
      • 【3】最终实现需求
      • 【4】项目硬件模块组成
    • 1.2 设计思路
      • 【1】整体设计思路
      • 【2】上位机开发思路
    • 1.3 项目开发背景
      • 【1】选题的意义
      • 【2】摘要
      • 【3】国内外相关研究现状
      • 【5】参考文献
    • 1.4 开发工具的选择
      • 【1】设备端开发
      • 【2】上位机开发
    • 1.5 系统框架图
    • 1.6 系统功能总结
    • 1.7 系统原理图
    • 1.8 实物图
    • 1.9 模块的技术详情介绍
      • 【1】NBIOT-BC26模块
      • 【2】MQ5气体传感器
      • 【3】SHT30模块
      • 【4】蜂鸣器模块
      • 【5】PM2.5传感器
      • 【6】OLED显示屏
      • 【7】MQTT协议
  • 二、硬件选型
    • 2.1 STM32开发板
    • 2.2 USB下载线
    • 2.3 SHT30温湿度模块
    • 2.4 PCB板
    • 2.5 BC26 NBIOT模块
    • 2.6 母对母杜邦线
    • 2.7 电源扩展板(4个)
    • 2.8 PM2.5传感器
    • 2.9 蜂鸣器模块
    • 2.10 OLED显示屏
    • 2.11 稳压模块
    • 2.12 电源插头
    • 2.13 MQ5传感器
    • 2.14 继电器(2个)
    • 2.15 风扇模块(通风风扇)
    • 2.16 雾化片
  • 三、部署华为云物联网平台
    • 3.1 物联网平台介绍
    • 3.2 开通物联网服务
    • 3.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
          • 【1】创建服务ID
          • 【2】SHT30_T 环境温度 浮点数
          • 【3】SHT30_H 环境湿度 浮点数
          • 【4】MQ5 瓦斯气体 浮点数
          • 【5】PM25 PM2.5 浮点数
          • 【6】MOTOR_SW1 雾化降尘 布尔类型
          • 【7】MOTOR_SW2 通风风扇 布尔类型
          • 【8】run_mode 运行模式 1自动模式 0手动模式
      • (5)创建完成
    • 3.4 添加设备
      • (1)注册设备
      • (2)根据自己的设备填写
      • (3)保存设备信息
      • (4)设备创建完成
      • (5)设备详情
    • 3.5 MQTT协议主题订阅与发布
      • (1)MQTT协议介绍
      • (2)华为云平台MQTT协议使用限制
      • (3)主题订阅格式
      • (4)主题发布格式
    • 3.6 MQTT三元组
      • (1)MQTT服务器地址
      • (2)生成MQTT三元组
    • 3.7 模拟设备登录测试
      • (1)填入登录信息
      • (2)打开网页查看
      • (3)MQTT登录测试参数总结
    • 3.8 项目凭证
    • 3.9 创建IAM账户
    • 3.10 获取影子数据
    • 3.11 修改设备属性
  • 四、 NBIOT模块调试过程
    • 4.1 模块调试接线
    • 4.2 测试模块
    • 4.3 上电初始化操作
    • 4.4 开启GPS定位
    • 4.5 连接MQTT服务器
    • 4.6 完整的AT指令操作过程
  • 五、STM32设备端代码设计
    • 5.1 硬件连线说明
    • 5.2 硬件原理图
    • 5.3 硬件组装过程
    • 5.4 NBIOT模块说明
    • 5.5 KEIL工程
    • 5.6 代码移植需要改的地方
    • 5.7 程序下载
    • 5.8 程序正常运行效果
    • 5.9 取模软件的使用
    • 5.10 STM32与手机APP的交互协议
    • 5.11 初始化代码分析
    • 5.12 NBIOT初始化配置代码
    • 5.13 按键翻页代码分析
    • 5.14 主循环里数据采集、显示、上传代码分析
    • 5.15 处理服务器下发命令的代码
  • 六、Qt开发入门与环境搭建
    • 6.1 Qt是什么?
    • 6.2 Qt版本介绍
    • 6.3 Qt开发环境安装
    • 6.4 开发第一个QT程序
    • 6.5 调试输出
    • 5.6 QT Creator常用的快捷键
    • 6.7 QT帮助文档
    • 6.8 UI设计师使用
    • 6.9 按钮控件组
    • 6.10 布局控件组
    • 6.11 基本布局控件
    • 6.12 UI设计师的布局功能
  • 七、上位机开发
    • 7.1 Qt开发环境安装
    • 7.2 新建上位机工程
    • 7.3 切换编译器
    • 7.4 编译测试功能
    • 7.5 设计UI界面与工程配置
      • 【1】打开UI文件
      • 【2】开始设计界面
    • 7.6 设计代码
      • 【1】获取token
      • 【2】获取影子数据
      • 【3】解析数据更新界面
      • 【4】判断设备是否离线
      • 【5】获取设备最新数据上传时间
    • 7.5 编译Windows上位机
    • 7.6 配置Android环境
      • 【1】选择Android编译器
      • 【2】创建Android配置文件
      • 【3】配置Android图标与名称
      • 【3】编译Android上位机
    • 7.7 模拟设备联调
  • 八、使用STM32代码的流程以及注意事项
    • 8.1 第1步
    • 8.2 第2步
    • 8.3 第3步
    • 8.4 第4步
  • 九、完整STM32代码

一、前言

1.1 项目介绍

【1】开发背景

在当前快速发展的工业背景下,矿山开采作为重要的资源获取方式之一,其安全性和环境保护问题越来越受到社会的关注。矿山环境的恶劣条件,包括高温、高湿、有毒有害气体的积聚以及粉尘污染等,不仅严重影响了矿工的身体健康,还存在着巨大的安全隐患,可能导致严重的事故。因此,构建一个能够实时监测矿山环境变化,并能迅速响应异常情况的智能监测系统,对于提升矿山作业的安全水平和效率具有重要意义。

基于上述需求,本项目提出了一种基于STM32F103RCT6单片机的矿山环境监测系统设计方案。该系统通过集成多种环境监测传感器,如SHT30温湿度传感器、MQ5气体传感器以及PM2.5颗粒物传感器等,实现对矿山内温度、湿度、瓦斯浓度及空气颗粒物浓度等关键环境参数的全面监测。同时,系统具备智能化的预警机制,当检测到的任何一项指标超出预设的安全范围时,能够立即通过蜂鸣器报警或启动相应的控制装置(例如通风风扇和雾化降尘设备),从而有效预防潜在的安全风险。

为了提高系统的可操作性和实用性,本项目还特别设计了一个人机交互友好的OLED显示屏,用于直观地展示各项环境数据,便于现场工作人员随时了解矿山环境状况。此外,通过集成BC26 NBIO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/471778.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型研究报告 | 2024年中国金融大模型产业发展洞察报告|附34页PDF文件下载

随着生成算法、预训练模型、多模态数据分析等AI技术的聚集融合,AIGC技术的实践效用迎来了行业级大爆发。通用大模型技术的成熟推动了新一轮行业生产力变革,在投入提升与政策扶植的双重作用下,以大模型技术为底座、结合专业化金融能力的金融大…

React Native 全栈开发实战班 - 核心组件与导航

在 React Native 中,组件是构建用户界面的基本单元。React Native 提供了丰富的内置组件,涵盖了从基础布局到复杂交互的各种需求。本章节将详细介绍常用的内置组件,并重点讲解列表与滚动视图的使用。 1. 常用内置组件详解 React Native 提供…

检测敏感词功能

今天策划给我一个任务 —— 检测昵称中是否含有敏感词功能,然后丢给我两个压缩包,我解压一看: 有的txt文件是一行一个词: 有的txt文件是按逗号分隔开: 不管是什么格式的总之量非常多,把我这辈子脏话都囊括…

LeetCode59. 螺旋矩阵 II

题目 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 思路 规则 填充上行从左到右 填充右列从上到下 填充下行从右到左 填充左列从下到上 定义上下左右四个基数每行每列填充完后行列…

Vue3 -- 项目配置之stylelint【企业级项目配置保姆级教程3】

stylelint为css的lint工具。可格式化css代码,检查css语法错误与不合理的写法,指定css书写顺序等。 配置stylelint: 我们项目使用scss作为预处理器 安装依赖: pnpm add sass sass-loader stylelint postcss postcss-scss postc…

RabbitMQ轻松构建高效可靠的消息队列系统

目录 1、什么是AMQP 2、什么是SpringAMQP SpringAMQP 的特点: 3、Basic Queue简单队列模型案例 3.1、消息发送 3.2、消息接收 4、WordQueue 4.1、消息发送 4.2、消息接收 4.3、测试 4.4、能者多劳 4.5、总结 5、发布/订阅 6、Fanout 6.1、声明队列和…

AutoHotKey自动热键AHK-正则表达式

在这个软件的操作中,基本都是需要即时的解决一些问题,所以对字符串的操作是比较多的,所以正则的使用还是比较重要的,接下来我们用一个例子来了解正则表达式的使用 str "7654321" RegExMatch(str, "65(43)(21)", SubPat)str ( str %str% SubPat %SubPa…

LinuxCentos中安装apache网站服务详细教程

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理防护和群集专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作…

微信小程序自定义顶部导航栏(适配各种机型)

效果图 1.pages.js,需要自定义导航栏的页面设置"navigationStyle": "custom" 2.App.vue,获取设备高度及胶囊位置 onLaunch: function () {// 系统信息const systemInfo uni.getSystemInfoSync()// 胶囊按钮位置信息const menuButtonInfo uni.…

Elasticsearch集群和Kibana部署流程

搭建Elasticsearch集群 1. 进入Elasticsearch官网下载页面,下载Elasticsearch 在如下页面选择Elasticsearch版本,点击download按钮,进入下载页面 右键选择自己操作系统对应的版本,复制下载链接 然后通过wget命令下载Elastics…

基于Java Springboot快递物流管理系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Layui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库:MySQL8.0 数据库管…

【论文阅读】WaDec: Decompiling WebAssembly Using Large Language Model

论文阅读笔记:WaDec: Decompiling WebAssembly Using Large Language Model 1. 来源出处 论文标题: WaDec: Decompiling WebAssembly Using Large Language Model作者: Xinyu She, Yanjie Zhao, Haoyu Wang会议: 39th IEEE/ACM International Conference on Automated Softwar…

【Rust 编程语言工具】rustup-init.exe 安装与使用指南

rustup-init.exe 是用于安装和管理 Rust 编程语言工具链的 Windows 可执行文件。Rust 是一种系统级编程语言,旨在提供安全、并发和高性能的功能。rustup-init.exe 是官方提供的安装器,用于将 Rust 安装到 Windows 操作系统中,并配置相关环境。…

Mac 使用mac 原生工具将mp4视频文件提取其中的 mp3 音频文件

简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研 学习经验:扎实基础 + 多做笔…

【Qt聊天室客户端】消息功能--发布程序

1. 获取文件内容 主要目标是实现获取内容二进制数据的接口,主要是为后面的消息功能提供服务 具体实现 客户端发送请求 服务端处理请求,同时支持三种数据类型 客户端处理服务端的响应 2. 发送图片消息 客户端与服务端的通信约定 客户端从服务器中获取图片…

【MySQL 保姆级教学】事务的自动提交和手动提交(重点)--上(13)

目录 1. 什么是事务?2. 事务的版本支持3. 事务提交的方式3.1 事务提交方式的分类3.2 演示的准备的工作3.2.1 创建表3.2.2 MySQL的服务端和客户端3.2.3 调低事务的隔离级别 4. 手动提交4.1 手动提交的命令说明4.2 示例一4.3 示例二4.4 示例三4.5 示例四 5. 自动提交5…

Mybatis配置文件的增删改查功能

Mybatis配置文件的增删改查功能 查询—条件查询 //resources里面的org.example.mapper中的BrandMapper.xml文件 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://…

Android 项目依赖库无法找到的解决方案

目录 错误信息解析 解决方案 1. 检查依赖版本 2. 检查 Maven 仓库配置 3. 强制刷新 Gradle 缓存 4. 检查网络连接 5. 手动下载依赖 总结 相关推荐 最近&#xff0c;我在编译一个 Android 老项目时遇到了一个问题&#xff0c;错误信息显示无法找到 com.gyf.immersionba…

群控系统服务端开发模式-应用开发-前端登录接口开发

一、修改验证方法 1、修改验证器 loginRules: {username: [{required: true, trigger: blur, validator: validateUsername}],password: [{required: true, trigger: blur, validator: validatePassword}],captcha_code: [{required: true, trigger: blur, validator: validat…

java基础入门学习09-迭代器

文章目录 一、引言二、迭代器2.1 迭代器对象的创建2.2 迭代器的使用 一、引言 迭代器是设计模式的一种&#xff0c;迭代器模式提供方法来访问容器中的的元素&#xff0c;这听起来跟c语言中指针十分相似&#xff0c;其实数组访问中的指针本质上就是迭代器的一种。Iterrator对象…