找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4618|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

上傳一個(gè)顯示溫濕度的arduino代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:308464 發(fā)表于 2018-4-15 11:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
double Fahrenheit(double celsius)
{
       return 1.8 * celsius + 32;
}   //攝氏溫度度轉(zhuǎn)化為華氏溫度

double Kelvin(double celsius)
{
       return celsius + 273.15;
}    //攝氏溫度轉(zhuǎn)化為開氏溫度

// 露點(diǎn)(點(diǎn)在此溫度時(shí),空氣飽和并產(chǎn)生露珠)
// 參考:wahiduddin點(diǎn)net/calc/density_algorithms.htm
double dewPoint(double celsius, doublehumidity)   //humidity是濕度,celsius是攝氏溫度
{
       double A0= 373.15/(273.15 + celsius);
       double SUM = -7.90298 * (A0-1);
       SUM += 5.02808 * log10(A0);
       SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
       SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
       SUM += log10(1013.246);
       double VP = pow(10, SUM-3) * humidity;
       double T = log(VP/0.61078);   //temp var
       return (241.88 * T) / (17.558-T);
}

// 快速計(jì)算露點(diǎn),速度是5dewPoint()(上面函數(shù)的結(jié)果)
double dewPointFast(double celsius, doublehumidity)
{
       double a = 17.271;
       double b = 237.7;
       double temp = (a * celsius) / (b + celsius) + log(humidity/100);
       double Td = (b * temp) / (a - temp);
       return Td;
}

#include <dht11.h>

dht11 DHT11;

#define DHT11PIN 2

void setup()  //設(shè)置一些參數(shù)
{
Serial.begin(9600);  
Serial.println("DHT11 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
}

void loop()
{
Serial.println("\n"); //換行

  intchk = DHT11.read(DHT11PIN);

Serial.print("Read sensor: "); //讀取傳感器
switch (chk)
  {
   case DHTLIB_OK:
                Serial.println("OK");
                break;
   case DHTLIB_ERROR_CHECKSUM:
                Serial.println("Checksumerror");
                break;
   case DHTLIB_ERROR_TIMEOUT:
                Serial.println("Time outerror");
                break;
   default:
                Serial.println("Unknownerror");
                break;
  }

Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity, 2);

Serial.print("Temperature (oC): ");
Serial.println((float)DHT11.temperature, 2);

Serial.print("Temperature (oF): ");
Serial.println(Fahrenheit(DHT11.temperature), 2);

Serial.print("Temperature (K): ");
Serial.println(Kelvin(DHT11.temperature), 2);

Serial.print("Dew Point (oC): ");
Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));

Serial.print("Dew PointFast (oC): ");
Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));

delay(2000);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:656966 發(fā)表于 2019-12-5 18:33 | 只看該作者
我運(yùn)行了一下   錯(cuò)誤是說沒有dht11.h 這個(gè)文件 怎么解決 剛接觸arduino什么都不懂...求教
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表