ФОРУМ КУПИТЬ

Последние статьи

ВСЕ СТАТЬИ

Микросети 1-wire

24/11/2008 16:22:16

В своей первой статье про Умный Дом я перечислил основные принципы, на которых должна была строиться система. Трудно было заранее предположить, какие области, так сказать, жизнеобеспечения потребуют автоматизации, а какие нет. Существовало, например, мнение, что управление освещением не более чем забава, а в быту только мешает. В связи с этим я не хотел делать на первом этапе значимых вложений. Решил, что компоненты должны быть дешевыми, простыми в монтаже, понятными в использовании и, по возможности, надежными. Вся система должна была по задумке строиться на открытых документированных стандартах. Изучив большое количество материалов, я решил попробовать технологию 1-wire от компании Maxim/Dallas.

Технология 1-wire далеко не нова и известна уже около 10 лет. 1-wire широко применяется как в быту, так и в промышленных системах. Тем не менее, мало кто об этом знает. Нас интересует применение 1-wire в системах автоматизации. 1-wire представляет из себя сеть, к которой можно подключить множество устройств, таких как датчики (температурные, влажности, освещенности), исполнительные ключи, счетчики, считыватели и многое другое. Все устройства связываются между собой в самом простом случае двухпроводным кабелем. Один провод используется под данные (отсюда и название "1-wire"), а второй провод - возвратный или "Земля". Топология сети - общая шина. Это означает, что один кабель проходит через все устройства. Ответвления допустимы, но не рекомендуются (до 50 см). Впрочем, для небольших сетей возможна произвольная топология, например, звездой. Большим преимуществом 1-wire является то, что многие, но не все, компоненты 1-wire могут обходится без внешнего питания, работая от так называемого паразитного питания, забирая энергию из шины данных. У меня, к примеру, при общей протяженности сети 80 метров на паразитном питании успешно работали 5 температурных датчиков. В качестве кабеля для 1-wire можно использовать все, что только проводит электрический ток. Это и дешевый телефонный кабель и недорогая витая пара. Однако низкие требования к среде передачи данных накладывают свои ограничения на скорость работы. Так, максимальная скорость передачи данных по технологии 1-wire в обычном режиме составляет 15,4Кбит/с (до 125Кбит в режиме Overdrive). Вроде бы совсем медленно, но если учитывать, что по сети передаются не фильмы в формате HDTV, а, например, команды ключам и короткие ответы датчиков, то становиться понятно, что этого достаточно. Для контроля ошибок в протоколе 1-wire предусмотрена проверка контрольной суммы передаваемых пакетов - CRC.

Можно перечислить преимущества 1-wire:

  • Простая и понятная архитектура сети
  • Низкие требования к кабелям
  • Большая протяженность линии
  • Низкая стоимость и простота компонентов
  • Открытый протокол и доступное ПО для программирования
  • Возможность в определенных ситуациях обходиться без питания

Недостатки 1-wire

  • Низкая скорость передачи данных
  • Обязательное наличие мастера, ведущего сети

Остановимся подробнее на обязательном требовании к наличию мастера сети. Дело все в том, что устройства с точки зрения организации обмена данными пассивные элементы цепи. Компоненты 1-wire не могут без специального запроса посылать в сеть данные. Таким образом устройства не могут общаться друг с другом без "активного" ведущего. Элементы сети являются всегда ведомыми. Мастер в сети 1-wire только один. Именно он инициирует, контролирует и управляет работой сети и подключенных к сети устройств. В зависимости от используемого программного обеспечения, мастер 1-wire линии может по-разному работать со своими подопечными, но только он в конечном итоге может опросить состояние конкретного элемента, а также послать запроса на получение от этого элемента какой-либо информации. Например, если нам необходимо в режиме реального времени выводить значение температуры с множества датчиков, то мастер сети в цикле будет по очереди опрашивать эти датчики. Отвечать мастеру по сети может только одно устройство. В качестве мастера может выступать МК (микроконтроллер), который может при соответствующем ПО напрямую включаться в сеть 1-wire к одному из своих портов ввода-вывода. Мастером может выступать также ПК (персональный компьютер), использующий специальные элементы сопряжения, позволяющие соединять 1-wire с COM-портом или USB-портом компьютера, такие как DS9097 или DS9490.

