#define TEMP_SENSOR_PIN 14 #define HUMIDITY_SENSOR_PIN 14 #define FAN_PIN 15 #define CO2_PIN 16 #define ULTRASONIC_PIN 17 #define CHECK_FREQUENCY 1 // check sensors every second #define HUMIDITY_DESIRED 75 #define HUMIDITY_VARIATION 3 // ultrasonic turns on at (75 - 3 = 72) and off // at (75 + 3 = 78) // Tempature + Humidity Sensor #include #include #include #define DHTTYPE DHT11 #define DHTPIN TEMP_SENSOR_PIN DHT_Unified dht(DHTPIN, DHTTYPE); int get_humidity () { // Get temperature event and print its value. sensors_event_t event; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println(F("Error reading temperature!")); } else { return event.temperature; /* Serial.print(F("Temperature: ")); */ /* Serial.print(event.temperature); */ /* Serial.println(F("°C")); */ } } int get_tempature () { sensors_event_t event; // Get humidity event and print its value. dht.humidity().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println(F("Error reading humidity!")); } else { return event.relative_humidity; /* Serial.print(F("Humidity: ")); */ /* Serial.print(event.relative_humidity); */ /* Serial.println(F("%")); */ } } int get_co2 () { ; } bool start_ultrasonic () { ; } bool stop_ultrasonic () { ; } bool start_fan () { ; } bool stop_fan () { ; } bool log ( int humidity, int temp, int co2 ) { Serial.printf("Tempature: %d\tHumidity: %d\tCO2: %d\n", humidity, temp, co2); } void setup () { Serial.begin(115200); dht.begin(); /* temp/humidity sensor */ } void loop() { delay(CHECK_FREQUENCY * 1000); int humidity = get_humidity(); int temp = get_tempature(); int co2 = get_co2(); if ( humidity < (HUMIDITY_DESIRED - HUMIDITY_VARIATION) ) { start_ultrasonic(); stop_fan(); } else if ( humidity > (HUMIDITY_DESIRED + HUMIDITY_VARIATION) ) { start_fan(); stop_ultrasonic(); } else { ; // keep doing the same } log(humidity, temp, co2); }