找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 38705|回复: 51
收起左侧

arduino 温湿度传感器dht11 库文件

  [复制链接]
ID:189455 发表于 2017-4-14 10:52 | 显示全部楼层 |阅读模式
arduino 温湿度传感器dht11 库文件
0.png
下载:
DHT11数字温湿度传感器库文件:DHT.zip (1.48 KB, 下载次数: 879)



  1. //
  2. //    FILE: dht22.cpp
  3. // VERSION: 0.1.00
  4. // PURPOSE: DHT22 Temperature & Humidity Sensor library for Arduino
  5. //
  6. // DATASHEET:
  7. //
  8. // HISTORY:
  9. // 0.1.0 by Rob Tillaart (01/04/2011)
  10. // inspired by DHT11 library
  11. //

  12. #include "dht.h"

  13. #define TIMEOUT 10000

  14. /////////////////////////////////////////////////////
  15. //
  16. // PUBLIC
  17. //


  18. // return values:
  19. //  0 : OK
  20. // -1 : checksum error
  21. // -2 : timeout
  22. int dht::read11(uint8_t pin)
  23. {
  24.         // READ VALUES
  25.         int rv = read(pin);
  26.         if (rv != 0) return rv;

  27.         // CONVERT AND STORE
  28.         humidity    = bits[0];  // bit[1] == 0;
  29.         temperature = bits[2];  // bits[3] == 0;

  30.         // TEST CHECKSUM
  31.         uint8_t sum = bits[0] + bits[2]; // bits[1] && bits[3] both 0
  32.         if (bits[4] != sum) return -1;

  33.         return 0;
  34. }

  35. // return values:
  36. //  0 : OK
  37. // -1 : checksum error
  38. // -2 : timeout
  39. int dht::read22(uint8_t pin)
  40. {
  41.         // READ VALUES
  42.         int rv = read(pin);
  43.         if (rv != 0) return rv;

  44.         // CONVERT AND STORE
  45.         humidity    = word(bits[0], bits[1]) * 0.1;

  46.         int sign = 1;
  47.         if (bits[2] & 0x80) // negative temperature
  48.         {
  49.                 bits[2] = bits[2] & 0x7F;
  50.                 sign = -1;
  51.         }
  52.         temperature = sign * word(bits[2], bits[3]) * 0.1;


  53.         // TEST CHECKSUM
  54.         uint8_t sum = bits[0] + bits[1] + bits[2] + bits[3];
  55.         if (bits[4] != sum) return -1;

  56.         return 0;
  57. }

  58. /////////////////////////////////////////////////////
  59. //
  60. // PRIVATE
  61. //

  62. // return values:
  63. //  0 : OK
  64. // -2 : timeout
  65. int dht::read(uint8_t pin)
  66. {
  67.         // INIT BUFFERVAR TO RECEIVE DATA
  68.         uint8_t cnt = 7;
  69.         uint8_t idx = 0;

  70.         // EMPTY BUFFER
  71.         for (int i=0; i< 5; i++) bits[i] = 0;

  72.         // REQUEST SAMPLE
  73.         pinMode(pin, OUTPUT);
  74.         digitalWrite(pin, LOW);
  75.         delay(20);
  76.         digitalWrite(pin, HIGH);
  77.         delayMicroseconds(40);
  78.         pinMode(pin, INPUT);

  79.         // GET ACKNOWLEDGE or TIMEOUT
  80.         unsigned int loopCnt = TIMEOUT;
  81.         while(digitalRead(pin) == LOW)
  82.                 if (loopCnt-- == 0) return -2;

  83.         loopCnt = TIMEOUT;
  84.         while(digitalRead(pin) == HIGH)
  85.                 if (loopCnt-- == 0) return -2;

  86.         // READ THE OUTPUT - 40 BITS => 5 BYTES
  87.         for (int i=0; i<40; i++)
  88.         {
  89.                 loopCnt = TIMEOUT;
  90.                 while(digitalRead(pin) == LOW)
  91.                         if (loopCnt-- == 0) return -2;

  92.                 unsigned long t = micros();

  93.                 loopCnt = TIMEOUT;
  94.                 while(digitalRead(pin) == HIGH)
  95.                         if (loopCnt-- == 0) return -2;

  96.                 if ((micros() - t) > 40) bits[idx] |= (1 << cnt);
  97.                 if (cnt == 0)   // next byte?
  98.                 {
  99.                         cnt = 7;   
  100.                         idx++;      
  101.                 }
  102.                 else cnt--;
  103.         }

  104.         return 0;
  105. }
  106. //
  107. // END OF FILE
  108. //
复制代码


评分

参与人数 1黑币 +5 收起 理由
sunbbk + 5 共享资料的黑币奖励!

查看全部评分

相关帖子

回复

使用道具 举报

ID:205082 发表于 2017-5-26 13:43 | 显示全部楼层
好东西,必须支持!
回复

使用道具 举报

ID:169016 发表于 2017-7-19 17:04 | 显示全部楼层
赞一个,刚好需要
回复

使用道具 举报

