[Из песочницы] DIY PLC для IoT

Аббревиатуру «сделай сам» переводить не нужно. PLC это Powerline Communication. Как ни странно, но есть еще те, кому не безразлична идея передачи данных по электрической проводке. Да, в мире немало людей, столкнувшихся с этим явлением лицом к лицу, кто-то, возможно, только собирается познакомиться с технологиями, открывающими такие возможности, для кого-то это уже состоявшийся удачный или неудачный опыт, но это никак не вчерашний день.

image


На настоящий момент существует масса протоколов PLC как программной, так и аппаратной реализации, наиболее популярные — PowerLine HomePlug AV, со скоростью передачи данных до 1500 мбит/сек.

Задача: для умельцев, сделать решение, где сам микроконтроллер помимо функций управления «вещами» будет работать PLC модемом.

Почему все таки PLC? Ответ прост: как минимум 90% устройств, в том числе датчики, устройства управления, питаются от линии ~220V. Встает вопрос: нафига тянуть еще провода, когда в принципе можно использовать те, которые уже проложены? Да, знаю про существование RF технологий, но опять-таки, зачем радио, когда уже есть провода? Да и в концепцию «минимальной обвески» микроконтроллера не вписывается. Не стоит задача «глобальной» сети. Нужно собрать в сеть устройства дома, огорода и пр. «хозяйства».

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

image


Попытаемся реализовать озвученную выше идею. Вкратце, как выглядит передача информации по проводам ~220V:

image


В качестве микроконтроллера будет STM32F100C8T6 / STM32F103C8T6. Чтобы не попасть под «раздачу», мощность отдаваемая в провод не должна превышать 70 мВт, иначе наше устройство подлежит обязательной регистрации. Если использовать ШИМ контролера в качестве генератора/смесителя то предельная частота для этого чипа будет 2 мГц. Вспоминаем про любительский диапазон 160 м (1.87 мГц). Это чтобы точно никому не мешать. 1.9 мГц как раз почти предельная частота для этого контроллера.

Просканировав диапазон 160 м обнаруживаю, что в нем давно никто не работает… Выбираем метод модуляции CW ( телеграфный ключ ), как самое простое и в то же время надежное решение. Для «умных вещей» нам большие скорости не нужны. В общем то более, чем достаточно 20 кбит/сек. Архитектура: мастер-слэйвы. Т.е. один контроллер опрашивает/посылает команды остальным.

Для начала, попытаемся получить «помощь» клуба: пороемся в тыр-нете, может кто-то добрый уже соорудил что-то подобное. Находим только следующее: простая схема для передачи информации по низковольтным силовым линиям

Не совсем подходит, ибо на низковольтное решение и постоянный ток. Ок, адаптируем данное решение для линии ~220V. Сооружаем гальваническую развязку и одновременно фильтр высоких частот. Получается такое:

image


Тестируем… Работает, но дальше 10 м не «пробивает»:

1. Не хватает мощности передатчика.
2. У приемника нет усилителя.

Ясно, что идея не сработала. Садимся думать… Не забывая о предельно простой «обвязке». Получается такое:

image


Исследуем, что получилось. Модулированный выход UART на трансформаторе (передатчик перед емкостями):

image


Что творится в реальной сети ~220V. Жилой, 9-ти этажный дом. Вход после трансформатора приемника. Амплитуда 20–100 mV. Расстояние передатчик-приемник примерно 60–70 м.

image


Увеличенный фрагмент. Видно, что у кого-то здорово фонит импульсный источник. Примерно 76 кГц. Настоящий китайский :)

image


Верхняя осциллограмма — выход детектора. Нижняя осциллограмма — Выход компаратора (восстановленный сигнал UART).

image


Т.е. видим, что решение — работает. Проверил в офисе, на расстоянии примерно 100–120 м — решение работает.

Терминатор для сигнала — емкость 10nF включенная параллельно проводам ~220V. После нее сигнала практически нет. Для работы по разным фазам теоретически можно использовать емкости те же 10 nF, но включенные между фазами. Не проверял. Более надежно — на каждую фазу свой модем.

Через один пилот (в них присутствует емкость в качестве фильтра НЧ) сигнал проходит. Через два — уже нет. В принципе, HomePlug AV модемы через два пилота тоже не «пробивают».

Как выглядит прототип (на макетной плате):

image


«Упаковано» в стандартный корпус на DIN-рейку: (в заголовке статьи).
Спасибо за внимание!

© Geektimes