-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHumidityController.h
47 lines (39 loc) · 1.35 KB
/
HumidityController.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef HUMIDITY_CONTROLLER_H
#define HUMIDITY_CONTROLLER_H
#include "Arduino.h"
#include "Time.h"
#include "TimeAlarms.h"
#include "DHT22.h"
#include "DateTime.h"
#include "AtomizerController.h"
#include "FanController.h"
// Encapsulates settings for the HumidityController
struct HumidityControllerSettings {
float targetHumidity;
float kickOnHumidity;
int fanStopDelay;
int updateInterval;
HumidityControllerSettings(float target, float kickOn, int fanStop, int update);
};
// HumidityController class provides methods for controlling the sensors, atomizer, and fan system.
class HumidityController {
private:
static DHT22 sensorOne;
static DHT22 sensorTwo;
static AtomizerController atomizer;
static FanController fans;
static HumidityControllerSettings* settings;
static bool running;
static float average(float, float);
static void runHumidifier();
static void stopAtomizer();
static void stopFans();
public:
static void init(byte sensorOnePin, byte sensorTwoPin, byte atomizerPin,
byte fansPin, HumidityControllerSettings* s);
static void update();
static void controlStatus(bool&, bool&);
static void humidity(float&, float&, float&);
static void temperature(float&, float&, float&);
};
#endif