Дано:
1. Кондиционер неисправный, который иногда сам по себе отрубается и ставит на уши всю серверную комнату. Запускается двумя различными аппаратными кнопками; иногда не запускается и требует ремонта, во время которого работает ... (см п.2).
2. Кондиционер резервный. Не очень сильно гоняет воздух в серверной комнате. Но работает надёжней основного, и его мощности хватает для нормальной работы серверной комнаты. Управляется через ИК ПДУ.
3. Также есть определённые скиллы в электронике и ассемблере, а также в азах программирования на линуксе.
4. Также, к серверу мониторинга по COM-порту подключён термометр, который мерит температуру воздуха в серверной комнате, за которой следит Nagios3 и отсылает SMS в случае превышения её значения.
Найти: решение, автоматизирующее включение резервного кондиционера.
Предполагаемое решение:
1. Аппаратная часть
1.1. Одноплатный микрокомпьютер arduino или raspberry pi. Или просто однокристальную ЭВМ (микроконтроллер, например AVR ATMega).
1.2. Микросхема-термометр.
1.3. Приёмник ИК-излучения (опционально).
1.4. Передатчик ИК-излучения.
1.5. Модуль бесперебойного питания (опционально).
1.6. Интерфейс для двухстронней связи с ПК или сервером или с ЛВС (LAN Ethernet / Wi-Fi или RS232). Также, в роли интерфейса допускается использовать GSM-модем.
1.7. Индикаторы состояния (или ЖК-индикатор) и кнопки пульта управления (или блок клавиатуры) (опционально).
1.8. Энергонезависимые RTC (опционально).
2. Программная часть
Алгоритм (независимо от того, это операционная система на основе Linux или еще чего-то или просто самописная прошивка-монитор) должен делать следующее:
2.1. Иметь режим обучения, позволяющий записывать в память контроллера сигнал включения кондиционера, поступающий со штатного пульта кондиционера на приёмник ИК-излучения гаджета. Для последующей выдачи с помощью передатчика ИК-излучения того же гаджета. Это нужно для программного запуска кондиционера. (этот пункт опционален, т.к. в качестве резервного кондиционера стационарно поставили дорогой кондиционер и видать надолго. В крайнем случае можно с помощью цифрового осциллографа и наколеннособранной схемы приёмника ИК-излучения принять пакет включения и зашить его намертво в железо/алгоритм).
2.2. Мониторить температуру воздуха и замечать, когда она привысит некоторый уровень, «потолок».
2.3. Запускать кондиционер:
2.3.1. По команде от интерфейса (п.1.6)
2.3.2. По достижении верхнего потолка температуры воздуха. Для исключения повторной подачи команды используется гистерезис.
2.3.3. По команде с кнопочного пульта гаджета
2.3.4. По команде от RTC (опционально)
2.4. Хранить и использовать в работе, а также позволять менять с пульта и при помощи индикаторов такие параметры, как:
2.4.1. Температура воздуха, при которой автоматически даётся команда на запуск резервного кондиционера. Эта опция должна быть отключабельной, т.е. если кондиционер выключили вручную, для того, чтобы не было очень холодно в серверной комнате, и надо поработать персоналу, то гаджету надо дать команду, чтобы он не соревновался с персоналом за право определять состояние кондиционера.
2.4.2. Текущая Дата, время (опционально).
2.5. Вести журнал событий (опционально), доступный программно через интерфейс так и через пульт и индикатор.
2.6. С помощью интерфейса отсылать сообщения, что происходит с температурой в файл-серверной. Особенно это хорошо, если интерфейс — USB-модем: можно отсылать SMS администратору(-рам) из списка телефонов.
Хотел услышать идеи на этот счёт. Если есть похожие решения как комплексные, так и в плане подзадач, например, модуль обучения ИК пульта в виде программного пакета, чтобы самому не велосипедить (тогда это может свестись к доработке сервера мониторинга и подключения к нему приёмопередатчика ИК-излучения, всё остальное можно заставить делать Nagios). Или для похожих задач есть кастомная прошивка/дистрибутив?
Или может есть готовые микросистемы управления зданием, которые умеют всё это (масштаб средних и больших зданий неинтересен, т.к. не тот масштаб задачи)?