repkatech
repkatech
98 просмотров0 комментариев

Проект “Умный будильник” на базе одноплатного компьютера Repka PI 4.

Представляю вам образовательный проект — “Умный будильник” разработанный в рамках учебно-методического комплекса на базе одноплатного компьютера Repka PI 4.

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

Для отображения текущего времени применяется компактный цифровой дисплей TM1637 с четырьмя 7-сегментными индикаторами, обеспечивающий чёткую визуализацию часов и минут. Звуковое оповещение реализовано с помощью пассивного зуммера, а дополнительная тактильная индикация достигается за счёт вибромотора

Этот проект отлично подходит для демонстрации реальной интеграции нескольких периферийных модулей и формирования законченного, функционального устройства. Он может быть использован как часть обучающего курса по автоматике, встраиваемым системам, а также для практического освоения архитектуры Repka Pi и работы с внешними устройствами.

Проект будет собираться с использованием “Учебно-методический комплекс REPKA”. Схему сборки можно найти в разделе "Примеры готовых проектов" учебного пособия УМК “REPKA”.

Также все необходимые материалы и схемы подключения доступны в репозитории на платформе Gitflic.

Компоненты проекта

1. Пассивный зуммер (Passive buzzer KY-006), представленный на рисунке 1, используется в проекте в качестве звукового оповещателя для пробуждения. Благодаря своей конструкции, он способен воспроизводить различные звуковые сигналы, создавая эффективное аудиоуведомление при срабатывании будильника.

2. Модуль MOSFET (IRF520), показанный на рисунке 2, используется для управления электродвигателем с редуктором. Этот модуль позволяет эффективно включать и отключать мотор, обеспечивая стабильное питание и защиту схемы.

3. На рисунке 3 представлен мотор с редуктором (brushes DC motor), который служит исполнительным устройством в проекте.

4. Дисплей TM1637 используется для отображения текущего времени.

5. Часы (DS3231) используется для точного отслеживания текущего времени, благодаря встроенному высокоточному кварцевому генератору.

Вы можете приобрести все необходимые компоненты отдельно от "Учебно-методический комплекс REPKA". Ссылки на модули приведены в таблице ниже.

Компонент Ссылка на приобретение
Монтажная/макетная плата Ссылка
Шлейф Ссылка
Переходник с шлейфа на макетную плату Ссылка
Соединительные провода

Провода соединительные м-п

Провода соединительные п-п

Провода соединительные п-п

Пассивный зуммер (Passive buzzer KY-006) Ссылка
Модуль MOSFET (IRF520) Ссылка
Мотор с редуктором (brushes DC motor) Ссылка
Дисплей TM1637 Ссылка
Часы (DS3231) Ссылка

Подготовительный этап

1. Подключим дополнительное питание 5V к макетной плате:

2. После чего выведем дополнительное питание на макетную плату:

3. Подключим переходник с шлейфа на макетную плату:

4. Соединим шлейф с переходником для подключения к макетной плате и Repka Pi 4:

5. Итоговый результат должен выглядеть таким образом:

Сборка проекта

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

Для разработки кода будет использоваться текстовый редактор Geany, который входит в состав стандартного ПО Репка ОС.

Электрическая принципиальная схема #

Монтажная схема #

  1. Подключение пассивного зуммера.

Обратимся к рисункам 6 и 7. Из них видно, что устройство подключается через GPIO22 и питается от 3.3V.

1.1. Выполним подключение к макетной плате согласно таблице 1.

Макетная плата

Пассивный зуммер

3.3V

VCC

GPIO22

IO

GND

GND

Таблица 1. Подключение пассивного зуммера к макетной плате.

1.2. Результат подключения будет выглядеть следующим образом, см. рисунок 8:

2. Для проверки правильности подключения используем python скрипт из репозитория repka-pi_iot-examples.

2.1. Клонируем репозиторий:

git clone git@gitflic.ru:repka_pi/repka-pi_iot-examples.git

2.2. Переходим в репозиторий:

cd repka-pi_iot-examples/

2.3. Выполним установку зависимостей.

2.3.1. Если хотите установить зависимости только для зуммера, выполните:

make setup-KY-006

2.3.2. Если хотите установить зависимости для всех датчиков и проектов, выполните:

make setup-all

2.4. Запускаем скрипт для проверки работоспособности прибора:

make KY-006

2.4.1. Если нет никакой реакции, то проверьте номер GPIO указанный в скрипте по пути devices/executive/KY-006_example/py.

BEEP_PIN = 111  # Укажите номер пина, к которому подключен BEEP

2.4.2. Обратимся к пособию “УМК Репка. Учебно-методическое пособие”, в котором представлена распиновка Repka PI 4 (рисунок 9).  Из нее следует, что уникальный идентификатор порта GPIO22 равен 113.

2.4.3. Внесем правки в код и выполним скрипт.

BEEP_PIN = 113  # Укажите номер пина, к которому подключен BEEP

2.5. После запуска зуммер должен воспроизвести мелодию.

3. Подключим модуль MOSFET (IRF520).

Обратимся к рисункам 6 и 7. Из них видно, что MOSFET-модуль подключается к одноплатному компьютеру Repka PI 4 через управляющий вывод GPIO4, а питание на него подается от линии 5V. Важно отметить, что для обеспечения стабильной работы мотора питание 5V подаётся напрямую на входные контакты VIN и GND MOSFET-модуля. Такая схема подключения позволяет надежно управлять нагрузкой.

