Automatisk Vent kontroll (3 / 3 steg)
Steg 3: Koden
#include
DHT DHT;
#define Rel 7
#define Buttn 4
#define onTime A1
#define trashold A0
#define DHT22_PIN 5
lång sensCount = millis ();
void setup()
{
Serial.BEGIN(9600);
pinMode (Rel, OUTPUT);
pinMode (Buttn, indata);
}
void loop()
{
LÄSA DATA
om (millis () < sensCount) {sensCount = millis ();} / * millis() återställs varje 50 dagar eller så * /
om (millis () > = sensCount + 5000) {
Serial.Print (DHT22, \t");
int chk = DHT.read22(DHT22_PIN);
Switch (chk)
{
fall DHTLIB_OK:
Serial.Print ("OK, \t");
Serial.Print (DHT.humidity,1);
Serial.Print (", \t");
Serial.Print (DHT.temperature, 1);
Serial.Print (", \t");
Serial.println (karta (analogRead (trashold), 1, 1023, 45, 95));
bryta;
fall DHTLIB_ERROR_CHECKSUM:
Serial.println (Checksum error, \t");
bryta;
fall DHTLIB_ERROR_TIMEOUT:
Serial.println ("Time out fel, \t");
bryta;
standard:
Serial.println ("okänt fel, \t");
bryta;
}
sensCount = millis ();
}
om (DHT.humidity > = karta (analogRead (trashold), 1, 1023, 45, 95)) {
digitalWrite (Rel, hög);
}
annat digitalWrite (Rel, låg);
/ * Manuell tändning * /
om (digitalRead (Buttn) == hög) {
lång delayButtn = karta (analogRead (onTime), 0, 1023, 1, 61) * 6000;
långa startTime = millis ();
digitalWrite (Rel, hög);
/ * Fördröja Loop * /
medan (millis () < = delayButtn + startTime) {
Serial.println (karta (delayButtn + startTime - millis (), 0, 1, 3600000 60));
om (startTime > millis ()) {/ * millis() återställs varje 50 dagar eller så * /
startTime = millis ();
}
delayButtn = karta (analogRead (onTime), 0, 1023, 1, 61) * 60000;
}
digitalWrite (Rel, låg);
}
}
//
SLUTET AV FILEN
//