【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式

这篇具有很好参考价值的文章主要介绍了【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


0 前言

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

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

🚩 WIFI智能家居温湿度和烟雾检测系统

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

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

1 简介

基于STM32F103C8T6单片机的WIFI智能家居温湿度和烟雾检测系统。

2 主要器件

  • STM32F103C8T6主控芯片
  • DHT11温湿度传感器
  • MQ-2烟雾传感器
  • OLED显示屏
  • ESP-01S ESP8622串口WIFI模块

3 实现效果

DHT11传感器采集环境中的温度、湿度数据MQ-2传感器采集环境中的烟雾浓度,OLED显示屏显示传感器采集的数据

【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式

WIFI连接,TCP协议
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式

通过WIFI将数据传输到手机客户端
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式

4 设计原理

4.1 DHT11温湿度传感器

简介
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。
接线
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式
DHT11编码步骤

  1. 单片机上点后1s内不读取(不重要)
  2. 主机(单片机)发送起始信号:
    • 主机先拉高data
    • 拉低data延迟18ms
    • 拉高data(通过此操作将单片机引脚设置为输入)。
  3. 从机(DHT11)收到起始信号后进行应答:
    • 从机拉低data,主机读取到data线被拉低持续80us后从机拉高data线, 持续80us,直到高电平结束,意味着主机可以开始接受数据。
  4. 主机开始接收数据:
    • 主机先把data线拉高(io设置为输入)
    • 从机把data线拉低,主机读取data线电平,直到低电平结束(大约50us)
    • 从机拉高data线后,延迟40us左右(28~70us之间)主机再次读取data线电平,如果为低电平,则为“0”,如果为高电平,则为“1”。
    • 继续重复上述1,2步骤累计40次。

4.2 MQ-2烟雾传感器

简介
MQ-2常用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此,MQ-2可以准确来说是一个多种气体探测器。
MQ-2的探测范围极其的广泛。它的优点:灵敏度高、响应快、稳定性好、寿命长、驱动电路简单。
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式
二、MQ-2的工作原理
MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。处于200~300摄氏度时,二氧化锡吸附空气中的氧,形成氧的负离子吸附,使半导体中的电子密度减少,从而使其电阻值增加。当与烟雾接触时,如果晶粒间界处的势垒收到烟雾的调至而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式

MQ-2应用电路

MQ-2常用的电路有两种,一种使用采用比较器电路监控,另一种为ADC电路检测。

比较器电路
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式
MQ-2的4脚输出随烟雾浓度变化的直流信号,被加到比较器U1A的2脚,Rp构成比较器的门槛电压。当烟雾浓度较高输出电压高于门槛电压时,比较器输出低电平(0v),此时LED亮报警;当浓度降低传感器的输出电压低于门槛电压时,比较器翻转输出高电平(Vcc),LED熄灭。调节Rp,可以调节比较器的门槛电压,从而调节报警输出的灵敏度。
R1串入传感器的加热回路,可以保护加热丝免受冷上电时的冲击。

ADC转换电路
MQ-2传感器另外一个采集方法为AD信号采集,即将电压信号转化为数字信号,进而转化为精确的烟雾浓度值。
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式MQ-2传感器的4脚、6脚的电压为输出信号,Rs为传感器的本体电阻。其中若气体浓度上升,必导致Rs下降。而Rs的下降则会导致MQ-2的4脚、6脚对地输出的电压增大。所以气体浓度增大,其输出的电压也会增大,最终通过ADC0832转换后数值增大。

4.3 ESP8266WIFI模块

简介

ESP8266 系列模组是深圳市安信可科技有限公司开发的一系列基于乐鑫ESP8266的低功耗UART-WiFi芯片模组,可以方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式
尺寸、管脚定义
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式
ESP8266的指令介绍

AT指令可以细分四种类型:
1.测试指令:AT+=?
该命令用于查询设置指令的参数以及取值的范围

2.查询指令:AT+?
该命令用于返回参数的当前值

