В этом руководстве мы разберём, как создать умную лампу для улучшения качества сна и лёгкого пробуждения. Я разработал этот концепт, вдохновившись онлайн-калькуляторами сна и проведя небольшое исследование в интернете.
Важно отметить: лампа не совершит чудо, если вы недосыпаете из-за переработок или бесконтрольного просмотра YouTube. Считайте её улучшенной заменой будильника, которая выполняет две основные функции:
-
Способствует плавному пробуждению. Лампа имитирует восход солнца, постепенно увеличивая яркость. Когда наступает время подъёма, она меняет освещение с тёплого оранжевого на яркий белый, создавая эффект красивого рассвета в течение 5–10 минут.
-
Выбирает оптимальное время пробуждения. Лампа рассчитывает лучшее время для пробуждения, основываясь на желаемом времени подъёма и фактическом времени засыпания, чтобы разбудить вас в конце цикла сна.
Далее разберём всё подробно.
Необходимые материалы:
-
Плата Xiao ESP32C3
-
Адресные светодиодные ленты WS2813
-
ИК-датчик приближения
-
Экран старого нерабочего ноутбука для переработки диффузионного слоя (или стандартный диффузионный слой)
-
Соединительные провода
-
Паяльник
-
Дерево или пенокартон
-
Краска
Шаг 1: Теория
Чтобы понять, как работает лампа, нужно разобраться в концепции циклов сна.
Когда вы засыпаете, ваш организм проходит через четыре основные стадии сна:
-
Первая стадия (NREM-1). Это переходная стадия между бодрствованием и сном: мышцы начинают расслабляться, частота сердцебиения и дыхания снижается. Мозговая активность становится менее интенсивной, доминируют альфа- и тета-волны. Обычно длится 5-10 минут, человек легко пробуждается.
-
Вторая стадия (NREM-2). Это стадия легкого сна, которая занимает около 50% общего времени сна. Температура тела снижается, а сердечный ритм и дыхание становятся более регулярными.
-
Третья стадия (NREM-3). Это стадия глубокого или медленного сна, и она особенно важна для физического и психологического восстановления. Организм занимается восстановлением: вырабатывается гормон роста, регенерируются ткани, укрепляется иммунная система. Проснуться на этой стадии сложно, и если это происходит, вы можете чувствовать себя дезориентированным.
-
Четвёртая стадия (REM). Это фаза быстрого сна, характеризующаяся активным движением глаз под закрытыми веками. Мозговая активность становится почти такой же, как при бодрствовании. В этой стадии человек видит сны. Мышцы тела находятся в состоянии атонии (мышцы полностью расслабленны и даже парализованы), чтобы предотвратить физическое воспроизведение снов. Длится от 10 до 60 минут, увеличиваясь ближе к утру.
Все четыре стадии образуют один цикл сна, который длится около 90 минут. За ночь вы проходите через несколько таких циклов. Хотя их продолжительность может немного варьироваться у разных людей, в среднем она составляет 90 минут, согласно исследованиям.
Например, в работе Власты Бржезиновой изучалась длительность циклов сна у людей разных возрастов. Несмотря на некоторые различия, средняя длительность составила около 90 минут. Другие исследования подтверждают этот результат. Моё исследование собрано в документе Google. Если хотите узнать больше, можете ознакомиться (оригинал, перевод).
Шаг 2: Онлайн-калькуляторы сна


Онлайн-калькуляторы сна, такие как этот, представляют собой простые инструменты, которые помогают определить, во сколько лучше всего лечь спать или проснуться, основываясь на концепции циклов сна. Как они работают:
-
Обратный расчёт от времени пробуждения: Вы вводите желаемое время, когда вам нужно проснуться.
-
Расчёт оптимального времени для засыпания: Используя среднюю длительность цикла сна (90 минут), калькулятор рассчитывает интервалы по 90 минут в обратном порядке и предлагает несколько возможных вариантов времени для отхода ко сну. Эти периоды рассчитаны так, чтобы вы прошли определённое количество полных циклов сна до пробуждения.
Пример:
Если вам нужно проснуться в 7:00 утра, калькулятор может предложить следующие времена для засыпания:
-
22:00 (6 полных циклов сна + время для засыпания)
-
23:30 (5 полных циклов сна + время для засыпания)
-
1:00 (4 полных цикла сна + время для засыпания)
Мы сделаем то же самое, но в обратном порядке.
Шаг 3: Концепция