Для себя я в данный момент выбрал вариант персонального компьютера с устройством сопряжения DS9490R. В целях исследования возможностей сети это представляется обоснованным. Кроме того, использование единого сервера, центра домашней автоматизации, весьма удобно с точки зрения программной организации работы системы. Ведь к компьютеру можно достаточно просто, без использования сложных аппаратных механизмов подключить множество совершенно различных интерфейсов, сетей и протоколов, которые могут управляться единым программным обеспечением. Это значительно упрощает схему сети, не требует какого-то специального оборудование, делает всю систему более гибкой и значительно ускоряет процесс обмена информацией между системами. Например, управление элементами 1-wire посредством внешних сигналов (сработала сигнализация), через сеть Интернет, событиями, генерируемыми другими системами и программами (ZoneMinder системы видеонаблюдения зафиксировал движение в камере) значительно проще реализовать, имея в качестве мастера - персональный компьютер.

Вполне предвижу возражения относительно надежности персональных компьютеров. Действительно, PC обладает с точки зрения промышленной автоматизации и автоматизации критических систем достаточно низкой надежностью. Так, блок питания моего сервера (на базе старенького, видавшего виды ПК) вышел из строя примерно через 4 месяца непрерывной работы. Но предлагаю исходить скорее из соображений целесообразности и стоимости, которая выражается как в деньгах, так и во времени. Во-первых, как я уже говорил, решение на базе ПК значительно более гибкое. Во-вторых, можно тщательно подобрать комплектующие. Использовать, например, безвентиляторный блок питания, Intel Atom в качестве процессора в конфигурации, не требующей активного охлаждения и Flash-накопитель или карту в качестве жесткого диска. В-третьих, можно использовать промышленный контроллер с архитектурой x86 или даже готовый маршрутизатор на базе Linux с портами USB. В-четвертых, не отказываться от использования микроконтроллеров для критически важных систем и систем, требующих молниеносного ответа. Например, управление освещением в помещении (не уличным) можно поручить МК. С отоплением сложнее. Его хотя и можно отнести к критически важным, но эта не та система, которая требует немедленной реакции, поскольку очень инерционна. К примеру, температура воздуха в доме зимой в случае аварийного отключения отопление падает от 0,5 до 2 градусов в час. За это время можно решить проблемы с ПК или перевести отопление на ручную регулировку. Системы отопления должны проектироваться так, чтобы такое переключение на ручное регулирования осуществлялось легко. Подробнее о целесообразности применения персонального компьютера в качестве управляющего элемента в домашней автоматизации.

Отдельно остановимся на вопросе надежности элемента сопряжения ПК с сетью 1-wire и надежности ПО. Безусловно, схема по типу мастер-слейв (ведущий-ведомый) изначально не блещет надежностью. При выходе из строя ведущего или "глюков" ПО система встает целиком. В этом смысле системы, в которых возможен обмен информации между элементами без участия мастера, например, CAN, находятся в более выгодном положении.

Почему же не использовать CAN? Недостатки, присущие 1-wire - это обратная сторона достоинств. Низкая цена, наплевательское отношение к проводам, простота в проектировании и использовании оборачивается, скажем так, некоторыми особенностями. Возможно, использование МК или промышленных контроллеров, а также более тщательная работа с кабелями и модулями даст 100% надежность и 1-wire. Что же касается таких шин и протоколов как Modbus или CAN, то безусловно, с точки зрения надежности они лучше, но они значительно сложнее и дороже в схемотехнике и управлении. Готовые решения на базе CAN существуют, но очень дороги. Самостоятельно изготавливать модули в количестве, достаточном для домашней автоматизации, а также писать программное обеспечение без соответствующей подготовки кажется мне маловероятным.

 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:

(необязательно, не отображается на сайте)


Сортировка комментариев: Последние сверху | Первые сверху

2015-01-14 00:23:41 | Сергей
А как нибудь протестировать DS9490R на исправность можно?


