9 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Будильник рассвет своими руками на Arduino

Содержание

Делаем самостоятельно будильник на Arduino

Узнаем как реализовать на основе Arduino будильник с помощью модуля RTC DS3231.

В этой статье мы собираемся сделать Ардуино будильник, в котором мы будем использовать модуль RTC DS3231, чтобы получить текущее время и дату, а OLED покажет это время и дату.

Мы будем использовать библиотеку EEPROM для хранения времени будильника, которое мы будем вводить, используя модуль клавиатуры 4X4.

Когда новое введенное время будильника будет соответствовать текущему времени будильника, тогда зуммер начнет подавать звуковой сигнал, пока мы не удержим клавишу «C» на клавиатуре. Клавиша «#» будет использоваться для изменения пароля.

Шаг 1. Требуемые компоненты

Необходимыми компонентами для устройства будильника Arduino являются:

  • Arduino Uno
  • 128X32 Монохромный OLED дисплей
  • Модуль RTC DS3231
  • 4X4 клавиатура
  • 9В аккумулятор или батарея
  • Зуммер
  • Переключатель
  • Соединительные провода

Шаг 2. Схема соединения

Принципиальная схема устройства будильника Arduino достаточно большая. Прежде всего, подключите OLED к Arduino. Соединения для OLED с Arduino следующие:

  • CS-выход OLED на пин 10 Arduino
  • DC-вывод OLED на пин 9 Arduino
  • RST вывод OLED на вывод 8 Arduino
  • D1 или CLK вывод OLED на вывод 11 Arduino
  • D0 или DIN-штырь OLED на вывод 13 Arduino

Затем подключите модуль DS3231 к Arduino. Соединения следующие:

  • Подключите GND DS3231 к GND Arduino.
  • Подключите VCC DS3231 к 5V Arduino.
  • Подключите SDA DS3231 к A4 Arduino.
  • Подключите SCL DS3231 к A5 Arduino.

После этого подключите клавиатуру 4X4 к Arduino. Подключите первые 4 контакта клавиатуры, строка A0, A1, A2, A3 и последние четыре, которые относятся к контактам столбца к 6, 5, 4 и 3.

Подключите положительный контакт зуммера к контакту 7 Arduino и отрицательный сигнал зуммера к GND Arduino.

В конце, подключите положительный провод батареи к одному концу переключателя, а другой конец переключателя — к Vin Arduino.

Затем подключите отрицательный провод батареи к заземлению Arduino.

Шаг 3. Код для Ардуино бдильника

Сам код можно скачать или скопировать ниже. Дальше будет объяснение кода и ссылки на скачивание нужных библиотек.

Первым делом мы включили библиотеки для клавиатуры, DS3231 RTC и OLED. Библиотека EEPROM, которую мы включили, поможет нам сохранить время будильника. OLED работает с Arduino через связь SPI, поэтому мы включили библиотеку SPI. Аналогично, мы включили библиотеку «Wire» для DS3231, потому что DS3231 работает с Arduino через связь I2C, а библиотека «Wire» предназначена для связи I2C.

В приведенной ниже части кода мы определили контакты для DS3231, зуммера и OLED. Затем мы инициализировали некоторые переменные, которые помогут нам хранить некоторые данные. После этого мы определили контакты для клавиатуры 4X4.

В функции настройки (setup) мы запустили связь «wire» и «rtc». Затем мы объявили пин зуммера в качестве выхода и назвали функцию «welcome», которая напечатает «Добро пожаловать» на OLED.

В функции цикла (loop) мы получаем время и дату из модуля RTC DS3231 и сохраняем их в переменных. Затем мы ищем, нажата ли какая-либо клавиша или нет.

Если нажата клавиша «C», она выключит зуммер и изменит минуты на 60, что остановит будильник от включения на следующий день. Если нажата кнопка «#», она запросит новое время будильника.

В приведенной ниже функции будет сравниваться текущее время со временем будильника, и если время будет соответствовать, то зуммер начнет подавать звуковой сигнал.