Как я уже упоминал, лампа определяет оптимальное время для пробуждения на основе вашего желаемого времени подъёма и времени засыпания, тем самым гарантируя, что вы проснётесь в конце цикла сна.
Пример:
Предположим, вы ложитесь спать в 22:30, а хотите проснуться примерно в 6:00. Лампа выполняет расчёты и определяет окончания трёх, четырёх и пяти циклов сна: 3:00, 4:30 и ровно 6:00. В этом случае лампа разбудит вас в 6:00.
Теперь представьте, что вы ложитесь позже, в 23:30. Расчёты будут следующими: окончание третьего цикла — в 4:00, четвёртого — в 5:30, пятого — в 7:00. Так как целевое время подъёма — 6:00, лампа выберет ближайшее окончание цикла, то есть 5:30, и разбудит вас в это время.
Шаг 4: Определение времени засыпания


Вы можете спросить: «Как эта лампа узнает, когда я действительно засыпаю?» На самом деле, она не знает этого точно. Однако она делает разумное предположение, опираясь на два ключевых допущения.
-
Какое-то время занимает подготовка ко сну. Большинство из нас перед сном какое-то время скроллят телефон или читают книгу в постели.
-
Среднее время засыпания — около 15 минут. Согласно исследованиям, взрослому человеку обычно требуется примерно 15 минут, чтобы заснуть после того, как он лёг в кровать. Это же значение часто используется в онлайн-калькуляторах сна.
Как это работает:
-
Под лампу крепится небольшой датчик приближения.
-
Когда вы заканчиваете пользоваться телефоном или читать книгу, вы кладёте предмет перед лампой, и датчик приближения это фиксирует.
-
Лампа ждёт какой-то промежуток времени, чтобы убедиться, что вы не берёте предмет обратно, и затем выключается.
-
После этого лампа запускает обратный отсчёт в 15 минут, предполагая, что это момент вашего засыпания.
-
Когда этот промежуток времени истекает, лампа рассчитывает оптимальное время для пробуждения, используя описанный ранее алгоритм.
Шаг 5: Дизайн лампы



Абажур лампы можно напечатать на 3D-принтере, STL-файлы прилагаю ниже.
Обратите внимание, что у моей лампы красивая деревянная рама и основание. Но это не дерево! Это пенокартон.
Как сделать:
Нам понадобятся две U-образные детали. Каждая из них имеет небольшой выступ снизу, чтобы создать пространство для датчика приближения. В центре каждой детали есть вырез, чтобы соединить их вместе.
Основание я сделал из пустой основы от скотча.
Шаг 6: Диффузионный слой



Для рассеивания света мы будем использовать необычный материал — диффузионный слой из экрана сломанного ноутбука. Их можно легко найти в мастерских по утилизации электроники. Этот материал идеально подходит для нашего проекта, так как он красиво рассеивает свет, придавая эффект матового стекла.
Шаг 7: Реалистичный вид дерева



Теперь я покажу, как придать пенокартону реалистичную текстуру древесины.
-
Первый слой:
Смешайте акриловую краску светло-коричневого цвета и покройте все поверхности. Убедитесь, что края деталей также прокрашены равномерно. Дайте краске полностью высохнуть. -
Второй слой:
Используйте более тёмный оттенок коричневой акварели, слегка разбавленный водой. С помощью губки нанесите длинные, прямые мазки по поверхности, имитируя волокна древесины. Пройдитесь по всем деталям в одном направлении, не забывая про края. Дайте высохнуть. -
Финальный слой:
Смешайте тёмно-коричневую акварель с небольшим количеством чёрной краски. Разбавьте её чуть меньше, чем предыдущий слой. С помощью той же техники губки нанесите мазки, чтобы добавить глубину и детали. После полного высыхания у вас будет красивая отделка под дерево. Никто не догадается, что под ней пенокартон!
Шаг 8: Электроника



Пока детали сохнут, займёмся электроникой.
Компоненты:
-
ESP32 Xiao S3: Миниатюрная плата, необходимая для получения времени из интернета и передачи сигналов на светодиоды.
-
Светодиоды WS2813: Высококачественная адресуемая светодиодная лента. Она необходима для точного воспроизведения цветов, особенно для создания расслабляющей атмосферы вечером.
Для обоих компонентов я использовал электронику от Seeed Studio, так как у них надёжные комплектующие и качественные светодиоды.
Мы также будем использовать небольшой ИК-датчик приближения. Необязательно брать дорогой датчик — подойдёт простой и недорогой вариант.
Подготовка:
-
Обрежьте светодиодную ленту до 10 светодиодов.
-
Подключите компоненты согласно схеме соединений.
-
Для тестирования я написал простой код, который воспроизводит мягкий тёплый белый свет. Его можно скачать ниже.
WS2813_warmWhite.ino: скачать
Шаг 9: Соединения




