120 lines
2.1 KiB
C++
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);
|
|
|
|
}
|