2015-01-03 15:43:05 | Andrey_B
Сергей, затрудняюсь вам ответить. У меня в доме с 2008 года работает три мастера DS9490R. Один из них даже подключен непосредственно к считывателю на улице. Ни один из них за это время не вышел из строя.


2014-12-30 12:00:51 | Сергей
Здравствуйте.
Подскажите почему летят модули DS9490R? Уже второй внезапно перестает видеть сеть


2014-03-27 10:58:18 | Andrey_B
Константин, ну, судя по описанию, можно.


2014-03-26 19:20:05 | Константин
Здравствуйте.
Подскажите вот такое устройство: /www.ebay.com/itm/Raspberry-Pi-Rs-Pi-internal-4-USB-Hub-I2C-A-D-D-A-1-Wire-Board-/221250577863?pt=UK_Computing_Internal_Port_Expansion_Cards&hash=item33838fe5c7 имеет встроенный мастер 1-wire? Правильно ли я понял что подключив этот модуль к raspberry pi можно будет построить одну линию?


2014-01-28 23:41:18 | Анатолий
Извиняюсь насчет замкнуть - посмотрел cхему датчика протечки на DS2406 если я правильно понял то в данном случае на 6 контакт PIO A должен прийти определенный ток.


2014-01-28 23:27:49 | Анатолий
Т.е. как я понял я не могу получить состояние ключа если физически перемкну выводы (1 и 6)PIO A и Земля? Значит $ow->get работать не будет ? или он просто опрашивает внутреннее состояние ключа?


2014-01-20 12:16:23 | Andrey_B
Анатолий, отличий на самом деле достаточно много. Но основное отличие DS2413 от DS2406, как мне кажется, заключается в том, что в DS2413 нет алгоритма условного поиска "Conditional Search ROM". То есть для DS2413 невозможно задать условия, при которых бы элемент отзывался на команду условного поиска. Это накладывает определенные ограничения на использование этого компонента в таких задачах, как, например, опрос кнопок.


2014-01-19 00:36:32 | Анатолий
Подскажите в чем собственно отличие ds2406 от ds2413 ? я так понял что в первой есть энергонезависимая память а вот чем еще они различаются?


2013-12-10 18:06:21 | Andrey_B
Анатолий, откуда у вас информация касательно 256 устройств?
Насколько мне известно, Maxim никак не указывает явно максимальное количество допустимых на шине устройств. Скорее максимальное количество зависит от задачи, от трафика в сети и от параметров самой шины.


2013-12-08 16:30:09 | Анатолий
Максимальное число подключаемых модулей к одной сети 1-wire это 256 устройств. Здесь имеется ввиду 256 многоканальных и одноканальных микросхем или 256 конечных устройств включая кнопки, датчики, исполнительные устройства ?


2013-10-12 21:45:26 | Сергей
По поводу постоянной работы ПК:
Мой первый комп, которому была уготована учесть "всегда включен", был старенький 486 писюк. Уже повсюду стояли "пни", и 486-х полностью вытеснили. Но железо было рабочее, и выкинуть было жаль. Этот Комп я поставил, чтобы качать торренты. Интернет тогда был вообще дно, и чтобы посмотреть фильмец, его нужно было целый день скачивать. Этот старенький комп отжил на постоянной работе у меня полтора года. Потом был заменен другим хламом, но только лишь потому, что не устраивала производительность. Он до сих пор стоит на чердаке готовый к работе :) Второй комп был уже по мощнее, и был на страже примерно пару лет. Затем тоже ушел в отставку, но опять же не по болезни, а за выслугой лет. Далее железо менялось еще пару раз. Комп стал еще и частью домашнего кинотеатра, а это требовало скорости. За все время я только один раз менял блок питания, да и то, потому что сильно грелся. В общем хороший новый блок купил только один, правда на нем совсем не экономил, дабы по значимости своей он если не на первом месте, то в первом ряду это уж точно. Предыдущие блоки были старым хламом. В общем за эти годы мои опасения в надежности постоянно работающего ПК развеялись полностью. Я уже даже и не знаю чего отживет дольше. Комп который включают на дню два-три раза, или постоянно работающий. Думаю второй вариант менее губителен, если 1. Нормальный БП, 2. Нормальное стабилизированное напряжение.
В итоге, как показывает практика, железо в основном меняется не по причине выхода его из строя, а по необходимости апгрейда на более мощное. Так что ПК считаю идеальным вариантом для умного дома, если есть желание лично принимать участие в разработке системы.


