基于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
相关文章:
基于STM32设计的矿山环境监测系统(NBIOT)_262
文章目录 一、前言1.1 项目介绍【1】开发背景【2】研究的意义【3】最终实现需求【4】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】上位机开发思路1.3 项目开发背景【1】选题的意义【2】摘要【3】国内外相关研究现状【5】参考文献1.4 开发工具的选择【1】设备端开发【2】…...
【初阶数据结构与算法】线性表之链表的分类以及双链表的定义与实现
文章目录 一、链表的分类二、双链表的实现1.双链表结构的定义2.双链表的初始化和销毁初始化函数1初始化函数2销毁函数 3.双链表的打印以及节点的申请打印函数节点的申请 4.双链表的头插和尾插头插函数尾插函数 5.双链表的查找和判空查找函数判空函数 6.双链表的头删和尾删头删函…...
219页华为供应链管理:市场预测SOP计划、销售预测与存货管理精要
一、华为ISC供应链管理 华为的集成供应链(ISC)领先实践和SISC(Siyuan Integrated Supply Chain)架构体现了其在供应链管理领域的深度和广度,以下是7点关键介绍: 全面的供应链视野:华为ISC涵盖…...
mac 安装指定的node和npm版本
mac 安装指定的node和npm版本 0.添加映像: export N_NODE_MIRRORhttps://npmmirror.com/mirrors/node 1、使用 npm 全局安装 n npm install -g n 如果报了sudo chown -R 502:20 "/Users/xxx/.npm" sudo npm install -g n 2、根据需求安装指定版本的 node …...
为什么分布式光伏规模是6MW为界点?
安科瑞 Acrel-Tu1990 最近,能源局颁布了一项规定,明确指出6兆瓦(MW)及以上的分布式光伏电站必须实现自发自用,自行消纳电力。多个省份的能源局进一步规定,规模超过6兆瓦的电站需按照集中式管理进行操作。此…...
arm64架构的linux 配置vm_page_prot方式
在 ARM64 架构上,通过 vm_page_prot 属性可以修改 UIO 映射内存的访问权限及缓存策略,常见的有非缓存(Non-cached)、写合并(Write Combine)等。下面是 ARM64 常用的 vm_page_prot 设置及其对应的操作方式。…...
vue3 + naive ui card header 和 title 冲突 bug
背景描述 最近发现一个 naive ui 上的问题,之前好好的,某一次升级后就出现了一个 bug,Modal 使用 card 布局后,Header Solt 下面的内容不见了,变成了 title,因为这个 solt 里面是有操作 action 的…...
Ubuntu 22.04.5 LTS配置 bond
本次纯实验,不会讲解bond功能,配置bond mode 1 和 mode 4 如何配置 确定内核模块是否加载 实验使用root用户权限,非root用户使用sudo 调用root权限 rootubuntu22:~# lsmod | grep bonding rootubuntu22:~# modprobe bonding rootubuntu22:~# …...
100种算法【Python版】第58篇——滤波算法之卡尔曼滤波
本文目录 1 算法步骤2 算法示例2.1 示例描述2.2 python代码3 算法应用:二维运动目标跟踪问题滤波算法是用于从信号中提取有用信息、去除噪声或估计系统状态的技术。在时间序列分析、信号处理和控制系统中,滤波算法起着关键作用。 1 算法步骤 卡尔曼滤波(Kalman Filter)的…...
关于几种卷积
1*1卷积 分组卷积&深度可分离卷积 空洞卷积、膨胀卷积 转置卷积 https://zhuanlan.zhihu.com/p/80041030 https://yinguobing.com/separable-convolution/#fn2 11的卷积可以理解为对通道进行加权,对于一个通道来说,每个像素点加权是一样的&am…...
51单片机教程(五)- LED灯闪烁
1 项目分析 让输入/输出口的P1.0或P1.0~P1.7连接的LED灯闪烁。 2 技术准备 1、C语言知识点 1 运算符 1 算术运算符 #include <stdio.h>int main(){// 算术运算符int a 13;int b 6;printf("%d\n", ab); printf("%d\n", a-b); printf("%…...
VUE3中Element table表头动态展示合计信息(不是表尾合计)
一、背景 原型上需要对两个字段动态合计,输出摘要信息 原先想到是的Element的 :summary-method,发现不是动态,所以换监听来实现 二、vue代码 <el-table v-model"loading" :data"itemList"><el-table-column la…...
git重置的四种类型(Git Reset)
git区域概念 1.工作区:IDEA中红色显示文件为工作区中的文件 (还未使用git add命令加入暂存区) 2.暂存区:IDEA中绿色(本次还未提交的新增的文件显示为绿色)或者蓝色(本次修改的之前版本提交的文件但本次还未提交的文件显示为蓝色)显示的文件为暂存区中的文件(使用了…...
【Java集合面试1】说说Java中的HashMap原理?
Java中的HashMap是一种基于哈希表的Map接口实现,它存储的内容是键值对(key-value)映射。HashMap允许空键(null)和空值(null),并且它的键值对没有顺序。以下是HashMap的一些关键工作原…...
万字长文解读机器学习——决策树
🌺历史文章列表🌺 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…...
内网环境,基于k8s docer 自动发包
背景:生产环境是内网,无法连接外部git环境,需要上传tar包打成镜像,然后发布。 简单写了个脚本,记录下方便复用。 将tar包和脚本拷贝到同一个目录下。 使用方式: tar 包名称格式:服务名-版本号…...
【HCIP园区网综合拓扑实验】配置步骤与详解(已施工完毕)
一、实验要求 实验拓扑图如上图所示 1、按照图示的VLAN及IP地址需求,完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan(本实验未使用) 4、上层…...
Qt 编写插件plugin,支持接口定义信号
https://blog.csdn.net/u014213012/article/details/122434193?spm1001.2014.3001.5506 本教程基于该链接的内容进行升级,在编写插件的基础上,支持接口类定义信号。 环境:Qt5.12.12 MSVC2017 一、创建项目 新建一个子项目便于程序管理【…...
Qt中 QWidget 和 QMainWindow 区别
QWidget 用来构建简单窗口 QMainWindow 用来构建更复杂的窗口,QMainWindow 继承自QWidget,在QWidget 的基础上提供了菜单栏、工具栏、状态栏等功能 菜单栏(QMenuBar)工具栏(QToolBar)状态栏(Q…...
Kafka集群中数据的存储是按照什么方式存储的?
1)Topic 数据的存储机制 Topic是逻辑上的概念,而partition是物理上的概念,每个partition对应于一个log文件,该log文件中存储的就是Producer生产的数据。Producer生产的数据会被不断追加到该log文件末端,为防止log文件…...
中断的硬件框架
往期内容 本专栏往期内容,interrtupr子系统: 深入解析Linux内核中断管理:从IRQ描述符到irq domain的设计与实现Linux内核中IRQ Domain的结构、操作及映射机制详解中断描述符irq_desc成员详解Linux 内核中断描述符 (irq_desc) 的初始化与动态分…...
数据备份策略:企业防御的关键
数据备份是保护数据免受网络攻击的重要步骤。在从恶意软件或勒索软件攻击中恢复时,公司可以使用保存的备份将其恢复到之前的状态。但是,为了确保数据的完全安全,任何公司的备份策略都应该在其总体策略中包含多种解决方案。 根据关于创建、消…...
Baget 私有化nuget
Baget下载 1、下载运行 方法一:cmd运行 dotnet BaGet.dll --urls http://*:8002 http://localhost:8002 方法二:bat脚本运行Baget 创建Start.bat dotnet BaGet.dll --urls http://*:8002 运行Start.bat 方法三:部署成Window服务 NSSM部…...
前端函数的参数都有哪些?
在前端开发中,函数的分类可以根据不同的标准进行。以下是一些常见的函数分类方式,并附有相应的例子: 按传递方式分类: 按值传递:JavaScript 中的基本类型(如数字、字符串、布尔值)都是按值传递的…...
【CSS】什么是BFC?
块级格式化上下文(Block Formatting Context,简称BFC)是CSS布局中的一种重要概念,它决定了块级盒子如何在其容器内排列,以及浮动元素对其周围元素的影响。理解BFC可以帮助解决许多常见的网页布局问题,比如清…...
HCIP小型园区网拓扑实验
1.拓扑以及需求 2.需求分析 需要的核心技术 1、虚拟局域网(VLAN) 2、链路聚合(E-trunk) 3、多生成树协议(MSTP) 4、VLANIF三层逻辑接口 5、虚拟路由冗余协议(VRRP) 6、动态主…...
GRR测量系统的重复性和再现性
GRR(GaugeRepeatabilityandReproducibility)即测量系统的重复性和再现性,是用于评估测量系统性能的一个重要指标。以下是对GRR的详细解释: 一、定义 • 重复性(Repeatability):在相同条件下&…...
133.鸿蒙基础01
鸿蒙基础 1.自定义构建函数1. 构建函数-[Builder ](/Builder )2. 构建函数-传参传递(单向)3. 构建函数-传递参数(双向)4. 构建函数-传递参数练习5. 构建函数-[BuilderParam ](/BuilderParam ) 传递UI 2.组件状态共享1. 状态共享-父子单向2. 状态共享-父子双向3. 状态共享-后代组…...
科技查新小知识
首先科技查新是什么? 科技查新是文献检索和情报调研相结合的情报研究工作,它以文献为基础,以文献检索和情报调研为手段,以检出结果为依据,通过综合分析,对查新项目的新颖性进行情报学审查,写出有…...
docker安装portainer
1、拉取镜像 docker pull portainer/portainer-ce:latest2、执行 docker run -d --restartalways --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer/data:/data -v /data/portainer/public:/public portainer/portain…...
森马网站建设情况/一元友情链接平台
u盘作为现在大家临时存放数据文件的移动设备,很多朋友都在使用,但是如果U盘坏了该如何处理,今天就给大家介绍下关于u盘损坏怎么修的问题,希望可以帮助到大家。注意:本文所说的方法会对U盘原有数据进行删除,…...
兰州400电话网站建设/企点客服
2019独角兽企业重金招聘Python工程师标准>>> 上次关于的这个问题的处理一般是没有问题,但是如果对于重复调用datagrid的selectRow和clearSelections事件,会造成颜色的混乱,因为在每次调用onSelect函数的时候,都首先会调用 onUnselectAll函数,而且调用clearSelection…...
张家口网站建设费用/长春seo网站优化
文章目录摘要npsfrp服务提供商摘要 内网穿透是一种方便的技术,可以让用户随时随地访问内网设备。有两种方式可以使用内网穿透:自己搭建,使用nps/frps软件;购买服务,快速享受内网穿透带来的便利。 nps 内网穿透。参考…...
金融企业网站制作/2022年时事政治热点汇总
以下是一个简单的FIR滤波器在FPGA上实现的Verilog代码: module fir_filter(input clk,input reset,input signed [15:0] data_in,output signed [15:0] data_out );parameter N = 4; // 滤波器阶数parameter COEFF_WIDTH = 16; // 系数位宽parameter DATA_WIDTH =...
用dw做音乐网站模板/推广引流平台app大全
当互联网进入中国,随之而来的web1.0概念便在中国遍地开花,生根发芽。在04年左右web2.0这个概念初次进入我们的圈子里面。到如今在整个网站行业中的应用也已经比较普遍。今天,我将会对这两个概念来深度分析,寻找我们网站运营的方向…...
网站数据库5g/优化网站标题名词解释
目录一 当前文件路径二 python路径拼接os.path.join()函数的用法三 print格式化输出四 将 print 输出到文件五 log模块1 配置文件2 全局log3 使用4 运行程序5 结果六 删除文件七 判断文件/文件夹是否存在八 文本文件操作九 pandas读文件(不把第一行作列属性)十 图片显示1 openc…...