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

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


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

Устройство имеет 4 режима работы (отображения):
Режим меню – стандартный режим работы будильника. На первой строке дисплея выводится информация о текущем времени и о времени срабатывания будильника. Вторая строка показывает название того диалогового окна (настройки), которое будет запущено при нажатии кнопки SELECT;

Режим диалогового окна – делится на 3 страницы: Set time, Set alarm, Smart alarm. Set time позволяет установить текущее время. Set alarm – установить произвольный будильник; Smart alarm запрашивает у пользователя время, в которое тот ляжет спать и время, до которого ему нужно проснуться.

Режим сработавшего будильника – срабатывает, когда текущее время и время будильника совпадают. Активирует цикличный звуковой сигнал и требует решения случайно сгенерированной задачи на сложение/вычитание/умножение для деактивации будильника и перехода в режим меню.

Режим ожидания – включается в том случае, если пользователь 10 секунд бездействует в режиме меню. При этом яркость экрана заметно снижается. На дисплей выводится информация о текущем времени и о времени установленного будильника.
