Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:schimmelsensor

Dies ist eine alte Version des Dokuments!


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

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.1484596642.txt.gz · Zuletzt geändert: 2022-11-17 22:34 (Externe Bearbeitung)