stm32温湿度监测系统框图(零基础学习STM32智能家居系统之温湿度检测子系统的实现)
stm32温湿度监测系统框图(零基础学习STM32智能家居系统之温湿度检测子系统的实现)5V工作电压产品尺寸见图1,参数见表1。图1 5V继电器尺寸(1路)表1 产品参数表
在上一节中,我们学习了DHT11温湿度传感器的使用。在这一节,结合温湿度检测子系统的功能,我们为系统设计执行机构。
系统的执行机构利用继电器加风扇来完成。当环境的温度或湿度超过设定值时,继电器吸合,风扇工作,。
6.1 继电器的介绍
本项目以1路5V继电器模块为例,进行项目设计。其它类型继电器模块类似。1路5V继电器模块采用光耦进行隔离,性能稳定,人性化设计可选择高电平或者低电平信号触发,仅需5mA电流即可驱动控制能力为10A的继电器吸合。
产品尺寸见图1,参数见表1。

图1 5V继电器尺寸(1路)
表1 产品参数表
| 
     工作电压  | 
     5V  | 
| 
     静态电流  | 
     5mA  | 
| 
     MAX电流  | 
     190mA  | 
| 
     触发电压  | 
     低:0  | 
| 
     高:5V  | |
| 
     触发电流  | 
     2—4mA  | 
| 
     MAX负载  | 
     AC250V/10A DC30V/10A  | 
6.2 继电器接线方式
模块有触发电平选择端,中间有COM公共端,当LOW(L)端与公共端接通时,为低电平触发,当HIGH(H)端与公共端接通时,为高电平触发。
继电器的接线可以分为两种情况,一种为常开接法;另一种为常闭接法
a.常开接法
当信号触发端有电平信号时,继电器吸合,相当于开关闭合,此时电路接通,设备将接通,正常工作。
具体接法如图2所示。

图2 继电器常开接线图
b.常闭接法
当信号触发端有电平信号时,继电器吸合,相当于开关由原来接通变为断开,此时设备将断电停止工作。

图3 继电器常闭接线图
6.3 继电器的引脚定义及功能
表2 继电器引脚表
| 
     序号  | 
     引脚符号  | 
     引脚定义及功能  | 
| 
     1  | 
     DC  | 
     供电电源正极(按继电器工作电压选择)  | 
| 
     2  | 
     DC-  | 
     供电电源地  | 
| 
     3  | 
     IN或INx  | 
     控制信号输入端  | 
| 
     4  | 
     NO或NOx  | 
     负载接入端,常开  | 
| 
     5  | 
     COM或COMx  | 
     负载接入端,公共端  | 
| 
     6  | 
     NO或NCx  | 
     负载接入端,常闭  | 
6.4 项目说明
系统利用DHT11采取环境温度,当温度超过一定值时,继电器工作,风扇转动,而当温度低于一定值时,LED灯亮。引脚如表3所示。
表3 引脚表
| 
     STM32F103C8T6引脚  | 
     元件  | 
     功能描述  | 
| 
     PB15  | 
     DHT11_DATA  | 
     DHT11连线  | 
| 
     VCC  | 
     VCC  | |
| 
     GND  | 
     GND  | |
| 
     VCC  | 
     DC  | 
     继电器连线  | 
| 
     GND  | 
     DC-  | |
| 
     PB12  | 
     IN或INx  | |
| 
     PC13  | 
     LED1  | 
     LED连线  | 
| 
     VCC3.3  | 
     阳极  | |
| 
     GND  | 
     阴极(接电阻)  | 
6.5 继电器与风扇的接法
如图4所示,继电器与风扇的接法。注意本例中,程序中

图4 继电器风扇接线图
6.6 继电器程序
Relay.h
#ifndef __RELAY_H
#define __RELAY_H
#include "sys.h"
#define Relay PBout(12) // PB12
void Relay_Init(void);
#endif
Relay.c
#include "relay.h"
void Relay_Init(void)//继电器和蜂鸣器的初始化
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE); //使能PB端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; //PB12 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOB &GPIO_InitStructure); //根据设定参数初始化GPIOB
GPIO_SetBits(GPIOB GPIO_Pin_12); //PB12 输出高
}
6.7 主程序
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "dht11.h"
#include "relay.h"
int main(void)
{
u16 times=0;
u8 humi_value temp_value;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
DHT11_Init(); //温湿度传感器初始化
Relay_Init();
while(1)
{
times ;
DHT11_Read_Data(&temp_value &humi_value); //读取温湿度值
if(times0==0)printf("%d " temp_value);
if(times0==0)printf("%d " humi_value);
if(temp_value > 30)
{
Relay = 0;//继电器工作、风扇转动
}
else if(temp_value < 26)
{
Relay = 1;//继电器关闭,风扇停止转动
}
if(times0==0) LED1=!LED1; //闪烁LED 提示系统正在运行.
delay_ms(10);
}
}
以上是STM32 智能家居中温湿度子系统中继电器的工作。欢迎共同讨论,纠错。期待关注、点赞、转发。粉丝朋友可直接私信索要相关资料(项目源码)。




