#include <LiquidCrystal_I2C.h>
const int DG_LED = 2;
const int BESS_LED = 3;
// Add the lcd
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
pinMode(DG_LED, OUTPUT);
pinMode(BESS_LED, OUTPUT);
lcd.init();
lcd.backlight();
//lcd.setCursor(0, 0);
lcd.print("System Ready");
Serial.println("Type DG, BESS, DG+BESS,BESS+DG, OFF");
}
void loop() {
if (Serial.available()) {
String input = Serial.readStringUntil('\n');
input.trim();
lcd.clear();
lcd.setCursor(0, 0);
if (input == "DG") {
digitalWrite(DG_LED, HIGH);
digitalWrite(BESS_LED, LOW);
lcd.print("DG ON, BESS OFF");
Serial.println("DG ON, BESS OFF");
} else if (input == "BESS") {
digitalWrite(DG_LED, LOW);
digitalWrite(BESS_LED, HIGH);
lcd.print("BESS ON, DG OFF");
Serial.println("BESS ON, DG OFF");
} else if (input == "DG+BESS" || input == "BESS+DG") {
digitalWrite(DG_LED, HIGH);
digitalWrite(BESS_LED, HIGH);
lcd.print("DG & BESS ON");
Serial.println("DG and BESS ON");
} else if (input == "OFF") {
digitalWrite(DG_LED, LOW);
digitalWrite(BESS_LED, LOW);
lcd.print("DG & BESS OFF");
Serial.println("DG and BESS OFF");
} else {
lcd.print("Unknown command");
Serial.println("Unknown command");
}
}
}