2013-04-25 14:42:32 | Виктор
Добрый день. В общих чертах не подскажете об управлении светом? Хочу сделать управление как компьютером, так и привычным выключателем. С программированием проблем нет, с физикой - чуть сложнее, но руки, вроде прямые =)


2013-03-11 12:49:28 | Andrey_B
Максим, каких-то жестких ограничений по длине нет, так как это зависит от целого ряда факторов.
1. Какие используются провода, их толщина, тип, экран
2. Какое используется питание.
3. Есть ли рядом объекты, генерирующие помехи
4. Какой используется мастер сети
и т.д. То есть установить можно только экспериментальным путем.
Сам производитель говорит следующее. С пассивной подтяжкой линии максимальная длина 200 метров. С активной подтяжкой 500 метров и более.
Ну и никто не отменял 1-wire репитеров.


2013-03-10 14:08:40 | Максим
А какая максимальная длина у 1-wire шины?
Мне нужно ~ 700м 1-wire потянет?


2012-10-18 11:36:39 | Andrey_B
Артем, нет, такая система работать не будет.


2012-10-17 01:58:44 | Артем
У меня есть 16 датчиков. Раскиданы они таким образом, что вовсе неудобно по ним тянуть общую шину. Как Вы считаете, будет ли система работать, если я соединю эти 16 датчиков кабелем UTP и через ethernet switch ? К свичу же подключу DS9490R ? Будет ли такая система жизнеспособна.


2012-08-29 12:22:29 | Andrey_B
Игнат, конечно, возможно. И даже нужно. Лучше, если это будет FTP (экранированная витая пара).


2012-08-24 17:14:03 | Игнат
Подходит этап проводки в доме планирую к каждому выключателю и розетке дополнительно подтянуть витуху и трехжильный медный небольшого сечения. Возможно ли подключение датчиков и компонентов 1-wire по utp ?


2011-12-26 18:32:01 | Andrey_ims
Я почему-то думал что Вы используете телефонный провод.
Кажись в статье о выборе шины Вы писали
А так в принципе логично


2011-12-26 17:13:54 | Andrey_B
Конечно часто неудобно, поэтому все подключения выполнены псевдозвездой. Это когда от датчиков в какой-то центр (щиток, шкаф) идет всего один провод UTP. Но на самом деле в центре происходит коммутация шиной, то есть 3 провода к датчику и 3 провода от датчика. Шина сохраняется, ответвлений нет, но длина всей сети равна удвоенной длине лучей. Коммутировать лучи звездой можно пайкой, на клеммах или в специальных патч-панелях.


2011-12-26 16:48:49 | Andrey_ims
Подскажите, а проблем с ограничением длинны ответвлений от шины Вы сталкивались?
Ведь не удобно-же зигзагами пускать шину по всем датчикам.


2011-08-08 11:30:25 | Andrey_B
Max, компания iButtonLink выпускает специальные считыватели под маркой LinkLocator. Они предназначены специально для идентификации местоположения считывателя, так как имеют свой персональный адрес. Посмотрите даташит на этот продукт. То, что вам надо.
Еще один вариант - использования ветвителей и хабов. Я точно не знаю, но по-моему owfs может отображать конкретные ветки индивидуально, а значит на каждую ветку можно повесить свой считыватель.


2011-08-08 02:05:07 | Max
Подскажите, как лучше реализовать следующее: Есть несколько считывателей iButton, каждый установлен на своей двери. Если считыватели напрямую подключить к мастеру, то мы не узнаем, к какому именно считывателю поднесли ключ, мы увидим только id ключа. Вариант - установить несколько мастеров и к каждому мастеру подключить по своему считывателю. Может можно реализовать как-то эффективнее?