3.设置指令:AT+=<’’’>
该命令用于设置用户自定义的参数

4.执行指令:AT+
该命令用于执行受模块内部程序控制的变参数不可变的功能
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式ESP8266的指令测试
可以通过STM开发板转为电平转换的功能连接上ESP8266模块在通过串口显示窗口在PC机上热输入AT指令来进行操作。
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式

ESP8266的AT指令一览
【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式文章来源地址https://www.toymoban.com/news/detail-420016.html

5 部分核心代码

//DHT11温湿度传感器部分
#include "reg52.h"
#include "LCD1602.h"
#include "intrins.h"

//typedef unsigned char uchar;
//typedef unsigned int uint;
	
//定义变量
sbit Data=P3^6;
uchar rec_dat[13];//用于保存接收到的数据组

void DHT11_delay_us(uchar n)
{
    while(--n);
}

void DHT11_delay_ms(uint z)
{
   uint i,j;
   for(i=z;i>0;i--)
      for(j=110;j>0;j--);
}

void DHT11_start()
{
   Data=1;
   DHT11_delay_us(2);
   Data=0;
   DHT11_delay_ms(20);   //延时18ms以上
   Data=1;
   DHT11_delay_us(30);
}

uchar DHT11_rec_byte()      //接收一个字节
{
   uchar i,dat=0;
  for(i=0;i<8;i++)    //从高到低依次接收8位数据
   {          
      while(!Data);   //等待50us低电平过去
      DHT11_delay_us(8);     //延时60us,如果还为高则数据为1,否则为0 
      dat<<=1;           //移位使正确接收8位数据,数据为0时直接移位
      if(Data==1)    //数据为1时,使dat加1来接收数据1
         dat+=1;
      while(Data);  //等待数据线拉低    
    }  
    return dat;
}

void DHT11_receive()      //接收40位的数据
{
    uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise; 
    DHT11_start();
    if(Data==0)
    {
        while(Data==0);   //等待拉高     
        DHT11_delay_us(40);  //拉高后延时80us
        R_H=DHT11_rec_byte();    //接收湿度高八位  
        R_L=DHT11_rec_byte();    //接收湿度低八位  
        T_H=DHT11_rec_byte();    //接收温度高八位  
        T_L=DHT11_rec_byte();    //接收温度低八位
        revise=DHT11_rec_byte(); //接收校正位

        DHT11_delay_us(25);    //结束

        if((R_H+R_L+T_H+T_L)==revise)      //校正
        {
            RH=R_H;
            RL=R_L;
            TH=T_H;
            TL=T_L;
        } 
		
	
        /*数据处理,方便显示*/
        rec_dat[0]=RH/10+'0';
        rec_dat[1]=(RH%10)+'0';
		rec_dat[2]='%';
        rec_dat[3]='R';
        rec_dat[4]='H';
        rec_dat[5]=' ';
		rec_dat[6]=' ';
        rec_dat[7]=(TH/10)+'0';
        rec_dat[8]=(TH%10)+'0';
		rec_dat[9]='^';
        rec_dat[10]='C';
    }
}

void main()
{
	//使用lcd1602显示数据
	DHT11_receive();
	lcd1602(rec_dat);
}

// MQ-2烟雾传感器

unsigned char GetYanWuValue(void)
{
		unsigned int sum=0;
		unsigned char m,value=0;
		for(m=0;m<20;m++)			//读50次AD值
			sum = adc0832(0)+sum;		//读到的AD值,将读到的数据累加到sum
		value=(unsigned char)(sum/20);				//跳出上面的for循环后,将累加的总数除以50得到平均值value
	
		if(value > ADC_Zero) 
				value = value - ADC_Zero;              //首先减去零点漂移
			else
				value = 0;
	
		return value;

}


//wifi模块部分
#include "esp8266.h"
#include "string.h"
#include "usart.h"
#include "usart3.h"
#include "stm32f10x.h"
#include "sys.h" 
#include "delay.h"
 
