LINUXTALKS.CO

Tech / Games / Dev

 , , , ,

L


0

1

Подумал о дешёвой двухпроводной шине для мелкой автоматизации на больших расстояниях.

Придумал простую схему, для передачи данных дёргать двумя GPIO через транзисторные ключи подключенные к высокочастотному трансформатору и таким образом генерировать импульсы с различной частотой. А для приёма данных, подсчитывать число принятых фотодиодом импульсов от светодиода подключенного к шине.

Но возникает проблема. Если кабель неизвестного качества и расстояния неизвестные. И число устройство подключенных на одну шину неизвестно, то для максимально надёжной передачи, нужно напряжение повыше. Но, в сети ведь есть падение напряжения и поэтому непонятно какое конкретно придёт на светодиод, 3 вольта или 50 вольт. Например от одного передатчика придёт 7 вольт, а от другого 40 вольт. А ещё в случае коллизии они могут наложится. А приёмник должен не выйти из строя. А в идеале нужно учесть и всякие проблемы со статическими потенциалами. Я конечно разбираюсь слабо, но что то мне подсказывает что в таких условиях светодиод долго не прослужит.

Нужна какая то простая схема, которая частоту переменного тока частотой несколько килогерц (от 0,3 до 5) и широкого диапазона напряжений, от 3 до 110 вольт преобразует в аналогичное количество открытий полевого транзистора на входном GPIO.

Примечание:
Про схему шины с коротким замыканием двух жил знаю, но хочу сделать нечто более универсальное и в теории не требующие запитывания самой шины когда данные не передаются. А ещё что бы через фильтры, поток данных можно было загнать и в сеть переменного тока.

★★★★★★
Ответ на: комментарий от JamesHolden

Планируется частота от 0,3 до 5 килогерц - это диапазон слышимого звука. Схема шипения простая, около 1 килогерца - условный ноль, около 5 килогерц - условная единица, 3 килогерца - разграничитель пакетов. Штатно планируется использовать телефонный кабель.

Основная проблема в том, что от разных устройств до разных устройств эти сигналы теоретически могут доходить с амплитудой от условных 3 вольт, до 110 вольт. Нужно считать сколько раз в миллисекунду (или микросекунду, не определился ещё) происходят колебания от -U V до +U V. Где U - напряжение (амплитуда) сигнала.

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от rezedent12

Можешь попробовать так. Сначала по проблеме, как принять от 110 вольт до 3 вольт.

Вариант: сигнал пропускаешь через резистор последовательно, после резистора - диод выпрямительный (или даже 1n4148), на GND (параллельно). Диод надо повернуть так, чтобы сигналом он открывался.

Такая цепочка обрежет любое напряжение до уровня около 0.6 вольт - напряжение отпирания диода. Если 0.6 вольт мало - включи два диода последовательно, 1.2 вольта точно будут восприняты как логическая единица.

Это обрежет +U. Если у тебя еще минусовые -U высокого напряжения, тогда надо ставить параллельно этим диодам, такие же но в обратную сторону.

Как считать импульсы. Проще всего подать сигнал на ножку входа таймера в микроконтроллере. В любом микроконтроллере есть таймеры, у которых есть режим счетчика.

То есть каждый пришедший импульс увеличит на 1 число в регистре таймера. Потом просто читаешь это число, обрабатываешь, записываешь в регистр 0 и ждешь дальше, пока придут новые импульсы.

Время счета - миллисекунда как ты хочешь, тогда надо отсчитывать вторым таймером.

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

JamesHolden    
★★★★★★★
Последнее исправление: JamesHolden (всего исправлений: 2)

Linux / Chrome
Ответ на: комментарий от JamesHolden

Резистор какой величины сопротивления выбрать? Мне казалось что так не получится, потому что разное напряжение означает разное необходимое сопротивление для защиты светодиода. Контроллер и электрическую схему принимающую сигналы, думаю развязать гальванически через оптопару.

Это обрежет +U. Если у тебя еще минусовые -U высокого напряжения, тогда надо ставить параллельно этим диодам, такие же но в обратную сторону.

Хрен с ними. Главное число колебаний посчитать. Синусоида нужна скорее как стандарт на потенциальное великое будущее стандарта если они будет принят какими то производителями.

Подумывал о ограничителе на полевом транзисторе.

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от JamesHolden

Но и меньше тоже не стоит.

Вообще можно взять переменный резистор на 500 ком и подобрать верхний лимит, ну естественно нижний лимит лучше сделать постоянным резистором ком на 100 или 150.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от rezedent12

Мне казалось что так не получится, потому что разное напряжение означает разное необходимое сопротивление для защиты светодиода.

С оптопарой да, наверное не получится. Потому что там надо не просто обрезать, а чтобы еще и диод зажегся.

А если просто диодом обрезать и на ножку - должно получиться. Сейчас на модели попробую.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от torvn77