3.1. Выполним подключение к макетной плате согласно таблице 2.

Макетная плата

MOSFET

Доп. питание 5V

5V

VCC

GND

GND

GPIO4

SIG

VIN

VIN

GND

GND

Таблица 2. MOSFET (IRF520).

3.2. Результат подключения будет выглядеть следующим образом, см. рисунок 10:

Проверку работоспособности MOSFET-модуля будем выполнять после подключения двигателя, чтобы убедиться в корректном управлении нагрузкой и правильной работе всей цепи управления мотором.

4. Подключение мотора с редуктором (brushes DC motor).

4.1. Подключение выполняется следующим образом: положительный (плюсовой) провод мотора следует соединить с клеммой V+ на MOSFET-модуле, а отрицательный (минусовой) провод — с клеммой V-.

4.2. Результат подключения будет выглядеть следующим образом, см. рисунок 11:

5. Проверку будем проводить аналогично пункту 2.

5.1. Если ранее не устанавливали все зависимости командой setup-all, то установим зависимости для дисплей  модуля, выполнив:

make setup-bushes-DC-motor

5.2. Далее изменим значение переменной PIN_R в соответствии с данными, приведенными на рисунке 9, в скрипте, расположенном по пути devices/executive/brushes_DC_motor_example:

PIN_R = 362

5.3. Запустим Python-скрипт командой:

make bushes-DC-motor

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

6. Подключение дисплея TM1637.

Обратимся к рисункам 6 и 7. Из них видно, что дисплей подключается через интерфейс двухпроводной последовательной связи (CLK и DIO), используя GPIO17 и GPIO27, и питается от линии 5V одноплатного компьютера Repka PI 4.

6.1. Выполним подключение к макетной плате согласно таблице 3.

Макетная плата

TM1637

5V

VCC

GND

GND

GPIO17

DIO

GPIO27

CLK

Таблица 3. Подключение TM1637 к макетной плате.

6.2. Результат подключения будет выглядеть следующим образом, см. рисунок 12:

7. Проверим подключение аналогично пункту 2.

7.1. Если ранее не устанавливали все зависимости командой setup-all, то установим зависимости для дисплей  модуля, выполнив:

make setup-tm1637

7.2. Запустим Python-скрипт командой:

make tm1637

7.3. Если всё подключено верно, на дисплее должна появится индикация:

8. Подключение часов (DS3231).

Как видно из рисунков 6 и 7 часы подключаются через интерфейс I2C и питаются от 5V.

8.1. Подключим DS3231 к макетной плате согласно таблице 4:

Макетная плата DS3231
5V VCC
GND GND
SDA1 SDA
SCL1 SCL

Таблица 4. Подключение DS3231 к макетной плате.

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

8.2. Результат подключения будет выглядеть следующим образом, см. рисунок 15:

9. Выполним проверку подключения прибора.

9.1. Установите зависимости для часов, если ранее не устанавливали все зависимости.

make setup-ds3231

9.2. После выполним python скрипт, расположенный по пути: /devices/input-output/ds3231_example, используя команду:

make ds3231

9.3. После успешного выполнения скрипта в консоли должна появится информация о времени, см. рисунок 16.

Запуск проекта

Теперь, когда все компоненты подключены, можно запустить проект "Умный будильник". Для этого в репозитории repka-pi_iot-examples выполняем команду:

make smart-clock

Мы можем наблюдать консольный интерфейс приложения, где с помощью команды set устанавливается время будильника. Также командой toggle можно включать или отключать будильник. Текущее время постоянно отображается на дисплее TM1637, обеспечивая удобный визуальный контроль.

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

Практическая значимость проекта

Проект «Умный будильник» на базе одноплатного компьютера Repka PI 4 обладает высокой практической значимостью как для образовательных, так и для бытовых целей. Он позволяет на практике изучить интеграцию различных периферийных модулей — часов реального времени, дисплея, звукового и тактильного оповещения, а также управления исполнительными устройствами через MOSFET. Такой проект помогает понять принципы работы встраиваемых систем, основы электроники и программирования в реальном времени.

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

Расширение проекта

Проект «Умный будильник» можно расширить, добавив дополнительные функции и возможности, которые повысят его удобство и практическую пользу. Например, можно интегрировать датчики окружающей среды, такие как датчики температуры и влажности, чтобы устройство могло учитывать комфортные условия для пробуждения и адаптировать работу будильника в зависимости от этих параметров. Также возможно добавить подключение к сети Интернет или мобильным устройствам, что позволит управлять будильником дистанционно через приложение и получать уведомления. Для улучшения взаимодействия с пользователем можно реализовать более сложные сценарии оповещения — например, постепенное увеличение громкости звука или вибрации, а также возможность выбора различных мелодий или звуков. Интерфейс управления можно дополнить сенсорными экранами или даже голосовым управлением, что сделает использование устройства более интуитивным и современным. Кроме того, можно внедрить энергоэффективные режимы работы и автономное питание, чтобы будильник мог функционировать длительное время без подключения к электросети. Все эти улучшения превратят проект из учебного примера в полноценное устройство с широкими возможностями для повседневного использования.

Видеообзор проекта

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

Пример использования с Python

Проект полностью реализован на языке Python. Код для работы с умным будильником можно найти в репозитории на платформе Gitflic.


Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Темы

Навигация

ВойтиРегистрация