当前位置: 首页 > news >正文

6 基于STM32单片机的智能家居系统设计(STM32代码编写+手机APP设计+PCB设计+Proteus仿真)

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 1 资料获取与演示视频
    • 1.1 资料介绍
    • 1.2 资料获取
    • 1.3 演示视频
  • 2 系统框架
  • 3 硬件
    • 3.1 主控制器
    • 3.2 显示屏
    • 3.3 WIFI模块
    • 3.4 DHT11温湿度传感器
    • 3.5 烟雾/燃气传感器模块:MQ-2
    • 3.6 火焰传感器
    • 3.7 门磁模块MC-38
  • 4 设计PCB
    • 4.1 安装下载立创EDA专业版
    • 4.2 画原理图
    • 4.3 摆放元器件,设计规则,泪滴,铺铜。
    • 4.4 使用嘉立创下单助手进行下单,打板。
    • 4.5 实物图
  • 5 软件设计
    • 5.1 编写STM32单片机代码
    • 5.2 设计手机APP
  • 6 proteus仿真
  • 7 实验测试
    • 7.1 准备
    • 7.2 烧录软件
    • 7.3 实验验证
  • 总结


前言

本文设计出一款基于STM32单片机的智能家居安防系统。
主要功能如下:

1、实时显示当前时间,和网络时间同步。

2、DHT11温湿度传感器采集温湿度

3、MQ-2监控烟雾/可燃气体

4、火焰传感器监控明火

5、门磁模块监控闯入报警

6、OLED实时显示当前系统信息

7、阈值可调,超出阈值蜂鸣器报警。

8、通过ESP8266连接OneNET云平台,实现单片机-OneNET云平台-手机APP三方交互。


1 资料获取与演示视频

1.1 资料介绍

在这里插入图片描述

1.2 资料获取

完整资料获得链接:
咸鱼:【胜磊电子】基于STM32单片机的智能家居系统设计(STM32代码编写+手机APP设计+PCB设计+Proteus仿真)

淘宝:【胜磊电子】基于STM32单片机的智能家居系统设计(STM32代码编写+手机APP设计+PCB设计+Proteus仿真)

1.3 演示视频

哔哩哔哩:【胜磊电子】基于STM32单片机的智能家居系统设计(STM32代码编写+手机APP设计+PCB设计+Proteus仿真)


2 系统框架

系统框架如图所示:
在这里插入图片描述

单片机整体框图:
在这里插入图片描述


3 硬件

3.1 主控制器

主控制器选择STM32F103RCT6,在淘宝上买的,如下图所示:
在这里插入图片描述
STM32F103RCT6 是意法半导体(STMicroelectronics)推出的一款基于 ARM Cortex-M3 内核的 32 位微控制器,在工业控制、消费电子等领域应用广泛。

内核与性能
内核:采用 ARM Cortex - M3 内核,具备高效的哈佛结构和 Thumb - 2 指令集,可实现较高的代码密度和处理性能。
工作频率:最高工作频率达 72MHz,能快速处理各种复杂任务。
运算能力:支持单周期乘法和硬件除法,提升了数据处理速度。
存储器
闪存(Flash):拥有 256KB 的闪存,可用于存储程序代码。其可擦写次数多,数据保存时间长,适合存储一些需要长期保存的程序和数据。
随机存取存储器(SRAM):具备 48KB 的 SRAM,能为程序运行提供临时数据存储和堆栈空间。
外设接口
通用输入输出端口(GPIO):多达 72 个 GPIO 引脚,可灵活配置为输入或输出模式。这些引脚可用于连接外部设备,如按键、LED、传感器等。
串行通信接口:
UART:3 个通用异步收发传输器(UART),可实现全双工通信,用于与其他设备进行异步串行通信,如连接 PC、蓝牙模块等。
SPI:2 个串行外设接口(SPI),通信速度快,常用于连接外部存储器、传感器等高速设备。
I²C:2 个集成电路总线(I²C),可用于连接多个具有 I²C 接口的设备,如 EEPROM、传感器等,实现数据的传输和设备的控制。
USB 接口:支持 USB 2.0 全速设备模式,可方便地与计算机或其他 USB 设备进行通信。
CAN 接口:具备 1 个控制器局域网(CAN)接口,适用于汽车电子、工业自动化等领域的分布式控制系统,实现节点间的可靠通信。
SDIO 接口:支持安全数字输入输出(SDIO)接口,可用于连接 SD 卡、MMC 卡等大容量存储设备,方便数据的存储和读取。
定时器
高级定时器:1 个高级定时器,可用于电机控制、PWM 生成等高精度应用场景。
通用定时器:4 个通用定时器,具备多种功能,如定时、计数、PWM 输出等,可满足不同的应用需求。
基本定时器:2 个基本定时器,主要用于简单的定时和计数任务。
模拟外设
模数转换器(ADC):拥有 2 个 12 位的 ADC,最多支持 16 个外部通道。可将模拟信号转换为数字信号,用于采集传感器的模拟输出,如温度、压力等。
数模转换器(DAC):1 个 12 位数模转换器,可将数字信号转换为模拟信号,用于产生模拟电压或电流信号。
其他特性
低功耗模式:支持多种低功耗模式,如睡眠模式、停止模式和待机模式,可有效降低系统功耗,延长电池续航时间。
复位和时钟管理:具备完善的复位和时钟管理系统,可确保系统在各种情况下稳定运行。同时,支持外部晶振和内部 RC 振荡器,方便用户根据实际需求选择合适的时钟源。

