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

这篇具有很好参考价值的文章主要介绍了毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


0 前言

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

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

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

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

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

🧿 项目分享:

https://gitee.com/sinonfin/sharing文章来源地址https://www.toymoban.com/news/detail-784902.html

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

1 设计架构

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

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

功能设计

主要功能: 使用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 原理图

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

3 软件设计

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

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

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

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

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

4 实现效果

正面

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

反面

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

5 相关代码

#include<stm32.h>   //头文件
#include<intrins.h>
#include<stdio.h>
#include<math.h>    //Keil library
sbit 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 long
unsigned 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时钟为0
for(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.5us
SCK=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.5us
SCK=0;
DATA=1;                   //释放数据总线
temp_LL=val
return 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 最后

资料分享,包含内容

基于stm32环境监测毕业设计,单片机毕设,物联网毕设,毕业设计,stm32,单片机,毕业设计,环境质量监测系统,stm32环境检测系统

🧿 项目分享:

https://gitee.com/sinonfin/sharing

到了这里,关于毕业设计 基于STM32的环境质量监测系统(源码+原理图+论文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32毕业设计——基于STM32+MQTT+WiFi技术的智能家居系统设计与实现(毕业论文+程序源码)——智能家居系统

    大家好,今天给大家介绍基于STM32+MQTT+WiFi技术的智能家居系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦 文章目录: 智能家居技术

    2024年02月10日
    浏览(76)
  • 【毕业设计】基于STM32及OpenMV的云台追踪装置

    序号 修改时间 修改内容 1 2022-3-12 增加第一次补充内容:PID控制,详细请见“6. 第一次补充(2022.3.12)” 2 2022-4-21 修改了PID代码部分“误差的计算公式”错误 ,由“ pid_x.Actual - pid_x.Set ”修改为“pid_x.Set - pid_x.Actual”,详细请见“6.2.2 STM32代码”部分 3 2022-10-22 增加第二次补

    2023年04月09日
    浏览(71)
  • 毕业设计 基于stm32与openmv的目标跟踪系统

    文章目录 0 前言 课题简介 设计框架 3 硬件设计 4 软件设计 判断被测物体所在区域 5 最后 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师

    2024年02月08日
    浏览(50)
  • 毕业设计 STM32单片机的智能家居环境监测控制系统

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月10日
    浏览(86)
  • 毕业设计|基于STM32单片机的语音识别控制智能停车场设计

    演示视频 https://www.bilibili.com/video/BV1bC4y1579d/?spm_id_from=333.999.0.0vd_source=0fb8a603c3cd84c0c72e5fa5d4201605 本系统采用stm32f103c8t6单片机+晶振电路+复位电路+电源电路+车位检测电路+OLED显示电路+继电器控制电路+语音识别电路构成。 1,通过红外对管模块实时检测车位是否占用,车位分为

    2024年02月04日
    浏览(86)
  • 【毕业设计】基于STM32的智能药箱系统设计与实现 - 物联网 单片机

    Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于STM32的智能药箱系统设计与实现 大家可用于 课程设计 或 毕业设计 单片机-嵌入式毕设选题大全及项目分享: https://blog.csdn.net/m0_71572576/article/details/125409052 照顾老人, 特别是提醒老人准时吃药已经成

    2024年02月01日
    浏览(85)
  • [毕业设计] 基于单片机的智能快递柜设计与实现 - stm32 物联网

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 基于单片机的智能快递柜设计与实现 大家可用于 课程设计 或 毕业设计 单片机-嵌入式毕设选题大全及项目分享: https://blog.csdn.net/m0_71572576/article/details/125409052 一般来说,传统快递服务方式是人对人,即快递员进

    2024年01月16日
    浏览(95)
  • 毕设分享 基于STM32的毕业设计题目项目汇总 - 100例

    🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选题系列,感谢大家的认可,来啦! 以下是学长亲手整理的STM32相关的毕业设计选题,都是经过学长精心审核的题目,适合作为毕设,难度不高,工作量达标,对毕设有任何疑问都可以问学长哦! 学长整理的题

    2024年02月12日
    浏览(46)
  • 毕业设计 基于STM32的智能宠物投喂系统(全套资料)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月06日
    浏览(57)
  • 毕业设计 基于stm32的智能婴儿车系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月08日
    浏览(120)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包