Собрал RTC и 1-Wire. 

Схема:

То что получилось

Настройка RTC

Добавляем в систему I2C если ранее это не сделано.

Редактируем файл /etc/modprobe.d/raspi-blacklist.confsudo

nano /etc/modprobe.d/raspi-blacklist.conf

редактируем файл /etc/modules, вставляем #перед строкой blacklist i2c-bcm2708

nano /etc/modules

вставляем в конец строку i2c-dev

ставим I2C тулс

sudo apt-get install i2c-tools
смотрим какие I2C устройства есть на шине

pi@raspberrypi ~ $ i2cdetect -y 1   

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e

f00:-- -- -- -- -- -- -- -- -- -- -- -- --

10: -- -- -- -- -- -- -- --

18 -- -- -- -- -- -- --

20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

60: -- -- -- -- -- -- -- --

68 -- -- -- -- -- -- --

70: -- -- -- -- -- -- -- --

sudo modprobe rtc-ds1307

18 - это адрес 1-wire

68 - это RTC DS1307

набираем 

потом меняем пользователя на root: sudo -s и вводим

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)

теперь выведем в консоль время с RTC:

pi@raspberrypi ~ $ sudo hwclock -r Set 01 Jan 2000 00:01:20 EEST  -0.814742 seconds
pi@raspberrypi ~ $ dateSun Jun 16 13:40:36 EEST 2013

для того чтобы записать время из системы в RTC

sudo hwclock -w

Tеперь настроим чтобы часы находились после перезагрузки. Для этого отредактируем  файл modules командой

sudo nano /etc/modules

и добавим туда rtc-ds1307

потом отредактируем файл /etc/rc.localsudo

nano /etc/rc.local

и добавим в него 

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device (для v1 raspberry pi)
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device (для v2 raspberry pi)sudo hwclock -s

эти строчки нужно вставить перед строкой exit 0

Все теперь в системе есть RTC.OWFS настраивал по инструкции с этого сайта

http://wiki.temperatur.nu/index.php/OWFS_with_i2c_support_on_Raspberry_Pi_(English_version)

Тэги:

 

Автор:

Комментариев: 8

  • MaksMS10
    19.06.2013 в 15:40 ответ

    Как-то не оправдано использование DS2482s ,т.к. в ядре имеется поддержка устройств 1-wire на 4 выводе GPIO

    • artyr_n0
      19.06.2013 в 21:16 ответ

      Мне нужно подключить 6 температурных датчиков самый дальний 20 метров от raspberry.

      • MaksMS10
        20.06.2013 в 09:16 ответ

        Судя по вики http://ru.wikipedia.org/wiki/1-Wire 1-Wire тянет до 300 метров :) У меня у самого квартира окутана этой шиной и все работает..

        • artyr_n0
          20.06.2013 в 09:21 ответ

          Работает просто с ножки GPIO?

          • MaksMS10
            20.06.2013 в 12:47 ответ

            Ну на raspberry сантиметров 20 пару датчиков ds18b20 подключал - работает. Не думаю что при 20 метрах что-то изменится.. А так используется arduino...

    • kukabu1
      21.06.2013 в 08:40 ответ

      оправдано, т.к. ядро для 4 GPIO реализует программный 1-wire

  • artyr_n0
    21.06.2013 в 09:29 ответ

    Поставил на тесты. Температура считывается каждые 30 секунд. Каждый датчик опрашивается в цыкле, если вернул температуру цыкл заканчивается если нет то повторяется 100 раз. Даже с DS2482s за сутки от 2 до 6 раз с датчика за 100 опросов или ничего не считывается или считывается ерунда в виде -2000 градусов. Причем наблюдал подобное используя DS9490R (USB - 1-Wire).

  • artyr_n0
    29.06.2013 в 11:23 ответ

    Добавил блокирующие конденсаторы на 0,1 мкФ по питанию перед датчиками. И программно проверяю, что бы выдаваемая температура не выходила за возможности датчика, если выходит то считываю температуру еще раз. Сталкивался ли кто то с подобными проблемами? Кажется мне, что тут проблема OWFS и производительности системы. Около года мониторил температуру дома на котле и радиаторах. Расстояния до датчиков было раза в два больше использовал стационарный компьютер под Ubuntu и USB - 1 Wire переходник DS9490R. И с проблемой что бы датчик вернул -2000 градусов ни разу не столкнулся.

Ваш комментарий

Авторизуйтесь для отправки комментария

© Сообщество пользователей RaspberryPi 2021