PDU - power distribution unit - умные розетки для шкафа

есть такие штуки для серверных шкафов - пду
типа куча розеток с управлением по сети + мониторинг мощности

даже б\у они стоят кучу денег, поэтому я подумал сделать свою на базе готового девайса для звуковой стойки

вот тут https://youtu.be/fInDFtN2JHw?t=332 можно посмотреть кишки, мне пришлось приделывать его к 19" полке, т.к. он узкий и без ушей был или там они даже не крепилсь

2 лайка

дальше нам понадобятся электронные реле

потом нам потребуется сетевой модуль

я его купил аж за 1.90 евров с бесплатной доставкой, но так он дороже стоит

есть еще такой контроллер net2serial


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

дальше нам понадобятся вот такие кнопки

вертикальные, т.к. надо скрыть большие вертикальные вырезы от дефолтных выключателей

вот тут видно, что внутри вставляется белая штука со светодиодом 5мм

я раньше купил кнопки и там стояли мелкие лампочки и даже 3мм диод туда не влазил, хотя те кнопки тоже неплохие

минус этих кнопок только в диаметре дырки под них в 24мм, так что надо ступенчатое сверло и у меня оно есть

далее нам надо будет 2х цветные светодиоды

выкидываем дефолтные светодиоды и ставим туда эти

для крепления проводов надо будет купить набор контактов

надо 4.8 и 6.3мм

для этих контактов удобно использовать свитые провода от передних панелей старых компутеров - там уже разделаны штекеры

для вывода сетевой розетки красиво - понадобится такой вот адаптер

или такой

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

собственно софт там простой, без ип протокола и всего хлама, работать правда будет только на л2, но нам больше и не надо

смысл такой
при включении главного выключателя все кнопки горят красным, розетки выключены

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

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

там можно будет подписать розетки

если использовать контроллер CH32V307VCT6 или попроще CH32V207, то можно сделать все на нем, внутри у них есть phy + mac, останется только прилепить трансформатор, а вот насчет ип стека я не знаю, надо смотреть у производителя на сцайте и на этот контроллер не портирована ардуина, хотя она особо тут и не нужна

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

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

это первая часть с идеей и уже куплеными всеми деталями


форум не дает постить сразу кучу картинок, так что пришлось кучу постов лепить

продолжим дальше насчет сетевых модулей

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

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

по поводу модуля реле механического

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

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

оценим, сколько останется свободных контактов у контроллера после подключения сетевого модуля

7 со стороны цифровых и 6 со стороны аналоговых выводов и как бы 7 должно хватать для кнопок, а вот светодиоды у нас специфичные 2х цветные и внутри 2 кристалла, включены встречно параллельно и выводов всего 2, а не 3

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

такой алгоритм называется charlieplexing, в 90х один мужик придумал для экономии выводов контроллера

если бы это было 2 одинаковых отдельных светодиода с одинаковым падением напряжения, то такая схема с одним резистором была бы норм

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

2 вывода подключаются к 2м выводам контроллера

на первый взгляд 2 диода занимают 2 вывода, что можно было бы сделать и обычно, соединив оставшиеся выводы светодиодов с землей, как это обычно делают, но чарлиплексинг выигрывает, когда количество светодиодов растет

вот так на 4х выводах мы можем зажечь 12 диодов, но у нас физически 1 диод двойной, поэтому 4х выводов хватит только на 6 диодов, а розеток там 7 штук или даже может быть 8, так что понадобится 5 выводов

добавляем еще 1 вывод и можно подключеть 10 двойных диодов вместо 6

как работает чарлиплексинг? мне нравится эта картинка

вот тут есть целый симулятор The Charlieplexing

вот еще с таблицей для упрощения понимания всех состояний выводов на каждую единицу времени


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

1 я уже подключал диод и засовывал его в кнопку, чтобы в натуре оценить яркость при одинаковом токе и вроде бы как она одинакова на обоих цветах, что как бы намекает, что производитель таких диодов подумал о разном падении напряжения и уже в диод засунул резистор на красный кристалл, чтобы уравнять падение напряжения с зеленым, поэтому мы можем использовать все таки по резисторы на каждый вывод контроллера, что я думаю проверить завтра, а то уже 1:33 ночи

для этого я купил магазин резисторов

я еще для другого проекта купил вот такие индикаторы

хочу тоже сравнить яркости при одинаковых резисторах (для этого я еще купил 2 магазина резисторов, чтобы зажечь 3 разных цвета одновременно)

если сегменты будут светиться по разному, то для чарлиплексинга вместо резисторов можно воткнуть специальные “резисторы”, которые автоматом делают так, чтобы через разные кристаллы тек всегда одинаковый ток в 20ма, обычно такой ток для светодиодов используют

