找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 38827|回复: 51
打印 上一主题 下一主题
收起左侧

arduino 温湿度传感器dht11 库文件

  [复制链接]
跳转到指定楼层
楼主
arduino 温湿度传感器dht11 库文件

下载:
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 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶2 踩

相关帖子

回复

使用道具 举报

沙发
ID:205082 发表于 2017-5-26 13:43 | 只看该作者
好东西,必须支持!
回复

使用道具 举报

板凳
ID:169016 发表于 2017-7-19 17:04 | 只看该作者
赞一个,刚好需要
回复

使用道具 举报

地板
ID:242517 发表于 2017-10-24 18:19 | 只看该作者
点赞。。。。。。。。。。。。。
回复

使用道具 举报

5#
ID:259462 发表于 2017-12-9 15:50 | 只看该作者

好东西,必须支持!
回复

使用道具 举报

6#
ID:263406 发表于 2017-12-18 22:20 | 只看该作者
有用,谢谢
回复

使用道具 举报

7#
ID:269321 发表于 2017-12-30 21:05 | 只看该作者
谢谢lz
回复

使用道具 举报

8#
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'
回复

使用道具 举报

9#
ID:283924 发表于 2018-2-13 10:05 | 只看该作者

赞一个,刚好需要
回复

使用道具 举报

10#
ID:277732 发表于 2018-2-13 11:25 | 只看该作者
赞一个 也学习一下
回复

使用道具 举报

11#
ID:287663 发表于 2018-3-5 10:48 | 只看该作者

赞一个 也学习一下下
回复

使用道具 举报

12#
ID:298330 发表于 2018-3-28 15:04 | 只看该作者
需要一个,希望能下来,谢谢。
回复

使用道具 举报

13#
ID:299380 发表于 2018-4-3 17:36 | 只看该作者
非常好,谢谢楼主的分享。
回复

使用道具 举报

14#
ID:300434 发表于 2018-4-4 09:16 | 只看该作者
谢谢楼主的分享。
回复

使用道具 举报

15#
ID:302209 发表于 2018-4-4 21:55 | 只看该作者
好东西,必须支持!
回复

使用道具 举报

16#
ID:304234 发表于 2018-4-9 10:13 | 只看该作者
好东西,支持
回复

使用道具 举报

17#
ID:315637 发表于 2018-4-24 19:48 | 只看该作者
太好了,,,很有学习价值
回复

使用道具 举报

18#
ID:325119 发表于 2018-5-8 15:42 | 只看该作者
没黑币啊
回复

使用道具 举报

19#
ID:352284 发表于 2018-6-15 08:02 | 只看该作者
正想研究一下。。。。。。
回复

使用道具 举报

20#
ID:354945 发表于 2018-6-23 00:05 | 只看该作者
刚好需要,谢谢
回复

使用道具 举报

21#
ID:359675 发表于 2018-7-5 17:14 | 只看该作者

好东西,必须支持!
回复

使用道具 举报

22#
ID:368369 发表于 2018-7-10 08:31 | 只看该作者
好用,对小白就方便多了
回复

使用道具 举报

23#
ID:219437 发表于 2018-7-11 17:36 | 只看该作者
感谢lz
回复

使用道具 举报

24#
ID:379563 发表于 2018-8-14 16:57 | 只看该作者
电子小白请教一下Arduino库是什么单片机都能兼容的吗 比如STM32之类的
回复

使用道具 举报

25#
ID:349555 发表于 2018-8-14 18:09 | 只看该作者
15081898066 发表于 2018-8-14 16:57
电子小白请教一下Arduino库是什么单片机都能兼容的吗 比如STM32之类的

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

使用道具 举报

26#
ID:391724 发表于 2018-8-30 18:50 | 只看该作者

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

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

使用道具 举报

27#
ID:416694 发表于 2018-10-28 14:08 | 只看该作者
谢谢楼主分享,太需要了
回复

使用道具 举报

28#
ID:430734 发表于 2018-11-21 18:49 | 只看该作者

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

使用道具 举报

29#
ID:435778 发表于 2018-11-29 15:13 | 只看该作者
好东西
回复

使用道具 举报

30#
ID:398553 发表于 2018-12-6 14:21 | 只看该作者
已经导入了库文件,但是编译显示没有目录或文件,还请大佬指教
回复

使用道具 举报

31#
ID:430979 发表于 2018-12-19 16:19 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

32#
ID:474627 发表于 2019-2-1 22:23 | 只看该作者
感谢分享
回复

使用道具 举报

33#
ID:481608 发表于 2019-2-27 16:06 | 只看该作者
放到库文件后也没反应
回复

使用道具 举报

34#
ID:487278 发表于 2019-3-16 10:01 | 只看该作者
必须支持一哈
回复

使用道具 举报

35#
ID:506705 发表于 2019-4-8 09:30 | 只看该作者
感谢分享。。。。
回复

使用道具 举报

36#
ID:513631 发表于 2019-4-16 14:42 | 只看该作者
感谢楼主分享
回复

使用道具 举报

37#
ID:493653 发表于 2019-4-26 08:35 | 只看该作者
怎么下载
回复

使用道具 举报

38#
ID:292815 发表于 2019-5-23 11:57 | 只看该作者
赞一个,刚好需要
回复

使用道具 举报

39#
ID:574192 发表于 2019-6-28 16:06 | 只看该作者
感谢分享
回复

使用道具 举报

40#
ID:580972 发表于 2019-7-9 15:31 | 只看该作者
感谢分享,点赞!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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