После подключения модуля RTC, мы можем организовать запуск исполнительных устройств "умного дома" по расписанию. Для этого создадим объект, описывающий будильник:
struct ALARM{
int hours; // час срабатывания будильника
int minutes; // минута срабатывания будильника
int relay; // номер реле исполнительного устройства (0-N)
int value; // устанавливаемое значение (0 или 1)
};
И создадим список необходимых будильников:
ALARM alarms[]={{7,30,2,1},
{7,35,2,0},
{8,30,1,1},
{8,50,1,0}
};
В цикле loop() нашего скетча добавим проверку наступления события по расписанию и необходимых действий при наступлении события (см. листинг 7.4).
Листинг 7.4
void loop() {
…………
// проверяем наступление события для будильников
if(millis()-millisalarms >= 20000) {
for(int i=0;i<sizeof(alarms)/8;i++) {
if(alarms[i].hours==tm.Hour && alarms[i].minutes==tm.Minute) {
// установить реле
digitalWrite(pinrelays[alarms[i].relay],alarms[i].value);
}
}
millisalarms=millis();
}
……..
}
Скачать данный полностью скетч можно на сайте www.arduino-kit.ru по ссылке.