//ESP8266模块和PC进入透传模式
void esp8266_start_trans(void)
{
	//设置工作模式 1:station模式   2:AP模式  3:兼容 AP+station模式
	esp8266_send_cmd("AT+CWMODE=1","OK",50);
	
	//让Wifi模块重启的命令
	esp8266_send_cmd("AT+RST","ready",20);
	
	delay_ms(1000);         //延时3S等待重启成功
	delay_ms(1000);
	delay_ms(1000);
	delay_ms(1000);
	
	//让模块连接上自己的路由
	while(esp8266_send_cmd("AT+CWJAP=\"111\",\"11111111\"","WIFI GOT IP",600));
	
	//=0:单路连接模式     =1:多路连接模式
	esp8266_send_cmd("AT+CIPMUX=0","OK",20);
	
	//建立TCP连接  这四项分别代表了 要连接的ID号0~4   连接类型  远程服务器IP地址   远程服务器端口号
	while(esp8266_send_cmd("AT+CIPSTART=\"TCP\",\"xxx.xxx.xxx.xxx\",xxxx","CONNECT",200));
	
	//是否开启透传模式  0:表示关闭 1:表示开启透传
	esp8266_send_cmd("AT+CIPMODE=1","OK",200);
	
	//透传模式下 开始发送数据的指令 这个指令之后就可以直接发数据了
	esp8266_send_cmd("AT+CIPSEND","OK",50);
}
 
//ESP8266退出透传模式   返回值:0,退出成功;1,退出失败
//配置wifi模块,通过想wifi模块连续发送3个+(每个+号之间 超过10ms,这样认为是连续三次发送+)
u8 esp8266_quit_trans(void)
{
	u8 result=1;
	u3_printf("+++");
	delay_ms(1000);					//等待500ms太少 要1000ms才可以退出
	result=esp8266_send_cmd("AT","OK",20);//退出透传判断.
	if(result)
		printf("quit_trans failed!");
	else
		printf("quit_trans success!");
	return result;
}
 
 
//向ESP8266发送命令
//cmd:发送的命令字符串;ack:期待的应答结果,如果为空,则表示不需要等待应答;waittime:等待时间(单位:10ms)
//返回值:0,发送成功(得到了期待的应答结果);1,发送失败
u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime)
{
	u8 res=0; 
	USART3_RX_STA=0;
	u3_printf("%s\r\n",cmd);	//发送命令
	if(ack&&waittime)		//需要等待应答
	{
		while(--waittime)	//等待倒计时
		{
			delay_ms(10);
			if(USART3_RX_STA&0X8000)//接收到期待的应答结果
			{
				if(esp8266_check_cmd(ack))
				{
					printf("ack:%s\r\n",(u8*)ack);
					break;//得到有效数据 
				}
					USART3_RX_STA=0;
			} 
		}
		if(waittime==0)res=1; 
	}
	return res;
} 
 
 
//ESP8266发送命令后,检测接收到的应答
//str:期待的应答结果
//返回值:0,没有得到期待的应答结果;其他,期待应答结果的位置(str的位置)
u8* esp8266_check_cmd(u8 *str)
{
	char *strx=0;
	if(USART3_RX_STA&0X8000)		//接收到一次数据了
	{ 
		USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
		strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
	} 
	return (u8*)strx;
}
 
//向ESP8266发送数据
//cmd:发送的命令字符串;waittime:等待时间(单位:10ms)
//返回值:发送数据后,服务器的返回验证码
u8* esp8266_send_data(u8 *cmd,u16 waittime)
{
	char temp[5];
	char *ack=temp;
	USART3_RX_STA=0;
	u3_printf("%s",cmd);	//发送命令
	if(waittime)		//需要等待应答
	{
		while(--waittime)	//等待倒计时
		{
			delay_ms(10);
			if(USART3_RX_STA&0X8000)//接收到期待的应答结果
			{
				USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
				ack=(char*)USART3_RX_BUF;
				printf("ack:%s\r\n",(u8*)ack);
				USART3_RX_STA=0;
				break;//得到有效数据 
			} 
		}
	}
	return (u8*)ack;
} 

