dht11

STM32获取DHT11温度传感器数据

心不动则不痛 提交于 2020-03-03 16:03:30
准备物件 STM32F103C8T6核心板 ST-LINK V2 DHT11 杜邦线若干 连接线 STM32F103C8T6芯片管脚图 管脚说明 连接仿真器 STM32 ST-LINKV2 VCC VCC GND GND SWCLK SWCLK SWDIO SWDIO 创建工程 参考 STM32F103X 开发环境搭建 可将其模板复制一份 添加延时功能 在 DRIVER/inc 中添加 timer.h #ifndef __TIMER_H__ #define __TIMER_H__ #include "stm32f10x.h" void systick_init(void); void timing_delay_decrement(void); void delay_us(__IO uint32_t n); #endif 对应的在 DRIVER/src 中添加 timer.c #include "timer.h" __IO uint32_t gTimingDelay; /* SystemCoreClock / 1000 --> 1ms */ /* SystemCoreClock / 10000 --> 100us */ /* SystemCoreClock / 100000 --> 10us */ /* SystemCoreClock / 1000000 --> 1us */

环境参数智能监测站设计(说明书篇)

非 Y 不嫁゛ 提交于 2020-01-22 17:01:08
摘要 环境参数监控系统,价格高,功耗较大,移动性较差,需要较高的硬件与软件支持,数据采集端与监控端需要通过很多很长的通信线进行连接,从而使得系统稳定性不高,对于多参数多点监控的场所,传统设备不能满足其节点数量的要求,可行度不高,空间占用率较大。鉴于以上不足之处,我们设计一种多节点组网一监控终端的智能环境参数监控系统,以方便和适应现代化的信息管理模式。该系统采用数字化数据采集,模块化处理,便于系统维护以及数据收集。 本系统设计是从低成本、低功耗、高效率等概念出发,采用12位单片机STM32F103C8T6为处理核心,在数据采集节点端控制一系列的传感器(如DS18B20、DHT11、MQ-135、光敏二极管、雨滴传感器、土壤水分传感器等)来采集环境参数,使用蜂鸣器与STM32F103C8T6连接做为系统的报警器,如有参数超标就发出声响进行警报,同时使用NRF24L01发送数据到监控终端。具有实时性、稳定性、高效性、操作简单等特点,这样便于解决环境参数的采集和监控。本文以STM32F103C8T6超低功耗单片机为核心,设计了多个环境数据采集节点和监控终端即环境参数智能监测站,重点介绍了该系统的设计任务、硬件、软件以及控制算法的设计与实现。硬件方面,介绍了系统各个部分的设计思想、原理电路以及系统总硬件原理图;另外,为了实现系统低成本和低功耗,满足设计要求的前提下

stc12c5a60s DHT11温湿度传感器

∥☆過路亽.° 提交于 2020-01-04 03:25:16
DHT11温湿度传感器 DHT11.h #ifndef __DHT11_H__ #define __DHT11_H__ #ifndef uchar #define uchar unsigned char #endif #ifndef uint #define uint unsigned int #endif #include < reg52 . h > #include < intrins . h > //IO口定义 sbit OUT = P2 ^ 7 ; //函数声明 void RH ( uchar * s ) ; void Delay ( uint x ) ; //声明外部函数 extern void Uart_send_str ( char * str , int len ) ; extern void Uart1Init ( ) ; //extern void Uart_send(char str); #endif DHT11.c /******************************************************************/ /* 平台:Keil U4 + DHT11温湿度模块 */ /* 名称:通过串口显示温湿度 */ /* 编写:WCT */ /* 日期:2019年1月22日16:57:18 */ /* QQ:

stm32专题三十九:HAL库 DHT11 驱动

