summaryrefslogtreecommitdiff
path: root/src/main/main.ino
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/main.ino')
-rw-r--r--src/main/main.ino88
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 18DHT dht(DHTPIN, DHTTYPE);
19DHT_Unified dht(DHTPIN, DHTTYPE);
20 19
21int get_humidity () { 20void 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
36int 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
51int get_co2 () { ; }
52bool start_ultrasonic () { ; }
53bool stop_ultrasonic () { ; }
54bool start_fan () { ; }
55bool stop_fan () { ; }
56 23
24 Serial.begin(115200);
25 Serial.println(F("Mushing..."));
57 26
58bool 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
63void setup () { 30void 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
68void loop() { 34void 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}