6 最后

到了这里,关于【物联网毕业设计】 单片机WIFI智能家居温湿度与烟雾检测系统 - Stm32 嵌入式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【毕业设计】基于单片机的智能鱼缸系统设计与实现 - 嵌入式 物联网 stm32 51单片机 智能鱼缸

    Hi,大家好,今天向大家介绍一个 单片机项目, 大家可用于 课程设计 或 毕业设计 基于单片机的智能鱼缸系统设计与实现 🔥 项目分享与指导: https://gitee.com/sinonfin/sharing 近年以来,随着我国综合实力飞速飙升,人们对物质和精神生活质量的要求也不断提升,各式各样的智能

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

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

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

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

    2024年01月16日
    浏览(88)
  • 单片机毕业设计 stm32智能温控风扇设计与实现 - 嵌入式 物联网

    Hi,大家好,学长今天向大家介绍一个 单片机项目 基于stm32的智能温控风扇设计与实现 大家可用于 课程设计 或 毕业设计 随着科技的日新月异,智能家居逐渐走入普通家庭,风扇作为基本的家用电器也将成为智能家居的一部分。这里介绍的是以STM32单片机为控制单元并结合嵌

    2024年02月09日
    浏览(90)
  • 【毕业设计】基于Arduino的智能灌溉系统 - 嵌入式 单片机 物联网

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目,大家可用于 课程设计 或 毕业设计 基于Arduino的智能灌溉系统 单片机-嵌入式毕设选题大全及项目分享: https://blog.csdn.net/m0_71572576/article/details/125409052 rduino NANO开发板 1块 IO扩展板 1块 IO扩展模块包 1套 开发工具

    2024年02月05日
    浏览(123)
  • 【毕业设计】基于单片机的智能温控农业大棚系统 - 物联网 stm32

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 基于单片机的智能温控农业大棚系统 大家可用于 课程设计 或 毕业设计 单片机-嵌入式毕设选题大全及项目分享: https://blog.csdn.net/m0_71572576/article/details/125409052 近年来我国的温室控制取得了 长足的进步, 首先在

    2024年02月02日
    浏览(55)
  • 【毕业设计】基于STM32的智能路灯设计与实现 - 物联网 嵌入式 单片机

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 基于STM32的智能路灯设计与实现 大家可用于 课程设计 或 毕业设计 单片机-嵌入式毕设选题大全及项目分享: https://blog.csdn.net/m0_71572576/article/details/125409052 每当夜幕降临,城市中各种各样、色彩缤纷的路灯亮起,

    2024年01月16日
    浏览(63)
  • 毕业设计 - 基于STM32的智能路灯设计与实现 - 物联网 嵌入式 单片机

    Hi,大家好,今天向大家介绍一个 单片机项目 基于STM32的智能路灯设计与实现 大家可用于 课程设计 或 毕业设计 🔥 项目分享与指导: https://gitee.com/sinonfin/sharing 每当夜幕降临,城市中各种各样、色彩缤纷的路灯亮起,为城市披上了一层绚丽的外衣。但在这绚丽的外表下则隐

    2024年02月05日
    浏览(53)
  • 毕业设计 嵌入式 stm32智能扫地机器人设计与实现 - 单片机 物联网

    Hi,大家好,学长今天向大家介绍一个 单片机项目,大家可用于 课程设计 或 毕业设计 基于stm32的智能扫地机器人设计与实现 随着人口老龄化的到来和人民对提升生活品质的需要, 人们对在现实生活场景中取代人力的服务机器人有着迫切的需要。 同时, 机电、 自动控制、

    2024年02月02日
    浏览(63)
  • 单片机毕业设计 stm32智能电子秤系统设计与实现 - 物联网 嵌入式

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

    2024年02月06日
    浏览(69)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包