Подключаем часы реального времени (RTC DS1307) к Raspberry Pi (перевод)

raspberry_pi_ds1307rtc_LRG


Raspberry Pi разработан как ультрадешевый компьютер, поэтому много вещей, которые как мы привыкли, присутствуют на нашем ноутбуке или компьютере были упущены. Например, ваш ноутбук и компьютер имеют маленькую плоскую батерейку питающую модуль часов реального времени (Real Time Clock, RTC), который удерживает значение времени, даже тогда когда отключено питание или вынута батарея. Для сохранения низкой цены и маленького размера, RTC не входит в Raspberry Pi. Вместо этого, Pi, подключается к Интернету через Ethernet или Wi-Fi, обновляя время автоматически из глобального NTP (nework time protocol) сервера.



Для отдельных проектов при отсутствии сетевого подключения, вы не сможете сохранить время, когда отключится питание. Так что в этом проекте мы покажем вам, как добавить дешевый батареечный модуль RTC для получения времени!

Подключение RTC
Чтобы сохранить цену на низком уровне, Raspberry Pi не включает в себя модуль часов реального времени. Вместо этого, от пользователей ожидается иметь постоянное подключение к WiFi или Ethernet и сохранять время, проверяя сеть. Так как мы хотим добвить внешний модуль, мы должны его подключить. Мы взяли простой в использовании и недорогой модуль DS1307. Для того, чтобы сделать работу действительно простой, мы будем использовать в Adafruit DS1307 RTC Breakout Board Kit – он поставляется со всеми частями, в том числе батарейкой.

Подключения осуществляется просто:
Подключите VCC на модуле к 5.0V пину Pi
Подключите землю GND к GND пину на Pi
Подключите SDA на модуле к SDA0 пину на Pi
Подключите SCL на модуле к SCL0 пину на Pi

Вы также должны установить i2c на Pi, чтобы сделать это, просмотрите наше руководство по Raspberry Pi i2c настройке
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c

raspberry_pi_ds1307

Проверьте свое подключение, запустив sudo i2cdetect -у 0 в командной строке, вы должны увидеть ID # 68 – это адрес DS1307! Если у вас есть REV 2 Pi, вам придется запустить sudo i2cdetect -у 1, так как адрес шины I2C изменен с 0 на 1

raspberry_pi_addr68

Установка времени RTC
Теперь у нас есть модуль подключенен и верифицирован, как можно видеть с i2cdetect, теперь мы можем настроить модуль.

Во-первых, загрузить модуль RTC, запустив
sudo modprobe rtc-DS1307
Тогда, как root (неберите в sudo bash)
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device (если у вас rev 1 Pi)
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device (если у васrev 2 Pi)

Вы можете ввести в exit, чтобы выйти из root.

Затем проверьте время с командой sudo hwclock -r, которая будет читать время из модуля DS1307. Если это первое использование модуля, то он будет отчитываться с 1 января 2000, и вы должны будете установить время

raspberry_pi_2222222

Сначала, чтобы получить правильное время на Pi, подключим его к сети Ethernet или Wi-Fi – это автоматически установит время из сети. После того, как время установлено правильно (проверьте с помощью команды date), запустите sudo hwclock -w чтобы записать системное время в RTC

Вы можете проверить время с sudo hwclock -r

raspberry_pi_hwclockset

Далее, чтобы добавить ядро модуля RTC в список модулей /etc/modules, для его загрузки, при включении raspberry. Запустите sudo nano /etc/modules и добавте rtc-ds1307 в конец файла (на изображении ниже набрано rtc-1307, но ето опечатка)

raspberry_pi_addmodule33333333333

Далее нужно настроить создание устройства DS1307 при загрузке:
sudo nano /etc/rc.local
и добавить в конце перед exit 0:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device (если у вас rev 1 Pi)
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device (если у васrev 2 Pi)
sudo hwclock -s (для обоих версий)
(мы забыли об
hwclock -s на скриншоте ниже)

Вот и все! В следующий раз при загрузке время автоматически будет синхронизироваться с модулем RTC
Источник: https://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi/set-rtc-time

4 комментария

  1. Интересно пишете, жизненно.
    Но, для того, чтобы делать по-настоящему стоящий блог, нужно не только сообщать о чем-то,
    но и предоставлять это в интересной форме:)

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

Оставить ответ

Обязательные поля помечены*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.