Ультрабюджетные проводные датчики/исполнительные устройства

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение artko » Вс окт 19, 2014 4:00 pm

Программатор в составе STM8SVLDiscovery. Обошелся в 10USD тогда, сейчас есть отдельный полноценные на алиэкспресс и по 7USD.
За это сообщение автора artko поблагодарил:
RusikOk (Пн окт 20, 2014 10:24 am)
Рейтинг: 1.16%
ksgroup
Сообщения: 135
Зарегистрирован: Ср дек 19, 2012 10:35 am
Откуда: Ukraine/Kiev
Благодарил (а): 7 раз
Поблагодарили: 14 раз

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение ksgroup » Вс окт 19, 2014 5:15 pm

А можно про арбитраж коллизий подробнее? Сам подумываю на RS-485 переходить. По роду деятельности часто имею дело с DMX а это и есть RS-485, но только работает в одну сторону.
CubieBoard A10 - основной сервер Majordomo
Raspberry Pi - цифровая мини АТС ASTERISK
Arduino - блок управления реле, электросчетчик, счетчики воды, управление вентиляционной системой, СКУД.
artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение artko » Вс окт 19, 2014 6:30 pm

Идея очень примитивная, в общем.
Есть уровень на шине доминантный(для моего случая это прижатие к земле линии) и рецессивный (никто не трогает). Собственно, обычный открытый коллектор с подтяжкой к питанию.

Рецессивный считаю нулем, низшим приоритетом.
Предположим, две сразу станции начинают передачу. Пока у них одинаковые биты - никакой коллизии нет, все нормально будет считано другими. Но как только у одной очередной бит станет единицей(доминантой) - вторая передающая при проверке линии после начала передачи бита(линия должна встать в ожидаемый уровень) увидит, что состояние не соответствует ожидаемому - коллизия. Для станции это однозначно прекращение передачи и переход в состояние ожидания простоя канала.
Вторая, у которой приоритет передачи выше (именно для этого в начале пакета ставлю адрес, 0x00 - минимальный приоритет получателя, 0xFF максимальный) - продолжит работу.
В чем фокус такого подхода - пакет, передача которого уже начата - дойдет до конца без искажения и необходимости перепосылки.
ksgroup
Сообщения: 135
Зарегистрирован: Ср дек 19, 2012 10:35 am
Откуда: Ukraine/Kiev
Благодарил (а): 7 раз
Поблагодарили: 14 раз

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение ksgroup » Вс окт 19, 2014 10:27 pm

artko писал(а):Идея очень примитивная, в общем.
Есть уровень на шине доминантный(для моего случая это прижатие к земле линии) и рецессивный (никто не трогает). Собственно, обычный открытый коллектор с подтяжкой к питанию.

Рецессивный считаю нулем, низшим приоритетом.
Предположим, две сразу станции начинают передачу. Пока у них одинаковые биты - никакой коллизии нет, все нормально будет считано другими. Но как только у одной очередной бит станет единицей(доминантой) - вторая передающая при проверке линии после начала передачи бита(линия должна встать в ожидаемый уровень) увидит, что состояние не соответствует ожидаемому - коллизия. Для станции это однозначно прекращение передачи и переход в состояние ожидания простоя канала.
Вторая, у которой приоритет передачи выше (именно для этого в начале пакета ставлю адрес, 0x00 - минимальный приоритет получателя, 0xFF максимальный) - продолжит работу.
В чем фокус такого подхода - пакет, передача которого уже начата - дойдет до конца без искажения и необходимости перепосылки.
Идея понятна, но в RS-485 ее к сожалению не реализовать. Там микросхемка формирователь уровней интерфейса RS-485 управляется внешним сигналом прием/передача, поэтому в режиме передачи бита информации, что бы прочитать состояние линии нужно перевести микросхемку в состояние приема. Плюс для обмена удобно в микроконтроллерах использовать аппаратный UART, а он не умеет обращать внимание на линию при передаче каждого бита. Можно конечно программно реализовать передачу, но это отъест хороший кусок ресурсов микроконтроллера.
CubieBoard A10 - основной сервер Majordomo
Raspberry Pi - цифровая мини АТС ASTERISK
Arduino - блок управления реле, электросчетчик, счетчики воды, управление вентиляционной системой, СКУД.
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение Ivan » Вс окт 19, 2014 10:36 pm