2011-07-18 16:42:25 | Andrey_B
Максим, очень полезно полистать Datasheet (документацию) на датчики DS18B20. Конечно, там материал подан достаточно сложно, но есть ответы на все вопросы.
У DS18B20 три ножки. Земля, Шина, Питание. Датчик может работать на так называемом "паразитном" питании. То есть брать энергию из шины. В этом случае контакт Питание и контакт Земля соединяются вместе и получается как бы две ножки.
Первый конец включается в мастер сети, второй конец подключается к датчику. Для простоты можно взять телефонную розетку (где есть разъем RJ-11 типа мама) и расположить датчик внутри корпуса, соединив ножки с нужными контактами в разъеме. Какие это контакты - смотрите Datasheet на мастер сети. Для DS9490R - это два центральных (!) провода.
Кабель наверное подойдет. Там написано "прямой". Очень важно, чтобы он был именно "прямой", так как телефонные как правило перевернуты. Для верности лучше будет проверить любым мультиметром.


2011-07-18 14:46:57 | Максим
Andrey_B, благодарю вас за столь интересный и содержательный ресурс!

После прочтения многих материалов на сайте, у меня остался отрытый вопрос по сборке 1-wire сети.
Для начал я решил опробовать сеть на ноутбуке под управлением Debian 6.
Приобрести мастер сети, кабель и два температурных датчика.

Но есть вопросы:
1) как крепить температурные датчики (у них 3 ножки, а кабель двужильный)?
2) что должно быть на "втором" конце кабеля (первый конец подключаем в мастер сети)?
3) подойдет ли для работы следующий кабель: FD-6113
Заранее благодарю!


2011-06-23 23:53:14 | Николай
Спасибо за оперативный ответ.
C Вашим программно-аппаратным решением я полностью согласен. И цена выгодная и простота реализации. Возможно более детально разобравшись с 1-wire я смогу предложить более оптимальный вариант.


2011-06-22 22:26:46 | Andrey_B
Николай, способы и варианты решения обозначенной вами задачи обсуждались здесь в комментариях и на форуме. Решений много. Но от себя хочу сказать, что предложенный вами подход имеет столько же недостатков, сколько и преимуществ. Не буду углубляться. Если мы используем как идеологию централизованное управление, то на мой взгляд и выключатели и ключи стоит подключать только к нему. Невозможно оптимально соединить в себе два взаимоисключающих подхода: централизованное и децентрализованное управление. Чаще всего из этого получается что-то глючное. Это я говорю с позиции своего опыта и своих взглядов. Никому не хочу их навязывать. Единственный случай, когда ключ может самостоятельно принимать решение - это авария сервера. Этот вариант подробно рассматривается в статье про AVR+Ethernet и в соответствующей ветке на форуме. Но это требует присутствия в схеме "умного элемента" (микроконтроллера). Преимущество же 1-wire заключается в простоте и дешевизне. Весь сложный функционал можно построить на обычном ПК, что доступен за 10 тыс. руб, чем выносить по 1% мощности сервера на десятки исполнительных элементов стоимостью в половину ПК и гораздо менее гибким функционалом.


2011-06-22 18:07:35 | Николай
На сколько я понимаю данное устройство подсоединяется минуя выключатель. Выключателем является ПК.
Таким образом поставив это устройство я не смогу включать и выключать свет с помощью выключателя.

Подскажите на сколько сложно добавить в схему вход от выключателя. Алгоритм работы следующий - выключатель либо соединяет провода - 1 либо нет 0. По управляющему кабелю передается сигнал 0 или 1. А в модуле стоит элемент &. Таким образом если я включил свет в комнате с помощью ПК то я могу выключить его с помощью выключателя. Для включения с помощью ПК необходимо послать уже инвертированный (для выключения света). Конечно еще перед выключением надо опрашивать элемент в каком состоянии он находится.


2011-05-30 23:44:42 | arsic
я тоже не нашел родного 9490. Взял как альтернативу китайца USB9097. Работает на тестовой сети.


2011-03-25 19:55:45 | gtsx4444
пора кооперироваться регионами и закупать, а то все ждут по отдельности)))


2011-03-25 09:50:02 | Сергей
спасибо, RedCat, я отказался в чип и дип и уже получил посылку от Rainbow El. всё стало дешевле на 500 руб!


