Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Navigation



Über uns
HomepageKontakt


Rechtliches
Impressum

projekte:schimmelsensor

Inhaltsverzeichnis

Schimmelsensor

Übersicht

Mein weiß nie wann man Lüften soll und wenn doch wie lange. Das Problem kann man Mathematisch mit einem Arduino lösen. Er ist in der Lage uns den Taupunkt zu berechnen.

Material

  • AMS2302, DHT22, DHT11 oder sonst ein Temperatur und Luftfeuchte Sensor
  • Arduino in irgendeiner Art
  • Flüssigkristall Display mit am besten 20×4 Zeichen

CODE

//SENSOR
#include <Wire.h>
#include <AM2320.h>
 
AM2320 th;
 
//DISPLAY
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
//REFERENZEN !!!!!
//https://www.wetterochs.de/wetter/feuchte.html
//Vielen Dank an den Wetterochsen für seine nahezu perfekte Annäherung zu berechnung des Taupunktes.
 
 
void setup() {
  Serial.begin(9600);
  Wire.begin();
  Serial.print("Start");
  lcd.begin(20, 4);
  lcd.setCursor(0,0);
  lcd.print("Luftfeuchte: ");
  lcd.setCursor(0,1);
  lcd.print("Temperatur: ");
  lcd.setCursor(0,2);
  lcd.print("Abs. Feuchte: ");
  lcd.setCursor(0,3);
  lcd.print("Taupunkt: ");
 
}
 
unsigned long previousMillis = 0;
void loop() {
  if (millis() - previousMillis >= 1000) {
    previousMillis = millis();
    switch(th.Read()) {
    case 2:
      Serial.println("CRC failed");
      break;
    case 1:
      Serial.println("Sensor offline");
      break;
    case 0:
      Serial.print("humidity: ");
      Serial.print(th.h);
      lcd.setCursor(14,0);
      lcd.print(th.h);
 
 
 
      Serial.print("%, temperature: ");
      Serial.print(th.t);
      Serial.println("*C");
 
      if(th.t >= 0) {
        lcd.setCursor(13,1);
        lcd.print(" ");
        lcd.setCursor(14,1);
        lcd.print(th.t);
      }
      else  {
        lcd.setCursor(13,1);
        lcd.print(th.t);
      }
 
 
      double T = th.t;
      double r = th.h;
      double a = 0;
      double b = 0;
 
      if(T >= 0)  {
        a = 7.5;
        b = 237.3;
      }
      else  {
        a = 7.6;
        b = 240.7;
      }
      double SDD = 6.1078 * pow(10,((a*T)/(b+T)));
      double DD = r/100 * SDD;
      double v = log10(DD/6.1078);
      double TD = b*v/(a-v);
      lcd.setCursor(14,3);
      lcd.print(TD);
 
      double TK = T + 273.15;
      double mw = 18.016; //Molekulargewicht des Wasserdampfes
      double R = 8314.3; //J/(kmol*K) (universelle Gaskonstante)
      double AF = pow(10,5) * mw / R * DD / TK;
      lcd.setCursor(14,2);
      lcd.print(AF);
 
      if(AF >= 0) {
        lcd.setCursor(13,2);
        lcd.print(" ");
        lcd.setCursor(14,2);
        lcd.print(AF);
      }
      else  {
        lcd.setCursor(13,2);
        lcd.print(AF);
      }
 
      lcd.setCursor(19,0);
      lcd.print((char)223); //Degree symbol
      lcd.setCursor(19,1);
      lcd.print((char)223); 
      lcd.setCursor(19,2);
      lcd.print("%"); 
      lcd.setCursor(19,3);
      lcd.print((char)223); 
      break;
  }
 
  }
 
 
 
}
projekte/schimmelsensor.txt · Zuletzt geändert: 2017-01-16 21:01 von gamecompiler