Следующая функция Ардуино будильника сохранит время сигнала, введенное вами в переменную, чтобы мы могли сравнить ее с текущим временем.

Функция ниже отображает текущее время, текущую дату и время сигнала на OLED.

Перед загрузкой кода загрузите библиотеки из приведенных ниже ссылок.

Итоговый результат

На видео ниже вы можете посмотреть итоговый результата этого проекта.

Читать еще:  Сверлильный станок из дерева и мотора от шуруповерта

На этом пока всё. Желаем вам новых классных идей и устройств.

БУДИЛЬНИК-РАССВЕТ

28.11.18 версия 1.1: исправлены баги. Добавлены библиотеки

А давайте сделаем максимально дешёвый аналог будильника PHILIPS Wake-Up Light – будильника, который за указанное время до срабатывания заливает вас светом с плавно нарастающей яркостью, то есть имитирует рассвет. Ваш маленький комнатный рассвет, который позволит проснуться бодрым и отдохнувшим за счёт естественных механизмов организма. Несмотря на простоту, проект получил огромную кучу настроек и возможностей реализации самого “рассвета”, не считая сами часы + будильник с настройкой времени.

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций.

Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

В настройках прошивки настройте всё по желанию (яркости, времена, и самое главное – тип регулятора яркости. Также не забудьте про два типа энкодеров, картинки ниже и всё написано в настройках). Часы имеют три прямых настройки (без перепрошивки, установка при помощи энкодера): вкл/выкл будильника, установка времени часов и времени будильника. Все настройки сохраняются в энергонезависимую память и не сбрасываются при перезагрузке (а время так вообще продолжает свой отсчёт благодаря батарейке в RTC модуле). За указанное до будильника в прошивке “время рассвета” яркость начнёт плавно возрастать в указанных в прошивке пределах. По достижению времени будильника начнёт орать пищалка, выключить всё это безобразие можно удержанием кнопки энкодера. Либо дождаться, когда всё выключится автоматически через указанный в прошивке таймаут. Сладких снов!

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

Схема DC 12V

Источником 5V в этой схеме служит бортовой стабилизатор Ардуины, т.е. компоненты питаются от 5V и GND пинов Ардуино! Плавность обеспечивается ШИМ сигналом на мосфет транзистор

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Будильник с эффектом восхода солнца с использованием Arduino

Будильник на Arduino с эффектом рассвета

Существует много доказанных преимуществ пробуждения при плавном увеличении света (как при рассвете), одно из которых включает в себя хорошее настроение, в отличие от разбивающего слух звукового сигнала будильника в темноте. Тем более у кого проблемы с пробуждением в пасмурные зимние дни, то им также помогло бы устройство для иммитации восхода солнца.

К таким можно отнести, например, лампу для пробуждения HF3520 от Philips. Но это довольно дорогая вещь, поэтому в случае отсутствия лишних денег лучше создать свой собственный будильник, который постепенно (и красиво) загорается по утрам. В качестве основы можно использовать Arduino.

Ключевое оборудование, требуемое в данном проекте – это Arduino Uno (или Nano) и модуль часов реального времени TinyRTC DS1307. Также необходима белая светодиодная лента и источник питания постоянного тока с достаточным выходным током.

Схема подключения для будильника на основе Arduino

Ниже показана схема подключения для будильника со световым эффектом рассвета на основе Arduino, TinyRTC DS1307 и светодиодной ленты.

Подключение оборудования довольно просто. Arduino Uno питается от внешнего источника напряжения постоянного тока (12 В) через входное гнездо, а регулируемый выход 5 В от платы Arduino используется в качестве источника питания модуля TinyRTC (5 В и GND). Интерфейс I2C модуля TinyRTC естественным образом подключен к интерфейсу I2C Arduino (SCL-A5 и SDA-A4). Цифровой контакт 2 (D2) Arduino – это вход переключателя, а цифровой контакт 3 (D3) — выход светодиода. Белая светодиодная лента также работает от того же внешнего источника 12 В постоянного тока. Следующая схема дает вам четкое представление о всей структуре оборудования.

