基于STM32+NBIOT设计的宿舍安防控制系统_264

文章目录

  • 1.1 项目介绍
      • 【1】开发背景
      • 【2】实现需求
      • 【3】项目硬件模块组成
      • 【4】设计意义
      • 【5】国内外研究现状
      • 【6】摘要
    • 1.2 系统总体设计
      • 【1】系统功能需求分析
      • 【2】系统总体方案设计
      • 【3】系统工作原理
    • 1.3 系统框架图
    • 1.4 系统功能总结
    • 1.5 系统原理图
    • 1.6 实物图
    • 1.7 模块的技术详情介绍
      • 【1】NBIOT-BC26模块
      • 【2】MQ2气体传感器
      • 【3】火焰检测模块
      • 【4】蜂鸣器模块
      • 【5】人体感应传感器
      • 【6】电磁锁
      • 【7】MQTT协议
    • 1.8 参考文献
  • 二、硬件选型
    • 2.1 STM32开发板+LCD显示屏
    • 2.2 USB下载线
    • 2.3 电力信息采集
    • 2.4 PCB板
    • 2.5 BC26 NBIOT模块
    • 2.6 母对母杜邦线
    • 2.7 电源扩展板
    • 2.8 MQ2烟雾传感器
    • 2.9 火焰传感器
    • 2.10 电磁锁
    • 2.11 人体感应-热释电模块
    • 2.12 稳压模块
    • 2.13 电源插头
    • 2.14 蜂鸣器模块
    • 2.15 继电器
    • 2.16 电机马达
    • 2.17 USB母头)
  • 三、部署华为云物联网平台
    • 3.1 物联网平台介绍
    • 3.2 开通物联网服务
    • 3.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
          • 【1】创建服务ID
          • 【2】MQ2 烟雾检测 浮点数类型
          • 【3】Flame 火焰检测 Bool类型
          • 【4】Lock 门磁控制 Bool类型
          • 【5】voltage 电压 浮点数类型
          • 【6】current 电流 浮点数类型
          • 【7】power 功率 浮点数类型
          • 【8】HumanBody_Flag 人体检测
      • (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指令操作过程
    • 4.7 NBIOT模块的流量如何查询?
  • 五、Qt开发入门与环境搭建
    • 5.1 Qt是什么?
    • 5.2 Qt版本介绍
    • 5.3 Qt开发环境安装
    • 5.4 开发第一个QT程序
    • 5.5 调试输出
    • 5.6 QT Creator常用的快捷键
    • 5.7 QT帮助文档
    • 5.8 UI设计师使用
    • 5.9 按钮控件组
    • 5.10 布局控件组
    • 5.11 基本布局控件
    • 5.12 UI设计师的布局功能
  • 六、上位机开发
    • 6.1 Qt开发环境安装
    • 6.2 新建上位机工程
    • 6.3 切换编译器
    • 6.4 编译测试功能
    • 6.5 设计UI界面与工程配置
      • 【1】打开UI文件
      • 【2】开始设计界面
    • 6.6 设计代码
      • 【1】获取token
      • 【2】获取影子数据
      • 【3】解析数据更新界面
      • 【4】判断设备是否离线
      • 【5】获取设备最新数据上传时间
    • 6.7 编译Windows上位机
    • 6.8 配置Android环境
      • 【1】选择Android编译器
      • 【2】创建Android配置文件
      • 【3】配置Android图标与名称
      • 【3】编译Android上位机
    • 6.9 模拟设备联调(仿真)
  • 七、STM32代码设计
    • 7.1 硬件连线说明
    • 7.2 硬件原理图
    • 7.3 硬件组装过程
    • 7.4 硬件实物图
    • 7.5 KEIL工程
    • 7.6 程序下载
    • 7.7 程序正常运行效果
    • 7.8 取模软件的使用
    • 7.9 NBIOT与服务器通信
    • 7.10 硬件初始化
    • 7.11 NBIOT-初始化
      • 代码分析
      • 关键功能总结
    • 7.12 LCD界面显示
    • 7.13 按键逻辑代码
      • 代码分析
      • 关键功能总结
      • 代码特点
    • 7.14 数据采集与显示
      • 代码结构及逻辑分析
        • (1)轮询计时器的处理
        • (2)人体感应检测
        • (3)烟雾检测
        • (4)火焰检测
        • (5)报警控制
        • (6)获取烟雾浓度数据
        • (7)电力数据采集
        • (8)显示数据到LCD
        • (9)数据上传到云端
      • 关键功能总结
    • 7.15 上位机下发命令处理
      • 代码结构及逻辑分析
        • (1)检查接收标志
        • (2)向串口 1 打印接收到的数据
        • (3) 解析命令并进行控制
        • (4)重置接收计数器和标志
      • 关键功能总结
    • 7.16 电流、功率超标切断电源
  • 八、使用STM32代码的流程以及注意事项
    • 8.1 第1步
    • 8.2 第2步
    • 8.3 第3步
  • 九、代码移植更改
    • 【1】STM32代码
    • 【2】Qt上位机代码
  • 十、完整STM32的main.c代码

基于STM32+NBIOT设计的宿舍安防控制系统

1.1 项目介绍

【1】开发背景

随着社会的发展和技术的进步,人们对居住环境的安全性和智能化水平提出了更高的要求。特别是在校园宿舍这样的集体生活环境里,由于人员密集且流动性大,传统的安防措施已经难以满足现代安全标准的需求。为了提高宿舍区的安全防范能力,减少安全隐患,本项目提出了一套基于STM32微控制器与NBIoT(窄带物联网)通信技术相结合的宿舍安防控制系统。

该系统的设计理念是将物联网技术应用于日常生活中,通过集成多种传感技术来实现对宿舍环境的全方位监控,并能够及时响应各种异常情况,从而达到预防火灾、防盗、节能等多重目的。例如,在发生火灾初期,通过安装于宿舍内的烟雾及火焰传感器可以迅速感知火情并发出警报;同时,系统还能

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

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

相关文章

SLAM文献之-Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping

一、简介 该论《Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping》是日本先进工业科学技术研究所(AIST)的Koide等人于2022年在IEEE国际机器人与自动化会议(ICRA)上发表的一篇论文。该研究提出了一种基于全局…

【STM32】HAL库中的实现(七):DMA(直接存储器访问)

DMA 是什么? DMA(Direct Memory Access)是 外设直接和内存之间数据搬运的机制,不需要 CPU 参与。 ✅ 举个例子:传统方式: ADC → CPU → RAM 使用 DMA:ADC → DMA → RAM(CPU 不需干…

【LeetCode热题100道笔记+动画】字母异位词分组

题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 示例 1: 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]] 解释: 在 strs 中没有字符串可…

