STM32的 DHT11温湿度模块+红外人体感应模块程序
基于物联网的智能窗户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
听山河把春风酿成千言万语,吹过旧人故里
STM32的 DHT11温湿度模块+红外人体感应模块程序相关推荐
- 红外线人体感应灯arduino_Arduino红外人体感应模块-电子芯吧客
大家好,在这一篇文章中我介绍的是一款红外人体感应 模块 ,模块外形如下所示: 使用这款模块我们可以制作一个简单的防盗系统,这个模块可以感应到一定距离的人员,我们可以看到在这个模块正面,有一个白色的罩子 ...
- 零知开发板和红外人体感应模块使用
本文讲解如何使用人体感应模块HC SR505模块,我们使用一个LED来指示是否感应到人走进传感器,人走进时候LED指示灯亮,人离开范围内时候,LED熄灭.根据文档,该模块感应范围为3米,延迟时间是8s ...
- stm32f4红外传感器模块 和人体感应模块HCSR501
也同时买了个红外传感器模块 还买了一个长这样的 这个好容易随便写写了 初始化一下gpioB引脚 __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_Initure.Pin=GPIO_ ...
- 树莓派人体感应警报(python)HC-SR501红外人体感应
使用树莓派+传感器实现人体感应警报 使用模块: 树莓派cm4 蜂鸣器模块1个 HC-SR501红外人体感应模块 1个 面包板 子母杜邦线若干 引脚图 GPIO引脚插法 BCM编码 VCC 5V GND ...
- 单片机人体感应灯c语言,红外人体感应灯单片机方案
近来,红外人体感应灯受到了居家人们关注和喜爱.为此,英锐恩推出了一款低成本红外人体感应灯单片机方案.红外人体感应灯可应用于走廊.床边.楼梯.衣柜等地方,提供柔和照明作用.人来即亮,人走即灭,不受强光影 ...
- 基于人体感应模块的驱鸟器设计
今天给大家介绍小编制作的一个用于驱赶鸟类的小电路. 1.元件清单:HC-SR501人体红外感应模块(1个).S8050三极管(1个).5V电源(三节干电池).蜂鸣器(4个).10K电阻(1个).4.7 ...
- HC-SR501人体感应模块介绍
HC-SR501人体感应模块简介 HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口 LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是 ...
- 智能家居领域技术应用,微波雷达人体感应模块,雷达传感器方案
雷达感知是一种无线感知技术,通过分析接收到的目标回波特性,提取并发现目标的位置.形状.运动特性和运动轨迹,作用类似于人类的眼睛和耳朵. 与其它传感器相比,雷达模块感应具有许多独特的优势.例如,与视觉传 ...
- 基于NanoPi的人体感应模块驱动开发
基于NanoPi的人体感应模块驱动开发 人体感应模块 热释电红外传感器是一种能检测人或动物发射的红外线而输出电信号的传感器. 电气参数 工作电压范围:DC 4.5-20V 电平输出高: 3.3 V / ...
最新文章
- linux下面的chrome总是跳出xdg-open怎么办
- 可以直接拿来用的15个jQuery代码片段
- 神经网络架构搜索_神经网络架构
- 【最大流】牛棚安排(jzoj 1259)
- 55种数据可视化开源工具_8种出色的开源数据可视化工具
- ipv6详解_modbus之libmodbus库详解
- python day23
- java常量映射_java-基础 - 常量与变量
- 从零开始搭二维激光SLAM --- 基于ceres的后端优化的代码实现
- PLC的软件故障与硬件故障
- 经验分享:我是如何在网店无货源情况下快速出单?
- 操作系统进程调度算法总结
- 【python】chardet函数用法
- 数据库工程师中级考试——下午场知识点讲解
- Dicom标签之(0020,0037) Image Orientation (Patient)
- Android使用VAD检测是否说话
- 大数据学习零基础能够学会不?
- 同样的实验室,硕士们进了BAT拿高工资,为什么博士却要挤破头进985高校?
- ios IDP/IEP证书申请测试用
- Java运行乱码,Idea编码设置
热门文章
- 当前主流服务器型号,当前服务器的主流品牌 型号 配置
- loj10155 数字转换
- 智能路由和SD-WAN孰优孰劣
- eslint搭配prettier出现Replace `XXX` with `··········XXX·······`的问题解决方法
- Linux虚拟机CentOS7挂机问题
- JAVA版B2B2C商城源码 拼团商城 分销商城 springboot商城多商家入驻商城系统
- Python -- 大作业 — 使用turtle库画皮卡丘
- ale插件 vim_Vim中异步语法检查ale配置
- 永恒之蓝漏洞攻击完整步骤
- PDF在线免费转换成PPT怎么操作?