DHT11湿度传感器开发「建议收藏」

DHT11湿度传感器开发「建议收藏」本文对在CC2540上开发DHT11湿度传感器进行裸机开发,并显示与LED屏上,如下图所示看了无数的datasheet,终于看到中文的了,感觉一下轻松很多,虽然这颗传感器科技含量也不是特别高,但精神还是为之一振,希望我朝设计出更高端的电子元器件。湿敏元件是最简单的湿度传感器。湿敏元件主要有电阻式、电容式两大类。湿敏电阻的特点是在基片上覆盖一层用感湿材料制成的膜,当空气中

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本文对在CC2540上开发DHT11湿度传感器进行裸机开发, 并显示与LED屏上,如下图所示

DHT11湿度传感器开发「建议收藏」

看了无数的datasheet, 终于看到中文的了,感觉一下轻松很多,虽然这颗传感器科技含量也不是特别高,但精神还是为之一振,希望我朝设计出更高端的电子元器件。

湿敏元件是最简单的湿度传感器。湿敏元件主要有电阻式、电容式两大类。

湿敏电阻的特点是在基片上覆盖一层用感湿材料制成的膜,当空气中的水蒸气吸附在感湿膜上时,元件的电阻率和电阻值都发生变化,利用这一特性即可测量湿度。

湿敏电容一般是用高分子薄膜电容制成的,常用的高分子材料有聚苯乙烯、聚酰亚胺、酪酸醋酸纤维等。当环境湿度发生改变时,湿敏电容的介电常数发生变化,使其电容量也发生变化,其电容变化量与相对湿度成正比。电子式湿敏传感器的准确度可达2-3%RH,这比干湿球测湿精度高。

湿敏元件的线性度及抗污染性差,在检测环境湿度时,湿敏元件要长期暴露在待测环境中,很容易被污染而影响其测量精度及长期稳定性。这方面没有干湿球测湿方法好。

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。

DHT11湿度传感器开发「建议收藏」

DHT11只有三根线,第二脚为数据脚,输出串行异步数据,格式如下所示

DHT11湿度传感器开发「建议收藏」

数据是异步串行的,对时钟要求就高了写,需要开发者知道系统的时钟,识别出数据0,或者数据1,在调试中我一度想使用CC2540提供的中断功能,可怎么也抓不到数据,不一会恍然大悟,数据是异步串行的,只要CC2540发出了开始信号,DHT11就开始发数据了,所以单步调试根本就抓不到数据。

下面为代码

#include<ioCC2540.h>
#include<stdio.h>

#include “dht11.h”

#define READ_PIN P1_0
#define CHECK_BIT 20

void delayMS(unsigned char ms)
{

  unsigned int count1;
  unsigned char msCount;
  
  for(msCount = 0; msCount<ms; msCount++)
    for(count1 =0;count1<3200;count1++)
        ;
  return;
}

void delayUS(unsigned char us)
{

  unsigned int count1;
  unsigned char usCount;
  
  for(usCount = 0; usCount<us; usCount++)
    for(count1 =0;count1<3;count1++)
        ;
  return;
}

unsigned char dht11HumidityRead(unsigned char *pHumidity, unsigned char *pTemperature)
{

  unsigned char dataIndex;
  unsigned char dataVal[5]={0};
  unsigned int dataTime;
  
  P1DIR |= 0X01;/*output mode*/
  READ_PIN = 0;
  delayMS(40);
  READ_PIN = 1;
  delayUS(2);
  P1DIR &= 0Xfe;/*read mode*/
  
  while(0==READ_PIN );
  while(1==READ_PIN );
  
  for(dataIndex=0; dataIndex<40; dataIndex++)
  {

    dataTime = 0; 
    while(0==READ_PIN );
    while(1==READ_PIN)
      dataTime++;
    if(dataTime>CHECK_BIT)
      dataVal[dataIndex/8] |= (0x80>>(dataIndex%8));
    else
      dataVal[dataIndex/8] &= (~(0x80>>(dataIndex%8)));
     
  }
  
  *pHumidity = dataVal[0];
  *pTemperature = dataVal[2];
  return 1;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187956.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mseloss 与 smooth_l1_loss比较

    mseloss 与 smooth_l1_loss比较测试代码:importtorchimporttorch.nn.functionalasFconf_mask=torch.FloatTensor([0.0,10.0,0.0,1.0,1.0])conf_data=torch.FloatTensor([10.1,0.9,0.0,10.2,10.2])loss_fn=torch.nn.MSELoss(…

  • Kettle工具的基本使用[通俗易懂]

    Kettle工具的基本使用[通俗易懂]2.1Kettle简介2.1.1Kettle概述Kettle是国外免费的开源轻量级ETL工具,是基于Java语言开发的,可以在Windows.Linux,UNIX系统上运行,且绿色不需安装,可用于各种数据库之间的连接。Kettle工具主要有四个组件组成,分别是Spoon,Pan,Kitchen以及Carte组件,具体功能如下:*Spoon为集成开发软件,用于构建作业和转换,执行或调试作业和转换,还可以用于监控ETL操作性能。*Pan以命令行形式执行Spoon生成的转…

    2022年10月16日
  • JavaScript工作原理(八):Service Workers,生命周期和应用案例

    JavaScript工作原理(八):Service Workers,生命周期和应用案例

  • 二进制减法的简单过程

    二进制减法的简单过程二进制减法的运算方法二进制减法有两种运算方法,可以使用向高位借位的办法,也可以将减法转为加法采用借位的办法不是很快捷,比较容易看错,示例如下:1010-0111————0011被减数末尾的0向前一位借1,相当于10(2)-1得到1,倒数第二位被借一位后变0,继续向前一位借,以此来得到结果,如果减数大于被减数,则需将最后的结果按位取反得到结果。另外也可采用转换为加法…

  • JavaScript-ECMAScript5-JS基础语法「建议收藏」

    JavaScript-ECMAScript5-JS基础语法「建议收藏」JavaScript-ECMAScript5-基础语法

  • java使用httpclient调用第三方接口

    java使用httpclient调用第三方接口java使用httpclient调用第三方接口HttpClientUtil工具类packagecom.fz.util;importjava.io.File;importjava.net.URL;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importorg.apache.ht…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号