2011-03-04 22:34:56 | skysilver
gdr, ты заказывал что-нибудь на hobby-boards?


2011-03-03 21:59:10 | stpavel
Несколько раз заказывал 1-wire элементы у Rainbow Electronics. Цены на элементы у них нормальные, DS9490R обходится где то в 900 руб.


2011-03-03 20:15:13 | gdr
чипдип 1300р.. у них не слипнется?


2011-03-03 16:19:51 | RedCat
Здесь не пробовали?
Rainbow Electronics


2011-03-03 09:27:23 | Сергей
Здравствуйте, пытался заказать DS9490R через чип и дип - они долго динамили меня, в результате срок поставки изменился сначала с 3 дней до 4-6 недель, потом вообще на вторую половину мая. не мог бы кто-нибудь порекомендовать аналог или альтернативу?
спасибо.


2011-01-18 23:08:14 | Andrey_B
Олег, действительно в даташите предложен хитроумный способ использования клавиатуры 4x4 с DS2408 напрямую. Но 16 в такой схеме - максимальное количество кнопок. А насчет опроса. Да, придется писать программу. Но не вижу в этом ничего сложного. Что касается языка, то это как удобнее. Если вы будете использовать owfs, то можно писать и на командном языке bash и на perl и на python и на php, не говоря уже о C. Причем можно использовать, собственно, файловую структуру owfs, а можно подключаться к owfs через stream или tcp. Вариантов масса.
Как я решил эту задачу можно прочитать в статье про водоочистку. Там как раз этот случай. Это относительно заготовок. Там все очень просто. Опрос в цикле папки alarm для выявления активного. А в вашем случае нужно дополнить код считыванием значений PIO и интерпретацией этих значений.
Надо только иметь ввиду, что DS2408 не запоминает в свойствах PIO нажатие кнопок. То есть кнопка может быть нажата в интервале между опросом. Тут надо ли уменьшать интервал опроса, либо учитывать/использовать свойства latch. Насколько я помню они остаются активными даже после того, как кнопка отжата, но после считывания их необходимо сбрасывать. Но если нажато несколько кнопок в интервале опроса, то и latch вам не поможет, потому что как бы коды кнопок смешаются. Я бы делал опрос по принципу Conditional Search 2-5 раз в секунду. И нажатие не пропустите и работе сети особенно мешать программа не будет.


