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

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

Модератор: immortal

artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am

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

Сообщение artko »

Программатор в составе STM8SVLDiscovery. Обошелся в 10USD тогда, сейчас есть отдельный полноценные на алиэкспресс и по 7USD.
ksgroup
Сообщения: 135
Зарегистрирован: Ср дек 19, 2012 10:35 am
Откуда: Ukraine/Kiev

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

Сообщение ksgroup »

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

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

Сообщение artko »

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

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

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

Сообщение ksgroup »

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

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

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

Сообщение Ivan »

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

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

Сообщение artko »

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 КБ) 284 скачивания
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

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

Сообщение Ivan »

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

Но я для себя понял что нужно уходить от проводов. Буду использовать 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

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

Сообщение artko »

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

кстати, с вашей страницы на коннекте
RS428 - Считывание счётчика (тест работает)
применил классическое решение в виде фототранзистора и синей изоленты - дешево и надежно (если солнце не светит :D )
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

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

Сообщение Ivan »

Счётчик так и не запустил. В винде читается в линуксе нет.
Там проблема с настройками 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

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

Сообщение artko »

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

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