一曲冷凌霜 提交于 2019-12-16 07:14:04
DHT11是很常用的温湿度传感器,时序也比较简单,如下所示: 直接给出HAL库的驱动: 1 微秒级延时函数 HAL库并没有直接的微秒级延时函数,下面是自己实现的微秒堵塞延时函数(使用定时器TIM3); /** * @brief 微秒级延时 */ void bsp_delay_us(uint16_t us) { __HAL_TIM_SET_COUNTER(&htim3, 0); HAL_TIM_Base_Start(&htim3); while (__HAL_TIM_GET_COUNTER(&htim3) != us); HAL_TIM_Base_Stop(&htim3); } 2 配置DHT11数据引脚的输出模式和输入模式; /** * @brief DHT11 输出模式 */ static void DHT11_Mode_OUT_PP(void) { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = BSP_DHT11_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(BSP_DHT11_PORT, &GPIO_InitStruct); } /** *

DHT22使用笔记

我的未来我决定 提交于 2019-12-13 00:47:40
线上DHT22与DHT11的性能对比: DHT11: DHT22: 对比可以发现,DHT22在分辨率和精度上都有很大的提升。 同时采样率也变成了每秒2次。 而且最重要的在于,通讯开始信号仅需要500us,与18us相差了接近20倍! 虽然获取的是上1次的的值,但是如果1秒采样两次,和11的同步性能是一样的。 由于精度提高,所以数据格式还是有变化的,相比于DHT11只用了整数部分,22的数据是全部用了的,直接是16bit数据,换算成16进制再乘以0.1就是实际的温度值和湿度值。 这里为了得到和DHT11相同的结果,我舍去小数值,同时复位时间也改成500us,代码如下: void DHT11_Rst(void) { DHT11_IO_OUT(); //SET OUTPUT DHT11_DQ_OUT=0; //拉低DQ delay_us(500); //拉低至少18ms DHT11_DQ_OUT=1; //DQ=1 delay_us(30); //主机拉高20~40us } 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]

树莓派使用DHT11温湿度传感器

余生颓废 提交于 2019-12-03 03:07:05
一、相关介绍 DHT11介绍: DHT11是一款比较便宜的温湿度传感器模块。读取数据只需要占用一个IO口。能够同时测量温度和相对湿度。 DHT11的数据手册可以看这里:http://wenku.baidu.com/view/1955cc70a417866fb84a8e7b.html 需要注意的是,文档中写明一句话:小数部分用于扩展,现只能读出0。所以小数部分目前永远是0! 树莓派IO口介绍 我使用的是B版树莓派,接口如下图。其中的NAME一列是树莓派实际的IO口功能。PIN#一列是后面要介绍的wiringpi和pi4j库文件编程使用的接口编号。 wiringpi介绍 wiringpi是通过C语言控制树莓派GPIO口的头文件。在C语言中包含这个头文件之后可以很简单的调用已经封装好的方法来控制树莓派GPIO口。程序需要先安装。 wiringpi官网:http://wiringpi.com/ wiringpi下载和安装:http://wiringpi.com/download-and-install/ wiringpi文档:http://wiringpi.com/reference/ 编译和运行: 写好C文件后,通过如下命令进行编译: gcc -Wall -o executefilename cfilename.c -lwiringPi gcc是编译器,-Wall是在编译时显示警告信息,

树莓派DHT11温湿度传感器+BMP280大气气压传感器

匿名 (未验证) 提交于 2019-12-03 00:43:02
bmp: #ifndef _RASPI_BMP280_H_ #define _RASPI_BMP280_H_ #include <stdio.h> #include <wiringPi.h> #include <wiringPiI2C.h> unsigned short dig_t1,dig_p1; signed short dig_t2,dig_t3,dig_p2,dig_p3,dig_p4; signed short dig_p5,dig_p6,dig_p7,dig_p8,dig_p9; float temp,pres,var1,var2; int pres_int= 0 ,bmp280_flag=- 1 ; uint8_t msb,lsb,xlsb,pres_h= 0 ,pres_l= 0 ,pres_flo= 0 ; int i2c_fd; int Raspi_BMP280_Init() { wiringPiSetup(); i2c_fd=wiringPiI2CSetup( 0x76 ); if (wiringPiI2CReadReg8(i2c_fd, 0xd0 )== 0x58 ) { system ( "i2cset -y 1 0x76 0xff 0xf4" ); dig_t1=(wiringPiI2CReadReg8(i2c_fd, 0x89 )<< 8 )

arduino学习笔记八 温湿度计

匿名 (未验证) 提交于 2019-12-03 00:01:01
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术 和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC 测 温元件,并与一个高性能8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优 点。每个DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP 内存中,传感器内 部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的 功耗,信号传输距离可达20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。 DHT11 数字温湿度传感器模块为3 针PH2.0 封装。连接方便。 性能描述 1. 供电电压:3-5.5V 2. 供电电流:最大2.5Ma 3. 温度范围:0-50℃ 误差±2℃ 4. 湿度范围:20-90%RH 误差±5%RH 5. 响应时间: 1/e(63%) 6-30s 6. 测量分辨率分别为 8bit(温度)、8bit(湿度) 7. 采样周期间隔不得低于1 秒钟 8. 模块尺寸:30x20mm 传感器的时序 DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和 整数部分,具体格式在下面说明