// *****************************************************************************************
/* Ventilatieregeling met DHT11 en relais en fan
*/
// Bibliotheek voor DHT sensor.
#include <DHT.h> // voor het gebruik van de DHT temperatuur sensor
DHT dht;
const int analogOutPin = 9; // D9 is pwm output voor motor
int outputValue = 0;
void setup() {
Serial.begin(9600); // Start seriële communicatie.
Serial.println(); // Print lege regel.
// Print drie kolomtitels, met \t print je een tab:
Serial.println("Status\tRelatieve luchtvochtigheid (%)\tTemperatuur in graden Celsius\t");
// Configureer DHT sensor en stel hem in op pin D2
dht.setup(2);
// Initialiseer digitale poort D7 als uitgang (OUTPUT) voor relais van ventilatormotor:
pinMode(7, OUTPUT);
}
void loop() {
// Pauzeer om de DHT nieuwe data te laten verzamelen:
delay(dht.getMinimumSamplingPeriod());
// Vraag de relatieve luchtvochtigheid op:
float humidity = dht.getHumidity();
// Vraag de temperatuur op:
float temperature = dht.getTemperature();
// Monitor de meting
// Print status van DHT sensor op de Seriële monitor:
Serial.print(dht.getStatusString());
// Print een tab:
Serial.print("\t");
// Print relatieve luchtvochtigheid op 1 decimaal nauwkeurig:
Serial.print(humidity, 1);
// Print vier tabs:
Serial.print("\t\t\t\t");
// Print temperatuur op 1 decimaal nauwkeurig:
Serial.print(temperature, 1);
// ventilatormotor en servomotor
if (temperature > 27) {
analogWrite(analogOutPin, 255);
Serial.println("\tFan on 255");
delay(2000); // Wacht (2 sec)
}
else if (temperature > 25) {
analogWrite(analogOutPin, 20);
Serial.println("\tFan on 20");
delay(2000); // Wacht (2 sec)
} else {
analogWrite(analogOutPin, 0);
Serial.println("\tFan off");
delay(2000); // Wacht (2 sec)
}
}