1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 物联网毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文)

物联网毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文)

时间:2019-09-17 17:35:01

相关推荐

物联网毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文)

文章目录

0 前言1 设计架构功能设计 2 原理图3 软件设计4 实现效果5 相关代码6 最后

0 前言

🔥

这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文)

🥇学长这里给一个题目综合评分(每项满分5分)

难度系数:3分工作量:3分创新点:3分

🧿项目分享:

/sinonfin/sharing

1 设计架构

本系统主要由单片机系统、液晶显示、温湿度采集模块、PM2.5采集模块和甲醛模块。采用单片机作为主控芯片,将采集到的温湿度和PM2.5,甲醛浓度显示到LCD1602液晶上,来实现当前环境的采集。

功能设计

主要功能: 使用STM32为主控制器,可采集当前环境下的温湿度、甲醛、PM2.5值,当采集值超过预设阀值时,蜂鸣器自动报警。采集到的温湿度、甲醛、PM2.5会显示在LCD1602显示屏上,且自动上传至上位机(手机),可以在手机查收采集到的各种参数。可通过三个按键任意设置报警阀值。

1.使用STM32F103C8T6单片机做主控制器。

2.使用LCD1602显示采集到的温湿度、甲醛、PM2.5值。

3.使用ESP8266上次至手机,采集数据实时上传到手机上。

4.使用DHT11采集当前环境温湿度。

5.使用ZE08-CH2O 采集甲醛值。

6.使用GP2Y1014AU粉尘传感器采集当前环境PM2.5值。

7.三个按键可任意设置报警阀值,当采集值超过了报警阀值后,蜂鸣器会自动报警。

2 原理图

3 软件设计

整体流程框图是描述整个系统运行过程的流程图。通过框图可以看出主程序是如何对各个子程序的调用来实现整个系统功能的。根据系统概述的分析,画出系统软件流程图如图

温度采集模块是本系统的核心模块之一,根据传感器的通信协议规定,DHT11不会主动采集环境温湿度,只有单片机通过I/O口发出激发信号,主动驱动传感器,传感器才会工作,这时,单片机将数据线的控制权交给传感器,由传感器完成数据采集,模数转换,数据发送的任务,而单片机通过对I/O口高低电平的不断检测,来解析出正确的数字信息[15]。根据以上流程,设计DHT11温湿度采集软件流程图如图

篇幅有限,其他流程不在这里过度复述。。

4 实现效果

正面

反面

5 相关代码

#include<stm32.h> //头文件#include<intrins.h>#include<stdio.h>#include<math.h> //Keil librarysbit DATA=P2^4;//数据sbit SCK=P2^3;//时钟#define TEMP_ML 0x03//000 0001 1 温度命令#define HUMI_ML 0x05//000 0010 1 湿度命令unsigned char error; //全局错误变量unsigned char ack;//全局错误变量//float temp_zi; //全局应答变量//float humi_zi; //全局应答变量unsigned char temp_h; //全局应答变量unsigned char temp_LL; //全局应答变量unsigned char humi_h; unsigned char temp_LL#define uchar unsigned char //定义一下方便使用#define unit unsigned int#define ulong unsigned longunsigned int recs=0;//接收次数uchar TempBuffer[5];uchar humibuffer[4];const unsigned char SHUO[15]=”0123456789.%RH”;int xts_zi=0;//温度值int xtg_zi=0;//温度个位值int xtd_zi=0;//温度点值int xss_zi=0;//湿度值int xsg_zi=0;//湿度个位值int xsd_zi=0;//湿度点值sbit soud=P1^4;//声音//基本驱动程序//系统初始化Void start(void)//启动{DATA=1; SCK=0;//数据为1,SCK=0_nop_();SCK=1; //第一个脉冲DATA=0;//数据跌落_nop_();SCK=0;//完成一个脉冲_nop_(); _nop_(); _nop_();SCK=1; //再一个脉冲_nop_();DATA=1; //数据变为1_nop_();SCK=0; //变为该脉冲}Void sht_rest(void) //复位{unsigned char I;DATA=1;SCK=0;//数据为1时钟为0for(i=0;i<9;i++) //9个脉冲为复位{SCK=1;SCK=0;}Start(); //启动}char write(unsigned char value)//写一个字节 返回应答信号{Unsigned char I;ack=0;for(i=0x80;i>0;i/=2) //释放数据总线{if(i&value)DATA=1; //写入值Else DATA=0;SCK=1; //上升沿写入_nop_(); _nop_(); _nop_(); //延时SCK=0;}DATA=1; //释放数据总线SCK=1;return ack; //error=1表示没有应答}char read()//读一个字节返回应答信号{Unsigned char I,val=0;temp_LL=0;temp_h=0;DATA=1;//释放数据总线for(i=0x80;i>0;i/=2) //位移8位{SCK=1; //上升沿读入if(DATA)val=(val|i) //确定值SCK=0;}DATA=0;//读应答信号应答为1,应答为0通过CPU下拉为应答SCK=1; 第9个脉冲_nop_(); _nop_(); _nop_(); //pulswith approx.5usSCK=0;DATA=1; //释放数据总线temp_h=val;val=0;//低8位DATA=1; //释放数据总线for(i=0x80;i>0;i/=2) //位移8位{SCK=1; //上升沿读入if(DATA)val=(val|i) //确定值SCK=0;}DATA=1;//0; //不需要应答 通过CPU下拉为应答SCK=1; 第9个脉冲_nop_(); _nop_(); _nop_(); //pulswith approx.5usSCK=0;DATA=1; //释放数据总线temp_LL=valreturn val;}//测量温度或者是湿度,返回校验值text_a(unsigned char ml){unsigned int I;start(); //启动write(ml); //写入测温度if(ack==1){sht_rest(); //复位write(ml); //写入测温度}//DATA=1;// 释放数据总线For(i=0;i<65535;i++)if(DATA==0)break;read();//度温度}text_jishuan_temp(){float aa=0,bb=0,temp zi;int abcd=0;aa=(float)temp_h*256+(float)temp_LL;temp_zi=0.01*aa-40;if (temp_zi<0){temp_zi= -temp_zi;}temp_zi= temp_zi*10;abcd=(int) temp_zi;xts_zi=abcd/100;abcd=abcd%100;xtg_zi=abcd/10;abcd=abcd%10;xtd_zi=abcd/1;}text_jishuan_humi(){float aa=0,bb=0,humi_zi;int abcd=0;aa=(float)temp_h*256+(float)temp_LL;baa*aa*2.8/1000000;aa=0.0405*aa;aa=aa-4-bb;humi_zi= humi_zi*10;abcd=(int)humi_zi;xss_zi=abcd/100;abcd=abcd%100;xsg_zi=abcd/10;abcd=abcd%10;xsd_zi=abcd/1;}text_jishuan_temp11(){error=0;ack=0;sht_rest();//复位text_a(TEMP_ML);text_jishuan_temp();text_a(HUMI_ML);text_jishuan_humi();}unsigned int wendu,shidu;void delay_n10us(unit n)//延时n个10us@12M晶振{uint i;for(i=n;i>0;i--){_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();}

6 最后

资料分享,包含内容

🧿项目分享:

/sinonfin/sharing

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。