Как минимум у тебя нет фильтра для вырезания доминирующего над всем тона 50 гц.

И он имеет значение при разбросе логических уровней в килогерцы?

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от rezedent12

Конечно имеет, без отфильтрации у тебя будут большие периоды засветки (или отсечения, я не понимаю что делает биполярный транзистор в твоей схеме)

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

Ток ограничивает, хотя как JamesHolden подсказал, он не нужен судя по всему.

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

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от rezedent12

И он имеет значение при разбросе логических уровней в килогерцы?

Да, в данном случае как верно заметил @torvn77, у тебя сетевой синус амплитудой 311 вольт просто сам по себе будет на 10 миллисекунд включать светодиод, и поверх него твои импульсы уже влиять не будут.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

Интересно, сколько таких импульсов в секунду ожидается в типовой квартире? Это вопрос того какого размера должен быть пакет данных и какой тип алгоритма восстановления через избыточность данных выбрать.

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от rezedent12

Как то все слишком абстрактно.

Ты можешь какое-то минимально работающее устройство, или задачу, описать? Тогда можно говорить о реализации, а то пока больше вопросов чем ответов.

JamesHolden    
★★★★★★★
Android / Chrome
Ответ на: комментарий от JamesHolden

Создать простой открытый аппаратный стандарт и сделать фреймоворк для написания систем умного дома на произвольных языках программирования. Конечные исполняющие устройства должны быть очень дешёвые, то есть не должна каждая лампочка уметь ходить в интернет. А вся сложная логика должна быть на центральном узле сравнительно высокой вычислительной мощности, типа raspberry pi.

У системы должна быть независимость от простых глушилок бытовых радиодиапазонов, то есть надёжная связь по дешёвым проводам.

Это как USB, который имеет успех, потому что в самом начале позволял создавать максимально дешёвые устройства.

rezedent12    
★★★★★★
Linux / Chrome
Ответ на: комментарий от rezedent12

фреймоворк для написания систем умного дома на произвольных языках программирования.

Тебе лучше избегать этих названий, потому как по закону ты ОБЯЗАН сделать так, чтобы твоя система управлялась исключительно только через внешний сайт с обязательной регистрацией и индентификацией пользователей, о чём можешь прочитать годовалую новость на опеннете.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от JamesHolden

Вот так, решили что новый зонд должен сразу принадлежать государству, а не как Виндовс или Андройд частным компаниям(это моя интерпретация и я надеюсь что это так)

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от torvn77

Чтоб не быть совсем голословным поискал, на опенете ничего не находится, из всей сети нашлось два упоминания, одно из которых ссылается на другое:
Ссылка: https://www.kommersant.ru/doc/3924324

Правоохранительные органы должны иметь возможность доступа к информации, хранящейся в системах интернета вещей, для оперативно-разыскной деятельности, следует из проекта концепции построения и развития сетей интернета вещей (есть у “Ъ”), подготовленной Минкомсвязью и Минтрансом. Для этого к сетям IoT должны быть подключены системы средств оперативно-разыскных мероприятий (СОРМ) и внесены изменения в закон «О связи».

Применение устройств без идентификаторов в России должно быть ограничено, а для услуг в сфере IoT предлагается ввести и выдавать отдельную лицензию.

В целом может там и нет таких драконовских мер как я написал, но имхо если ТС будет продавать свои устройства как средства IoT то ему следует изучить законы ну или как минимум не давать устройству таких названий.

Ещё материал: https://polit.ru/article/2019/03/27/IoT/

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 3)

Linux / Chrome
Ответ на: комментарий от torvn77

в системах интернета вещей

«Интернет вещей» - это когда вещи являются устройствами подключающимися к интернету. Когда они имеют свои IP адреса.

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от rezedent12

Открытые стандарты для умного дома уже есть, 1-wire например, вот только оно похоже никому не нужно.
Это как со смердфонами, 99% молча жрут зонды от эпла или гугла+вендора, ну и что, что барен лазит по твоему устройству, собирает телеметрию и в любой момент может его выключить, никому до этого нет дела.
Так же и с иот, 99% просто купят вумный дилдак «ксеноми» и не будут заморачиваться с твоим raspberry pi

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от TheAnonymous

Открытые стандарты для умного дома уже есть, 1-wire например, вот только оно похоже никому не нужно.

Тут надо смотреть на то, насколько сложно эти стандарты использовать неподготовленному по it человеку.
Если надо самому компиоять и набивать код то они конечно будут слишком сложны.
А если будет как LinuxCNC net net и ЧПУ с кастомной топологией готово то может стать и популярным.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от TheAnonymous

Технически для масового потребителя это должно выглядеть приблизительно так:

