找回密码
 立即注册

QQ登录

只需一步,快速开始

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

Arduino温湿度传感器程序

[复制链接]
跳转到指定楼层
楼主
ID:856808 发表于 2020-12-9 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. double Fahrenheit(double celsius)
  2. {
  3. return 1.8 * celsius + 32;
  4. }
  5. double Kelvin(double celsius)
  6. {
  7. return celsius + 273.15;
  8. }
  9. double dewPoint(double celsius, double humidity)
  10. {
  11. double A0= 373.15/(273.15 + celsius);
  12. double SUM = -7.90298 * (A0-1);
  13. SUM += 5.02808 * log10(A0);
  14. SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
  15. SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
  16. SUM += log10(1013.246);
  17. double VP = pow(10, SUM-3) * humidity;
  18. double T = log(VP/0.61078); // temp var
  19. return (241.88 * T) / (17.558-T);
  20. }
  21. double dewPointFast(double celsius, double humidity)
  22. {
  23. double a = 17.271;
  24. double b = 237.7;
  25. double temp = (a * celsius) / (b + celsius) + log(humidity/ 100);
  26. double Td = (b * temp) / (a - temp);
  27. return Td;
  28. }
  29. #include <dht11.h>
  30. dht11 DHT11;
  31. #define DHT11PIN 2 [size=8.991pt]
  32. void setup()
  33. {
  34. Serial.begin(9600);
  35. Serial.println("DHT11 TEST PROGRAM ");
  36. Serial.print("LIBRARY VERSION: ");
  37. Serial.println(DHT11LIB_VERSION);
  38. Serial.println();
  39. }
  40. void loop()
  41. {
  42. Serial.println("\n");
  43. int chk = DHT11.read(DHT11PIN);

  44. Serial.print("Read sensor: ");
  45. switch (chk)
  46. {
  47. case DHTLIB_OK:
  48. Serial.println("OK");
  49. break;
  50. case DHTLIB_ERROR_CHECKSUM:
  51. Serial.println("Checksum error");
  52. break;
  53. case DHTLIB_ERROR_TIMEOUT:
  54. Serial.println("Time out error");
  55. break;
  56. default:
  57. Serial.println("Unknown error");
  58. break;
  59. }
  60. Serial.print("Humidity (%): ");
  61. Serial.println((float)DHT11.humidity, 2);
  62. Serial.print("Temperature (oC): ");
  63. Serial.println((float)DHT11.temperature, 2);
  64. Serial.print("Temperature (oF): ");
  65. Serial.println(Fahrenheit(DHT11.temperature), 2);
  66. Serial.print("Temperature (K): ");
  67. Serial.println(Kelvin(DHT11.temperature), 2);
  68. Serial.print("Dew Point (oC): ");
  69. Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));
  70. Serial.print("Dew PointFast (oC): ");
  71. Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));
  72. delay(2000);
  73. }
复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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