projekte:schimmelsensor
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
projekte:schimmelsensor [2017-01-16 20:57] – gamecompiler | projekte:schimmelsensor [2021-03-27 09:59] (aktuell) – gelöscht gamecompiler | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== 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 ==== | ||
- | <code c> | ||
- | //SENSOR | ||
- | #include < | ||
- | #include < | ||
- | |||
- | AM2320 th; | ||
- | |||
- | //DISPLAY | ||
- | #include < | ||
- | LiquidCrystal lcd(12, 11, 5, 4, 3, 2); | ||
- | |||
- | // | ||
- | // | ||
- | //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(" | ||
- | lcd.begin(20, | ||
- | lcd.setCursor(0, | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | lcd.print(" | ||
- | lcd.setCursor(0, | ||
- | lcd.print(" | ||
- | | ||
- | } | ||
- | |||
- | unsigned long previousMillis = 0; | ||
- | void loop() { | ||
- | if (millis() - previousMillis >= 1000) { | ||
- | previousMillis = millis(); | ||
- | switch(th.Read()) { | ||
- | case 2: | ||
- | Serial.println(" | ||
- | break; | ||
- | case 1: | ||
- | Serial.println(" | ||
- | break; | ||
- | case 0: | ||
- | Serial.print(" | ||
- | Serial.print(th.h); | ||
- | lcd.setCursor(14, | ||
- | lcd.print(th.h); | ||
- | |||
- | | ||
- | | ||
- | Serial.print(" | ||
- | Serial.print(th.t); | ||
- | Serial.println(" | ||
- | |||
- | if(th.t >= 0) { | ||
- | lcd.setCursor(13, | ||
- | lcd.print(" | ||
- | lcd.setCursor(14, | ||
- | lcd.print(th.t); | ||
- | } | ||
- | else { | ||
- | lcd.setCursor(13, | ||
- | 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, | ||
- | double DD = r/100 * SDD; | ||
- | double v = log10(DD/ | ||
- | double TD = b*v/(a-v); | ||
- | lcd.setCursor(14, | ||
- | lcd.print(TD); | ||
- | |||
- | double TK = T + 273.15; | ||
- | double mw = 18.016; // | ||
- | double R = 8314.3; // | ||
- | double AF = pow(10,5) * mw / R * DD / TK; | ||
- | lcd.setCursor(14, | ||
- | lcd.print(AF); | ||
- | |||
- | if(AF >= 0) { | ||
- | lcd.setCursor(13, | ||
- | lcd.print(" | ||
- | lcd.setCursor(14, | ||
- | lcd.print(AF); | ||
- | } | ||
- | else { | ||
- | lcd.setCursor(13, | ||
- | lcd.print(AF); | ||
- | } | ||
- | |||
- | lcd.setCursor(19, | ||
- | lcd.print((char)223); | ||
- | lcd.setCursor(19, | ||
- | lcd.print((char)223); | ||
- | lcd.setCursor(19, | ||
- | lcd.print(" | ||
- | lcd.setCursor(19, | ||
- | lcd.print((char)223); | ||
- | break; | ||
- | } | ||
- | | ||
- | } | ||
- | | ||
- | |||
- | | ||
- | } | ||
- | </ | ||
- | |||
- | |||
projekte/schimmelsensor.1484596642.txt.gz · Zuletzt geändert: 2022-11-17 22:34 (Externe Bearbeitung)