基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计

随着科技的发展,农业科技也一步步走进我们的生活。蔬菜大棚的增多,人们对其性能要求也越来越高。特别是要提高其生产效率,对大棚的自动化程度要求也越来越高。单片机技术的逐步成熟,加快了我们走向现代化、科技自动化的进程。 本设计由STM32单片机、风扇控制电路、温湿度传感器电路、1602液晶显示电路+蓝牙模块电路和电源电路组成。通过温湿度传感器检测温湿度,并在液晶上和APP上实时显示。当湿度超过75度,APP发出报警信息,通过APP发送指令“O”,风扇启动。通过APP发送指令“C”,风扇关闭。

硬件电路的设计

(末尾附文件)
3.1系统的功能分析及体系结构设计
3.1.1系统功能分析
本设计由STM32单片机+风扇控制电路+温湿度传感器电路+1602液晶显示电路+蓝牙模块电路+电源电路组成。
1、通过温湿度传感器检测温湿度,并在液晶上和APP上实时显示。
2、当湿度超过75度,APP发出报警信息
3、通过APP发送指令“O”,风扇启动。
通过APP发送指令“C”,风扇关闭
3.1.2系统总体结构
本系统具体框图如下图所示:
基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计_第1张图片
原理图:
基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计_第2张图片

5V散热风扇控制电路(高电平有效)设计
散热风扇的工作原理是按能量转化来实现的,即:电能→电磁能→机械能→动能。由于单片机无法直接驱动振动风扇,故选择三极管9012来实现对散热风扇的控制,电阻为限流电阻,限流作用,以保护三极管。当单片机的相关控制引脚为高电平时,三极管导通,风扇正常工作;否则,风扇不转动。其驱动电路的原理图如下图所示。
基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计_第3张图片
JDY-30蓝牙模块电路设计
蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯。本蓝牙模块就是为了只能无线数据传输而专门打造的,本模块支持串行接口,支持SP蓝牙串口协议,具有成本低、体积小、收发灵敏性高等特点,只需配备少许的外围元件就能实现大功能。
一、模块特点
(1)支持蓝牙 SPP 串口协议
(2)内置 PCB 天线
(3)支持 UART 接口
(4)蓝牙 Class 2
(5)数据传输比 BLE 蓝牙快、可达到 8K 每秒以上的速率
(6)支持与 SPP 主蓝牙模块连接通信(JDY-30 为从 SPP 蓝牙模块)
(7)支持与电脑 SPP 蓝牙通信
(8)支持 Android 手机 SPP 通信
二、产品应用范围
(1) POS 机
(2)蓝牙打印机
(3)蓝牙玩具
(4)蓝牙高速数据传输产品应用
(5)小家电
(6)汽车电子
三、模块技术参数
(1)工作电压:3.3V-6V
(2)工作温度:-40℃-85℃
(3)天线:PCB板载天线
(4)功耗:19mA
四、模块接口说明
(1)RXD 串口输入,电平为TTL电平
(2)TXD 串口输出,电平为TTL电平
(3)GND 接GND
(4)VCC 接3.3V-6V
蓝牙模块接口电路图如下图所示。
基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计_第4张图片
DHT11温湿度传感器模块电路设计
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。
一、传感器参数
(1)传感器采用DHT11
(2)工作电压范围:3.3V-5.5V
(3)工作电流 :平均0.5mA
(4)湿度测量范围:20-90%RH
(5)湿度测量误差:±5%
(6)温度测量范围:0-50℃
(7)温度测量误差:±2%
(8)湿度分辨率 :1%RH 8位
(9)温度分辨率 :1℃ 8位
(10)采样周期 :1S
(11)单总线结构
(12)与TTL兼容(5V)
(13)输出形式:数字输出
(14)PCB板尺寸:3.2cm*1.4cm
(15)有固定栓孔,方便安装
基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计_第5张图片

系统软件设计

基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计_第6张图片
DHT11部分程序

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "delay.h"
#include "dht11.h"


#define DHT_SetBit()	GPIO_SetBits(DHT_GPIO, DHT_GPIO_PIN)
#define DHT_ResetBit()	GPIO_ResetBits(DHT_GPIO, DHT_GPIO_PIN)
#define DHT_ReadBit()	GPIO_ReadInputDataBit(DHT_GPIO, DHT_GPIO_PIN)

