文章目录
一、硬件选型
1、硬件清单
序号 | 名称 | 型号/作用 | 数量 |
---|---|---|---|
1 | STM32单片机 | 正点原子精英板(STM32F103ZET6) | 1 |
2 | 温湿度传感器 | DHT11 | 1 |
3 | 光敏传感器 | 3针制光敏传感器模块 | 1 |
4 | 空气质量传感器 | MQ135 | 1 |
5 | 人体红外传感器 | 微型人体红外感应模块 | 1 |
6 | 语音识别模块/播报模块 | LD3320/JQ8900 MP3(可插SD/TF卡) | 1 |
7 | 喇叭 | 3W/4Ω | 1 |
8 | 继电器 | 1路5V | 1 |
9 | 风扇 | 5V供电 | 1 |
10 | 舵机 | SG90 9g舵机 90度 | 1 |
11 | 步进电机 | 28BYJ-48 | 1 |
12 | 电机驱动板 | ULN2003 | 1 |
13 | 灯 | 板载LED | 2 |
14 | 触摸/显示屏 | 2.8寸 TFT液晶屏LCD(与正点原子精英版匹配) | 1/1 |
15 | WiFi模块 | esp8266/esp32 nodemcu | 1/1 |
16 | 短信模块 | SIM900A | 1 |
17 | 人脸识别模块 | SIPEED的Maxipy Bit(K210模块,不建议用这个做,性价比不高) | 1 |
18 | 杜邦线 | 母对母/公对公/公对母 | 若干 |
19 | 电源适配器 | 12V 1A | 1 |
20 | USB数据线/STLink | /供电/烧录程序/仿真用 | 1 |
注:以上的硬件选型并不都是最优选,都是笔者根据自己现有的资源和后续购买的硬件配合使用的,读者可根据自己的情况选购。
2、硬件展示(部分)
注:上图展示的是项目中使用到的部分器件,如TFTLCD、esp32和风扇等是后续添加的,上图并没有显示,并且最后的功能中已不再使用红外遥控还有LCD1602的功能,还有就是上图中的“人体红外传感器”和“光照传感器”的位置弄反了,大家知道就行,哈哈。
二、效果展示
1、整体效果展示
2、显示屏(触摸)效果展示
本设计中的触摸屏的功能都是笔者完全从0开发的,没有使用lvgl,都是简单的页面切换,图案所有都是通过在阿里巴巴矢量图标库找到适合的图标然后再转化为bmp图片让触摸屏显示的。
三、功能分析
1、系统总体结构框图
系统主要由主控制器、人机交互、设备控制、客户端和各终端节点组成。其中设备控制包括电机控制和触摸屏控制等,客户端为移动手机端,实现系统的远程控制功能。
2、主要包含的功能
本设计主要实现以下功能:
(1)传感器数据采集及显示。
(2)微信小程序远程监测及控制。
(3)TFTLCD触摸屏多功能(七大功能)页面显示及触摸控制。
(4)人脸识别开门,离家模式下人体红外检测及报警。
(5)语音控制及播报、音乐播放、天气预报播报。
(6)根据设定阈值自动报警以及根据光照度自动开关窗帘。
(7)短信警报/语音拨打特定电话
(8)重要变量的掉电保存
四、怎么做?
1、STM32单片机部分
主要使用到了GPIO的输入输出、定时器、PWM、RTC、ADC、IIC、串口通信(中断)等功能。这部分主要使用的是正点原子的例程模板。
STM32负责处理的内容有很多,如传感器数据的采集、家电硬件的控制、触摸屏的控制、与语音(播报)模块/短信模块/esp32/esp8266等的串口通信等,其中触摸屏显示部分又有闹钟、音乐(乞丐版)、设置、家电控制、模式选择、环境数据采集、天气预报等七大功能模块,而音乐播放其实只有播放/暂停/上下首/增减音量的功能,且只能播放SD卡里面指定的歌曲,没有文件读写功能,其实超级垃圾