Используемая здесь 5-метровая светодиодная лента теплого белого цвета с 300 светодиодами «SMD-3528» (60 светодиодов на метр) потребляет мощность 24 Вт при 12 В постоянного тока, то есть 4,8 Вт на метр. Исходя из этого, в качестве источника питания прототипа можно взять SMPS-адаптер 12 В постоянного тока / 3 A. Полевой транзистор MOSFET IRLZ44 (TO-220AB), используемый в качестве драйвера светодиодной ленты (T1), является универсально предпочтительным типом для всех коммерческих / промышленных применений при уровнях рассеиваемой мощности примерно до 50 Вт. MOSFET логического уровня используется здесь, потому что он полностью включается выходом логического уровня стандартного микроконтроллера.

Даже если вы можете управлять МОП-транзистором логического уровня непосредственно от входов/выходов Arduino, было бы лучше добавить резистор ограничителя тока (R1) на 100 Ом между ними, чтобы защитить входы/выходы. Кроме того, другой (дополнительный) резистор 10К (R2) между затвором и источником поможет полностью отключить MOSFET, когда вход/выход переходит в низкое состояние.

Читать еще:  Шприц тюбик для клея своими руками

Код программы будильника с эффектом рассвета на Arduino

Сам скетч очень прост, так как устройство ждет времени «пробуждения», включает свет в нужное время и постепенно повышает уровень этого света. Здесь используется 5:40 в качестве времени пробуждения с 5 секундами между приращениями, чтобы свет достиг своего полного уровня яркости сразу после 6:00 (примерно через 20 минуту). Обратите внимание, что код включает в себя функцию переключения; следовательно, S1 должен быть в состоянии «включено», чтобы поддерживать систему в рабочем состоянии (с помощью тумблера вы сможете включать и выключать его).

Работа будильника с эффектом рассвета на Arduino

Создание атмосферы – самая сложная часть этого проекта. Вы можете организовать систему как отдельную настольную лампу для пробуждения (с более короткой полосой света) или сложить более длинную полосу света, чтобы окно вашей спальни освещалось так, как если бы это был солнечный свет снаружи (разместив полосу света позади жалюзи, чтобы осветить жалюзи с мягким свечением, это действительно может создать красивую симуляцию восхода солнца).

Часы со световым будильником на Ардуино, которые облегчат процесс пробуждения по утрам

Если вам трудно вставать по утрам, и вы ненавидите трещащий звук будильника, то можете создать собственный, затратив на это небольшие средства и немного времени.

Световой будильник спроектирован так, чтобы пробуждать вас в спокойном ритме, постепенно увеличивая свою яркость к тому моменту, когда вам нужно проснуться. Идея состоит в том, чтобы взывать к нашей естественной склонности вставать с восходом солнца и «перехитрить» наше тело, приводя его к сбалансированному циркадному ритму, облегчающему процесс пробуждения. Конечно же, не все из вас будут стремиться к этому, но лично я обнаружил, что тёплые цвета действуют очень умиротворяюще утром и мне такой будильник очень помогает.

Многие будильники на Ардуино стараются воспроизвести спектр солнечного света при помощи специальных лампочек, повторяющих оттенок и температуру цвета утреннего солнца. Тем не менее, в нашем варианте будут использоваться обычные RGB диоды, которые могут примерно воссоздать ощущение естественного освещения и, кроме того, могут создать различные уникальные цветовые комбинации и эффекты. Сборка будет базироваться на Ардуино Уно с модулем Real Time Clock (RTC) и 7 сегментным экраном часов.