static void DHT_Set_Output(void);			//设置为输出模式
static void DHT_Set_Input(void);			//设置为输入模式

DHT11_TypeDef DHT11;						//全局变量

void DHT_Set_Output(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Pin = DHT_GPIO_PIN;				 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 
	GPIO_Init(DHT_GPIO, &GPIO_InitStructure);					 					
}	

void DHT_Set_Input(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Pin = DHT_GPIO_PIN;				 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 		 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 
	GPIO_Init(DHT_GPIO, &GPIO_InitStructure);					 
}

/**
  * @brief  初始化IO口和参数
  * @param  none.
  * @retval none.
  */
void DHT11_Init(void)
{
	RCC_APB2PeriphClockCmd(DHT_RCC, ENABLE);
	
	DHT_Set_Output();
		
	DHT11.Tem_H = 0;
	DHT11.Tem_L = 0;
	DHT11.Hum_H = 0;
	DHT11.Hum_L = 0;
}

/**
  * @brief  读取8bit 数据
  * @param  none.
  * @retval none.
  */
int DH21_ReadByte(void)
{
	int data=0;
	char i;
	char cout;
	
	for(i=0; i<8; i++)
	{
		//读取50us的低电平
		cout=1;
		while(!DHT_ReadBit() && cout++);
		
		//延时30us之后读取IO口的状态
		delay_us(30);
		
		//先把上次的数据移位,再保存本次的数据位
		data = data << 1;
		
		if(DHT_ReadBit() == Bit_SET)
		{	
			data |= 1;
		}		
		
		//等待输入的是低电平,进入下一位数据接收
		cout=1;
		while(DHT_ReadBit() && cout++);
	}

	return data;
}

/**
  * @brief  读取40bit数据
  * @param  none.
  * @retval 1 读取成功,0读取失败.
  */
int DHT11_ReadData(void)
{
	unsigned int cout = 1;
	unsigned int T_H, T_L, H_H, H_L, Check;

	//设置为IO口输出模式
	DHT_Set_Output();
	
	//1、MCU开始起始信号
	DHT_ResetBit();
	delay_ms(25);		//拉低至少18ms
	DHT_SetBit();		
	delay_us(20);		//拉高20~40us
	
	//设置为IO口输入模式
	DHT_Set_Input();
	
	//2、读取DH21响应
	if(DHT_ReadBit() == Bit_RESET)
	{
		//等待80us的低电平
		cout = 1;
		while(!DHT_ReadBit() && cout++);
		
		//等待80us的高电平
		cout = 1;
		while(DHT_ReadBit() && cout++);
		
		//读取8bit的湿度整数数据
		H_H = DH21_ReadByte();
		
		//读取8bit的湿度小数数据
		H_L = DH21_ReadByte();
		
		//读取8bit的温度整数数据
		T_H = DH21_ReadByte();
		
		//读取8bit的温度小数数据
		T_L = DH21_ReadByte();
		
		//读取8bit的校验和
		Check = DH21_ReadByte();
		
		if(Check == (H_H + H_L + T_H + T_L))
		{
			DHT11.Hum_H = H_H;
			DHT11.Hum_L = H_L;
			DHT11.Tem_H = T_H;
			DHT11.Tem_L = T_L;	
			return 1;
		}
		else
		{
			return 0;
		}
	}
	return 0;
}

/**
  * @brief  获取温度
  * @param  none.
  * @retval Temp, 温度值
  */
int DHT11_GetTem(void)
{
	return (DHT11.Tem_H << 8 | DHT11.Tem_L);
}

/**
  * @brief  获取湿度
  * @param  none.
  * @retval Hum,湿度值
  */
int DHT11_GetHum(void)
{
	return (DHT11.Hum_H << 8 | DHT11.Hum_L);
}




.

链接:https://pan.baidu.com/s/1iEv3Fcak8nNVjDQoLo2uzw
提取码:ojuq

.

你可能感兴趣的:(基于STM32单片机的大棚温湿度环境参数监测无线蓝牙APP控制方案原理图程序设计)