2011-01-18 11:17:04 | Олег
Андрей, спасибо за довольно быстрый и хороший ответ.
Принцип опроса кнопок можно сказать я понял, но представлял немного по другому. Вот в даташите на эту микросхему есть схема подключения матрицы клавиатуры 4х4. Там предельно все просто, без каких-либо дополнительных кодеров. Опрашивать я думал раз 5 в сек. эту микросхему компьютером на состояние портов, хотя как это сделать пока не могу понять. Если бы нужно было 1раз в минуту то можно КРОНом, а так как я понимаю придется писать программу чтобы постоянно висела в памяти и опрашивала 5раз/сек? Как бы Вы организовали опрос? И на каком языке лучше и проще писать этот код? Может у Вас есть готовые заготовки?
Я понимаю что такой способ нерациональный (в том числе и в плане надежности), но его рассматриваю так как у меня дома есть сервер, на котором крутится раздача интернета + видеонаблюдение + трансляция спутникового ТВ в сеть (ресурсов на нем еще хватает чтобы что-то еще накрутить); + этот способ мне показался самым дешевый и в принципе тот функционал что мне нужен я думаю реально сделать. Если покупать еще один комп, так это дополнительные расходы, хоть и не большие + расход на электроэнергию (а у нас в Украине она вот вот в 2-а раза подорожает :(). Так что хочу сделать все это исходя с того что уже есть.


2011-01-17 21:53:13 | Andrey_B
Олег, начнем с того, что в DS2408 восемь PIO. Если использовать состояние ключей для кодирования информации, то таким образом можно закодировать 2^8 = 256 значений. Более, чем достаточно для 16 кнопок (даже с учетом Alt'ов). Другое дело, что в таким случае необходима какая-нибудь интегральная микросхема кодер (например, на базе МК), которая бы каждое нажатие кнопки представляло бы в 8 битах и замыкало соответствующие ноги DS2408.
1-wire - сеть, которая строится по системе мастер-слейв. Сама DS2408 не может инициировать процесс передачи данных мастеру. А значит состояние DS2408 необходимо проверять. Время реакции на кнопку зависит от частоты опроса. Эксперименты показывают, что опрашивать можно, скажем, 10 раз в секунду - этого вполне достаточно. Но и опрос должен строиться не на медленных запросах состояния PIO, а командой Read Conditional Search ROM. Это очень быстрая команда для поиска "активных" элементов в сети. Активность программируется заранее. Например для DS2408 можно прописать - если хотя бы один из 8 PIO сработал, значит элемент будет считаться активным. То есть мы сначала определяем факт нажатия кнопки, а уже затем, считывая состояние ключей, определяем какая кнопка нажата.
Только вот все это совершенно нерационально. Проще такие вещи делать на микрокомпьютерах, которые имеют и USB-порты для клавиатуры, и Wi-Fi и Ethernet и VGA, если нужен. Платы под управлением Linux продаются начиная с 1,5-2 тыс руб. Зато и пульт можно будет сделать куда более функциональным и мощным. Если сервер находится в прямой видимости, можно использовать совсем уж дешевые ИК пульты или 2,4ГГц беспроводные клавиатуры. А может быть есть еще какие-нибудь решения?


2011-01-17 14:13:15 | Олег
Здравствуйте,

Благодаря Вашему ресурсу решил сделать и себе умный дом :)
Но вот хочу сделать небольшое управление непосредственно с какого-то пульта управления.
Например, взять клавиатуру с матрицей 4х4, подключить ее к ds2408, и таким образом давать команды компьютеру, а он в свою очередь будет выполнять какие-то действия, например, голосом говорить какая температура, и т.д.

Но вот нигде не могу найти как организовать опрос этой клавиатуры. Если с 1х8 еще понятно (хотя не совсем понятно как сделать чтобы компьютер при нажатии клавиши моментально реагировал, т.э. чтобы не по крону опрашивать регистры), то с 16-ти клавишами, по типу матрицы 4х4, вообще не ясно как делать этот вопрос.

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

Спасибо.


2010-11-21 23:46:21 | Andrey_B
ELSE, эта тема неоднократно обсуждалась в различных форумах. Краткое содержание: RS485 как стандарт физического уровня более устойчив к помехам и позволяет осуществлять более высокоскоростной обмен данными. Вместе с тем, поддержка RS485 более сложна в реализации, требует применения более сложных электронных компонентов, не оговаривает применение высокоуровневых протоколов. Упомянутый вами RS232 - стандарт обмена информацией между двумя терминалами. А нужна шина, на которой "висят" десятки и сотни устройств. Для RS485, который любители в основном реализуют на МК, либо делается свой протокол, либо используются готовые реализации: ModBus, Profibus, LanDrive и т.д. ИТОГО: Сложнее электроника, сложнее программирование, выше надежность, выше скорость.
Например, DS18B20 - это готовый элемент, который нужно просто соединить с шиной. Никакой обвязки, сетевой и транспортный уровень заложены в элемент. Все, что требуется от пользователя, скачать и запустить owfs. Справится даже школьник. С остальными элементами обвязка необходима только для реализации специфических функций модулей (опрос, коммутация, АЦП и т.д.) и эта обвязка минимальна. Поэтому 1-wire популярен. Но это, конечно, не единственная возможность автоматизировать дом. Есть масса других решений. И для RS485 есть некоторые открытые реализации протоколов.


2010-11-21 18:58:45 | ELSE
А рассматривался ли вариант с RS-485 интерфейсом? испытанное и распространенное решение. Крайне широко используется в пожароохранных сигнализациях и т.п. + в том что работа идет по RS-232 протоколу, который как раз у ПК и реализован. Конверторов и пр. оборудования для такой системы - ну просто предостаточно. Что касается программной части, а именно, управления - я не уверен что она есть под линукс/ - хотя я и не искал.