Автоматика управления включения компьютера (сервера)

kavrud
Offline
Зарегистрирован: 26.03.2014

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

Хочу сказать заранее, что руководство не предполагает финансирование на более умные ИБП.

ИБП отключает сервер, но не имеет возможности его включить. Поэтому появилась идея на основе Arduino сделать автоматический включатель сервера, ну и всего остального.

Имеется два ИБП (один на сервер (ИБП1), второй на свитч и АДСЛ-модем (ИБП2)), ИБП1 после отключения напряжения через 10 минут отключает сервер и переходит в ожидающий режим, функции удаленного включения у него нету, он не СМАРТ, ИБП2 после отключения напряжения продолжает работать до пиковой емкости, потом отключается. В будние дни нет проблем самому включить, но в выходные это бывает сложновато, а особенно в праздничные дни, когда сам уже изрядно принял несколько кружек пива и мой лексикон не совпадает со словарным запасом старших менеджеров, чтобы объяснить в какой последовательности и что включать... Была идея с помощью мобилы удаленно включать сервак, но ИБП2 сам не включается, поэтому свитч будет обесточен, а переключаеть его на прямую не вижу смысла в виду безопасности удаленных подключений. Поэтому и появилась идея воспользоваться ардуинкой, но я сам в этом не разбираюсь. Хотелось бы у знатоков узнать, может кто-то работал в этом направлении и может подсказать какие комплектующие взять, чтобы смастерить данную затею?

Нужно программно настроить так: при подаче напряжения на ардуино (АРД), происходит проверка есть ли питание на ИБП1 и ИБП2, если нету, то комманда "включить", дальше если питание на ИБП1и2 имеется, то проверяем питание на сервере, если нету, то комманда "включить", если все включено, то переходим в режим ожидания с периодом проверки в 10 минут (врямя можно установить разное). Встают вопросы, как включать ИБП (но с этим можно разобраться) и как включать сервер (сервер обычный сисблок с герконовой кнопкой), появились два варианта: 1. параллельно кнопке включения пускать импульс на мамку, 2. электромагнит на кнопку.

Если кто-то занимался этим вопросом или кого-то заинтересовала эта идея и есть возможность помочь, что я с радостью приму вашу помощь.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

kavrud, схемотехническое решение зависит от того, как у вас управляются ИБП, и какие сигналы он выводит на панель. У меня например какой-то PowerMan старый, так он в плане удобства управления сама извращённость. Его можно отключить программно, но кнопка включения у него с фиксацией, поэтому что бы потом включить нужно сперва отжать кнопку и снова нажать :) Факт наличия питания ИБП тоже можно проверять разными способами, начиная от того, что вообще не проверять (т.к. если запустилась арудина, значит и электричество уже дали) до полной проверки, т.е. проверка есть ли напряжение на входе ИБП, есть ли напряжение на выходе ИБП, + перехват всех или выборочных световых сигналов с панели управления ИБП для более точной организации алгоритма. Факт включённости ИБП тоже удобно перехватить с соответствующего индикатора, если такой есть.

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Модели ИБП, город?

Обычно сервер имеет в БИОС функцию "power on after AC loss" или аналог, т.е. самостоятельно включается при втыкании ему 220 воль в задницу.

Так что решение проблемы Вы ищете явно не в той плоскости.

kavrud
Offline
Зарегистрирован: 26.03.2014

dimax, возможно я не правильно выразился, но хочу исправиться, проверка питания на выходе ИБП, проверить питание во включеном сисблоке не составит труда. Возможно у ардуины есть комплектующие, которые могуть проверять напряжение и посылать сигнал на обработку, делают же всякие гаджеты для альтернативного электроснабжения?

kavrud
Offline
Зарегистрирован: 26.03.2014

Andrey_Y_Ostanovsky пишет:

Модели ИБП, город?

Обычно сервер имеет в БИОС функцию "power on after AC loss" или аналог, т.е. самостоятельно включается при втыкании ему 220 воль в задницу.

Так что решение проблемы Вы ищете явно не в той плоскости.

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

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

kavrud, выбирать датчики напряжения на выходе лучше под возможности конкретного ИБП. Опищите как он включается, какие индикаторы есть. Дело в том, что вариантов как это задетектить -масса. В том числе неинвазивными способами, например перехватить дежурное напряжение с БП сервера. Сервер хоть и выключен, но дежурные 5 вольт у него всё равно будут, если питание на БП приходит. Можно даже джампером на МБ переключить питание USB на дежурку, и по наличию 5 вольт на USB считать, что ИБП включен и работает. Вобщем способов -масса)