【Kafka】常见简单八股总结

为什么使用消息队列? 解耦: 我以我的一段开发经验举例: 【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理 我做过一个登录日志逻辑,就是在登录逻辑末尾,加一段写进数据库登录日志…

微信小程序连接到阿里云物联网平台

目录准备阶段阿里云配置下载mqtt.min.js文件小程序实现注意小程序配置服务器域名概述:介绍使用微信小程序连接到阿里云平台的快捷方法和完整过程。 阿里云平台建立设备,提供mqtt连接参数,小程序借助mqtt.min.js,也就是基于Github下…

2-3〔O҉S҉C҉P҉ ◈ 研记〕❘ 漏洞扫描▸AppScan(WEB扫描)

郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。 …

LeetCode 刷题【47. 全排列 II】

47. 全排列 II 自己做 解1&#xff1a;检查重复 class Solution { public:void circle(vector<int> nums, vector<vector<int>> &res,int start){int len nums.size();if(start len - 1){ //到头了//检查重复bool is_exist fa…

Https之(一)TLS介绍及握手过程详解

文章目录简介 TLSTLS第一次握手1.Client HelloTLS第二次握手2.Server Hello3.Certificate4.Server Hello DoneTLS第三次握手5.Client Key Exchange6.Change Cipher Spec7.Encrypted Handshake MessageTLS第四次握手8.New Session Ticket9.Change Cipher Spec10.Encrypted Hands…

【WEB 】从零实现一个交互轮播图(附源码)

文章目录 一、轮播图整体功能规划二、HTML结构深度解析三、CSS样式实现细节1. 定位系统详解2. 显示/隐藏机制3. 按钮交互效果实现4. 纯CSS箭头实现5. 指示器&#xff1a;当前位置可视化 四、JavaScript逻辑深入解析1. 核心变量与DOM获取2. 图片切换函数&#xff08;核心逻辑&am…

机器学习--PCA降维

