Привет, друзья!
Сегодня я хочу рассказать вам об одной интересной разработке электронной системы управления кондиционерами.

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

Как правило, для этих целей используются кондиционеры, количество и мощность которых рассчитываются в зависимости от объемов помещений, тепловыделения серверов и прочих параметров. В действительно больших центрах обработки данных используются дорогостоящие сплит-системы кондиционирования, обладающие встроенными системами управления, однако сегодня мы рассмотрим систему управления для довольно распространенных на сегодняшний день небольших серверных, охлаждением которых занимаются всего несколько, обычно простых бытовых кондиционеров — по статистике чаще это 2, реже 3 кондиционера.

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





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

Логичный вопрос — зачем все это нужно? Применение отдельной системы управления кондиционерами в серверном помещении дает:

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

Ядром описываемой системы является центральный контроллер, основанный на микроконтроллере STM32F107 + система на кристалле CC2530 (Texas Instruments), содержащая в себе вычислительное ядро 8051 и радио приемо-передатчик стандарта IEEE 802.15.4 (2.4 гГц).


Фотография первого прототипа


Схематический вид контроллера

Контроллер имеет небольшой черно-белый жидкокристаллический экран 128*64 пикселей, энкодер-кнопку («крутилку») управления, вход питания 220 В, внешнюю антенну, Ethernet разъем, выход сигнала «авария» и ИК-приемник для записи управляющих команд для кондиционеров с оригинальных пультов управления.

Непосредственное управление кондиционерами осуществляют беспроводные модули (RF), устанавливаемые по одному на каждый кондиционер. Обмен информацией между каждым RF модулем и центральным блоком управления осуществляется по беспроводному 2.4 гГц каналу по собственному протоколу, MAC уровень которого идентичен MAC уровню протокола Zigbee. Модули управляют кондиционерами по инфракрасному каналу при помощи ИК-диодов, то есть кондиционеры каждый раз «думают», что ими управляет человек посредством родного пульта управления. При инсталляции системы для каждого кондиционера записываются 3 команды: включение на охлаждение, включение на вентиляцию и выключение.


Первые прототипы RF модулей, белые провода — питание


Схематический вид RF модуля

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



Из меню можно привязать новый модуль к контроллеру:



Можно записать с родного пульта управления различные инфракрасные команды:



Можно установить требуемую для поддержания температуру в помещении и время ротации кондиционеров:



А также настроить большое число дополнительных параметров.

В ходе работы системы в случае достаточной мощности установленных в управляемом помещении кондиционеров, контроллер поддерживает среднюю температуру в помещении не выше температуры, назначенной при настройке параметров + 3 градуса.
В случае повышения средней температуры помещения выше установленной, контроллер последовательно включает на охлаждение кондиционеры, первыми включаются кондиционеры с меньшей наработкой.
Кондиционер считается работающим на охлаждение, если после посылки ИК светодиодом RF модуля команды охлаждения кондиционеру установится указанная в настройках системы разность температур между входящим и исходящим из кондиционера воздухом.
Если после подачи ИК команды кондиционеру указанная выше разность температур не установится в течение 5 минут, то у данного модуля появится ошибка компрессора.
Однако, если разница температур не достигнет установленной в течение 5 минут после первой попытки включения, контроллер попытается включить его на охлаждение ещё 2 раза с интервалом в 5 минут. Если разница температур через 5 минут после посылки последней команды включения на охлаждение все ещё останется меньше пороговой, то во избежание поломки кондиционер выключается, и работа с ним прекращается до снятия ошибки компрессора.
Число включенных кондиционеров в каждый конкретный момент зависит от величины превышения средней температуры над установленной. При превышении установленной температуры на 3 градуса и более на охлаждение включаются все кондиционеры.

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

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

Ниже приведу скрины тестового веб-сервера, при помощи которого можно мониторить состояние контролируемых серверных и управлять установленными в них кондиционерами:


Экран общего состояния серверного помещения


История работы отдельного кондиционера

А теперь главный бонус: желающие получить весь исходный код для прошивок главного контроллера, систем на кристалле CC2530 а также схемы и разводки всех плат системы в формате Altium Designer — пишите, пожалуйста, на frimen3 at gmail.com.

Символическая поддержка разработчиков рублем приветствуется.

Всем спасибо за внимание, жду ваших комментариев!

