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;
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 遇到“word在试图打开文件时遇到错误”怎么办?

    遇到“word在试图打开文件时遇到错误”怎么办?1.打开文件遇到的错误提示“word在试图打开文件时遇到错误”2.关闭这个提示窗口,打开左上角的文件按钮。3.点击最下面的选项按钮,进入选项对话框,4.点击左侧的信任中心,然后选择右侧的信任中心设置。5.进入信任中心点击左侧的受保护试图选项卡,默认是三个选项都被选中。6.取消勾选第一个选项“为来自internet的文件启用受保护的试图”,点击确认后退出,然后重新打开文件,看看是不是有效果…

    2022年6月11日
    38
  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月30日
    5
  • Redis分布式锁的正确实现方式(Java版)

    Redis分布式锁的正确实现方式(Java版)https://wudashan.cn/2017/10/23/Redis-Distributed-Lock-Implement/https://blog.csdn.net/l_bestcoder/article/details/79336986一、什么是分布式锁?要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,…

    2022年6月4日
    38
  • 九某草 X站cms 渗透篇「建议收藏」

    九某草 X站cms 渗透篇「建议收藏」这一套源码与网上那些X站cms都是一致,那么在奇安信社区上看到了这款,那么也来玩玩,这一套源码的话基本的都是存在后台提权、存储xss、反射XSS、弱口令(至于弱口令这块一般安装后直接使用admin、admin或者某cms名称直接进行登录,那么我们登录进行也是直接忽略过爆破这一段)1、爆破篇…

    2022年10月19日
    0
  • 状态机编程_vivado状态机

    状态机编程_vivado状态机给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。输入格式第一行包含整数 N 和 k,表示数组的长度以及你可以完成的最大交易数量。第二行包含 N 个不超过 10000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤105,1≤k≤100输入样例1:3 22

    2022年8月8日
    4
  • topcoder srm 697 div1 -3

    topcoder srm 697 div1 -3

    2021年6月20日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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