3.2 显示屏

使用1.8寸显示屏,分辨率128*160。如图,
在这里插入图片描述
1.8寸彩屏,支持16BIT RGB 65K彩色显示,显示色彩丰富
128X160分辨率,显示清晰
采用SPI串行总线,只需几个IO即可点亮显示
带SD卡槽方便功能扩展
军工级工艺标准,长期稳定工作

3.3 WIFI模块

WIFI模块使用ESP8266,如图,
在这里插入图片描述
ESP01S 是一款基于乐鑫 ESP8266EX 芯片的低成本、低功耗 Wi-Fi 模块,专为物联网(IoT)和嵌入式系统设计。
以下是其详细介绍:

核心架构与性能
处理器:采用 32 位 Tensilica L106 RISC 处理器,主频支持 80MHz 或 160MHz,集成 TCP/IP 协议栈,可直接运行用户程序。
内存配置:
闪存(Flash):提供 1MB 或 4MB 两种版本(具体型号差异),用于存储固件和用户代码。
RAM:64KB,支持程序运行和数据缓存。
通信协议:支持 802.11b/g/n 标准,数据传输速率最高 4Mbps,覆盖 2.4GHz 频段,支持 STA、AP、STA+AP 三种工作模式。

硬件资源与接口
引脚定义:
供电:3.0V~3.6V(推荐 3.3V),传输电流 170mA,接收电流 56mA。
通信:UART 接口(TXD/RXD),支持 AT 指令交互,波特率默认 115200bps。
GPIO:提供 2 个可编程引脚(GPIO0、GPIO2),可用于控制外设(如 LED、继电器)或传感器输入。
其他:CH_PD(使能引脚,高电平有效)、RST(复位引脚)。
扩展能力:
PWM:部分引脚支持 PWM 输出,用于电机调速或灯光控制。
I²C/SPI:需通过外部扩展芯片(如 PCF8574、MCP23017)实现。

低功耗特性
工作模式:
活跃模式:传输时电流约 170mA,接收时 56mA。
睡眠模式:
轻睡眠:电流约 10mA,保留网络连接。
深度睡眠:电流低至 20μA,适用于电池供电设备。
唤醒方式:支持定时唤醒、GPIO 触发唤醒或 UART 数据唤醒。

应用场景
智能家居:通过 Wi-Fi 连接控制灯光、空调、门锁等设备。
环境监测:采集温湿度、空气质量等数据并上传至云端。
工业自动化:远程监控设备状态,实现无线数据传输。
智能农业:监测土壤湿度、光照等参数,优化种植管理。

3.4 DHT11温湿度传感器

在这里插入图片描述
使用DHT11模块检测环境的温度和湿度。

DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11 功耗很低,5V 电源电压下,工作平均最大电流 0.5mA。
DHT11 的技术参数如下:
⚫ 工作电压范围:3.3V-5.5V
⚫ 工作电流 :平均 0.5mA
⚫ 输出:单总线数字信号
⚫ 测量范围:湿度 20~90%RH,温度 0~50℃
⚫ 精度 :湿度±5%,温度±2℃
⚫ 分辨率 :湿度 1%,温度 1℃

DHT11 数字湿温度传感器采用单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由 5Byte(40Bit)组成。数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出。DHT11 的数据格式为:8bit 湿度整数数据+8bit 湿度小数数据+8bit 温度整数
数据+8bit 温度小数数据+8bit 校验和。其中校验和数据为前四个字节相加。
传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应该分开处理。例如,某次从 DHT11 读到的数据如图所示:
在这里插入图片描述
由以上数据就可得到湿度和温度的值,计算方法:
湿度= byte4 . byte3=45.0 (%RH)
温度= byte2 . byte1=28.0 ( ℃)
校验= byte4+ byte3+ byte2+ byte1=73(=湿度+温度)(校验正确)
可以看出,DHT11 的数据格式是十分简单的,DHT11 和 MCU 的一次通信最大为 3ms 左右,
建议主机连续读取时间间隔不要小于 100ms。
下面,我们介绍一下 DHT11 的传输时序。DHT11 的数据发送流程如图所示:
在这里插入图片描述
首先主机发送开始信号,即:拉低数据线,保持 t1(至少 18ms)时间,然后拉高数据线 t2(20~40us)时间,然后读取 DHT11 的响应,正常的话,DHT11 会拉低数据线,保持 t3(40~50us)时间,作为响应信号,然后 DHT11 拉高数据线,保持 t4(40~50us)时间后,开始输出数据。
DHT11 输出数字‘0’的时序如图所示:
在这里插入图片描述
DHT11 输出数字‘1’的时序如图所示:
在这里插入图片描述
通过以上了解,我们就可以通过 STM32 来实现对 DHT11 的读取了。