Человек покупает всякие выключатели и датчики, которые стоят лишь на 50 или 100 рублей дороже таких же обычных. Устанавливает их. Цепляет к ним телефонный кабель или специальные беспроводные модули (если неудобно сигнальный провод тянуть). Подключает к шине главное устройство на базе raspberry pi и специальным приложением для смартфона через bluetooth вводит настройки сети и получает IP адрес WEB-интерфейса. (Ну или записав параметры в специальный файл на флешке)

Перейдя по адресу настраивает доступ и выбирает для установки конкретную систему управления. Зайдя в систему управления, уже в её настройках определяет какое устройство где находится и в её рамках настраивает всё остальное. Соответственно эти системы смогут быть как собственными скриптами на bash, платным ПО с свистопердельным интерфейсом. Или же вообще нейросетями запоминающими привычки пользователей.

Основные задачи:

Что бы каждый производитель мог приклеив к своим выключателям электромагнит и простую электронную схему - производить такие устройства. Естественно базовые шаблоны прошивки дешёвых чипов с протоколами обмена должны быть в открытом доступе.

Для системы управления умным домом все устройства должны быть видны в формате файловой системы, в которой можно считывать и записывать значения файлов, а так же запускать исполняемые файлы.

Основная проблема сегодняшних систем умного дома, в том что аппаратное обеспечение и система автоматизации не разделены.

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от rezedent12

Затвор с истоком соединить? У тебя же транзистор просто вообще не откроется.

Поясни подробнее, какую логику работы ты предполагаешь тут. Как должно быть, по-твоему?

JamesHolden    
★★★★★★★
Последнее исправление: JamesHolden (всего исправлений: 1)

Linux / Chrome
Ответ на: комментарий от rezedent12

Смотри что. Тебе надо, чтобы через светодиод тек одинаковый оптимальный для него ток, при разном исходном напряжении.

То есть тебе нужна схема «источник тока на транзисторе».

То, что ты нарисовал - это похоже на источник тока на JFET транзисторе. Но у тебя MOSFET транзистор, и JFET для таких параметров ты не найдешь (а MOSFET легко).

Отличаются тем, что JFET в такой схеме откроется и ограничит ток, а MOSFET вообще будет полностью закрыт.

Там надо резистор добавлять, вот тут обсуждают подобное

https://askentire.net/q/zapros-na-rassmotrenie-istochnika-toka-ogranichitelya-toka-mosfet-141973399750

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

Там надо резистор добавлять, вот тут обсуждают подобное

И главное сдаётся мне что в тех схемах предполагается что источник напряжения даёт ровное и чистое напряжение, а не целую или полупериод синусойды.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от rezedent12

Короче, просчитал схему где резистор, потом два диода 1n4148 последовательно на GND.

C резистором 10k:

3 вольта на входе, 1.16 вольт на выходе.

110 вольт на входе - 1.51 вольт на выходе.

И даже - 1000 вольт на входе - 1.71 вольт на выходе, ток диода 100 мА (а у него длительный допустимый 200 мА).

То есть даже 10k резистор удовлетворяет. Если ток, потребляемый диодом при 110 вольтах (10 мА) это много для тебя - то тогда можно как @torvn77 говорит ставить 100k, с ним почти то же, только чуть ниже напряжение на выходе.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

Но вообще помимо ограничивающих резисторов и диодов надо бы поставить ращделительный трансформатор чтобы не думать о совмещении GND контроллера и сети.

torvn77    
★★★
Android / Chrome
Ответ на: комментарий от JamesHolden

Если ток, потребляемый диодом при 110 вольтах (10 мА) это много для тебя

Сам ток меня не в плане энергопотребления волнует, а в плане того что бы светодиод не сгорел.

Если всё действительно так просто, то спасибо.

rezedent12    
★★★★★★
Windows / Firefox
Ответ на: комментарий от rezedent12

Только, еще раз поясню - то что я писал - это если взять обычный диод, не светодиод! И с него напрямую на ножку микроконтроллера подавать.

Если через светодиод оптопары, то так не получится, потому что у тебя либо не загорится светодиод при минимальном напряжении, либо он сгорит при максимальном, в зависимости от резистора.

JamesHolden    
★★★★★★★
Последнее исправление: JamesHolden (всего исправлений: 1)

Linux / Chrome
Ответ на: комментарий от rezedent12

Сомневаюсь.
Отталкивайся от трансформаторов в диалаповских модемах.

Вообще тебе не обязательно разделять трансформатором, можно разделить и двумя конденсаторами на 500V и выше.

torvn77    
★★★
Последнее исправление: torvn77 (всего исправлений: 1)

Android / Chrome
Ответ на: комментарий от rezedent12

Планируется частота от 0,3 до 5 килогерц - это диапазон слышимого звука.

Во первых я не думаю что ты будешь кодировать методом расширения спектра, по этому не шипение, а гудение.

Во вторых ты подключи активные колонки или усилок к сети как я тут сказал и послушай что там творится в диапазоне "от 0,3 до 5 килогерц"

torvn77    
★★★
Android / Chrome