artko поделитесь пожалуйста разводками и кодом

Также было бы очень интересно посмотреть на фото готовые устройства

P.S. Обожаю CAN, но не стал применять дома, т.к. устройство получается не дешевое (чип+драйвер). Иначе бы думать не стал и использовал его везде. Плюсы: однопроводный кан, возможность будить чип на уровне протокола, большая адресация. Минусы: топология шина (Но думаю тут можно намудрить как в 1-Wire, хотя поставить GateWay - лучший вариант)
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение artko » Пн окт 20, 2014 10:45 am

ksgroup писал(а):Идея понятна, но в RS-485 ее к сожалению не реализовать. Там микросхемка формирователь уровней интерфейса RS-485 управляется внешним сигналом прием/передача, поэтому в режиме передачи бита информации, что бы прочитать состояние линии нужно перевести микросхемку в состояние приема. Плюс для обмена удобно в микроконтроллерах использовать аппаратный UART, а он не умеет обращать внимание на линию при передаче каждого бита. Можно конечно программно реализовать передачу, но это отъест хороший кусок ресурсов микроконтроллера.
Не особо и много, хотя аппаратным модулем, безусловно, удобнее. ну и rs-485 имхо использовать не особо удобно - формирователи нужны, отдельный провод. Я подумываю уже у себя перевести на ethernet/wi-fi + шлюзы. Реально железки подешевели еще, возиться со специфическим своим творением оправдано (лично мне) только для буквально однокнопочных решений, где просто жаба не позволяет полноценный интерфейс ставить (выключатели света, датчики движения и т.п.).
Ivan писал(а):оделитесь пожалуйста разводками и кодом

Также было бы очень интересно посмотреть на фото готовые устройства

P.S. Обожаю CAN, но не стал применять дома, т.к. устройство получается не дешевое (чип+драйвер). Иначе бы думать не стал и использовал его везде. Плюсы: однопроводный кан, возможность будить чип на уровне протокола, большая адресация. Минусы: топология шина (Но думаю тут можно намудрить как в 1-Wire, хотя поставить GateWay - лучший вариант)

Но у меня НЕ CAN, отмечу. Оттуда только идеология коллизий/приоритета.

Фото - фактически делал только две разновидности плат, адаптер для десктопа
Изображение

и универсальный блок, контроллер с обвязкой шины + GPIO.
Изображение

на них уже цеплял датчики, дисплеи и прочее.

Во вложении код протокола и варианты применения. (STM8S003, IAR)
mgswire.rar
(200.77 КБ) 215 скачиваний
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение Ivan » Пн окт 20, 2014 12:33 pm

Респект. Много работы проделано.

Но я для себя понял что нужно уходить от проводов. Буду использовать mySensors
Хорошо бы уйти ещё от ардуины. Но пока не готов (времени мало)

Если бы вы представили свою работу когда я начинал. Я бы сделал выбор в вашу сторону, а не 1Wire
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение artko » Пн окт 20, 2014 12:51 pm

Я сейчас жду модули на ESP8266, чтобы интегрировать сразу в домовую сеть без дополнительных прослоек....

кстати, с вашей страницы на коннекте
RS428 - Считывание счётчика (тест работает)
применил классическое решение в виде фототранзистора и синей изоленты - дешево и надежно (если солнце не светит :D )
За это сообщение автора artko поблагодарил:
RusikOk (Пт авг 07, 2015 3:32 am)
Рейтинг: 1.16%
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение Ivan » Пн окт 20, 2014 1:18 pm

Счётчик так и не запустил. В винде читается в линуксе нет.
Там проблема с настройками 9600 Even 7bit
Уже всё перепробовал не отвечает.

Если есть опыт работы с serrial в Linux - помоги пожалуйста
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Ультрабюджетные проводные датчики/исполнительные устройс

Сообщение artko » Пн окт 20, 2014 1:49 pm

Ivan писал(а):Счётчик так и не запустил. В винде читается в линуксе нет.
Там проблема с настройками 9600 Even 7bit
Уже всё перепробовал не отвечает.

Если есть опыт работы с serrial в Linux - помоги пожалуйста
нет, я здесь пас. как по мне проще какой-то железный транслятор сделать, для приведения к более стандартным настройкам.
Ответить