Комментарии (13)


  1. bougakov
    03.08.2015 13:00

    Спасибо за статью.

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

    Производители как-то немногословны на эту тему. Вроде бы в прайс-листах пробегают какие-то многосотдолларовые контроллеры, но без подробностей.

    Наклеивать на кондей ИК-бластер и фоторезистор для определения того, работает ли кондей или нет — неспортивно. Ведь если в каждом первом электронном бытовом устройстве припрятан нераспаянный UART-разъём — то чем кондей хуже?


    1. Frimen3
      03.08.2015 13:06

      Да, Вы правы — большинство простых бытовых кондиционеров не рассчитано на автоматическое управление, отличное от ИК пульта. Вернее колодки данных внутри присутствуют, но обмен со встроенными контроллерами никак как правило не документируется. Посему и получают распространение такие «внешние» системы управления с рыночной стоимостью в пол-кондиционера.


      1. bougakov
        03.08.2015 13:18

        М-да, обидно. Я вот выяснил, что у производителя моего кондея, Mitsubishi, есть стандарт для интерфейса (даже два — аналоговый «CN2A» и цифровой «CN105») и они даже продают WiFi-адаптеры в них за тонну денег. Но протокол никто не реверснул.



        Выходит, ИК-наклейки — единственный вариант. Но придётся заморачиваться — проверять температуру (по факту того, что кондей издал два писка а не один — значит, мы на 24 градусах) и т.п.


        1. Frimen3
          03.08.2015 13:22

          Смотря что Вы хотите получить от своей системы управления — контролировать свой кондиционер со смартфона?
          Проверять температуру нужно минимум по двум датчикам — заборного воздуха на входе в кондиционер и исходящего воздуха из кондиционера.


        1. tmg
          03.08.2015 17:03

          А зачем вообще так управлять кондюком, а не «умной розеткой» с встроенным датчиком тока \ датчиком холла \ ваттметром?
          Дома же выставил температуру \ режим на сплите и только включаешь выключаешь его пультом — если выдернуть шнур питания, потом воткнуть — то сплит переходит в режим который был до выключения.
          А понять что он работает можно считывая показания с датчика в розетке + в проверять температуру.
          Плюс такой розетки, что зимой ее можно для обогревателя использовать.


          1. Frimen3
            03.08.2015 17:09

            Не все кондиционеры обладают функцией авторестарта (возобновления состояния после выключения и включения питания) — это главный ответ на вопрос почему умная розетка плохо подходит для данных целей. Плюс умная розетка не сможет также как вышеуказанная система по ИК каналу передавать кондиционерам разные команды и т.д. и т.п.
            Хотя не спорю — простые блоки ротации, осуществляющие вкл/выкл по питанию существуют, стоят дешевле но возможностей у них значительно меньше.


        1. rimidal
          03.08.2015 19:33

          Не поверите, кроме того что эта штука стоит как чугунный мост, так она еще и работает только через облако и их сайт.
          Сам искал описание их протокола, но пока тишина…


  1. stml
    03.08.2015 14:54

    Хорошая статья, спасибо. Судя по разводке, вы использовали RF фронтэнд для CC2530. Какой дальности и в каких условия удалось достичь? Интересуюсь потому что был опыт с CC2530+CC2591 и в зданиях значительного увеличения дальности не было по сравнению с просто CC2530.


    1. Frimen3
      03.08.2015 14:58

      Добрый день! Тут также использована связка CC2530+CC2591. Дальность проверяли в условиях «передатчик в окне 4 этажа — приемник на улице» в прямой видимости — получилось примерно 100 метров. В помещении, если не ошибаюсь, такая связка уверенно пробивала 2 железобетонные стены, т.е. на 2 этажа вниз и вверх. Просто СС2530 к сожалению не тестировали, делали сразу с усилителем.


      1. stml
        03.08.2015 15:52

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


        1. Frimen3
          03.08.2015 15:58

          Ну я примерно такой же вывод сделал насчет использования 868 — и дальность нормальная, и диапазон самый незагруженный. Скорость правда поменьше чем у 2.4


  1. YDR
    03.08.2015 19:58

    Уточню: Не 50%, а практически 100% потребляемой мощности уходит в тепло (за исключением излучаемых электромагнитных (помех), акустического шума, света светодиодов и слабенького тока в Ethernet)


    1. Frimen3
      03.08.2015 20:06

      Возможно! Статья не научная, поэтому ограничимся ёмким словом «много» :)