//#include <Wire.h>
//#include <Adafruit_GFX.h>
//#include <Adafruit_SSD1306.h>
#include "OneButton.h"
#include "HX711.h"
#include "display.h"
#include "relay.h"
#include "mode.h"
#include "setup.h"
#include "manual.h"
#include "timer.h"
#include "auto.h"
//#define SCREEN_WIDTH 128 // OLED width, in pixels
//#define SCREEN_HEIGHT 32 // OLED height, in pixels
// create an OLED display object connected to I2C
//Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
//BUTTONS buttons;
HX711 scale;
RELAY relay(6, 4000/*ms max on*/);
SETUP setupMode;
MANUAL manualMode;
TIMER timerMode;
AUTO autoMode;
MODE* mode = &setupMode;
OneButton button_StartStop(5, true);
OneButton button_Set(4, true);
OneButton button_Plus(3, true);
OneButton button_Minus(2, true);
int xmode = 0;
void selectMode(MODE* newMode) {
mode = newMode;
if (mode != NULL)
mode->select();
}
void startStopPressed() {
if (!relay.isOn())
relay.set(1);
else
relay.set(0);
}
void plusPressed() { mode->plus(); }
void minusPressed() { mode->minus(); }
void setPressed() { mode->set(); }
void setLongPress() { selectMode(&setupMode); }
void setup() {
Serial.begin(9600);
Serial.println("Monitor");
relay.begin();
//button_StartStop.attachClick(startStopPressed);
button_Plus.attachClick(plusPressed);
button_Minus.attachClick(minusPressed);
button_Set.attachClick(setPressed);
button_Set.setPressMs(1000); // that is the time when LongPressStart is called
button_Set.attachLongPressStart(setLongPress);
scale.begin(A1, A0);
display_init();
}
void loop() {
relay.loop();
button_StartStop.tick();
button_Set.tick();
button_Plus.tick();
button_Minus.tick();
// listen for mode selection:
if (mode == &setupMode)
if (setupMode.getNewMode() > -1) {
if (setupMode.getSelectedMode() == MODE_MANUAL)
selectMode(&manualMode);
else if (setupMode.getSelectedMode() == MODE_TIMER)
selectMode(&timerMode);
else if (setupMode.getSelectedMode() == MODE_AUTO)
selectMode(&autoMode);
}
if (!button_StartStop.isIdle()) {
if (!relay.isOn())
relay.set(1);
} else {
if (relay.isOn())
relay.set(0);
}
}