Теперь подключим всю электронику.
-
Для Xiao ESP32 создайте небольшой разъём с проводами, припаянными к контактам. Я рассказывал, как это сделать, в предыдущем проекте.
К сожалению, именно на этом этапе мой паяльник перестал работать! Поэтому для оставшихся соединений мне пришлось использовать соединительные провода. Вы можете следовать схеме подключения, чтобы выполнить соединения.
-
Оставьте три разъёма типа “мама” свободными для подключения датчика приближения.
-
Если у вас нет паяльника, временно используйте соединительные провода.
Примечание:
Хотя проводка может выглядеть неаккуратно, она будет скрыта внутри лампы. Как только у меня появится новый паяльник, я обязательно приведу всё в порядок, сделав надёжные соединения пайкой.
Шаг 10: Сборка




-
Склейка U-образных секций:
Возьмите резиновый клей и нанесите щедрый слой на пазы обеих U-образных частей. Дайте клею высохнуть на воздухе примерно 5 минут, а затем плотно прижмите части друг к другу. Это создаст более прочное соединение. -
Установка диффузионного слоя:
Аккуратно оберните диффузионный слой вокруг основания. Нанесите немного резинового клея на перекрывающиеся края и склейте их вместе. Повторите тот же процесс для крышки основания.
Как вы должно быть заметили, диффузионный слой и крышка основания не приклеиваются непосредственно к самому основанию. Это сделано для того, чтобы их можно было легко снять при необходимости обслуживания или доступа к электронике. -
Слот для USB-C:
В основании я сделал небольшой слот для кабеля USB-C. Это позволяет подключать питание к ESP32 и при необходимости перепрограммировать устройство без разборки конструкции. -
Сборка:
Осторожно вставьте всю базовую конструкцию между двумя склеенными U-образными секциями. -
Установка датчика приближения:
Прикрепите датчик приближения снизу с помощью двухстороннего скотча.
Теперь основная структура лампы готова!
Шаг 11: Код

Теперь пришло время загрузить основной код на ESP32. Он в основном следует тем же принципам, которые мы обсуждали в начале.
Основные функции кода:
-
Получение текущего времени: Код подключается к интернету для получения текущего времени. Если вы используете модуль RTC, эту функцию можно отключить.
-
runSunriseAnimation()
: Эта функция отвечает за симуляцию анимации восхода солнца, как описано ранее. -
calculateWakeTime()
: Функция рассчитывает время пробуждения на основе текущего времени (времени засыпания). Она предполагает, что на засыпание уходит 15 минут, а продолжительность цикла сна составляет 90 минут. Функция находит ближайшее время для пробуждения относительно заданного целевого времени (в примере это 7:00 утра).
Примечание: Честно говоря, мой код может быть не идеальным, поэтому я рекомендую вам взглянуть на него. Если вы заметите области, которые можно улучшить, пожалуйста, поделитесь своими предложениями в комментариях — я с удовольствием выслушаю ваши идеи и научусь чему-то новому. Однако на данный момент код работает так, как задумано, и позволяет лампе функционировать.
Код можно найти ниже.
SClamp_optimized.ino: скачать
Шаг 12: Заключение



Вот и всё, наша лампа, основанная на циклах сна, полностью готова. Кто бы мог подумать, что это не настоящее дерево? К тому же, мы дали вторую жизнь экрану от старого ноутбука — это двойная победа!
Использование:
-
Включите лампу перед тем, как начать готовиться ко сну, будь то просмотр телефона или чтение книги.
-
Когда вы будете готовы ко сну, положите телефон на стол перед лампой и спокойно засыпайте.
-
Лампа всё сделает сама: плавно выключится и разбудит вас в оптимальное время, не нарушая ваш цикл сна.
В будущем хотелось бы добавить динамик для воспроизведения звуков вместе с эффектом восхода солнца, чтобы сделать пробуждение ещё более приятным.
Спасибо, что дочитали до конца!
В заключение приглашаем всех желающих, в особенности начинающих тестировщиков, на открытый урок 23 января: «Мнемоники для тестирования в начале пути». Записаться можно по ссылке.
Весь список открытых уроков по всем IT-направлениям можно посмотреть в календаре.
Автор: kmoseenk