Шаг 1: Список материалов

  • Деревянная шкатулка (корпус) (Amazon)
  • Ардуино Уно или его эквивалент
  • Регулятор вольтажа LM7805 5V
  • Модуль Real Time Clock (RTC) (Amazon)
  • 7-сегментный светодиодный дисплей для часов (Amazon)
  • Потенциометр (Amazon)
  • Датчик угла поворота (крутилка) (Amazon)
  • Кнопки для крутилок. Можно использовать кнопки для электрогитары
  • Кнопочный выключатель со светодиодом (Amazon)
  • Акриловые стержни (Amazon)
  • RGB светодиоды WS2812B – 8 штук (Amazon)
  • Винты и гайки
  • Небольшие магниты
  • Печатная или макетная плата + провода
  • Морилка для дерева

Шаг 2: Дизайн

Схему сборки вы найдёте по ссылке. Ключевым элементом часов будет модуль RTC. Он обеспечивает надежную сохранность заданного времени и у него есть небольшая батарейка, на случай, если весь будильник будет выключен. Модуль RTC и 7сегментный дисплей взаимодействуют с Ардуино через протокол I2C.

Ввод данных осуществляется крутилкой со встроенной кнопкой, которая используется для настройки времени и будильника, а также для настройки режимов свечения диодов и их яркости. Потенциометр нужен для настройки яркости дисплея часов. Заглядывая в будущее, отмечу, что еще одна крутилка сделает настройку более простой и добавит функциональности, но сделает схему с Ардуино более сложной. Кнопка-выключатель включает диоды. У меня в наличии была красивая металлическая кнопка со встроенным диодом, но подойдёт любая кнопка.

Я использовал адаптер питания на 9V со встроенным джеком 5,5*2,5 мм. Регулятор LM7805 нужен для понижения вольтажа до 5V. Мой показывал 0,75A на 9V и меня всё устраивало, потому что диодам WS2812B вполне хватало этого питания на максимуме их яркости. На полной яркости весь прибор потреблял около 450mA.

Всё железо вместилось в деревянную шкатулку (вы можете покрасить её для более приятного вида). Используемые восемь светодиодов WS2812B можно программировать, чтобы получать разные световые эффекты. Их свет рассеивается через акриловые стержни, установленные в верхней части шкатулки. Для установки стержней, на 3D принтере была напечатана пластина, о которой будет написано позже. Файлы

  • rml_led_wake_clk_sch.pdf

Шаг 3: Проводка и изоляция

Для своего проекта я создал печатную плату, основанную на схеме «голого» Ардуино Уно с регулятором LM7805, заглушками и зонами для соединения с RTC и 7сегментным дисплеем. Всё лишнее было просто срезано с платы, чтобы она могла поместиться в шкатулку. Если у вас нет подходящей платы, то просто припаяйте модули, переключатели и светодиоды к Ардуино Уно.

У потенциометра один конец идет на землю (GND), другой на 5V, а средний на аналоговый вход. Крутилки нужно припаять к земле и к двум пинам прерывания (2 и 3) на Ардуино. Кнопка на крутилке и верхняя кнопка припаиваются к земле и к соответствующим пинам цифрового ввода. Также не забудьте соединить питание со светодиодом на верхней кнопке (если у вас такая же кнопка, как у меня). Дисплей и модуль RTC соединяем проводами с 5V, GND и соответствующими пинами SDA и SCL на Ардуино. Я использовал конденсаторы 1uF на входе и выходе LM7805 и еще один на 5V дорожке для поддержки светодиодов.

Читать еще:  Раскладной стол из картона своими руками

Можно соединить большинство коннекторов напрямую с платой, но для своих соединений я использовал стандартные 2,54мм коннекторы и провода с термоусадкой. Это упростит любые улучшения или доработки в будущем.

Затем нужно установить всё в шкатулку, вырезать отверстия для акриловых стержней, кнопок, крутилок, дисплея, джека питания и верхней кнопки. Если после установки какие-то элементы будут болтаться, закрепите их горячим клеем.