kavrud
Offline
Зарегистрирован: 26.03.2014

dimax, позвонил на работу мне с горем пополам продиктовали: на сервере ИБП1 - ippon back power pro 700 (имеется на передней панели один индикатор), на свитче ИБП2 - SVC v-600f (на передней панели имеется три индикатора), больше пока сказать ничего не могу, по моделькам мануалы можно погуглить.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

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

У нас, например, при питании от промышленного фидера редко, но прилетает такая хитрая помеха, от которой платы управления Ippon-ов встает в режим "авария" и все равно требует нажатия на кнопку чтобы выключилось, затем - чтобы включилось. Вобщем, это не то место, где надо бездумно автоматизировать запуск без присутствия человека. Когда зимой, из-за перегрузки, электричество выбивает - вообще полезно подождать минут 20, т.к. высока вероятность повторного отключения...

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

kavrud, я так понимаю вам нужно как проще, это сужает круг вариантов. Вот например вам стартовый вариант для пробы, рассмотрим для начала с одним ИБП.  Бёрем ардуино, берём вывод 5 вольт с БП сервера, подключаем его например к выводу 8 ардуино. Этот сигнал будет сообщать что сервер включен или не включен. Общий ардуино соединяем с минусом БП сервера. Находим проводочек , который идёт к кнопке включения компа. Прозваниваем его на замлю. Один звонится с землёй, он нам не нужен. Берём второй, подключаем его например к 7  выводу ардуино. Это будет двунаправленным  сигналом. Наличие логической 1 на этом пине означает что ИБП включен и работает. Им же можно включить комп, подтянув его к нулю.  К выводу 6 ардуино подключим слаботочное реле, или обычное, но тогда придётся транзистор использовать. Его контактами будем "нажимать" кнопку на ИБП. Схема вырисовывается такая:

 

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

void setup() {
  pinMode(6,OUTPUT); 
}

void loop() {

  //ситуация если 220 есть, а ИБП выключен
  if (digitalRead(7)==LOW){ //если на кнопке включения компа нет логической 1, значит ИБП выключен
    // но ардуина работает, значит ток уже дали
    delay(3000); //подождём с выводами..
    if (digitalRead(7)==LOW){
      ; //ещё раз прочтём..
      digitalWrite(6,HIGH); //включаем контакты реле
      delay(300); //выдержка для устаканивания процессов
      digitalWrite(6,LOW);// отключаем контакты реле  
      delay(3000); //подождём пока ИБП спокойно стартанет
    }
  }

  //ситуация если питание с ИБП есть, но комп не включен
  if (digitalRead(7)==HIGH && digitalRead(8)==LOW) {
    // если на кнопке есть питание, а на +5 вольт нет, то..
    pinMode(7,OUTPUT); // перепрограммируем вход на выход
    digitalWrite (7,LOW); //включаем комп посылкой 0
    delay(100); //пауза на устаканивание
    pinMode(7,INPUT);  //отключаемся от кнопки
    delay(5000);//
  }
}



Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Я бы, все-таки, предложил ТС сначала поставить хотя бы автоматический огнетушитель в серверной. Спалите ведь все...

gerroin
Offline
Зарегистрирован: 08.04.2014

Доброго времени суток! Подскажите, как организовать не только включение, но и выключение ПК. Ситуация такая: при подаче 5 вольт на 7 пин ПК должен включился, а при пропадании напряжения на 7пине он должен выключится. Как организовать ожидание пропадания напряжения? Есть идея через оператор while, но мне это кажется не лучшей идеей. 

com
Offline
Зарегистрирован: 06.09.2013

gerroin пишет:

Как организовать ожидание пропадания напряжения? Есть идея через оператор while, но мне это кажется не лучшей идеей. 

loop() - это и есть большой бесконечный цикл, суть ожидание

gerroin
Offline
Зарегистрирован: 08.04.2014

Спасибо, буду использовать этот оператор

com
Offline
Зарегистрирован: 06.09.2013

это не оператор! это функция!

gerroin
Offline
Зарегистрирован: 08.04.2014

Уже прочитал про неё. Получается можно написать как-бы 2 части программы. Одна будет обрабатывать ситуацию с присутствующим напряжением на 7 пине, вторая часть - при его отсутствии