такой резистор называется источником стабильного тока и выглядит вот так

по сути это 2х выводной “диод”

пока все по подключению диодов, завтра допишу про кнопки и про включение розеток и сделаю прототип схемы

продолжаем разрабатывать девайс :monkey:

теперь настала очередь кнопок, на которые надо 7 выводов
считаем, хватит ли выводов на 7 кнопок и 8 реле или 7, если уж совсем припрет

23 вывода - (4 eth) - (2 uart) - (5 led) = 12, еще -7 = 5 вывода свободных, которых не хватит на реле

что делать? для этого есть 2 варианта - правильный и нищий
правильный вариант - использовать специальную микросхему расширения портов, которая подключается к шине спи или и2ц

нищий вариант - для реле подключить регистр 74hc595, там ему как раз хватит 3х выводов
он стоит копейки, а расширитель портов стоит как сам контроллер, но лучше я возьму его

есть 2 вида этого расширителя и который с и2ц почему-то имеет 2 вывода, которые можно использовать только как выход

вобщем тут все понятно, плюсом еще будет то, что там есть подтягивающие резисторы и не придется паять 7 штук самому

пока схему накидал так, чтобы прикинуть по выводам

подумал еще и решил, что не сделать ли мне таки нищий вариант и сделал

не хватило 1 вывода :weary_cat:
сколько выводов надо на каждый интерфейс
2 uart
5 led
7 button
4 spi
3 595

решил составить список и перечислить выводы

uart 0,1(pd0,pd1)
buttons 2,3,4,5,6,7,8 (pd2,pd3,pd4,pd5,pd6,pd7,pb0)
spi 10,11,12,13 (pb2,pb3,pb4,pb5)
595 9,a0,a1 (pb1,pc0, pc1)
led a2,a3,a4,a5, - (pc2,pc3,pc4,pc5, -)

потом отметил на картинке выводы разными цветами

таки да, забыл про 2 вывода, к которым цепляется кварц

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

итак, тестовая схема составлена, пока еще нет соединений релешек с разъемами для подключения розеток, но это не важно уже

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

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


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

на улице жара под 40, так что я пока не буду писать

подбираем готовые 19" модули розеток под шкаф


пока что это пробная версия на 8 розеток и 7 кнопок, как я уже сказал - расширитель портов почему-то последние выводы имеет только как выход и кнопку прилепить не выйдет

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

так что 8й выход будет только в софтовой кнопке и т.к. у меня только 7 розеток, то я в корпус засуну еще блок питания на 12в и на патч панель выведу круглый разъем или несколько

можно кстати запитать эти китайские коробки на н100

у вас наверное возник вопрос - панель с розетками слишком мелкая, а ты тут на фотке показывал свой здоровый ящик, куда влезет плата, а в панель не влезет и как быть?

я и этот вариант предусмотрел
со стороны ввода кабеля надо будет сделать дырку побольше или сзади панели и воткнуть туда гнездо gx20 aviation connector

этот размер рассчитан на напряжение до 250в

т.к. реле китайские (у меня вроде японские омрон, хоть и брал их на али), то больше 100вт их нагружать нельзя

сам девайс можно наверное сделать в какой-то коробке пластиковой
можно взять корпус от дохлого свитча и переднюю панель

есть уже готовая панель с дырками 24мм как раз под кнопки и как раз 8 штук

1U 19" cabinet Rack Mount 2U jumper rack D-Type Connector 8 12 16 24 Port/Way/Hole XLR Patch Panel for video audio 6.35 B

а можно такие

1U 19" cabinet Rack Mount Standard 19-inch19 Inches cabinet black 1U/2U Backplane Blind Board for 1U Server Chassis Baffle Cover

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

это еще надо будет проверить, влезет ли столько всего в контроллер

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

что можно мониторить?
вот образец






на ебее мне удачно попался такой корпус с розеткой и за копейки, так что я его сразу купил
прошивка Tasmota Documentation - Tasmota
модуль PZEM-014 с доработкой (убрать трансивер рс485)
Home Power Monitoring | Hackaday.io

я думаю, что с усб-рс485 можно напрямую воткнуть в сервер и написать какой скрипт на питоне, там используется модбас и есть описание регистров

если вам вообще лень заморачиваться, то смотрите тут
EU Devices ищите по строке Energy Meter

либо можете купить готовые удлинители

но как там пишут - беспроводной модуль с есп8266 заменили на китайский самый дешевый, поэтому прошивка не будет работать

есть ZMAi-90 Digital Energy Meter (ZMAi-90) Configuration for Tasmota
там надо будет заменить модуль на есп8266

тасмота может выводить инфу mqtt или прометеус