基于STM32设计的智能家居控制系统(华为云IOT)_275

embedded/2024/12/27 18:33:24/

文章目录

  • 一、前言
    • 1.1 项目介绍
      • 【1】项目开发背景
      • 【2】设计实现的功能
      • 【3】项目硬件模块组成
      • 【4】设计意义
      • 【5】国内外研究现状
      • 【6】摘要
    • 1.2 设计思路
    • 1.3 系统功能总结
    • 1.4 开发工具的选择
      • 【1】设备端开发
      • 【2】上位机开发
    • 1.5 参考文献
    • 1.6 系统框架图
    • 1.7 系统原理图
    • 1.8 实物图
    • 1.9 模块的技术详情介绍
      • 【1】BC26-NBIOT模块
      • 【2】MQTT协议
      • 【3】继电器模块
      • 【4】BH1750光强检测模块
      • 【5】SHT30温湿度模块
      • 【6】LD3320语音识别模块
      • 【7】28BYJ4步进电机
    • 1.10 总结
  • 二、硬件选型
    • 2.1 STM32开发板
    • 2.2 USB下载线
    • 2.3 NBIOT-BC26模块
    • 2.4 继电器(买2个)
    • 2.5 SHT30温湿度模块
    • 2.6 PCB板(固定元器件的)
    • 2.7 BH1750光敏传感器(需要焊接)
    • 2.8 蜂鸣器模块
    • 2.9 MQ2 烟雾传感器
    • 2.10 火焰检测模块
    • 2.11 电源扩展板(买2个)
    • 2.12 母对母杜邦线
    • 2.13 稳压模块
    • 2.14 电源插头
    • 2.15 步进电机
    • 2.16 OLED显示屏
    • 2.17 白色LED模块(买2个)
    • 2.18 LD3320语音识别模块
  • 三、部署华为云物联网平台
    • 3.1 物联网平台介绍
    • 3.2 开通物联网服务
    • 3.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
          • 【1】创建服务ID
          • 【2】LED1 卧室灯 布尔类型
          • 【3】LED2 客厅灯 布尔类型
          • 【4】BH1750 环境光检测 浮点数
          • 【5】SW1 风扇开关 布尔类型
          • 【6】SW2 空调开关 布尔类型
          • 【7】SW3 窗帘开关 布尔类型
          • 【8】SW4 电视开关 布尔类型
          • 【9】SHT30_T 环境温度 浮点数
          • 【10】SHT30_H 环境湿度 浮点数
          • 【11】MQ2 烟雾检测 浮点数
          • 【12】BEEP 蜂鸣器 布尔类型
          • 【13】FLAME 火焰监测 布尔类型
      • (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 修改设备属性
  • 四、Qt开发入门与环境搭建
    • 4.1 Qt是什么?
    • 4.2 Qt版本介绍
    • 4.3 Qt开发环境安装
    • 4.4 开发第一个QT程序
    • 4.5 调试输出
    • 4.6 QT Creator常用的快捷键
    • 4.7 QT帮助文档
    • 4.8 UI设计师使用
    • 4.9 按钮控件组
    • 4.10 布局控件组
    • 4.11 基本布局控件
    • 4.12 UI设计师的布局功能
  • 五、上位机开发
    • 5.1 Qt开发环境安装
    • 5.2 新建上位机工程
    • 5.3 切换编译器
    • 5.4 编译测试功能
    • 5.5 设计UI界面与工程配置
      • 【1】打开UI文件
      • 【2】开始设计界面
    • 5.6 设计代码
      • 【1】获取token
      • 【2】获取影子数据
        • (1)获取当前时间并更新界面上的时间标签
        • (2)设置请求URL和初始化网络请求
        • (3)构造API请求URL
        • (4)设置请求的头部信息
        • (5)设置请求URL并发送请求
        • (6)总结
      • 【3】解析数据更新界面
        • (1)**解析JSON数据:**
        • (2) **检查解析结果:**
        • (3) **检查数据是否为对象:**
        • (4) **解析`shadow`数组中的数据:**
        • (5) **提取属性数据:**
        • (6) **提取设备和传感器数据:**
        • (7)**更新UI显示:**
        • (8) **设置不同的显示样式:**
        • (9)**火焰和蜂鸣器状态显示:**
        • (10)**设备开关按钮状态:**
        • (11)**时间和设备状态:**
        • (12)**设备在线/离线状态判断:**
        • (13)总结
    • 5.5 编译Windows上位机
    • 5.6 配置Android环境
      • 【1】选择Android编译器
      • 【2】创建Android配置文件
      • 【3】配置Android图标与名称
      • 【4】编译Android上位机
    • 5.7 设备仿真调试
  • 六、 BC26-NBIOT模块调试过程
    • 6.1 模块调试接线
    • 6.2 测试模块
    • 6.3 上电初始化操作
  • 七、LD3320语音识别模块-编程
    • 7.1 模块实物
    • 7.2 模块调试
    • 7.3 打开工程
    • 7.4 增加语音识别代码
    • 7.5 程序下载
    • 7.6 串口打印的值
  • 八、STM32代码设计
    • 8.1 硬件连线说明
    • 8.2 硬件原理图
    • 8.3 硬件组装过程
    • 8.4 硬件实物图
    • 8.5 KEIL工程截图
    • 8.6 程序下载
    • 8.7 程序正常运行效果
    • 8.8 取模软件的使用
    • 8.9 NBIOT模块与服务器通信
      • (1)组合数据
      • (2)检查NBIOT连接状态
      • (3)上传数据到云服务器
      • (5)判断上传结果
      • (6)总结
    • 8.10 硬件初始化
      • (1)**释放PA15引脚**
      • (2)**板载LED初始化**
      • (3)**板载按键初始化**
      • (4)**串口1初始化(用于打印信息)**
      • (5)**环境光检测模块初始化(BH1750)**
      • (6)**蜂鸣器初始化**
      • (7)**环境温湿度传感器SHT30初始化**
      • (8)**串口2初始化(连接NBIOT-BC26模块)**
      • (9)**串口3初始化(连接LD3320语音识别模块)**
      • (10)**ADC初始化(连接MQ2烟雾传感器)**
      • (11)**步进电机初始化**
      • (12)**硬件初始化(灯光、风扇、空调等)**
      • (13)总结
    • 8.11 NBIOT模块-初始化
      • (1)**OLED清屏与初始化显示**
      • (2)**连接尝试计数器和模块复位**
      • (3)**检测BC26模块是否正常**
      • (4)**模块复位与初始化配置**
      • (5)**MQTT协议初始化**
      • (6)**订阅MQTT主题**
      • (7)**设置连接成功标志**
      • (8)总结
    • 8.12 LCD界面显示
      • (1)**`OLED_Page_1`:显示环境温度和湿度**
      • (2)**`OLED_Page_2`:显示烟雾浓度、环境光强、火焰监测和报警状态**
      • (3)**`OLED_Page_3`:显示卧室灯、客厅灯、风扇、空调状态**
      • (4)总结
    • 8.14 数据采集与显示
      • 【1】详细分析
        • **(1)轮询计时与指示灯**
        • **(2)数据采集与处理**
        • **(3)报警逻辑**
        • **(4)数据组装与上传**
        • **(5)OLED 显示更新**
      • 【2】总结
    • 8.15 按键代码
      • (1)**按键扫描与显示**
      • (2)**显示屏翻页逻辑**
      • (3)**卧室灯控制**
      • (4)**客厅灯控制**
      • (5)总结
    • 8.16 上位机命令处理
      • **【1】主要功能**
      • **【2】代码详解**
        • **(1)接收和打印数据**
        • **(2)解析控制命令**
        • **(3)窗帘控制**
        • **(4)请求响应**
        • **(5)复位接收标志**
    • 8.17 语音识别命令处理
      • **【1】功能概述**
      • **【2】代码详解**
        • **(1)接收与打印数据**
        • **(2)控制命令解析与执行**
          • 示例:卧室灯控制
          • 其他设备控制逻辑
        • **(3)清理接收缓存**
  • 九、使用STM32代码的流程以及注意事项
    • 9.1 第1步
    • 9.2 第2步
    • 9.3 第3步
  • 十、代码移植更改
    • 【1】STM32代码
    • 【2】Qt上位机代码
  • 十一、完整STM32代码

一、前言

1.1 项目介绍

【1】项目开发背景

智能家居控制系统随着科技的不断发展,已经逐渐进入人们的日常生活,成为提升生活品质和便捷性的关键技术之一。近年来,物联网(IoT)技术的兴起,为智能家居系统的广泛应用提供了强大的技术支持。借助物联网技术,家庭中的各种电器可以通过网络实现远程控制、自动化管理和数据监控,极大地提高了居住者的舒适度、便捷性和安全性。

本项目设计一个基于STM32的智能家居控制系统,通过集成多种传感器与执行器,结合云计算与物联网技术,提供全面的家居自动化解决方案。系统不仅支持语音指令、手机APP和Windows电脑等多种方式进行远程控制,还能够实时监测室内环境的温湿度、光照强度以及烟雾浓度等关键参数,提升居住环境的安全性和舒适性。

随着环境污染和安全隐患的增加,智能家居系统的安全功能变得尤为重要。本项目特别设计了烟雾检测与火光检测功能,当检测到异常情况时,系统会及时报警并通过蜂鸣器和手机APP通知用户,以确保家庭成员的安全。通过集成的OLED显示屏,用户还可以实时查看环境数据和设备的工作状态,实现本地和远程的双重管理。

为了实现设备与云端的高效连接,本项目采用了华为云IOT平台,通过NBIOT模块将数据上传至云端&#


http://www.ppmy.cn/embedded/143204.html

相关文章

概率论——区间估计

置信区间: 概率分布中,抽出一些样本,通过某种方法,确定一个区间 求解思路: 1、定类型,摆公式 2、计算各分量 3、代入公式 例题: (1) 1、求μ,方差已知&…

Helm chart 配置、使用简介

helm说明 官方文档:https://helm.sh/zh/docs/helm/helm/ 关于 Helm Chart Helm是Kubernetes生态系统中的一个软件包管理工具,专门负责管理Kubernetes应用资源。而Helm仓库(Repository)在Helm中扮演着重要角色,是Hel…

初识交换机和路由器

目录 初识交换机和路由器交换机路由器主要区别工作流程如果是交换机:如果是路由器 初识交换机和路由器 左为路由器,右为交换机 交换机 交换机的前身是集线器,集线器是物理层的设备,有很多接口,当一台计算机A想发消息…

html-两个div,让一个div跟随另外一个div的高度

在开发的过程中遇到有些场景事这样的,两个div的高度不一致,而且都是动态高度,有的时候div1高,有的时候div2高,如果设置flex的话,那么就会把较矮的元素撑大,但是我想始终都以div1的高度作为基准&…

【Word 知识点】

快捷键 1.复制 Ctrlc 2.粘贴 Ctrlv 3.剪切 Ctrlx 4.全选 Ctrla 5.加粗 Ctrlb 6.打开 Ctrlo 7.新建 Ctrln 8.保存 Ctrls 9.查找 Ctrlf 10.替换 Ctrlh Word 要点 1.文档基本操作: 新建 打开 保存 复制 粘贴 剪切 查找 替换 2.字体:字体 字号 颜…

常见的 CSS 对齐方式介绍及代码示例

目录 常见的 CSS 对齐方式介绍及代码示例 1. 使用 text-align 属性对齐文本 2. 使用 vertical-align 对齐内联元素 3. 使用 margin 和 auto 实现水平居中 4. 使用 Flexbox 对齐 5. 使用 Grid 对齐 6. 使用 position 和 transform 对齐 常见的 CSS 对齐方式介绍及代码示例…

防抖与节流

防抖 当某个事件触发时,等待一段时间再执行函数。如果在这段时间内事件再次被触发,那么就重新计时,换句话说,防抖可以确保函数在事件结束后才被执行,避免了多次触发。 应用场景: 搜索框输入:…

2024年顶级小型语言模型前15名

本文,我们将深入了解2024年备受瞩目的十五款小型语言模型(SLMs),它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称,它们不需要依赖庞大的服务器资源&#xff0c…