3.5 烟雾/燃气传感器模块:MQ-2

在这里插入图片描述

  1. 核心检测气体
    液化气(LPG)、丙烷、氢气、烟雾(如厨房油烟、火灾烟雾),对高浓度可燃气体和烟雾的响应速度快(≤10 秒),但对酒精、一氧化碳等气体也有交叉敏感。

  2. 典型场景
    家庭安全: 家庭厨房安装 MQ-2,可同时监测液化气泄漏和烹饪烟雾。
    工业监测:工厂车间丙烷泄漏监测、火灾烟雾排放监控。
    消费电子:便携式燃气检测仪、智能家居环境监测(如空气净化器联动)。
    特殊场景:森林火灾初期烟雾预警。

  3. MQ-2的工作原理
    MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。

3.6 火焰传感器

在这里插入图片描述

  1. 特点
    可以检测火焰或者波长在760纳米~1100纳米范围内的光源,打火机测试火焰距离为80mm,对火焰越大,测试距离越远。
    探测角度60度左右,对火焰光谱特别灵敏。
    灵敏度可调(电位器调节)
    比较器输出,信号干净,波形好,驱动能力强,超过15MA.
    工作电压3.3V~5V
    输出形式:
    DO数字量开关输出(0/1)
    AO:模拟量开关输出

  2. 接线说明
    VCC:接电源正极(3.3-5V)
    GND:接电源负极
    DO:TTL数字信号输出
    AO:模拟信号输出

3.7 门磁模块MC-38

在这里插入图片描述


4 设计PCB

直接使用上述模块,线路非常杂乱,因此,我们需要自己设计一块PCB底板。开发工具使用立创EDA。

相关资料已经放在本文第一节。

4.1 安装下载立创EDA专业版

4.2 画原理图

4.3 摆放元器件,设计规则,泪滴,铺铜。

在这里插入图片描述

4.4 使用嘉立创下单助手进行下单,打板。

4.5 实物图

实物如图:
在这里插入图片描述


5 软件设计

5.1 编写STM32单片机代码

工程目录如图所示:
在这里插入图片描述

5.2 设计手机APP

在这里插入图片描述

手机APP设计完成如下:
在这里插入图片描述


6 proteus仿真

本系统使用proteus8.17进行仿真测试。
在这里插入图片描述
完整视频请看本文1.3 演示视频


7 实验测试

7.1 准备

1、准备好硬件实物,接好传感器和其他外设。

2、将TFT LCD插在底板响应位置。

3、ESP8266插在相应位置。

4、在手机端安装APP。

5、上电

7.2 烧录软件

下载代码需要提前安装好MDK环境,准备好SWD下载器,在MDK中进行“LOAD”下载。

7.3 实验验证

1、 proteus仿真测试

2、温湿度传感器测试

3、烟雾/燃气测试

4、火焰传感器测试

5、门磁模块测试

6、阈值调节,报警测试

7、单片机-OneNET云平台-手机APP三方交互测试

演示视频:

STM32单片机的智能家居系统设计(包含stm32代码编写+手机APP设计+PCB设计+proteus仿真)


总结

http://www.dtcms.com/a/285071.html

相关文章:

  • 如何从 iPhone 向Mac使用 AirDrop 传输文件
  • 企业网络运维进入 “AI 托管” 时代:智能分析 + 自动决策,让云、网、端一眼看穿
  • 关于用git上传远程库的一些常见命令使用和常见问题:
  • Redis学习-02安装Redis(Ubuntu版本)、开启远程连接
  • ComfyUI 中RAM内存、VRAM显存、GPU 的占用和原理
  • 基于深度学习的图像识别:从零构建卷积神经网络(CNN)
  • 面对微软AD的安全隐患,宁盾身份域管如何设计安全性
  • Python调用父类方法的三种方式详解 | Python面向对象编程教程
  • 【DOCKER】-5 镜像仓库与容器编排
  • 云服务器如何设置防火墙和安全组规则?
  • Java EE进阶3:SpringBoot 快速上手
  • 【Linux】Makefile(二)-书写规则
  • 【原创】【图像算法】高精密电子仪器组装异常检测
  • 力扣119:杨辉三角Ⅱ
  • Cursor出现This model provider doesn’t serve your region解决方案
  • 【调度算法】
  • javaScript中数组常用的函数方法
  • 洛谷 P1601 A+B Problem(高精)
  • 重构比特币在 Sui DeFi 中的角色
  • Redis中什么是看门狗机制
  • 解决leetcode第3614题用特殊操作处理字符串II
  • 魔术公式轮胎simulink模型建立及参数拟合
  • 实现atm提款简易代码
  • ​​孤儿进程:当父进程先离开时会发生什么?
  • LeetCode|Day17|242. 有效的字母异位词|Python刷题笔记
  • 云服务器的数据如何备份和恢复?
  • Leetcode刷题营第二十八题:二叉树的前序遍历
  • CSS关键字:initial、revert、unset傻傻分不清
  • 打造智慧园区新生态
  • Au速成班-乐理知识补充+网页下载音乐