欢迎光临
我们一直在努力

基于STM32设计的智能家居_424

文章目录

  • 一、前言
    • 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 模块的技术详情介绍
  • 二、硬件选型
    • 2.1 STM32开发板
    • 2.2 USB下载线
    • 2.3 ESP8266-WIFI
    • 2.4 继电器
    • 2.5 SHT30温湿度模块
    • 2.6 PCB板(固定元器件的)
    • 2.7 BH1750光敏传感器(需要焊接)
    • 2.8 蜂鸣器模块
    • 2.9 MQ2 烟雾传感器
    • 2.10 火焰检测模块
    • 2.11 电源扩展板
    • 2.12 母对母杜邦线
    • 2.13 稳压模块
    • 2.14 电源插头
    • 2.15 步进电机
    • 2.16 OLED显示屏
    • 2.17 LED照明灯模块(买2个)
    • 2.17 海凌科V20语音识别模块
    • 2.15 OLED显示屏(IIC协议4针)
    • 2.16 USB-2.0 接口(买4个)
  • 三、部署华为云物联网平台
    • 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)头文件包含与Android权限检查
    • (2)Widget类构造函数与Android环境初始化
    • (3)配置数据读取与网络管理器初始化
    • (4)SQLite数据库初始化与配置
    • (5)波形图界面初始化与配置
    • (6)波形图样式与颜色配置
    • (7)波形图坐标轴与曲线配置
    • (8)日期选择器初始化与窗口标题设置
    • (9)数据保存与读取功能
    • (10)获取华为云IoT认证Token
    • (11)定时更新设备数据
    • (12)查询设备属性
    • (13)网络响应处理函数
    • (14)Token更新处理
    • (15)设备属性查询结果处理
    • (16)传感器数据解析与显示更新
    • (17)设备状态更新与数据库存储
    • (18)设备在线状态检测与显示
    • (19)控制命令发送功能
    • (20)设备控制按钮事件处理
    • (21)波形图数据管理功能
    • (22)数据库数据查询功能
    • (23)数据插入数据库功能
    • (24)其他辅助功能
    • 5.5 编译Windows上位机
    • 5.6 配置Android环境
      • 【1】选择Android编译器
      • 【2】创建Android配置文件
      • 【3】配置Android图标与名称
      • 【4】编译Android上位机
    • 5.7 设备仿真调试
  • 六、语音识别模块固件设计与烧录
    • 6.1 前言
      • (1)模块介绍
      • (2)模块购买
    • 6.2 修改自定义语音识别词汇
      • 6.2.1 登录官网
      • 6.2.2 定制SDK固件
      • (1)点击创建产品
      • (2)添加产品
      • (3)选择产品,点击开发中心
      • (4)选择创建SDK
      • (5)配置SDK信息
      • (6)前端信号处理
      • (7)引脚配置
      • (8)添加自定义的唤醒词
      • (9)离线命令词与应答语自定义
      • (10)免唤醒词设置
      • (11)发音人配置
      • (12)欢迎语播报设置
      • (13)配置完成
    • 6.3 烧录固件
      • (1)板子接线
      • (2)打开软件工具
      • (3)选择烧录的文件
  • 七、 ESP8266-WIFI模块调试过程
    • 7.1 接电脑USB口调试
    • 7.2 ESP8266的STA+TCP客户端配置
  • 八、STM32代码设计
    • 8.1 硬件连线说明
    • 8.2 硬件原理图
    • 8.3 硬件组装过程
    • 8.4 硬件实物图
    • 8.5 KEIL工程截图
    • 8.6 程序下载
    • 8.7 程序正常运行效果
    • 8.8 取模软件的使用
    • 8.9 WIFI模块与服务器通信
      • (1)组合JSON格式数据字符串
      • (2)判断ESP8266是否已连接MQTT服务器
      • (3)通过MQTT协议上传数据
      • (4)串口打印调试信息
        • **总结:**
    • 8.10 WIFI模块-初始化
      • (1)初始化OLED屏幕显示内容,提示正在初始化ESP8266
      • (2)尝试多次初始化ESP8266模块
      • (3)初始化成功,提示用户并设置运行状态
      • (4)初始化失败,显示错误计数信息
      • (5)使用标签AA作为网络连接阶段的起始跳转点
      • (6)显示WiFi连接信息
      • (7)连接WiFi和TCP服务器
      • (8)连接成功处理
      • (9)连接失败处理,区分错误类型
      • (10)MQTT初始化流程开始(标签AA2)
      • (11)尝试连接MQTT服务器,最多5次
      • (12)连接失败,显示失败信息并延时
      • (13)连接成功后显示提示
      • (14)订阅主题SET_TOPIC
      • (15)订阅失败处理
      • (16)订阅成功处理
      • (17)清屏完成所有初始化工作
        • 总结
    • 8.13 硬件初始化代码
      • (1)释放JTAG端口,设置为SWD,仅保留下载调试功能
      • (2)初始化板载LED
      • (3)初始化板载按键
      • (4)初始化串口1(USART1)
      • (5)初始化环境光传感器 BH1750
      • (6)蜂鸣器初始化
      • (7)初始化温湿度传感器 SHT30 引脚
      • (8)初始化串口2:
      • (9)初始化定时器2:配合串口2做接收超时处理
      • (10)初始化串口3:用于连接语音识别模块
      • (11)初始化定时器3:配合串口3做接收超时处理
      • (12)初始化ADC:用于烟雾传感器 MQ2 数据读取
      • (13)初始化步进电机(窗帘控制)
      • (14)初始化模拟电器控制接口(风扇、空调等)
      • (15)初始化 OLED 显示屏
      • (16)OLED 清屏(黑屏)
      • 总结:
    • 8.14 项目的主循环核心代码
      • (1)按键检测及OLED翻页控制:
      • (2)定时轮询任务:每次 `time_cnt > 200` 时执行
      • (3)温湿度采集:
      • (4)光照强度采集(BH1750):
      • (5)烟雾浓度采集(MQ2):
      • (6)火焰检测(FLAME):
      • (7)报警控制(蜂鸣器):
      • (8)组合所有设备状态为 JSON 格式字符串:
      • (9)MQTT上传至云服务器:
      • (10)OLED数据显示刷新:
      • (11)串口2接收处理:WIFI模块返回数据解析(MQTT下发命令处理)
      • (12)命令响应:
      • (13)串口3接收处理:语音控制模块返回数据解析
      • (14)系统延时与计数器更新:
    • 8.15 APP下发命令处理
      • (1)判断是否有来自 WIFI 模块(USART2) 的数据接收完成:
      • (2)在接收缓存结尾添加字符串终止符 \’\\0\’:
      • (3)调试输出接收的数据内容和长度:
      • (4)判断是否收到有效长度的数据帧:
      • (5)识别是否为“属性设置请求”命令:
      • (6)设备控制:解析卧室灯(LED1)的开关命令:
      • (7)设备控制:解析客厅灯(LED2)开关命令:
      • (8)设备控制:解析风扇(SW1)开关命令:
      • (9)设备控制:解析空调(SW2)开关命令:
      • (10)设备控制:解析窗帘(SW3)开关命令,并驱动步进电机旋转:
      • (11)设备控制:解析电视(SW4)开关命令:
      • (12)回应华为云平台下发的属性设置命令,提取 request_id:
      • (13)组装回应数据包,并通过 MQTT 回复成功信息:
      • (14)调试输出回应内容:
      • (15)清除标志位,准备下一轮接收:
      • 总结:
  • 九、STM32完整代码讲解(main.c)
    • 9.1 代码截图
    • 9.2 代码流程分析
    • 9.3 分段代码代入讲解
  • 十、使用STM32代码的流程以及注意事项
    • 10.1 第1步
    • 10.2 第2步
    • 10.3 第3步

