一、功能简介
项目名:基于单片机的矿井安全帽的设计
项目编号:dz-1004
单片机类型:STM32F103C8T6
具体功能:
1、通过DHT11检测温湿度,当温湿度不在设定的上下限值之间,则声光报警
2、通过MQ-4检测甲烷浓度,当甲烷浓度大于设置最大值,则声光报警
3、通过MQ-135检测有害气体浓度,当有害气体浓度大于设置最大值,则声光报警
4、通过光敏电阻获取光照值,当光照值小于设置最小值,则自动打开照明灯,另外可通过按键手动打开
5、通过GPS获取经纬度
6、通过按键可设置各阈值
7、通过OLED显示测量数据
8、通过4G模块将数据发送到手机端,手机端可设置各阈值
二、系统框图设计
绘制软件:VISIO
此次设计是基于STM32F103C8T6单片机的矿井安全帽设计;该设计主要可以分为三部分:输入、输出和中控。中控部分采用STM32F103C8T6单片机作为主控芯片,主要是对输入进行处理然后控制输出;
输入又可以分为七部分:第一部分是温度检测模块DHT11,通过DHT11获取湿度值;第二部是甲烷浓度检测模块,通过该模块可以检测到当前环境的甲烷浓度。第三部分是空气质量监测模块使用的是MQ-135模块,通过此模块可以监测当前环境中是否有异味;第四部分是光照检测模块,由此模块可以检测当前环境的照明度。第五部分是按键模块,通过按键可以设置阈值以及控制继电器的开关;第六部分是供电电路,主要是用来对整个系统进行供电,第七部分是GPS定位模块,通过该模块获取当前位置;
输出主要可以分为三个部分:第一部分是显示部分,温湿度,空气质量,甲烷浓度,照明度的值以及当前位置的经纬度数据;第二部分是LED模块,通过USB给补光灯进行供电,在光照不足时进行补光。第三部分是声光报警模块,该模块用于当测量值超过设定的阈值时进行声光报警。除此之外4G模块即使输入也是输出,4G模块还可以通过手机端app来检测到当前的温湿度,空气质量,甲烷浓度,照明度的值以及当前位置的经纬度数据还可以设置阈值还可以控制补光灯的开关
三、32实物图
单片机型号:STM32F103C8T6
板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。
供电接口:TYPE-C
四、原理图
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
五、PCB图
由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。
六、部分程序展示
软件版本:keil5
逻辑程序和驱动程序分开,分布于main.c和其他.c文件
//========================================================== // 函数名称: Air_4G_WaitRecive // // 函数功能: 等待接收完成 // // 入口参数: 无 // // 返回参数: REV_OK-接收完成 REV_WAIT-接收超时未完成 // // 说明: 循环调用检测是否接收完成 //========================================================== _Bool Air_4G_WaitRecive(void) { if(Air_4G_cnt == 0) //如果接收计数为0 则说明没有处于接收数据中,所以直接跳出,结束函数 return REV_WAIT; if(Air_4G_cnt == Air_4G_cntPre) //如果上一次的值和这次相同,则说明接收完毕 { Air_4G_cnt = 0; //清0接收计数 return REV_OK; //返回接收完成标志 } Air_4G_cntPre = Air_4G_cnt; //置为相同 return REV_WAIT; //返回接收未完成标志 }