RSS_Management/RoomyState/RoomyState.ino
Vasily Davydov 6dd9a9e9a7
Add Files
2022-01-10 13:40:28 +02:00

120 lines
2.1 KiB
C++

#include "lcd.h"
#include "led.h"
int initial = 0;
int buttonState = 0;
int curr;
float temp, humid;
DHT sens(THERM_I, DHT11);
bool conn = true;
int incom = 0;
char *mess;
unsigned long lastTime;
Counter c (initial, 3);
bool sent = true;
void setup() {
Serial.begin(57600);
pinMode(BI, INPUT);
initial = EEPROM.read(0);
if(initial!= 255){
c.setInit(initial);
}
sens.begin();
lcdAwake();
RGBinit();
hexToRGB("ffffff");
while(conn){
setText("Waking up...");
if (Serial.available() > 0){
incom = Serial.read();
if((char)incom == '#'){
Serial.print("$");
conn = false;
setText("USB connected");
}
}
}
switch(c.getInit()){
case 0:
hexToRGB("0000ff");
//delay(AFT_FUN);
break;
case 1:
hexToRGB("ff5200");
//delay(AFT_FUN);
break;
case 2:
hexToRGB("ff0000");
//delay(AFT_FUN);
break;
case 3:
hexToRGB("00FF00");
//delay(AFT_FUN);
break;
default:
break;
}
}
void loop() {
buttonState = digitalRead(BI);
temp = sens.readTemperature();
humid = sens.readHumidity();
curr = c.getInit();
if(millis() - lastTime > 5000 && !sent){
switch(curr){
case 0:
setHome(temp, humid);
//delay(AFT_FUN);
break;
case 1:
setAway(temp, humid);
//delay(AFT_FUN);
break;
case 2:
setBusy(temp, humid);
//delay(AFT_FUN);
break;
case 3:
setCome(temp, humid);
//delay(AFT_FUN);
break;
default:
break;
}
sent = true;
}
if(buttonState){
while(buttonState) buttonState = digitalRead(BI);
c.inc();
curr = c.getInit();
lastTime = millis();
switch(curr){
case 0:
hexToRGB("0000ff");
//delay(AFT_FUN);
break;
case 1:
hexToRGB("ff5200");
//delay(AFT_FUN);
break;
case 2:
hexToRGB("ff0000");
//delay(AFT_FUN);
break;
case 3:
hexToRGB("00FF00");
//delay(AFT_FUN);
break;
default:
break;
}
sent = false;
}
displayFloat(temp, true);
displayFloat(humid, false);
}