diff options
Diffstat (limited to 'src/main/main.ino')
-rw-r--r-- | src/main/main.ino | 88 |
1 files changed, 26 insertions, 62 deletions
diff --git a/src/main/main.ino b/src/main/main.ino index bdab190..d6f41d5 100644 --- a/src/main/main.ino +++ b/src/main/main.ino | |||
@@ -1,85 +1,49 @@ | |||
1 | #define TEMP_SENSOR_PIN 14 | 1 | #define TEMP_SENSOR_PIN 12 |
2 | #define HUMIDITY_SENSOR_PIN 14 | 2 | #define HUMIDITY_SENSOR_PIN 12 |
3 | #define FAN_PIN 15 | 3 | #define FAN_PIN 15 |
4 | #define CO2_PIN 16 | 4 | #define CO2_PIN 16 |
5 | #define ULTRASONIC_PIN 17 | 5 | #define ULTRASONIC_PIN 17 |
6 | 6 | ||
7 | #define CHECK_FREQUENCY 1 // check sensors every second | 7 | #define CHECK_FREQUENCY 2 // check sensors every 2 seconds |
8 | #define HUMIDITY_DESIRED 75 | 8 | #define HUMIDITY_DESIRED 75 |
9 | #define HUMIDITY_VARIATION 3 // ultrasonic turns on at (75 - 3 = 72) and off | 9 | #define HUMIDITY_VARIATION 3 // ultrasonic turns on at (75 - 3 = 72) and off |
10 | // at (75 + 3 = 78) | 10 | // at (75 + 3 = 78) |
11 | 11 | ||
12 | #include "ota.h" | ||
12 | 13 | ||
13 | // Tempature + Humidity Sensor | 14 | // Tempature + Humidity Sensor |
14 | #include <Adafruit_Sensor.h> | ||
15 | #include <DHT.h> | 15 | #include <DHT.h> |
16 | #include <DHT_U.h> | 16 | #define DHTPIN 12 |
17 | #define DHTTYPE DHT11 | 17 | #define DHTTYPE DHT11 |
18 | #define DHTPIN TEMP_SENSOR_PIN | 18 | DHT dht(DHTPIN, DHTTYPE); |
19 | DHT_Unified dht(DHTPIN, DHTTYPE); | ||
20 | 19 | ||
21 | int get_humidity () { | 20 | void setup () { |
22 | // Get temperature event and print its value. | 21 | setupWifi("mush"); |
23 | sensors_event_t event; | 22 | setupOTA("mush"); |
24 | dht.temperature().getEvent(&event); | ||
25 | if (isnan(event.temperature)) { | ||
26 | Serial.println(F("Error reading temperature!")); | ||
27 | } | ||
28 | else { | ||
29 | return event.temperature; | ||
30 | /* Serial.print(F("Temperature: ")); */ | ||
31 | /* Serial.print(event.temperature); */ | ||
32 | /* Serial.println(F("°C")); */ | ||
33 | } | ||
34 | } | ||
35 | |||
36 | int get_tempature () { | ||
37 | sensors_event_t event; | ||
38 | // Get humidity event and print its value. | ||
39 | dht.humidity().getEvent(&event); | ||
40 | if (isnan(event.relative_humidity)) { | ||
41 | Serial.println(F("Error reading humidity!")); | ||
42 | } | ||
43 | else { | ||
44 | return event.relative_humidity; | ||
45 | /* Serial.print(F("Humidity: ")); */ | ||
46 | /* Serial.print(event.relative_humidity); */ | ||
47 | /* Serial.println(F("%")); */ | ||
48 | } | ||
49 | } | ||
50 | |||
51 | int get_co2 () { ; } | ||
52 | bool start_ultrasonic () { ; } | ||
53 | bool stop_ultrasonic () { ; } | ||
54 | bool start_fan () { ; } | ||
55 | bool stop_fan () { ; } | ||
56 | 23 | ||
24 | Serial.begin(115200); | ||
25 | Serial.println(F("Mushing...")); | ||
57 | 26 | ||
58 | bool log ( int humidity, int temp, int co2 ) { | 27 | dht.begin(); // temp+humidity sensor |
59 | Serial.printf("Tempature: %d\tHumidity: %d\tCO2: %d\n", | ||
60 | humidity, temp, co2); | ||
61 | } | 28 | } |
62 | 29 | ||
63 | void setup () { | 30 | void log_reading ( float temp_c, float humidity, float heat_index_c ) { |
64 | Serial.begin(115200); | 31 | Serial.printf("T: %.2f H: %.2f HI: %.2f\r\n", temp_c, humidity, heat_index_c); |
65 | dht.begin(); /* temp/humidity sensor */ | ||
66 | } | 32 | } |
67 | 33 | ||
68 | void loop() { | 34 | void loop() { |
69 | delay(CHECK_FREQUENCY * 1000); | 35 | ArduinoOTA.handle(); |
70 | int humidity = get_humidity(); | 36 | // Wait a few seconds between measurements. |
71 | int temp = get_tempature(); | 37 | delay(2000); |
72 | int co2 = get_co2(); | 38 | |
73 | 39 | float h = dht.readHumidity(); | |
74 | if ( humidity < (HUMIDITY_DESIRED - HUMIDITY_VARIATION) ) { | 40 | float t = dht.readTemperature(); |
75 | start_ultrasonic(); | 41 | // Check if any reads failed and exit early (to try again). |
76 | stop_fan(); | 42 | if (isnan(h) || isnan(t) ) { |
77 | } else if ( humidity > (HUMIDITY_DESIRED + HUMIDITY_VARIATION) ) { | 43 | Serial.println(F("Failed to read from DHT sensor!")); |
78 | start_fan(); | 44 | return; |
79 | stop_ultrasonic(); | ||
80 | } else { | ||
81 | ; // keep doing the same | ||
82 | } | 45 | } |
46 | float hic = dht.computeHeatIndex(t, h, false); | ||
83 | 47 | ||
84 | log(humidity, temp, co2); | 48 | log_reading(t, h, hic); |
85 | } | 49 | } |