一核心部分 1解决的问题&#xff1a;应对高维数据带来的计算量大、冗余信息多、易出现过拟合等问题&#xff0c;在减少数据维度的同时尽可能保留原始数据的关键信息。2核心思想&#xff1a…

leetcode 1277. 统计全为 1 的正方形子矩阵 中等

给你一个 m * n 的矩阵&#xff0c;矩阵中的元素不是 0 就是 1&#xff0c;请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。示例 1&#xff1a;输入&#xff1a;matrix [[0,1,1,1],[1,1,1,1],[0,1,1,1] ] 输出&#xff1a;15 解释&#xff1a; 边长为 1 的正方形有…

知识蒸馏 - 各类概率分布

知识蒸馏 - 各类概率分布 flyfish一、离散概率分布 离散分布描述的是取值为离散值&#xff08;如0,1,2,…&#xff09;的随机变量的概率规律&#xff0c;通常用概率质量函数&#xff08;PMF&#xff09; 表示某一取值的概率。 1. 伯努利分布&#xff08;Bernoulli Distribution…

软件测试-Selenium学习笔记

""" 目标&#xff1a; driver.find_element() 需求&#xff1a; 1. 使用driver.find_element()方法 2. 输入用户名&#xff1a;admin 3. 输入密码&#xff1a;123456 """ # 导包 from selenium import webdriver from time import …

知微传感3D相机上位机DkamViewer使用:给相机升级固件

写在前面 本人从事机器视觉细分的3D相机行业。编写此系列文章主要目的有&#xff1a; 1、便利他人应用相机&#xff0c;本系列文章包含公司所出售相机的SDK的使用例程及详细注释&#xff1b;2、促进行业发展及交流。 知微传感Dkam系列3D相机可以应用于定位分拣、焊接焊缝提取、…

CMake进阶: CMake Modules---简化CMake配置的利器

目录 1.简介 2.为什么需要 CMake Modules&#xff1f; 3.内置模块&#xff1a;开箱即用的工具 3.1.依赖查找模块&#xff08;FindXXX.cmake&#xff09; 3.2.功能检测模块&#xff08;CheckXXX.cmake&#xff09; 3.3.通用工具模块&#xff08;如 FetchContent.cmake、CT…

【Docker】Ubuntu上安装Docker(网络版)

【Docker】Ubuntu上安装Docker注意&#xff1a;一、环境准备1. 系统要求2. 卸载旧版本二、安装步骤1.配置仓库源2.安装 Docker引擎3.验证安装情况三、解决报错1、检查网络连接2、检查Docker服务状态3、换源4.重载生效、重启服务、查看是否配置成功5.验证解决情况四、权限与配置…

Socket 编程 TCP

TCP 网络程序 和刚才 UDP 类似. 实现一个简单的英译汉的功能。TCP是面向字节流的可靠传输&#xff0c;如同前文的管道流&#xff0c;只要是流&#xff0c;它的操作就是文件的写出与读入。TCP socket API 详解下面介绍程序中用到的 socket API,这些函数都在 sys/socket.h 中。so…

使用AWS S3 + Lambda + MediaConvert 实现上传视频文件并自动转码

前言 最近团队在做短视频平台的技术调研&#xff0c;其中有一个环节便是音视频开发&#xff0c;即对用户上传的视频进行自适应转码。自适应的原理其实就是预先将视频转换为几个常用的分辨率&#xff0c;app端根据用户手机分辨率拉取相应分辨率的视频。 目前尝试了两种方案&…

QT之QWaitCondition降低cpu占用率,从忙等待到高效同步

在多线程编程中&#xff0c;线程间的同步是一个核心问题。在处理线程等待时&#xff0c;经常会写出高CPU占用率的代码&#xff0c;其中最典型的就是使用忙等待&#xff08;busy waiting&#xff09;。本文将详细介绍如何使用Qt框架中的QWaitCondition类来优雅地解决这一问题&am…

pcl求平面点云的边界凸包点

基本流程1&#xff0c;读入点云&#xff0c;并去除无效点2&#xff0c;拟合平面3&#xff0c;去除离平面距离较远的点4&#xff0c;对点云进行平面投影5&#xff0c;进行convex_hull运算初学者&#xff0c;暂时不知道能用来干嘛。练手还是非常不错的&#xff01;#define _CRT_S…