Контроль микроклимата в серверной почти на коленке

Доброго времени суток. Это моя первая статья на HABR. Вдохновило на написание, великолепная статья «Устройство телеметрии», и заодно ответ на пост »Каким образом у вас поддерживается климат в серверной?».

Работаю я в одном из институтов университета в Ростове‑на‑Дону. Раньше я ни особо задумывался о микроклимате в серверной своего института. Но одна ситуация заставила меня задуматься о контроле температуры в серверной. Однажды внешний блок одного из кондиционеров вышел из строя, что сопровождалось довольно громким хлопком. Дело было летом температура в серверной очень быстро поднялась до 38°C. Включил резервный кондиционер. Но сообщили мне о выходе из строя кондиционера только утром, когда я пришёл на работу. А случилось все ночью. В тот момент я подумал. А ведь не плохо было бы иметь устройство, которое бы контролировало температуру и оповещало бы меня о превышении заданного придела…

Было решено сделать устройство самостоятельно. Разработал схему в EasyEDA, там же развел печатную плату и заказал плату в JLCPCB. Устройство я построил на базе ESP8266 07. Для визуального контроля используется LCD1602.

Рис.1 Так выглядит печатная плата со стороны деталей

Рис. 1 Так выглядит печатная плата со стороны деталей

Рис.2 Так плата выглядит со стороны дисплея.

Рис. 2 Так плата выглядит со стороны дисплея.

На данный момент к устройству подключены Датчики температуры DS18B20 в количестве трех штук по шине 1-Wire. И один датчик BMP180 на шине I2C, который, к слову, я планирую заменить на BME280. Измерение атм. давления конечно хорошо, но измерение относительной влажности в серверной, наверное, было бы более полезным.
Далее немного о схеме.

Рис.3 Схема принципиальная

Рис. 3 Схема принципиальная

На LM линейный стабилизатор 5→3.3В построено питание микроконтроллера. Дип-переключатель I2CADDR позволяет изменить адрес микросхемы расширителя портов ввода-вывода PCF8574AT через которую к esp8266 подключен дисплей.

a3

a2

a1

Адрес

0

0

0

0×20

0

0

1

0×21

0

1

0

0×22

0

1

1

0×23

1

0

0

0×24

1

0

1

0×25

1

1

0

0×26

1

1

1

0×27

Переключатель SW2 отключает подтяжку сигнальных линий I2C. На случай использования готовых датчиков модулей как в моем случае где эти линии уже подтянуты. Переменным резистором VR1 регулируется контрастность дисплея.

Подключение  датчиков

Для подключения датчиков я использовал разъемы GX16 на 3 pin для ds18b20 и соответственно GX16 на 4 pin для bmp180 в качестве линии связи был использован обычный сетевой UTP кабель.

GX16

GX16

Размещение датчиков

Один DS18B20 размещен за передней дверцей коммутационного шкафа. Второй размещен в серверной в области, где нет прямого потока воздуха от системы кондиционирования. Третий размещен на улице. Ну, потому что, а почему бы и нет. Датчик атм. давления и температуры пока размещен в непосредственной близости от устройства измерения. Но планируется убрать его и установить BME280 и вывод его в серверную с целью измерения температуры и влажности. Тогда можно будет избавиться от одного из трех датчиков температуры или разместить его в другом месте шкафа.

Программное обеспечение микроконтроллера ESP8266

Я не программист. Поэтому выбрал для себя самый оптимальный вариант. Для прошивки устройства я использовал конструктор кода wifi-iot.com. Достаточно было создать профиль, выбрать платформу, у меня это esp8266.

Рис. 5 Опции которые я выбрал для своего устройства.

Рис. 5 Опции которые я выбрал для своего устройства.

Самое интересное здесь это опция Device to Device (D2D) в колонке «Сервисы». Эта опция, позволяет — процитирую из справочного материала проекта. «Обмен данными и управление между модулями по собственному протоколу wifi-iot внутри сети или через облако с возможностью шифрования AES-128.» Дело в том, что у проекта wifi-iot есть свое облако, через которое можно прокинуть показания датчиков или управления реле если они используются в вашем устройстве в «умный дом» Яндекс. Чем, собственно, я и воспользовался.

Далее встал вопрос об удаленном управлении кондиционерами. Как минимум включения. Просто бывает что после сбоя электропитания сплит не хочет стартовать или стартует в режиме обогрева. Такое происходит не всегда, но бывает. Тут выручил меня универсальный пульт управления от Яндекс. Собственно в нем так же стоит чип от Espressif тот же esp8266, ir-приемник, и несколько расположенных по окружности и один в центре ir-светодиодов.

Как понять, что в розетках пропало электричество?

Ну если в шкафу стоит ИБП Smart-UPS RT 3000 XL или похожий по функционалу это вообще не проблема, главное, чтоб он был подключен к серверу по интерфейсу RS232, и установлено соответствующее программное обеспечение. У меня как раз такой ИБП и PowerChuter business. Там можно настроить выполнение командного файла при наступлении какого-либо события. Можно написать BAT файл, который при запуске будет отправлять сообщение в телеграмм бот. Таким образом при наступлении события, когда пропало сетевое питание PowerChuter выполняет соответствующий батник. Тогда мы знаем о том, что напряжение кончилось. Да забыл сказать. Если в друг от этого бесперебойника пропал интерфейсный кабель RG50<->DB9. Можно его сделать с использованием разъема RG45 и DB9. Распиновка для rg45 будет следующая:

RG45

DB9

Сигнал

1

2

TX

3

КОРПУС РАЗЪЕМА

Chassis Ground

6

5

GND

7

3

RX

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

© Habrahabr.ru