STM32的 DHT11温湿度模块+红外人体感应模块程序

article/2025/10/15 15:14:25

基于物联网的智能窗户Day3

  • DHT11温湿度模块
  • HC_SR501红外人体感应模块
  • 结果展示
  • ending

DHT11温湿度模块

在这里插入图片描述
传感器包括一个高分子电阻式感湿度元件和一个NTC测温元件,并于一个高性能8位单片机相连,通过单总线与微处理器通信,只需要一根数据线。

在这里插入图片描述
在相关例程基础上进行改动

//复位DHT11
void DHT11_Rst(void)    
{                 DHT11_IO_OUT();  //SET OUTPUTDHT11_DQ_OUT=0;  //拉低DQdelay_ms(20);     //拉低至少18msDHT11_DQ_OUT=1;  //DQ=1 delay_us(30);      //主机拉高20~40us
}
//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)     
{   u8 retry=0;DHT11_IO_IN();//SET INPUT  while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us{retry++;delay_us(1);};  if(retry>=100)return 1;else retry=0;while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us{retry++;delay_us(1);};if(retry>=100)return 1;     return 0;
}
//从DHT11读取一个位
//返回值:1/0
u8 DHT11_Read_Bit(void)     
{u8 retry=0;while(DHT11_DQ_IN&&retry<100)//等待变为低电平{retry++;delay_us(1);}retry=0;while(!DHT11_DQ_IN&&retry<100)//等待变高电平{retry++;delay_us(1);}delay_us(40);//等待40usif(DHT11_DQ_IN)return 1;else return 0;     
}
//从DHT11读取一个字节
//返回值:读到的数据
u8 DHT11_Read_Byte(void)    
{        u8 i,dat;dat=0;for (i=0;i<8;i++) {dat<<=1; dat|=DHT11_Read_Bit();}          return dat;
}
//从DHT11读取一次数据
//temp:温度值(范围:0~50°)
//humi:湿度值(范围:20%~90%)
//返回值:0,正常;1,读取失败
u8 DHT11_Read_Data(u8 *temp,u8 *humi)    
{        u8 buf[5];u8 i;DHT11_Rst();if(DHT11_Check()==0){for(i=0;i<5;i++)//读取40位数据{buf[i]=DHT11_Read_Byte();}if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]){*humi=buf[0];*temp=buf[2];}}else return 1;return 0;     
}
//初始化DHT11的IO口 DQ 同时检测DHT11的存在
//返回1:不存在
//返回0:存在 

在main函数中对读取到的温湿度进行显示即可

HC_SR501红外人体感应模块

这个模块长这个样子
在这里插入图片描述

当然也可以专业一点看它
在这里插入图片描述
先找到它的数据手册,查看相关电气参数
在这里插入图片描述

这个模块使用较为简单,如果检测到有异物,即输出高电平。这样只需要进行电平判断即可。
本程序下,数据引脚接PA0。VCC接5V
在.c文件中进行端口的配置(下拉输入)

u8 INFRARED_Init(void)
{  GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //使能PB端口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;     //PA端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;    //下拉输入GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);     //初始化IO口GPIO_SetBits(GPIOA,GPIO_Pin_0);       //PA0 } 

.h文件如下

#ifndef __INFRARED_H
#define __INFRARED_H
#include "stm32f10x.h"
#define  HC_SR501   PAin(0)
#define  HC_SR501_PIN  GPIO_Pin_0
#define  HC_SR501PORT  GPIOA
#define  HC_SR501_CLKLINE    RCC_APB2Periph_GPIOA
u8 INFRARED_Init(void);
extern void HC_SR501Configuration(void);
#endif

主程序中只需要对HC_SR501的高低电平进行判断,结合前一天的OLED显示部分相关文字内容即可。

结果展示

在这里插入图片描述
在这里插入图片描述

ending

桂林的回南天整天都湿哒哒的感觉空气湿度百分之67…………

最后一句话 to Z
听山河把春风酿成千言万语,吹过旧人故里


http://chatgpt.dhexx.cn/article/wyQhid6S.shtml

相关文章

关于HC-SR501人体红外感应模块的光敏电阻取值到底为多少的终极研究

这个光敏电阻到底应该选多大的&#xff1f;商家讲不来&#xff0c;资料里没有&#xff0c;百度搜不到。资料里只说&#xff0c;预留了这个接口&#xff0c;自己买光敏电阻焊接就可以了&#xff0c;但是我焊接了3个不同的光敏电阻&#xff0c;结果全是不符合预期&#xff0c;一度…

Arduino - 驱动HC-SR501 人体红外感应模块

参考文章&#xff1a; Arduino - 驱动HC-SR501 人体红外感应模块 Arduino 使用人体红外感应模块 HC-SR501 代码如下&#xff1a; /* Arduino 驱动HC-SR501 人体红外感应模块 Created 2017/03 by 太极创客本程序旨在使用Arduino Uno驱动HC-SR501 人体红外感应模块。 * 连接说明…

ESP32 Micropython编程(Thonny)04---- 人体感应模块

本人持续分享更多关于嵌入式和单片机的知识&#xff0c;如果大家喜欢&#xff0c;别忘点个赞加个关注哦&#xff0c;让我们一起共同进步 最近使用到人体感应模块HC-SR501&#xff0c;这个模块使用十分简单&#xff0c;看下面代码就可以看出了&#xff0c;而且应用广泛&#xff…

stm32f4红外传感器模块 和人体感应模块HCSR501

也同时买了个红外传感器模块 还买了一个长这样的 这个好容易随便写写了 初始化一下gpioB引脚 __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_Initure.PinGPIO_PIN_2; //PB2GPIO_Initure.ModeGPIO_MODE_INPUT; //输入GPIO_Initure.PullGPIO_PULLUP; //下拉GPIO…

基于Arduino实现简单人体红外感应灯(人体红外传感器+LED)

这是一个使用arduino以及人体红外传感器实现的人体感应灯&#xff0c;详细细节如下&#xff1a; 1. 实验元件 UNO 实验套装&#xff08;arduino控制板、USB数据线、面包板、跳线&#xff09;人体红外传感器1个led灯1个电阻&#xff08;220欧&#xff0c;1个&#xff09; 2. 实现…

人体感应模块stm32驱动

热释电效应 在某些绝缘物质中,由于温度的变化引起极化状态改变的现象称为热释电效应。能实现热释电效应的物质被称为热电体。热电体物质有硫酸三甘肽&#xff08;TGS&#xff09;、铁电钛酸钡、电气石和蔗糖等。这一现象早在2300年前就被人们发现了&#xff0c;但对它的研究则…

基于51控制的人体感应灯

文章目录 前言1 背景2 可实现功能3 制作材料4 设计电路5 设计原理5.1 原理一&#xff08;人体感应&#xff09;5.2 原理二&#xff08;距离感应&#xff09;5.3 原理三&#xff08;灯的亮度调节&#xff09; 6 程序设计7 成品模型展示总结 前言 首先我先说说为什么要做这个东西…

人体感应(红外感应)

一、需求描叙 通过打开写的测试的app&#xff0c;点击测试的按钮&#xff0c;循环调用控制人体感应的方法来控制人体感应仪器&#xff08;应该是红外感应&#xff09;。 二、完成测试程序涉及到的文件&#xff1a; 1.一个xxx.so文件&#xff1b; 这个文件要导入到Android系统…

Arduino 使用人体红外感应模块 HC-SR501

通过这篇文章&#xff0c;可以了解到以下内容&#xff1a; HC-SR501 传感器的基本信息及接线方法HC-SR501 跳线选择的两种时间模式HC-SR501 简单功能实验 HC-SR501 传感器的基本信息及接线方法 HC-SR501 是一款基于热释电效应的人体热释运动传感器&#xff0c;能检测到人体或…

HC-SR501人体红外感应模块程序

当感应到时&#xff0c;输出一个高电平。这里我对io口进行了配置&#xff0c;要不然读不到高电平。建议大家以后养成习惯&#xff0c;对io口进行配置&#xff0c;stm32中会用到。 在这里我额外提下&#xff0c;一般在stm32中 浮空输入 芯片内部没有接上下拉电阻。由于其输入阻…

单片机之人体感应传感器原理与实现

人体红外传感器&#xff0c;是一种新型传感器&#xff0c;能够有效的检测出周围环境的状态。 第一&#xff1a;人体红外模块工作原理 人体都有恒定的体温&#xff0c;一般在37度&#xff0c;所以会发出特定波长10UM左右的红外线&#xff0c;被动式红外探头就是靠探测人体发射的…

【电路】自用人体感应灯(HC-SR501人体感应模块)

文章目录 低成本人体感应灯需求分析器件清单参数测量HC-SR501人体感应模块LED灯板 方案设计思路简介原理图PCB设计 成品 低成本人体感应灯 需求分析 老旧小区地下室没有灯&#xff0c;找钥匙不方便&#xff0c;地理环境因素使用声音传感灯易发生误触。 需要满足的需求&#x…

HC-SR501 人体红外感应模块

资料下载&#xff1a;http://pan.baidu.com/s/1bnkxeoR 完美版HC-SR501是基于红外线技术的自动控制模块&#xff0c;采用德国原装进口LHI778探头设计&#xff0c;灵敏度高&#xff0c;可靠性强&#xff0c;超低电压工作模式&#xff0c;广泛应用于各类自动感应电器设备&#x…

Arduino与人体感应模块

工具&#xff1a; 1.Arduino 开发板* 1 2.人体感应模块传感器 * 1 这个人体感应传感器有三个引脚&#xff0c;分别是VCC&#xff0c;OUT&#xff0c;GND&#xff0c;同之前的红外线传感器一样输出的是数字信号&#xff0c;所以要将OUT接入digital pwm引脚&#xff0c;这里我接…

SR505人体感应模块

实物外观 正&#xff1a; 反&#xff1a; 功能介绍 基于红外线的一个传感器&#xff0c;检测到人体的移动会输出高电平信号&#xff0c;持续8s左右&#xff0c;若人在其感应范围内长时间保持不动&#xff08;或者不在其感应范围内&#xff09;会输出低电平信号。 使用 该…

STM32与人体红外感应模块的简单使用——入门级

工作原理 人体有恒定的温度&#xff0c;可以发出10UM的红外波&#xff0c;而人体红外感应模块就可以探测出这些红外波&#xff0c;从而产生电平转换。由此人们可以使用人体红外检测模块来检测是否有人。 模块工作环境 工作电压&#xff1a;5V至20V电平输出&#xff1a;高3.3…

【传感器模块】 HC-SR501 人体红外感应模块 热释电 红外传感器

一、模块介绍 产品特点&#xff1a; HC-SR501是基于红外线技术的自动控制模块&#xff0c;采用德国原装进口LHI778 探头设计&#xff0c;灵敏度高&#xff0c;可靠性强&#xff0c;超低电压工作模式&#xff0c;广泛应用于各类自动感应电器设备&#xff0c;尤其是干电池供电的…

红外人体感应传感器SR602模块使用说明

​一&#xff0e;HC-SR602模块 红外人体感应传感器HC-SR602是基于红外线技术的自动控制模块&#xff0c;专用于感应周围人体的存在。该模块相较于HC-SR501&#xff0c;灵敏度较高&#xff0c;抗干扰能力大&#xff0c;且简单易用。 二.HC-SR602模块主要参数 工作电压&#xff1…

【单片机基础篇】 人体红外感应传感器模块

概述 红外热释电传感器是一款基于热释电效应的人体热释运动传感器&#xff0c;能检测到人体或动物身上发出的红外线&#xff0c;配合菲涅尔透镜能使传感器探测范围更远更广。可在控制器上编程应用&#xff0c;通过3P传感器连接线插接到专用传感器扩展板上使用&#xff0c;可以轻…

【单片机】人体感应模块

文章目录 前言模块介绍&#xff08;可跳过&#xff09;模块使用代码&#xff1a;h文件代码&#xff1a;c文件代码使用方法补充介绍&#xff08;可/不可重复触发&#xff09; 代码获取 前言 大家好&#xff0c;我是林白柏&#xff1b; 希望你看完之后&#xff0c;能有所收获&a…