资料下载: https://download.csdn.net/download/vvoennvv/88680924
一、概述
本系统以STM32F103C8T6单片机为主控芯片,采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集,MQ-7一氧化碳传感器检测CO浓度,GP2Y1014AUOF灰尘传感器检测 PM2.5浓度,光敏电阻对室内光照强度的采集。在液晶屏显示相关环境数据,根据数据处理结果主控芯片发出相应指令,使室内保持人们舒适的生活环境,同时WIFI模块将数据上传到阿里云平台,平台再将数据下发到APP端,人们可以在远程控制家里的电器设备,可以让人们方便直接的观察到当前环境的各种指标。还可以根据不同情况自行设置温湿度、PM2.5浓度、光照强度及CO浓度的上下限,一旦超过正常范围就会打开电灯、发出声光报警、打开风扇等,并通过手机端通知不在家中的人们。
二,整体设计
系统启动后,单片机控制相关传感器进行环境参数的采集,将数据传回单片机处理后,通过OLED显示屏将相关环境指数实时显示。用户可以在手机端打开APP与本系统进行通信,更加便捷地查看监测数据。结构框图如下所示。
三,硬件设计
硬件部分包含主控芯片、传感器模块,OLED模块,WIFI模块以及声光报警模块,部分原理图和PCB图如下:
四,软件设计
主程序是一个无限循环的函数(main),是程序开始运行的地方。系统启动时,主程序首先对STM32及外部设备初始化。其中包括I/O口、ADC的初始化等等。主程序在初始化结束后,程序进入while(1)的死循环,在循环中进行按键的扫描,通过按键对参数进行设置。可以设置温湿度和PM2.5的报警阈值。然后发送指令启动DHT11、GP2Y1014AUOF、MQ-7传感器将采集到的相关参数显示到OLED上。同时启动ESP8266进行MCU与阿里云的通信,在手机上也可以直接查看到实时采集的信息。至此扫描周期结束,轮到下一周期时会从主程序开始处继续下去。在这个循环过程中,也需要将采集值与设置值相比较。倘若在正常范围内,则程序回到开始执行的地方,准备进行下一次运行。倘若偏离了正常范围,则发送指令至报警模块和风扇,警示用户进行相应调整。系统主程序的流程如图:
温湿度采集的程序模块是一个循环程序。在给STM32通电后,单片机发送指令给DHT11传感器。DHT11完成对所处环境中的温湿度数值的采集运算。在将最终得到的数据显示在OLED和手机屏上的同时,也传输回STM32。STM32将反馈的数据与开始设定的阈值范围进行对比。倘若在正常范围内,则返回循环并继续采集信息。倘若偏离了正常范围,则会产生声光报警,接着再返回重新采集信息。温湿度监控子程序的流程如图
还有 空气质量监控子程序, 液晶显示程序子程序等子程序。
五,设计报告
报告里详细描述了智能家居目前国内外的现状,以及该系统的整体设计,硬件设计,软件设计。
六,总结
一个学习STM32不可多得的项目,通过该项目可以熟悉STM32各种片内资源的使用。
资料下载: https://download.csdn.net/download/vvoennvv/88680924