Go to content
Your browser is out of date. It has known security flaws and may not display all features of this websites. Learn how to update your browser[Закрыть]

Старые поделки


Кондиционер с управлением по сети


Автор: Серый череп



Фотографии

Этот проект начался с моего желания управлять своим кондиционером прямо с работы… в конечном итоге получилось не совсем то, что предполагалось вначале…

Это мой встроенный оконный кондиционер 8000 BTU Climette. Эти фото были сделаны в процессе разработки проекта. Пожалуйста, пока не обращайте внимания на синий кабель.

Я удалил переднюю крышку, выняв фильтр и выкрутив шурупы сзади нее. Боковые и верхнюю панельки снять было гораздо легче.

А вот и панель управления. Мне придется припаивать проводки к регуляторам температуры.

Нужно всего 3 проводка. Заметьте, что провод питания и кабель CAT5 прижаты для защиты от повреждения.

Я приобрел эту релейную плату, управляемую через SNMP-протокол, на аукционе eBay пару лет назад совсем для другого проекта. Конфигурация довольно проста, стоит только настроить ее сетевые параметры с помощью Windows-приложения, идущего в комплекте. (Они до сих пор продаются на eBay). Вы наверняка заметили, что цвета проводков в панели управления кондиционером и релейной плате отличаются… оказалось, что в моем CAT5 кабеле была пара закороченных жил, благодаря чему он вел себя несколько странно. Под клейкой лентой спрятан плоский кабель, соединяющий Pico-IP с релейной платой.

Программное обеспечение

ПО представляет собой простенький PHP код, реализуемый только на поддержке php-snmp. Основные функции, такие как настройка реле, а также более сложные функции управления температурой, описаны в файле functions.php. Не все из этих функций используются в текущем проекте. Конфигурация реле также приведена в этом файле.

В control.php находится скрипт, который запускается с командной строки, включающей только один параметр: уровень желаемой температуры. Этот воздушный кондиционер позволяет регулировать температуру в диапазоне 19 - 31°С (66 – 88 градусов по Фаренгейту), так что введенное значение температуры проходит дополнительно проверку на пригодность. Поскольку температурный диапазон довольно ограничен, а также из-за желания максимально упростить этот проект, я решил даже не пытаться определять текущий температурный режим, выставленный на кондиционере. Вместо этого я даю ему команду упасть до низшей отметки, а затем набирать температуру до заданного уровня. Панель управления кондиционера считывает входные данные довольно медленно из-за задержек при переходе к каждому реле.Для реализации моей задумки мне нужно было прописать две команды cronjob: одна предполагала поддержку температуры помещения на уровне 80 градусов по Фаренгейту (около 26,5°С) днем, пока я на работе, а вторая должна была снижать температуру до 66 градусов (19°С) за час до моего возвращения с работы.

Две cronjob команды, которые я использовал, выглядят так:

30 8 * * 1-5 /usr/bin/php /root/aircon/control.php 80
0 16 * * 1-5 /usr/bin/php /root/aircon/control.php 66

Привожу вывод данных на экран отдельным снимком:

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