Робота з 1-wire з freebsd - розумний будинок

Рейтинг статті:

Доброго всім дня.

Робота з 1-wire з freebsd - розумний будинок

Сьогодні я поділюся з вами досвідом роботи з 1-Wire пристроями з FreeBsd.

В першу чергу, для роботи з мережею 1-Wire необхідний адаптер мережі. Існують адаптери usb - 1-wire та com - 1-wire. Так як на моєму сервері є достатня кількість COM-портів, був обраний COM-адаптер як більш надійний. Чому надійний? Та тому, що COM-порт - дуже простий в реалізації як на рівні заліза, так і на програмному, на відміну від USB. До того ж найпростіший адаптер на COM-порт можна зробити самому "на коліні". Схем для них більш ніж достатньо.

Визначившись з апаратною частиною, необхідно визначитися з програмною. Для роботи з шиною необхідний драйвер. Я вивчив, що на даний момент є готового, і вибрав бібліотеку OWFS. Також існує Digitemp. Але OWFS сподобався своїми можливостями і наданими коштами. Що-ж нам дає OWFS? А дає вона нам наступне: можливість відображення мережі 1-wire у вигляді файлової системи, сервер мережі, веб-інтерфейс. І це не повний список. А ще підтримку не тільки мікросхем 1-wire, але також готових пристроїв сторонніх розробників. При цьому проект продовжує розвиватися.

Перейдемо ж до установки бібліотеки.

Викачуємо останню версію OWFS з офіційного сайту, і розпаковуємо. Для побудови та встановлення даного пакету нам знадобиться встановлений fusefs. А ось тут може виникнути проблема, так як для установки fusefs потрібні вихідні ядра, і без них він збиратися відмовляється. А якщо у вас USB-адаптер - то ще потрібно буде поставити libusb.

Рекомендую таку послідовність установки:

  1. Оновлюємо або завантажуємо вихідні через csup

Йдемо в / usr / share / examples / cvsup. беремо файл standard-supfile і копіюємо в більш зручне місце.
freebsd / # cp / usr / share / examples / cvsup / standard-supfile / etc / supfile

Наводимо його до такого виду:

Після збереження, запускаємо:
csup -g -L 2 / etc / supfile

Запуститься синхронізація вихідних текстів системи. Тривалість залежить від швидкості каналу.

  • встановлюємо fusefs
    cd / usr / ports / sysutils / fusefs-kmod /
    2 make install clean

    Додаємо в автозавантаження echo 'fusefs_enable = YES' >> /etc/rc.conf
    Щоб команда заробила rehash
    запускаємо
    /usr/local/etc/rc.d/fusefs start

  • Збираємо OWFS.
    cd / шлях / куди / розпакували /
    make install clean
  • Встановлюємо, якщо необхідно, libusb.
  • Ну ось. Якщо у вас все встановилося без помилок, то можна перевірити роботу. Під'єднуємо адаптер до нашого сервера. Створюємо директорію "/ mnt / 1wire":
    mkdir / mnt / 1wire

    Якщо у вас USB-адаптер: / opt / owfs / bin / owfs -C -u / mnt / 1wire

    Якщо COM-адаптер: / opt / owfs / bin / owfs -C -d / dev / cuau3 --allow_other -m / mnt / 1wire

    І якщо все було зроблено правильно, то в папці / mnt / 1wire ми побачимо

    Тепер залишилося додати OWFS в автозапуск. Для цього пишемо скрипт:

    #! / Bin / sh
    # PROVIDE: owfs
    # REQUIRE: fusefs

    name = "owfs"
    rcvar = "owfs_enable"
    command = "/ opt / owfs / bin / owfs -C -d / dev / cuau3 --allow_other -m / mnt / 1wire"
    load_rc_config $ name
    run_rc_command "$ 1"

    Схожі статті