IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [145]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [522]
    Видеорегистраторы [188]
    Гаджеты для спорта и здоровья... [195]
    Гаджеты, аксессуары... [632]
    Измерительная техника, инструменты [455]
    Накопители данных [234]
    Нетбуки, Ноутбуки, Ультрабуки [693]
    Мультиварки, блендеры и не только... [168]
    Планшеты [765]
    Радар-детекторы [26]
    Роботы-пылесосы [41]
    Своими руками [380]
    Сети, сетевые технологии, оборудование... [274]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [542]
    Умный дом [56]
    Электронные книги [103]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [109]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3991]
    mini computers и не только... [413]
    News IT, Это интересно, ликбез... [1121]
    Smart TV, UltraHD, приставки, проекторы... [417]
    Smart Watch [270]
    Sound: наушники, плееры, усилители... [621]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2025 » Январь » 17 » Сетевой фильтр Франкенштейна. Небольшой ремонт, обернувшийся большой переделкой
    10:08
    Сетевой фильтр Франкенштейна. Небольшой ремонт, обернувшийся большой переделкой

    Сетевой фильтр Франкенштейна. Небольшой ремонт, обернувшийся большой переделкой

    В один прекрасный день (а вернее ночь), у меня сломался сетевой фильтр. Как я это понял? Утро меня встретило отсутствием интернета и зарядки на телефоне. Тумблер на сетевом фильтре был включен, но рядом с ним зловеще тлел багровый индикатор перегрузки сети, а девайс при этом угрожающе потрескивал. Очевидно, ему пришел конец. Но 5 стадий принятия горя я проходить не стал, а просто воскресил несчастного с «небольшими усовершенствованиями». Не обошлось без «умного дома». Подробнее об этом под катом.
     

    Введение


    Сначала поговорим о сетевых фильтрах в целом, и о моей модели в частности. Для чего они нужны? Очевидно, сетевой фильтр должен фильтровать помехи в сети. Фактически, современный вариант должен состоять из минимум двух блоков — варисторной защиты, подавляющий высоковольтные скачки напряжения и LC-фильтра, снижающего высокочастотные помехи от импульсных цепей современных топологий блоков питания.


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


    Но, повторяю, язык — гибкая штука. Так что когда маркетологи выкинули все дорогостоящие фильтрующие цепи из удлинителей, они продолжили называть это «сетевой фильтр», и даже прижилось.
    Яркий образчик

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

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

    Удлинитель Most HV6, который у меня сломался спустя более 10 лет эксплуатации, как раз имеет перечисленные ранее защитные цепи.


    Все они умещаются на одной двуслойной плате.


    Цепь защиты с реле аналоговая и работает на основе сравнение напряжения с помощью стабилитронов и биполярных транзисторов. Целиком кроме конденсаторов и реле расположена на нижней стороне платы. Питание осуществляется через диодный мост и сглаживающий конденсатор (развязки от сети нет). Для понижения напряжения используется smd-резистор. От нагрева дорожки около него пожелтели и вспучились. Но это не причина неисправности.


    Сверху расположен LC-фильтр и варисторная защита.


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

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


    Последний элемент — автоматический предохранитель. Его «выбивает» от перегрузки, но от нажатия он восстанавливается.


    Итак, что же в итоге неисправно? Да банально выключатель. Через него проходит вся нагрузка в сети, отчего со временем обгорает контакт. Все удлинители, от самых дешевых до премиальных не застрахованы от этой проблемы. В качестве временной меры я разобрал кнопку (нужно поддеть верхнюю часть отверткой) и зачистил контакты дремелем. После сборки лампочка цепи защиты снова зазеленела и удлинитель заработал. А я полез покупать новую кнопку на АлиЭкспресс.
     
    Нехитрый ремонт - чистим контакты-качельки


    Мне попалась вот такая «куласная» кнопка на 30 китайских Ампер. Она так же, как и оригинал, двойная, то есть отсекает фазу и ноль. Оставалось только дождаться приезда и запаять ее на место…

    Эпилог


    Но пока я ждал, мне пришло в голову, что я давно хотел себе «умный» удлинитель. Насколько он может быть умен? Современный умный удлинитель это устройство, способное удаленно, по расписанию, сценарию или в ручном режиме управлять подачей напряжения на розетки (в дешевых управляет всеми розетками только одновременно). Данная функция полезна для уменьшения износа аккумуляторов на зарядке (например, в смартфонах), может удаленно запускать компьютер, перезагружать роутер, управлять освещением и многое другое. Также существуют модели, оснащенные мониторингом энергопотребления. Думаю, пояснять его полезность излишне. И наконец, самые продвинутые мониторят перегрузки сети и имеют встроенную защиту.
     
    Не реклама (реклама)

    В моем удлинителе оказалось все необходимое для переделки в умный — много свободного места а также качественные компоненты и материалы корпуса. Такие до сих пор продаются по цене 1500 и выше! А ко всему еще и встроенная защита. Оставалось только впихнуть недостающие кишки… Кстати, что по ним?
     

    Начало истории


    Для отсечения напряжения используют симисторные цепи или реле. Последние чаще всего. Симисторы хороши тем, что позволяют не только включать-выключать, но и регулировать мощность от 0 до 100%. Кроме того, они бесшумны, а их ресурс значительно выше.


    Реле в свою очередь громко щелкают контактами (и в процессе могут «залипнуть»), неспособны регулировать, но крайне доступны и легки в управлении, в отличие от симисторов. Говорю я о легкости в сравнении именно с «голыми» полупроводниками. В составе модулей твердотельного реле они ведут себя не хуже обычных реле, но зато значительно дороже. Дешевизна и компактность обычных определило их место в моем проекте.


    Для мониторинга напряжения я использовал аналоговые датчики ACS-712. Это датчики на основе эффекта Холла. Они измеряют токи, возникающие в проводнике перпендикулярно его сечению под воздействием магнитного поля.


    Защитная цепь уже есть в фильтре, но я решил интегрировать ее в управляющий контур. Для этого вывод одного из транзисторов я через резисторный делитель отправил на вход микроконтроллера. В момент срабатывания защиты на нем появляется 18 вольт, так что, думаю, вопрос о необходимости делителя отпадает. При этом если его притянуть к земле, защита сбрасывается в рабочее состояние. Также нужно синхронизировать землю цепи с управляющим контуром. При работе с этой цепью важно понимать, что развязки от сети 220 в ней нет, а работа с высоким напряжением ОПАСНА ДЛЯ ЖИЗНИ. Так что не стоит забывать о технике безопасности.


    Почему именно этот вывод? Не углубляясь в работу цепи так и не скажешь, а на это, пожалуй, уйдет еще статья. Так что просто исходим из логики «транзистор делает вкл-выкл», а мы делаем «дёрг-дёрг».

    Итак, пора поговорить о схеме в целом. В качестве «мозга» устройства я избрал дешевый модуль ESP-12F. Он имеет 3.3В логику и 1В АЦП. Реле были выбраны дешевые китайские 5В модули, а датчик тока изначально планировался на 20А. Исходя из этого в схеме появляются некоторые особенности.


    Первая — 5V реле напрямую не работают с 3.3V логикой. Но это были единственные компактные реле с обвязкой, которые влезали в корпус (и стоили 40 рублей/штука). Есть небольшая хитрость, которая способна подружить реле с микроконтроллером. Для этого нужно подключить светодиод последовательно входу реле. При этом на светодиоде падает пресловутые 1.7 вольт, которых не хватало, а реле наконец-то способно триггериться низким логическим уровнем МК. Поскольку он еще и зажигается при этом, то работает как индикатор. Так что я просто выпаял зеленые светодиоды из самого реле и подключил их по схеме:

    Что касается датчика тока, он рассчитан на 5 вольт. При этом при нуле ампер он выдает 2.5В (он также определяет направление тока). Это сразу поднимет в потолок показания нашего АЦП (рассчитанного на 1В), так что для корректной работы необходим резисторный делитель 1:4 (2 к 8 для 10 кОм).

    Примерно по тем же соображениям рассчитываем делитель для мониторинга защиты (16.7 к 83.3 для 100кОм).

    Остается запитать от БП 5В со стабилизатором на 3.3(для МК) и все заработает!


    Получив схему, я приступил к реализации проекта. Реле я купил локально, датчик тока у меня имелся, ESP-12F был небольшой пакетик, а БП в принципе валялось много в виде зарядок для телефонов. Также были извлечены силовые провода из старого компьютерного БП, а также по мелочи рассыпуха и низковольтные проводки.
     

    Поехали!


    Начнем с самого простого, но трудоемкого — блока управления розетками. У него простейшая схема и понятная логика управления, но придется попаять.

    Выбираем колодку и разрезаем ее так, чтобы получить 6 отдельных — по одной на розетку. Делаем отверстия и паяем к ним провода от реле. Колодкам больше негде держаться, крепления слишком редкие. Ничего! Поправим 3д-печатными стойками, которые крепятся к оригинальным трением.


    Теперь раскладываем реле и укладываем провода. Укладка немаловажна, поскольку силовые высоковольтные цепи необходимо надежно изолировать от управляющих контуров. Снизу кладем управляющую реле 6-канальную шину (у меня выполнена куском шлейфа IDE). На ней должны лежать провода питания реле 5В, белые потолще. Сверху лежат толстые провода 220 вольт, соединяющие все реле с одной стороны с сетью, а с другой с управляемыми розетками. Провода взял с толстыми жилами, от старого компьютерного БП.
     


    Теперь в крышке наметим отверстия под светодиоды, а их подготовим, выведя длинными проводами и вклеив в отверстия.


    Подключив это к микроконтроллеру, уже получаем заготовку для умных розеток!

    Далее подключаем датчик тока ACS-712. В целом, ничего сложного нет, подводим питание 5 вольт и резисторный делитель. Я немного залил контакты термоклеем для надежности.


    Для управления защитой я спаял нехитрый модуль, состоящий из подстроечника и NPN-транзистора. Заизолировал и влепил его рядом с датчиком тока, подключив к указанным выводам схемы защиты.

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


    Перед пайкой МК в удлинитель лучше прошить ее сгенерированным по умолчанию кодом. Заходим в ESPHome Builer и ищем там зеленую кнопку «New device». Выбираем параметры платы и способ загрузки (bin-файл). Затем прошиваем в любой программе UART-загрузчика или попросту открыв хаб ESPHome. Можно использовать USB-TTL программатор или ардуино. Кнопки сброса и программирования я после прошивки выбросил.
     
    Дополнительная информация


    Для питания использовал БП 5В 1А от какого-то старого девайса. Его хватит с запасом.


    Укладываем провода и дело остается за программой!

    Имплантация личности


    Прошивка, как и обновленное устройство, делится на 3 основные части (кроме конфигурации по умолчанию). Первая — розетки.
    switch:
      - platform: gpio 
        pin: GPIO01 
        name: "PowerSocket #0" 
        id: relay_0 
     
      - platform: gpio 
        pin: GPIO03 
        name: "PowerSocket #1" 
        id: relay_1
      - platform: gpio
        pin: GPIO05
        name: "PowerSocket #2"
        id: relay_2
    
      - platform: gpio
        pin: GPIO04
        name: "PowerSocket #3"
        id: relay_3
    
      - platform: gpio
        pin: GPIO00
        name: "PowerSocket #4"
        id: relay_4
        
      - platform: gpio
        pin: GPIO02
        name: "PowerSocket #5"
        id: relay_5
    
    Здесь ничего объяснять, думаю, не нужно. Вторая часть относится к защите.
    output:
      - platform: gpio
        pin: GPIO15
        id: output1
    
    button:
      - platform: output
        name: "Reset Protection"
        output: output1
        duration: 200ms    
    
    binary_sensor:
      - platform: gpio
        pin: GPIO13
        name: "Overload Sensor"
    Кнопка прижимает ресет защиты к земле на 200ms и может перезагружать защиту без щелканья тумблером. Сенсор перегрузки имеет два состояния — ошибка и норма.

    Ну и наконец сенсор тока и мощности. Он сделан с использованием лямбды и кастомных компонентов, что намного сложнее всего, что описывалось ранее.
    sensor:
      - platform: custom
        lambda: |-
          auto acs712_sensor = new ACS712Sensor();
          App.register_component(acs712_sensor);
          return {acs712_sensor->current_sensor, acs712_sensor->power_sensor};
        sensors:
        - name: "Amperes"
          unit_of_measurement: A
          accuracy_decimals: 2
        - name: "Watts"
          unit_of_measurement: W
          accuracy_decimals: 2
    
    Дело в том, что расчет мощности в цепи переменного тока — задача нетривиальная. Для ее реализации нужно считывать несколько раз в секунду значения тока (на разных точках синусоиды) и усреднять их с применением цифровых фильтров. Для этого я подключил стороннюю библиотеку ACS712, а также руками закинул в директорию ESPHome модифицированный файл кастомного компонента. В конфигурации подключил их так:
    esphome:
      name: smart-power-strip
      friendly_name: Smart power strip
      libraries:
        - https://github.com/RobTillaart/ACS712.git
      includes:
        - components/ACS/acs712_component.h
    
    В ходе теста выяснилось, что библиотека почему-то показывает значения в 10 раз меньше нормальных (паяльная станция показывала 50 ватт вместо 500), причем линейно. В файле компонента я увеличил значения в 10 раз. Также выяснилось, что датчик на 20 ампер вообще не показывает ничего в диапазоне 0-1000 Вт. Пришлось заменить его на 5-амперный. Так максимальная показываемая мощность теперь стала 1100 Вт, но для фильтра для ПК и периферии этого достаточно. Для настройки под себя в файле нужно изменить строку инициализации. Конкретные значения можно узнать из гитхаба библиотеки.
    acs712_component.h
    #include "ACS712.h"
    
    class ACS712Sensor : public PollingComponent {
       public:
        ACS712 *ACS = new ACS712(A0, 1.0, 1023, 185); //Параметры инициализации для ACS712 5А и ESP12
        Sensor *current_sensor = new Sensor();
        Sensor *power_sensor = new Sensor();
    
        ACS712Sensor() : PollingComponent(15000) {}
    
        void setup() override {
            ACS->autoMidPoint();
            ESP_LOGD("acs712", "MidPoint: %d", ACS->getMidPoint());
            ACS->setNoisemV(43);
            ESP_LOGD("acs712", "Noise mV: %d", ACS->getNoisemV());
        }
    
        void update() override {
            float average = 0;
            //uint32_t start = millis();
            int count = 5;
            for (int i = 0; i < count; i++) {
                average += ACS->mA_AC();
            }
            float amps = average / count / 1000.0;
            // float mA = ACS.mA_AC(50,10);
            //uint32_t duration = millis() - start;
    
            //ESP_LOGD("acs712", "Time: %d A: ", duration, amps);
    
            current_sensor->publish_state(amps*10); //увеличил в 10 раз
            power_sensor->publish_state(amps * 2200); //увеличил в 10 раз
        }
    };
     
     
    Чтобы закинуть файл компонента в HomeAssistant, надо использовать файловый сервер. Я использовал дополнение Samba-share (гайд по использованию). Закинуть нужно сюда:


    После этого компонент должен без ошибок быть виден конфигурации ESPHome. Полный код компонента прилагаю.
    Дополнительная информация
    esphome:
      name: smart-power-strip
      friendly_name: Smart power strip
      libraries:
        - https://github.com/RobTillaart/ACS712.git
      includes:
        - components/ACS/acs712_component.h
    
    
    esp8266:
      board: esp01_1m
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
    
    ota:
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
    captive_portal:
    
    switch:
      - platform: gpio 
        pin: GPIO01 
        name: "PowerSocket #0" 
        id: relay_0 
     
      - platform: gpio 
        pin: GPIO03 
        name: "PowerSocket #1" 
        id: relay_1
      - platform: gpio
        pin: GPIO05
        name: "PowerSocket #2"
        id: relay_2
    
      - platform: gpio
        pin: GPIO04
        name: "PowerSocket #3"
        id: relay_3
    
      - platform: gpio
        pin: GPIO00
        name: "PowerSocket #4"
        id: relay_4
        
      - platform: gpio
        pin: GPIO02
        name: "PowerSocket #5"
        id: relay_5
    
    output:
      - platform: gpio
        pin: GPIO15
        id: output1
    
    button:
      - platform: output
        name: "Reset Protection"
        output: output1
        duration: 200ms    
    
    binary_sensor:
      - platform: gpio
        pin: GPIO13
        name: "Overload Sensor"
    
    sensor:
      - platform: custom
        lambda: |-
          auto acs712_sensor = new ACS712Sensor();
          App.register_component(acs712_sensor);
          return {acs712_sensor->current_sensor, acs712_sensor->power_sensor};
        sensors:
        - name: "Amperes"
          unit_of_measurement: A
          accuracy_decimals: 2
        - name: "Watts"
          unit_of_measurement: W
          accuracy_decimals: 2
        

    Теперь, когда конфигурация завершена, можно добавить автоматизации. Вот эти для зарядки гаджетов только в ночное время. У меня есть набор запасных устройств — повербанки, колонки, наушники и т.д. От постоянного стояния на зарядке аккумуляторы портятся. Поэтому если настроить режим прерывания, то это позволит сэкономить электроэнергию и ресурс батарей. Если бы это был аквариум, думаю, принцип был бы такой же.
    Дополнительная информация
    automation:
      automation:
      - alias: 'Turn on PowerSocket #0 at midnight'
        trigger:
          platform: time
          at: '00:00:00'
        action:
          service: switch.turn_on
          target:
            entity_id: switch.power_socket_0  # Заменить на правильный entity_id
    
      - alias: 'Turn off PowerSocket #0 at 8 AM'
        trigger:
          platform: time
          at: '08:00:00'
        action:
          service: switch.turn_off
          target:
            entity_id: switch.power_socket_0  # Заменить на правильный entity_id
    

    Также можно автоматизировать выключение 3д принтера после завершения печати, если он управляется klipper или octoprint.
    Дополнительная информация
    automation:
      - alias: "Turn off PowerSocket after print finishes"
        trigger:
          platform: state
          entity_id: binary_sensor.klipper_printer_state  # или ваша сущность, которая отслеживает состояние
          to: 'idle'  # или состояние, которое обозначает завершение печати
        action:
          service: switch.turn_off
          target:
            entity_id: switch.powersocket_1  # Идентификатор вашей розетки
    

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

    Для того, чтобы перезагрузить роутер, текущего кода для розеток мало, ведь роутер раздает через сеть команды, а выключив его удаленно, мы сразу потеряем соединение. Поэтому в программу розетки добавим скрипт и кнопку. По нажатию скрипт перезагрузит роутер, и удлинитель сразу подключится к нему снова.
    Дополнительная информация
    script:
    script:
      - id: reboot_router
        then:
          - switch.turn_off: relay_0
          - delay: 10s  # Подождать 10 секунд (выключение роутера)
          - switch.turn_on: relay_0
          - delay: 5s  # Подождать 5 секунд (включение роутера)
    
    button:
      - platform: template
        name: "Reboot Router"
        icon: mdi:restart
        turn_on:
          service: script.reboot_router  # Это запускает скрипт в ESPHome
    

    Пока что, думаю, довольно примеров. В целом, я доволен получившимся результатом и бюджетом проекта.
    • Реле — 40руб. x6
    • Esp8266 — 86руб x1
    • ACS-712 5A — 80руб. x1
    • Кнопка (починка) — 56руб. x1
    Итого: 462руб.

    Остальное было в наличии. Учитывая, что самый хиленький умный удлинитель стоит около 1000 (а в нем особо ничего нет), считаю, что вариант переделки более чем оправдан, особенно в случае качественного сетевого фильтра, взятого за основу. Единственное, что я не рассчитал, эту логику индикации реле: когда устанавливал, мне казалось логичным, что загорается либо красный, либо зеленый. Но по итогу оказалось, что красные горят все время. Но это даже как-то празднично выглядит…


    Ну а ваши мысли по этому поводу буду рад услышать в комментариях. Поздравляю всех со Старым Новым Годом!
    Категория: Своими руками | Просмотров: 12 | Добавил: laptop | Рейтинг: 5.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    «  Январь 2025  »
    ПнВтСрЧтПтСбВс
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2025