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

в 9:15, , рубрики: климат, контроль температуры, микроклимат, мкроконтроллеры, телеметрия

Доброго времени суток. Это моя первая статья на 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

0x20

0

0

1

0x21

0

1

0

0x22

0

1

1

0x23

1

0

0

0x24

1

0

1

0x25

1

1

0

0x26

1

1

1

0x27

Переключатель 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

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

Автор: dais2001

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js