zoukankan      html  css  js  c++  java
  • 进阶之路(中级篇)

    如果想使用 Arduino 开发板驱动 DHT11 来获取温湿度的时候建议使用第三方的库,这样可以加快程序的开发速度,而且不容易出错,下面的代码我已经安转了第三方的库了。详细的安装方法请参考极客先锋的博客:http://www.cnblogs.com/jikexianfeng/p/6290203.html 作者安装的为最低版本(1.0.0)。这样为了更好的兼容。

     1 /*********************************
     2 代码功能:温湿度传感器DHT11
     3 使用函数:
     4     simple_dht11_read(DHT11传感器引脚,存放湿度数据地址,存放温度数据地址,存放40位01数据的地址);    //获取温湿度数据函数
     5 使用头文件:
     6     #include <SimpleDHT.h>        //需要安装库,具体安装方法见:http://www.cnblogs.com/jikexianfeng/p/6290203.html
     7 创作时间:2017*1*18
     8 作者邮箱:jikexianfeng@outlook.com
     9 ********************************/
    10 #include <SimpleDHT.h>
    11 int pinDHT11 = 2;
    12 
    13 void setup()
    14 {
    15   Serial.begin(115200);
    16 }
    17 
    18 void loop()
    19 {
    20   Serial.println("=================================");
    21   Serial.println("Sample DHT11...");
    22   byte temperatyre = 0;    //温度
    23   byte humidity = 0;    //湿度
    24   byte data[40];
    25   if (simple_dht11_read(pinDHT11, &temperatyre, &humidity, data)) {
    26     Serial.print("Read DHT11 failed.");
    27     return;
    28   }
    29   Serial.print("Humidity (%):");
    30   Serial.println(humidity);
    31   Serial.print("Temperatyre(oC)");
    32   Serial.println(temperatyre);
    33   Serial.print("Temperatyre(oF)");
    34   Serial.println(Fahrenheit(temperatyre));
    35   Serial.print("Temperatyre(k)");
    36   Serial.println(Kelvin(temperatyre));
    37   Serial.print("Dew point(oC):");
    38   Serial.println(dewPoint(temperatyre,humidity));
    39   //Serial.print("Dew PointFast(oC):");
    40   //Serial.println(dewPointFast(temperatyre,humidity));
    41   delay(1000);
    42 }
    43 
    44 double Fahrenheit(byte celsius)
    45 {
    46   return 1.8*celsius+32;
    47 }
    48 
    49 double Kelvin(byte celsius)
    50 {
    51   return celsius+273.15;
    52 }
    53 
    54 double dewPoint(byte celsius,byte humidity)
    55 {
    56   double A0 =373.15/(273.15+celsius);
    57   double SUM = -7.90298*(A0-1);
    58   SUM+=5.02808*log10(A0);
    59   SUM+=-1.3816e-78*(pow(10,(11.344*(1-1/A0)))-1);
    60   SUM+=8.1328e-3*(pow(10,(-3.49149*(A0-1)))-1);
    61   SUM+=log10(1013.246);
    62   double VP=pow(10,SUM-3)*humidity;
    63   double T =log(VP/0.61078);
    64   return (241.88*T)/(17.558-T);
    65 }
    66 
    67 double dewPointFast(byte celsius,byte humidity)
    68 {
    69   double a=17.271;
    70   double b=273.7;
    71   double temp=(a*celsius)/(b+celsius)+log(humidity/100);
    72   double Td=(b*temp)/(a-temp);
    73   return Td;
    74 }

    如果采集回来的数据没有没有浮点型数据,所以浮点段字符数据为全部为0,这是传感器的问题,不能进行时代码为题。

    /////////////////////////

    参考网页:http://www.cnblogs.com/jikexianfeng/p/6290203.html

    参考网页:http://wenku.baidu.com/view/dcdc9efa700abb68a982fbe0.html?re=view

  • 相关阅读:
    RobotFramework+Selenium2+Appium环境搭建
    spring mvc 依赖包
    linux
    清理linux 某个文件夹下面所有的log文件
    selenium grid2 使用远程机器的浏览器
    IntelliJ Idea 快捷键
    aop注解 自定义切面的注解写法
    springmvc多视图配置
    @Autowired(required = false)
    pom.xml配置详解
  • 原文地址:https://www.cnblogs.com/jikexianfeng/p/6825618.html
Copyright © 2011-2022 走看看