update to new reciver type
This commit is contained in:
362
main.cpp
362
main.cpp
@ -18,15 +18,15 @@
|
|||||||
#include "dht11.h"
|
#include "dht11.h"
|
||||||
#include "WirelessRelay.h"
|
#include "WirelessRelay.h"
|
||||||
|
|
||||||
//#define HAS_DHT
|
#define HAS_DHT
|
||||||
#define HAS_TRANSMITTER
|
//#define HAS_TRANSMITTER
|
||||||
//#define HAS_RECIVER
|
#define HAS_RECIVER
|
||||||
|
|
||||||
#define MAX_SENSORS 32
|
#define MAX_SENSORS 32
|
||||||
#define COMMAND_BUFFER_SIZE 64
|
#define COMMAND_BUFFER_SIZE 64
|
||||||
#define SNPRINTF_BUFFER_SIZE 96
|
#define SNPRINTF_BUFFER_SIZE 96
|
||||||
|
|
||||||
#define welcomeString "HELO "
|
#define welcomeString "HELO SAS"
|
||||||
static constexpr bool bdayMsg = false;
|
static constexpr bool bdayMsg = false;
|
||||||
|
|
||||||
void buttonHandler(uint8_t index, uint8_t type, void* data);
|
void buttonHandler(uint8_t index, uint8_t type, void* data);
|
||||||
@ -61,15 +61,15 @@ volatile bool relaySetting = false;
|
|||||||
|
|
||||||
volatile uint8_t timer = 0;
|
volatile uint8_t timer = 0;
|
||||||
|
|
||||||
ISR(INT1_vect)
|
ISR(TIMER1_COMPA_vect)
|
||||||
{
|
{
|
||||||
W433DataReciver::staticInterrupt();
|
W433DataReciver::staticInterrupt();
|
||||||
}
|
}
|
||||||
|
|
||||||
ISR(TIMER2_OVF_vect)
|
ISR(TIMER2_OVF_vect)
|
||||||
{
|
{
|
||||||
display.tick();
|
display.tick();
|
||||||
buttons.tick();
|
buttons.tick();
|
||||||
if(ringging && ((timer % 4 == 0 && timer < 128) || (timer > 128 && timer % 16 == 0)) ) writePin(&PORTD, PD4, true);
|
if(ringging && ((timer % 4 == 0 && timer < 128) || (timer > 128 && timer % 16 == 0)) ) writePin(&PORTD, PD4, true);
|
||||||
else writePin(&PORTD, PD4, false);
|
else writePin(&PORTD, PD4, false);
|
||||||
++timer;
|
++timer;
|
||||||
@ -91,7 +91,7 @@ void buttonHandler(uint8_t index, uint8_t type, void* data)
|
|||||||
else if(index == 1 && type == Buttons::RELEASED )
|
else if(index == 1 && type == Buttons::RELEASED )
|
||||||
{
|
{
|
||||||
if(!ringging) if(++alm > 3) alm = 0;
|
if(!ringging) if(++alm > 3) alm = 0;
|
||||||
else ringging = false;
|
else ringging = false;
|
||||||
}
|
}
|
||||||
else if(index == 1 && type == Buttons::LONG_PRESSED )
|
else if(index == 1 && type == Buttons::LONG_PRESSED )
|
||||||
{
|
{
|
||||||
@ -108,40 +108,40 @@ void buttonHandler(uint8_t index, uint8_t type, void* data)
|
|||||||
|
|
||||||
void printSensor(const Sensor& sensor, Serial* serial)
|
void printSensor(const Sensor& sensor, Serial* serial)
|
||||||
{
|
{
|
||||||
serial->write_p(PSTR("SENSOR TYPE: "));
|
serial->write_p(PSTR("SENSOR TYPE: "));
|
||||||
serial->write(sensor.type);
|
serial->write(sensor.type);
|
||||||
serial->write_p(PSTR(" ID: "));
|
serial->write_p(PSTR(" ID: "));
|
||||||
serial->write(sensor.id);
|
serial->write(sensor.id);
|
||||||
|
|
||||||
if(sensor.type == 1) serial->write_p(PSTR(" TEMPERATURE: "));
|
if(sensor.type == 1) serial->write_p(PSTR(" TEMPERATURE: "));
|
||||||
else if(sensor.type == 2) serial->write_p(PSTR(" HUMIDITY: "));
|
else if(sensor.type == 2) serial->write_p(PSTR(" HUMIDITY: "));
|
||||||
else serial->write_p(PSTR(" FIELD: "));
|
else serial->write_p(PSTR(" FIELD: "));
|
||||||
serial->write(sensor.field);
|
serial->write(sensor.field);
|
||||||
serial->putChar('\n');
|
serial->putChar('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
void packetHandler(uint32_t packet, void* data)
|
void packetHandler(uint32_t packet, void* data)
|
||||||
{
|
{
|
||||||
Serial* serial = reinterpret_cast<Serial*>(data);
|
Serial* serial = reinterpret_cast<Serial*>(data);
|
||||||
|
|
||||||
Sensor sensor;
|
Sensor sensor;
|
||||||
|
|
||||||
sensor.field = packet & 0x0000FFFF;
|
sensor.field = packet & 0x0000FFFF;
|
||||||
sensor.type = packet >> 24;
|
sensor.type = packet >> 24;
|
||||||
sensor.id = (packet & 0x00FF0000) >> 16;
|
sensor.id = (packet & 0x00FF0000) >> 16;
|
||||||
|
|
||||||
bool found = false;
|
bool found = false;
|
||||||
for(uint8_t i = 0; i < sensors.count() && !found; ++i)
|
for(uint8_t i = 0; i < sensors.count() && !found; ++i)
|
||||||
{
|
{
|
||||||
if(sensors[i] == sensor)
|
if(sensors[i] == sensor)
|
||||||
{
|
{
|
||||||
sensors[i] = sensor;
|
sensors[i] = sensor;
|
||||||
found = true;
|
found = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!found) sensors.push_back(sensor);
|
if(!found) sensors.push_back(sensor);
|
||||||
|
|
||||||
if(!sensorsPaused) printSensor(sensor, serial);
|
if(!sensorsPaused) printSensor(sensor, serial);
|
||||||
}
|
}
|
||||||
|
|
||||||
void reciverError(uint8_t code, void* userData)
|
void reciverError(uint8_t code, void* userData)
|
||||||
@ -157,7 +157,7 @@ void reciverError(uint8_t code, void* userData)
|
|||||||
|
|
||||||
inline static void printHelp(Serial* serial)
|
inline static void printHelp(Serial* serial)
|
||||||
{
|
{
|
||||||
serial->write_p(PSTR("Available Commands: \n\
|
serial->write_p(PSTR("Available Commands: \n\
|
||||||
help : Show this prompt.\n\
|
help : Show this prompt.\n\
|
||||||
date : Show current date and time.\n\
|
date : Show current date and time.\n\
|
||||||
set [yyyy] [mm] [dd] [hh] [mm] [ss] : Show current date and time.\n\
|
set [yyyy] [mm] [dd] [hh] [mm] [ss] : Show current date and time.\n\
|
||||||
@ -179,132 +179,134 @@ int freeRAM()
|
|||||||
|
|
||||||
void serialDispatch(Serial* serial, SVector<Sensor, MAX_SENSORS>* sensors)
|
void serialDispatch(Serial* serial, SVector<Sensor, MAX_SENSORS>* sensors)
|
||||||
{
|
{
|
||||||
if(serial->dataIsWaiting())
|
if(serial->dataIsWaiting())
|
||||||
{
|
{
|
||||||
char buffer[COMMAND_BUFFER_SIZE];
|
char buffer[COMMAND_BUFFER_SIZE];
|
||||||
unsigned int length = serial->getString(buffer, COMMAND_BUFFER_SIZE);
|
unsigned int length = serial->getString(buffer, COMMAND_BUFFER_SIZE);
|
||||||
if(length > 2)
|
if(length > 2)
|
||||||
{
|
{
|
||||||
char* token = strtok(buffer, " \n");
|
char* token = strtok(buffer, " \n");
|
||||||
if(strcmp(token, "date") == 0)
|
if(strcmp(token, "date") == 0)
|
||||||
{
|
{
|
||||||
DS1302::Timeval time = clock.getTime();
|
DS1302::Timeval time = clock.getTime();
|
||||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "%04u.%02u.%02u %02u:%02u:%02u\n", time.year, time.month, time.day, time.hour, time.min, time.sec);
|
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "%04u.%02u.%02u %02u:%02u:%02u\n", time.year, time.month, time.day, time.hour,
|
||||||
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
time.min, time.sec);
|
||||||
}
|
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
||||||
else if(strcmp(token, "set") == 0)
|
}
|
||||||
{
|
else if(strcmp(token, "set") == 0)
|
||||||
char* year = strtok(NULL, " \n");
|
{
|
||||||
char* mon = strtok(NULL, " \n");
|
char* year = strtok(NULL, " \n");
|
||||||
char* day = strtok(NULL, " \n");
|
char* mon = strtok(NULL, " \n");
|
||||||
char* hour = strtok(NULL, " \n");
|
char* day = strtok(NULL, " \n");
|
||||||
char* min = strtok(NULL, " \n");
|
char* hour = strtok(NULL, " \n");
|
||||||
char* sec = strtok(NULL, " \n");
|
char* min = strtok(NULL, " \n");
|
||||||
if(year != NULL && mon != NULL && day != NULL && hour != NULL && min != NULL && sec != NULL)
|
char* sec = strtok(NULL, " \n");
|
||||||
{
|
if(year != NULL && mon != NULL && day != NULL && hour != NULL && min != NULL && sec != NULL)
|
||||||
DS1302::Timeval time = {atoi(sec),atoi(min),atoi(hour),atoi(day),atoi(mon),atoi(year)};
|
{
|
||||||
clock.setTime(time);
|
DS1302::Timeval time = {atoi(sec),atoi(min),atoi(hour),atoi(day),atoi(mon),atoi(year)};
|
||||||
serial->write_p(PSTR("date and time set\n"));
|
clock.setTime(time);
|
||||||
display.setString("SET ");
|
serial->write_p(PSTR("date and time set\n"));
|
||||||
_delay_ms(1000);
|
display.setString("SET ");
|
||||||
}
|
_delay_ms(1000);
|
||||||
else serial->write_p(PSTR("usage: set [yyyy] [mm] [dd] [hh] [mm] [ss]\n"));
|
}
|
||||||
}
|
else serial->write_p(PSTR("usage: set [yyyy] [mm] [dd] [hh] [mm] [ss]\n"));
|
||||||
else if(strcmp(token, "pause") == 0)
|
}
|
||||||
{
|
else if(strcmp(token, "pause") == 0)
|
||||||
sensorsPaused = true;
|
{
|
||||||
|
sensorsPaused = true;
|
||||||
serial->write_p(PSTR("Sensors paused\n"));
|
serial->write_p(PSTR("Sensors paused\n"));
|
||||||
}
|
}
|
||||||
else if(strcmp(token, "resume") == 0)
|
else if(strcmp(token, "resume") == 0)
|
||||||
{
|
{
|
||||||
sensorsPaused = false;
|
sensorsPaused = false;
|
||||||
serial->write_p(PSTR("Sensors resumed\n"));
|
serial->write_p(PSTR("Sensors resumed\n"));
|
||||||
}
|
}
|
||||||
else if(strcmp(token, "list") == 0)
|
else if(strcmp(token, "list") == 0)
|
||||||
{
|
{
|
||||||
serial->write_p(PSTR("Sensors:\n"));
|
serial->write_p(PSTR("Sensors:\n"));
|
||||||
for(uint8_t i = 0; i < sensors->count(); ++i) printSensor(sensors->at(i), serial);
|
for(uint8_t i = 0; i < sensors->count(); ++i) printSensor(sensors->at(i), serial);
|
||||||
serial->write('\n');
|
serial->write('\n');
|
||||||
}
|
}
|
||||||
else if(strcmp(token, "erase") == 0)
|
else if(strcmp(token, "erase") == 0)
|
||||||
{
|
{
|
||||||
for(uint16_t i = 0; i < 1024; i++) EEPROM_write_char(i, 0);
|
for(uint16_t i = 0; i < 1024; i++) EEPROM_write_char(i, 0);
|
||||||
serial->write_p(PSTR("EEPROM erased\n"));
|
serial->write_p(PSTR("EEPROM erased\n"));
|
||||||
}
|
}
|
||||||
else if(strcmp(token, "dump") == 0)
|
else if(strcmp(token, "dump") == 0)
|
||||||
{
|
{
|
||||||
for(uint16_t i = 0; i < 1024; i++)
|
for(uint16_t i = 0; i < 1024; i++)
|
||||||
{
|
{
|
||||||
if(i != 0) serial->putChar(',');
|
if(i != 0) serial->putChar(',');
|
||||||
serial->write((uint16_t)EEPROM_read_char(i));
|
serial->write((uint16_t)EEPROM_read_char(i));
|
||||||
}
|
}
|
||||||
serial->putChar('\n');
|
serial->putChar('\n');
|
||||||
}
|
}
|
||||||
else if(strcmp(token, "free") == 0)
|
else if(strcmp(token, "free") == 0)
|
||||||
{
|
{
|
||||||
serial->write_p(PSTR("Free Ram: "));
|
serial->write_p(PSTR("Free Ram: "));
|
||||||
serial->write(freeRAM());
|
serial->write(freeRAM());
|
||||||
serial->write_p(PSTR(" Bytes.\n"));
|
serial->write_p(PSTR(" Bytes.\n"));
|
||||||
}
|
}
|
||||||
else if(strcmp(token, "beep") == 0)
|
else if(strcmp(token, "beep") == 0)
|
||||||
{
|
{
|
||||||
serial->write_p(PSTR("Beeping\n"));
|
serial->write_p(PSTR("Beeping\n"));
|
||||||
ringging = true;
|
ringging = true;
|
||||||
_delay_ms(1000);
|
_delay_ms(1000);
|
||||||
serial->write_p(PSTR("Done\n"));
|
serial->write_p(PSTR("Done\n"));
|
||||||
ringging = false;
|
ringging = false;
|
||||||
}
|
}
|
||||||
else if(strcmp(token, "help") == 0)
|
else if(strcmp(token, "help") == 0)
|
||||||
{
|
{
|
||||||
printHelp(serial);
|
printHelp(serial);
|
||||||
}
|
}
|
||||||
else serial->write_p(PSTR("Not a valid command\n"));
|
else serial->write_p(PSTR("Not a valid command\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayItems(const DS1302::Timeval& time, int16_t temp, int16_t humid)
|
void displayItems(const DS1302::Timeval& time, int16_t temp, int16_t humid)
|
||||||
{
|
{
|
||||||
switch(displaying)
|
switch(displaying)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
writePin(&PORTB, PB4, time.sec % 2);
|
writePin(&PORTB, PB4, time.sec % 2);
|
||||||
snprintf(buffer, 9, " %02u%02u", time.hour, time.min);
|
snprintf(buffer, 9, " %02u%02u", time.hour, time.min);
|
||||||
display.setString(buffer);
|
display.setString(buffer);
|
||||||
display.setSegments((alm & almA ? DualCl56::SEG_A : 0) | (alm & almB ? DualCl56::SEG_D : 0), 0);
|
display.setSegments((alm & almA ? DualCl56::SEG_A : 0) | (alm & almB ? DualCl56::SEG_D : 0), 0);
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
writePin(&PORTB, PB4, false);
|
|
||||||
snprintf(buffer, 9, "%02u%02u%04u", time.day, time.month, time.year);
|
|
||||||
display.setString(buffer, DualCl56::DP_B | DualCl56::DP_D);
|
|
||||||
break;
|
|
||||||
#ifdef HAS_DHT
|
|
||||||
case 2:
|
|
||||||
writePin(&PORTB, PB4, false);
|
|
||||||
snprintf(buffer, 9, "0 1%4u", temp);
|
|
||||||
display.setString(buffer, DualCl56::DP_G);
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 1:
|
||||||
writePin(&PORTB, PB4, false);
|
writePin(&PORTB, PB4, false);
|
||||||
snprintf(buffer, 9, "0 2%4u", humid);
|
snprintf(buffer, 9, "%02u%02u%04u", time.day, time.month, time.year);
|
||||||
display.setString(buffer, DualCl56::DP_G);
|
display.setString(buffer, DualCl56::DP_B | DualCl56::DP_D);
|
||||||
|
break;
|
||||||
|
#ifdef HAS_DHT
|
||||||
|
case 2:
|
||||||
|
writePin(&PORTB, PB4, false);
|
||||||
|
snprintf(buffer, 9, "0 1%4u", temp);
|
||||||
|
display.setString(buffer, DualCl56::DP_G);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
writePin(&PORTB, PB4, false);
|
||||||
|
snprintf(buffer, 9, "0 2%4u", humid);
|
||||||
|
display.setString(buffer, DualCl56::DP_G);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
writePin(&PORTB, PB4, false);
|
writePin(&PORTB, PB4, false);
|
||||||
snprintf(buffer, 9, "%u%3u%4u",
|
snprintf(buffer, 9, "%u%3u%4u",
|
||||||
sensors[displaying-DPY_FIXED_ITEMS].id,
|
sensors[displaying-DPY_FIXED_ITEMS].id,
|
||||||
sensors[displaying-DPY_FIXED_ITEMS].type,
|
sensors[displaying-DPY_FIXED_ITEMS].type,
|
||||||
sensors[displaying-DPY_FIXED_ITEMS].field);
|
sensors[displaying-DPY_FIXED_ITEMS].field);
|
||||||
display.setString(buffer, sensors[displaying-DPY_FIXED_ITEMS].type == 1 || sensors[displaying-2].type == 2 ? DualCl56::DP_G : 0);
|
display.setString(buffer, sensors[displaying-DPY_FIXED_ITEMS].type == 1
|
||||||
}
|
|| sensors[displaying-2].type == 2 ? DualCl56::DP_G : 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setAlarm(DS1302::Timeval* alarm, uint8_t leadingSegment = 0)
|
void setAlarm(DS1302::Timeval* alarm, uint8_t leadingSegment = 0)
|
||||||
{
|
{
|
||||||
writePin(&PORTB, PB4, true);
|
writePin(&PORTB, PB4, true);
|
||||||
while(setting)
|
while(setting)
|
||||||
{
|
{
|
||||||
if(settingOffset+alarm->min > 59)
|
if(settingOffset+alarm->min > 59)
|
||||||
{
|
{
|
||||||
if(++alarm->hour > 23) alarm->hour = 0;
|
if(++alarm->hour > 23) alarm->hour = 0;
|
||||||
@ -328,25 +330,25 @@ void setAlarm(DS1302::Timeval* alarm, uint8_t leadingSegment = 0)
|
|||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
DDRB = (1 << PB1) | ( 1 << PB2) | ( 1 << PB3) | ( 1 << PB4) | ( 1 << PB5);
|
DDRB = (1 << PB1) | ( 1 << PB2) | ( 1 << PB3) | ( 1 << PB4) | ( 1 << PB5);
|
||||||
DDRD = (1<<PD4) | (1<<PD2);
|
DDRD = (1<<PD4) | (1<<PD2);
|
||||||
PORTD |= (1<<PD6) | (1<<PD7);
|
PORTD |= (1<<PD6) | (1<<PD7);
|
||||||
|
|
||||||
TCCR2B = 1<<CS22;
|
TCCR2B = 1<<CS22;
|
||||||
TIMSK2 = 1;
|
TIMSK2 = 1;
|
||||||
|
|
||||||
TCCR1B = 1<<CS10;
|
TCCR1B = 1<<CS10;
|
||||||
|
|
||||||
EICRA = 1<<ISC10;
|
EICRA = 1<<ISC10;
|
||||||
EIMSK = 1<<INT1;
|
EIMSK = 1<<INT1;
|
||||||
|
|
||||||
sei();
|
sei();
|
||||||
|
|
||||||
Serial serial;
|
Serial serial;
|
||||||
serial.write_p(PSTR("SensorDisplay v0.4 starting\n"));
|
serial.write_p(PSTR("SensorDisplay v0.4 starting\n"));
|
||||||
|
|
||||||
DS1302::Timeval alarmA = EEPROM_read_class<DS1302::Timeval>(128);
|
DS1302::Timeval alarmA = EEPROM_read_class<DS1302::Timeval>(128);
|
||||||
DS1302::Timeval alarmB = EEPROM_read_class<DS1302::Timeval>(128+64);
|
DS1302::Timeval alarmB = EEPROM_read_class<DS1302::Timeval>(128+64);
|
||||||
DS1302::Timeval time = clock.getTime();
|
DS1302::Timeval time = clock.getTime();
|
||||||
alm = EEPROM_read_char(0);
|
alm = EEPROM_read_char(0);
|
||||||
uint8_t oldAlm = alm;
|
uint8_t oldAlm = alm;
|
||||||
|
|
||||||
@ -357,10 +359,10 @@ int main()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAS_DHT
|
#ifdef HAS_DHT
|
||||||
Dht11 sensor(&PORTD, &PIND, &DDRD, PD2);
|
Dht11 sensor(&PORTD, &PIND, &DDRD, PD2);
|
||||||
#endif
|
#endif
|
||||||
if(time.day == 28 && time.month == 5)
|
if(time.day == 28 && time.month == 5)
|
||||||
{
|
{
|
||||||
if constexpr(bdayMsg)
|
if constexpr(bdayMsg)
|
||||||
{
|
{
|
||||||
display.setString("HAPPY ");
|
display.setString("HAPPY ");
|
||||||
@ -370,31 +372,35 @@ int main()
|
|||||||
display.setString("SASA ");
|
display.setString("SASA ");
|
||||||
_delay_ms(1000);
|
_delay_ms(1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
display.setString(welcomeString);
|
display.setString(welcomeString);
|
||||||
_delay_ms(1000);
|
_delay_ms(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAS_DHT
|
#ifdef HAS_DHT
|
||||||
sensor.read();
|
sensor.read();
|
||||||
_delay_ms(1000);
|
_delay_ms(1000);
|
||||||
sensor.read();
|
sensor.read();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
W433DataReciver reciver(&PIND, PD3, &TCNT1, &TIFR1, &packetHandler, reinterpret_cast<void*>(&serial), &reciverError);
|
//enable interrupt
|
||||||
|
TIMSK1 |= 1 << OCIE1A;
|
||||||
|
OCR1A = W433DataReciver::calculateOverflowRegister(2000, 1);
|
||||||
|
TCCR1B = 1<<CS10 | 1<<WGM12;
|
||||||
|
W433DataReciver reciver(&PIND, PD3, &packetHandler, reinterpret_cast<void*>(&serial), &reciverError);
|
||||||
|
|
||||||
uint8_t deleteDate = 0;
|
uint8_t deleteDate = 0;
|
||||||
|
|
||||||
serial.write_p(PSTR("Ready\n"));
|
serial.write_p(PSTR("Ready\n"));
|
||||||
|
|
||||||
uint16_t i = 0;
|
uint16_t i = 0;
|
||||||
|
|
||||||
bool oldRelaySetting = false;
|
bool oldRelaySetting = false;
|
||||||
|
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
#ifdef HAS_DHT
|
#ifdef HAS_DHT
|
||||||
if((displaying == 2 || displaying == 3) && i%2048 == 0)
|
if((displaying == 2 || displaying == 3) && i%2048 == 0)
|
||||||
{
|
{
|
||||||
@ -433,7 +439,7 @@ int main()
|
|||||||
time = clock.getTime();
|
time = clock.getTime();
|
||||||
|
|
||||||
#ifdef HAS_DHT
|
#ifdef HAS_DHT
|
||||||
displayItems(time, sensor.temperature, sensor.humidity);
|
displayItems(time, sensor.temperature, sensor.humidity);
|
||||||
#else
|
#else
|
||||||
displayItems(time, 0, 0);
|
displayItems(time, 0, 0);
|
||||||
#endif
|
#endif
|
||||||
@ -452,19 +458,19 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAS_RECIVER
|
#ifdef HAS_RECIVER
|
||||||
serialDispatch(&serial, &sensors);
|
serialDispatch(&serial, &sensors);
|
||||||
if(deleteDate != time.day)
|
if(deleteDate != time.day)
|
||||||
{
|
{
|
||||||
displaying = 0;
|
displaying = 0;
|
||||||
sensors.clear();
|
sensors.clear();
|
||||||
deleteDate = time.day;
|
deleteDate = time.day;
|
||||||
display.setString("CLEAR ");
|
display.setString("CLEAR ");
|
||||||
_delay_ms(1000);
|
_delay_ms(1000);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user