При сверлении отверстий нужно учесть, что вам, скорее всего, будет удобней сверлить снаружи внутрь и использовать острое сверло и лезвия, чтобы свести к минимуму сколы на дереве. По этой же причине была сделана основа для акриловых стержней — сверление дырок в дереве под каждый стержень наделало бы много «грязи».

Шаг 4: Светодиоды и окрашивание

Соедините провода 5V, GND и линию данных с полоской из восьми диодов WS2812B. Я подстраховался, смазав соединения эпоксидкой, поскольку они часто разрываются при нагрузке и их потом очень сложно восстановить. Далее я просто приклеил их к внутренней части шкатулки.

Акриловые стержни были нарезаны по две штуки на каждую длину: 6, 8, 10, 12см. Затем я прошелся по срезам наждачкой и отполировал. Самым простым способом установки акриловых стержней будет аккуратно просверлить дырки в дереве. Я не справился с задачей, повредив древесину, поэтому я напечатал на 3D принтере простую основу, которая позволяла бы также поместить внутрь себя светодиоды. В целом эта деталь получилась аккуратной. Она надёжно держала стрежни на одном уровне со светодиодами, так что даже не пришлось ничего клеить, а еще эта основа добавляет немного контраста эстетике часов. Чтобы шкатулка не открывалась, я приклеил к корпусу и крышке небольшие магниты.

Всё что осталось сделать — покрасить корпус, закрыв те части, которые вы хотите оставить неокрашенными (лучше окрасить весь корпус перед тем, как вы будете устанавливать в него железо)

Шаг 5: Код и итоговый вид

Ниже прикреплён файл с кодом. Он достаточно прост и набор функций в нём минимален. Самая сложная часть разработки интерфейса заключалась в том, чтобы с помощью минимального набора доступных кнопок, можно было менять режимы свечения и время будильника, а также настраивать эффекты изменения цвета. Список полезных библиотек, которые использовались в проекте, указан ниже:

  • RTClib.h — библиотека Real Time Clock
  • Adafruit_Neopixel.h — использовалась для диодов WS2812B
  • Adafruit_GFX.h и Adafruit_LEDBackpack.h — для 7сегментного дисплея часов
  • Wire.h — для I2C-связи с дисплеем и RTC
  • TimerOne.h и EEPROM.h

Однократное нажатие кнопки на крутилке позволяет включитьвыключить и настроить будильник, используя крутилку. Долгое нажатие на кнопку крутилки позволяет задать настройки времени, используя крутилку. Нажатие на верхнюю кнопку включает светодиоды. Когда они включены, кнопка крутилки меняет режимы свечения, а поворачивая крутилку можно менять яркость свечения. Режимы и яркость сохранены в EEPROM. Настройки таковы, что при установке будильника на определённое время, диоды загорятся на минимальной яркости в последнем установленном режиме свечения. Через 20 минут, яркость постепенно увеличится до максимально возможной. Еще через 20 минут свет погаснет (нажав на верхнюю кнопку можно выключить его раньше).

Данная сборка будильника не включает в себя звуковые сигналы. Я просто использую будильник на телефоне в дополнение к будильнику-восходу, чтобы подстраховать себя от того, что просплю. Например, я установил будильник на 5 утра, максимально ярко он будет гореть в 5:20. На случай, если я не проснусь, также на 5:20 установлен звуковой будильник на телефоне. Затем я точно просыпаюсь, занимаюсь утренними делами и в 5:40 будильник сам выключается.

Режимы свечения включают:

  • Сплошное свечение желтыморанжевым, настроенное примерно на цветовую температуру восхода
  • Несколько разных оттенков желтогооранжевого, оранжевогокрасного — эффект меняющихся цветов восхода солнца
  • Эффект радуги. Изменяется через настройки RGB, посылаемые на светодиоды
  • Несколько различных двуцветных эффектов, которые медленно переходят один в другой через светодиоды.

Теперь и у вас будет стильный будильник-восход на светодиодах, который поможет вам приятно вставать по утрам!

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector