Умный будильник
Главная особенность умного будильника в сравнении с обычным заключается в том, что он будит человека ото сна в наиболее подходящее время, ориентируясь на его суточные биоритмы сна и возраст.
Для точного подсчета времени используется модуль часов DS3231:

Для создания звукового сигнала используется пьезоизлучатель (пьезодинамик):

Схема подключения модуля часов и пьезодинамика к плате Arduino UNO R3
Собранный прототип умного будильника
Ввод возраста пользователя

Устройство имеет 4 режима работы (отображения):
Режим меню – стандартный режим работы будильника. На первой строке дисплея выводится информация о текущем времени и о времени срабатывания будильника. Вторая строка показывает название того диалогового окна (настройки), которое будет запущено при нажатии кнопки SELECT;
Меню
Режим диалогового окна – делится на 3 страницы: Set time, Set alarm, Smart alarm. Set time позволяет установить текущее время. Set alarm – установить произвольный будильник; Smart alarm запрашивает у пользователя время, в которое тот ляжет спать и время, до которого ему нужно проснуться.
Диалоговое окно
Режим сработавшего будильника – срабатывает, когда текущее время и время будильника совпадают. Активирует цикличный звуковой сигнал и требует решения случайно сгенерированной задачи на сложение/вычитание/умножение для деактивации будильника и перехода в режим меню.
Пример задачи
Режим ожидания – включается в том случае, если пользователь 10 секунд бездействует в режиме меню. При этом яркость экрана заметно снижается. На дисплей выводится информация о текущем времени и о времени установленного будильника.
Будильник в режиме ожидания