一、前言

1.1 项目介绍

【1】项目开发背景

随着物联网技术的快速发展与普及,智能家居已成为现代生活的重要组成部分。传统家居系统普遍存在控制方式单一、各设备间相互独立、无法与环境互动等问题,用户难以实现便捷、高效和智能化的居住体验。特别是在家庭能源管理、环境安全监测及远程控制等方面,用户对智能化、集成化、实时响应的需求日益增长。基于此,通过融合嵌入式技术、传感器网络、无线通信与云平台服务,构建一套稳定、可靠且功能完善的智能家居控制系统,对提升生活品质、增强家居安全性及推动智能家居产业进步具有重要意义。

本项目以STM32微控制器为核心,结合多类传感器与执行机构,构建了一个集环境感知、设备联动、语音交互与远程监控于一体的智能家居控制系统。系统通过温湿度、光照、烟雾及火焰传感器实时采集居住环境信息,并利用OLED屏幕进行本地数据显示;同时,通过ESP8266 WiFi模块接入华为云IoT平台,使用MQTT协议实现数据的安全上传与指令下发,使系统具备良好的扩展性和稳定性。用户不仅可以通过语音模块进行本地控制,还可借助基于Qt开发的Android手机APP与Windows上位机软件,实现对家中灯光、窗帘、空调、风扇、电视等设备的远程操控,并实时查看环境数据变化趋势与报警状态。

在安全防护方面,系统集成烟雾与火焰检测功能,当环境异常时,本地蜂鸣器会及时发出警报,同时通过云平台向用户推送报警信息,有效提高家庭安全预警能力。此外,系统通过华为云IoT平台进行设备管理、数据存储与消息转发,结合本地SQLite数据库及曲线图展示,为长期环境数据分析提供了便利。整体设计充分体现

赞(0)
未经允许不得转载:171主机测评 » 基于STM32设计的智能家居_424
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址