ID:242517 发表于 2017-10-24 18:19 | 显示全部楼层
点赞。。。。。。。。。。。。。
回复

使用道具 举报

ID:259462 发表于 2017-12-9 15:50 | 显示全部楼层

好东西,必须支持!
回复

使用道具 举报

ID:263406 发表于 2017-12-18 22:20 | 显示全部楼层
有用,谢谢
回复

使用道具 举报

ID:269321 发表于 2017-12-30 21:05 | 显示全部楼层
谢谢lz
回复

使用道具 举报

ID:281906 发表于 2018-2-3 12:40 | 显示全部楼层
请问博主,为什么成功添加库之后会编译不通过,
会这样D:\ARDUINO\arduino-1.8.5\hardware\arduino\avr\cores\arduino/main.cpp:46: undefined reference to `loop'
回复

使用道具 举报

ID:283924 发表于 2018-2-13 10:05 | 显示全部楼层

赞一个,刚好需要
回复

使用道具 举报

ID:277732 发表于 2018-2-13 11:25 | 显示全部楼层
赞一个 也学习一下
回复

使用道具 举报

ID:287663 发表于 2018-3-5 10:48 | 显示全部楼层

赞一个 也学习一下下
回复

使用道具 举报

ID:298330 发表于 2018-3-28 15:04 | 显示全部楼层
需要一个,希望能下来,谢谢。
回复

使用道具 举报

ID:299380 发表于 2018-4-3 17:36 | 显示全部楼层
非常好,谢谢楼主的分享。
回复

使用道具 举报

ID:300434 发表于 2018-4-4 09:16 | 显示全部楼层
谢谢楼主的分享。
回复

使用道具 举报

ID:302209 发表于 2018-4-4 21:55 | 显示全部楼层
好东西,必须支持!
回复

使用道具 举报

ID:304234 发表于 2018-4-9 10:13 | 显示全部楼层
好东西,支持
回复

使用道具 举报

ID:315637 发表于 2018-4-24 19:48 | 显示全部楼层
太好了,,,很有学习价值
回复

使用道具 举报

ID:325119 发表于 2018-5-8 15:42 | 显示全部楼层
没黑币啊
回复

使用道具 举报

ID:352284 发表于 2018-6-15 08:02 | 显示全部楼层
正想研究一下。。。。。。
回复

使用道具 举报

ID:354945 发表于 2018-6-23 00:05 | 显示全部楼层
刚好需要,谢谢
回复

使用道具 举报

ID:359675 发表于 2018-7-5 17:14 | 显示全部楼层

好东西,必须支持!
回复

使用道具 举报

ID:368369 发表于 2018-7-10 08:31 | 显示全部楼层
好用,对小白就方便多了
回复

使用道具 举报

ID:219437 发表于 2018-7-11 17:36 | 显示全部楼层
感谢lz
回复

使用道具 举报

ID:379563 发表于 2018-8-14 16:57 | 显示全部楼层
电子小白请教一下Arduino库是什么单片机都能兼容的吗 比如STM32之类的
回复

使用道具 举报

ID:349555 发表于 2018-8-14 18:09 | 显示全部楼层
15081898066 发表于 2018-8-14 16:57
电子小白请教一下Arduino库是什么单片机都能兼容的吗 比如STM32之类的

可以和我们零知的兼容,可以看看
回复

使用道具 举报

ID:391724 发表于 2018-8-30 18:50 | 显示全部楼层

15081898066 发表于 2018-8-14 16:57
电子小白请教一下Arduino库是什么单片机都能兼容的吗 比如STM32之类的

可以和我们零知的兼容,可以看看
回复

使用道具 举报

ID:416694 发表于 2018-10-28 14:08 | 显示全部楼层
谢谢楼主分享,太需要了
回复

使用道具 举报

ID:430734 发表于 2018-11-21 18:49 | 显示全部楼层

谢谢楼主分享,太需要了
回复

使用道具 举报

ID:435778 发表于 2018-11-29 15:13 | 显示全部楼层
好东西
回复

使用道具 举报

ID:398553 发表于 2018-12-6 14:21 | 显示全部楼层
已经导入了库文件,但是编译显示没有目录或文件,还请大佬指教
回复

使用道具 举报

ID:430979 发表于 2018-12-19 16:19 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:474627 发表于 2019-2-1 22:23 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:481608 发表于 2019-2-27 16:06 | 显示全部楼层
放到库文件后也没反应
回复

使用道具 举报

ID:487278 发表于 2019-3-16 10:01 | 显示全部楼层
必须支持一哈
回复

使用道具 举报

ID:506705 发表于 2019-4-8 09:30 | 显示全部楼层
感谢分享。。。。
回复

使用道具 举报

ID:513631 发表于 2019-4-16 14:42 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:493653 发表于 2019-4-26 08:35 | 显示全部楼层
怎么下载
回复

使用道具 举报

ID:292815 发表于 2019-5-23 11:57 | 显示全部楼层
赞一个,刚好需要
回复

使用道具 举报

ID:574192 发表于 2019-6-28 16:06 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:580972 发表于 2019-7-9 15:31 | 显示全部楼层
感谢分享,点赞!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表