- Необходимые компоненты:
- Настройте Raspberry Pi для будильника:
- Принципиальная схема и подключения:
- Программа и объяснение работы:
В этом сеансе мы собираемся соединить модуль часов реального времени DS1307 с Raspberry PI, чтобы создать будильник. Хотя у Raspberry Pi есть внутренние часы, но без подключения к Интернету эти внутренние часы сбрасываются после каждой перезагрузки. Итак, чтобы получить точное ВРЕМЯ без подключения к Интернету, нам необходимо подключить модуль RTC DS1307 к Raspberry Pi. Модуль RTC имеет батарейку-кнопку для резервного копирования, поэтому ВРЕМЯ не сбрасывается. Мы также создали Будильник с использованием Arduino и микроконтроллера AVR ATmega32, проверьте их тоже.
В этих цифровых часах Raspberry Pi 16 * 2-символьный ЖК-дисплей предназначен для отображения в реальном времени, времени будильника и состояния будильника (ВКЛ / ВЫКЛ). Как только программа начнет работать на Pi, мы можем отключить монитор и установить будильник с помощью этого ЖК-дисплея и пяти кнопок.
Каждый из 17 контактов GPIO может подавать или потреблять ток до 15 мА. Поэтому не играйте с контактами GPIO и дважды проверьте соединения перед включением Raspberry Pi. Узнайте больше о выводах GPIO и кнопке взаимодействия с Raspberry Pi здесь. Также проверьте нашу серию руководств по Raspberry Pi вместе с некоторыми хорошими проектами IoT.
Необходимые компоненты:
Здесь мы используем Raspberry Pi 2 Model B с Raspbian Jessie OS. Все основные требования к оборудованию и программному обеспечению обсуждаются ранее, вы можете найти их во введении Raspberry Pi и мигании светодиода Raspberry PI, чтобы начать работу, кроме того, что нам нужно:
- Raspberry Pi с предустановленной ОС
- Модуль RTC DS1307 с аккумулятором
- Источник питания
- Резистор 1КОм (6 шт.)
- 5 кнопок
- Конденсатор 1000 мкФ (2 шт.)
- 16 * 2-символьный ЖК-дисплей
- 2Н2222 транзистор
- Зуммер
Настройте Raspberry Pi для будильника:
Прежде чем идти дальше, нам нужно немного настроить Raspberry Pi и установить файл библиотеки для модуля RTC, выполните следующие действия:
Шаг 1. Сначала перейдите в меню конфигурации Raspberry Pi и включите опцию I2C, как показано ниже:
Шаг 2. Создайте новую папку на экране рабочего стола Raspberry Pi и назовите ее «Будильник».
Шаг 3: Загрузите файл заголовка для модуля RTC по ссылке ниже:
codeload.github.com/switchdoclabs/RTC_SDL_DS1307/zip/master
Шаг 4: Разархивируйте загруженный zip-файл в папку (Будильник), созданную на DESKTOP, как было сказано в предыдущем шаге.
Шаг 5: Откройте окно терминала в Raspberry Pi и введите команду ниже, затем нажмите ввод:
sudo apt-get install i2c-tools
Эта команда устанавливает инструменты I2C, необходимые для взаимодействия с модулем RTC. Затем перезагрузите Raspberry Pi, выполнив команду sudo reboot .
Шаг 6: Теперь нам нужно проверить адрес I2C модуля RTC. Перед проверкой адреса сначала подключите модуль RTC, как показано на схеме ниже.
Затем введите ниже в окне терминала.
sudo i2cdetect -y 0 ИЛИ sudo i2cdetect -y 1
Шаг 7: Если одна из вышеперечисленных команд работает, вы увидите что-то вроде этого:
Шаг 8: Вы увидите адрес I2C 0x68, если модуль RTC подключен правильно, запишите значение.
При этом все необходимые настройки выполняются с конфигурацией Raspberry Pi.
Принципиальная схема и подключения:
Соединения между Raspberry Pi и ЖК-дисплеем показаны в таблице ниже:
Связь между Raspberry Pi и пятью кнопками также показана в таблице ниже с соответствующими функциями каждой кнопки:
Программа и объяснение работы:
Модуль RTC имеет кнопочную ячейку для резервного питания, как обсуждалось, поэтому время будет актуальным до тех пор, пока резервное копирование не закончится, и мы будем иметь точное время в RTC.
Теперь мы напишем программу Python, чтобы получить точное время из модуля DS1307 RTC. Это время будет отображаться на ЖК-дисплее 16x2. После этого в программе будет написана функция будильника. Время будильника также будет отображаться во второй строке ЖК-дисплея, за которым следует состояние ВКЛ и ВЫКЛ. Время будильника можно настроить с помощью 5 кнопок, подключенных к Raspberry Pi, как указано в таблице, приведенной выше, и очень легко установить будильник. Вы также можете посмотреть наше демонстрационное видео, чтобы управлять этим будильником Raspberry Pi. Есть 2 кнопки для увеличения и уменьшения времени будильника, 2 кнопки для увеличения и уменьшения времени будильника и 1 кнопка для включения и выключения будильника.
Программа Python постоянно сравнивает время будильника со временем RTC, и как только время будильника совпадает со временем RTC, PI запускает зуммер, который подключен к контакту 22 GPIO Raspberry Pi через NPN-транзистор 2N2222. Поэтому, как только время будильника достигнуто, раздается звуковой сигнал.
Полная программа приведена ниже и хорошо объяснена в комментариях. Если у вас есть сомнения, вы можете задать вопрос в разделе комментариев ниже.