Четверг, 25.04.2024, 21:57
| RSS
Поиск
Главная |
Защита, контроль, управление
Форма входа
Логин:
Пароль:

Меню

Авторские проекты

Статьи

Raspberry Pi

Полезная информация

Обратная связь

Ссылки

Форум

Чат

Канал YouTube

Группа в Facebook


Календарь
«  Май 2015  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031

Наш опрос

Ссылки


Яндекс.Метрика





.
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Raspberry Pi для домашней автоматизации. Управление кондиционером

Raspberry Pi для домашней автоматизации. Управление кондиционером

Наш канал в YouTube


Управление кондиционером

Продолжаем расширять функционал системы домашней автоматизации с применением Raspberry Pi. На этот раз, рассмотрим простой контроллер, который позволит в составе системы управлять кондиционером через web-интерфейс. Такая функция может быть очень полезной жарким летом, когда можно перед возвращением домой дистанционно включить кондиционер и зайти уже в прохладное помещение. Или в межсезонье, когда ещё не включено центральное отопление, прогреть помещение до комфортной температуры.

Контроллер устанавливается в одной комнате с кондиционером, принимает команды от центрального радиомодуля по радиоканалу и эмулирует ИК-команды пульта дистанционного управления. Управление контроллером осуществляется посредством web-интерфейса. Принцип реализации управления показан на рис.1

 

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

Рис.1

 

Для начала хотелось бы остановиться на некоторых моментах кодировки команд дистанционного управления. В кондиционерах принцип управления отличается от другой бытовой техники. Дело в том, что бы «синхронизировать» установленные параметры с  пультом дистанционного управления, необходима «обратная связь» от внутреннего блока кондиционера к пульту. Возможно, такие системы в некоторых кондиционерах и существуют, но мне сталкиваться с ними не приходилось. Обычно в пультах применяется принцип полной передачи всех устанавливаемых параметров. Допустим, вы нажали кнопку «+», что бы увеличить значение температуры на 1°С, а вместе с этой командой передается вся информация о всех текущих параметрах – режим работы, скорость обдува, положение жалюзи, значение таймера и т.д.

У различных производителей применяются индивидуальные протоколы передачи данных. Но, как правило, эти протоколы построены на определенном стандартном протоколе. В качестве примера рассмотрим протокол для кондиционера LG-С07 «Art Cool», собственно для которого и разрабатывался данный контроллер. 

Протокол передачи команд управления кондиционера LG построен на основе широко известного протокола NEC. Отличие состоит в том, что вместо 32 бит применяется 28 бит. Кодировка нуля и единицы в протоколе NEC выполняется с помощью различной длительности паузы после импульса (рис.2).

 

Протокол NEC для кондиционера

Рис.2

 

Несмотря на то, что временные характеристики у обоих протоколов абсолютно одинаковые, принцип «шифрования» данных различный. Я не вдавался в подробности расшифровки протокола LG, все эмулируемые команды были считаны с помощью фотоприемника и анализатора со стандартного пульта дистанционного управления кондиционера. 

Разумеется, нет смысла эмулировать абсолютно все команды. Поэтому при разработке контроллера было решено ограничиться основными функциями. Обычно во всех пультах дистанционного управления значение температуры устанавливается «по-кругу» с помощью кнопок «+» и «-». В нашем случае такой способ неприемлем, т.к. мы не видим ни пульта, ни самого кондиционера и соответственно, значений температуры, отображаемой на его дисплее. Поэтому здесь применен «прямой» выбор параметров, что позволяет выбрать именно требуемое значение температуры. Это включение кондиционера на пять фиксированных значений температуры в режиме охлаждения и нагрева в диапазоне 20°С…24°С и выключение кондиционера. В итоге получилось 11 команд.

Принципиальная схема контроллера показана на рис.3.

 

Схема управления кондиционером через Raspberry Pi

Рис.3

 

Схема очень простая и собрать её особых трудностей не составляет. Отмечу только одну особенность – в устройстве применяется микроконтроллер 12F683. Выбор именно этого микроконтроллера обусловлен наличием в нем аппаратного ШИМ, что позволило максимально просто в программе формировать несущую 36 кГц для эмуляции ИК-команд. Приемник, работающий на той же частоте, что и передатчик радиомодуля (315/433 МГц), принимает коды управления от радиомодуля, передает их на микроконтроллер, который обрабатывает коды и формирует с помощью транзисторного ключа VT1 и ИК-светодиода VD1 соответствующую команду, передаваемую на фотоприемник кондиционера.

Кнопка S1 предназначена для тестирования устройства в «ручном режиме» - при её нажатии и удержании с интервалом в 1 секунду формируются последовательно все команды (т.е контроллер в некоторой степени можно использовать как урезанный вариант пульта дистанционного управления). Питание контроллера .

Для сопряжения контроллера с радиомодулем (и соответственно, с web-интерфейсом) необходимо прописать коды управления контроллером. В радиомодуле под это выделяется следующая область памяти EEPROM (рис.4)

 

EEPROM контроллера управления кондиционером

Рис.4

 

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

На рис.5 показано распределение кодов в памяти EEPROM контроллера. Как видите, здесь к коду добавился четвертый байт (01..0B). Это значение идентификатора кода. Более подробно о назначении этого байта можно почитать здесь – Приемник радиодатчиков.

 

программирование контроллера управления кондиционером

Рис.5

 

Как уже отмечалось, управление контроллером выполняется с web-интерфейса. Страница web-интерфейса выполнена в аналогичном стиле оформления с другими страницами системы домашней автоматизации (рис.6). В верхнем ряду расположены кнопки включения кондиционера в режим охлаждения на фиксированную температуру и кнопка полного выключения, в нижнем ряду – аналогичные кнопки включения кондиционера в режим обогрева.

 

web интерфейс контроллера управления кондиционером

Рис.6

 

Работу устройства сначала рекомендуется проверить с помощью тестовой кнопки. Для этого направляют излучающий ИК-светодиод в сторону кондиционера и удерживают нажатой кнопку S1. При этом с интервалом в 1 секунду должны выполняться все команды. Цикл команд следующий - охлаждение 20°С - 21°С - 22°С - 23°С - 24°С - обогрев 20°С - 21°С -  22°С - 23°С - 24°С - выключение.

Несколько слов о месте размещении контроллера. Он должен быть направлен излучающим светодиодом в сторону кондиционера в зоне уверенного приема фотоприемником кондиционера ИК-излучения. Кстати, выбор правильного места размещения контроллера можно определить с помощью той же тестовой кнопки S1.

Что касается питания контроллера, то его лучше всего выполнить от отдельного сетевого адаптера. Использовать «батарейное» питание не рекомендуется, т.к. потребляемый ток в режиме покоя составляет порядка 5 мА.

Печатная плата для контроллера не разрабатывалась, он собран на кусочке макетной платы. Внешний вид контроллера показан на рис.7

 

плата контроллера управления кондиционером

Рис.7

 

Прошивка контроллера, web


 

Видео управления кондиционеромi:

 

Содержание всех статей сайта по теме Raspberry Pi




Категория: | Просмотров: 10401 | Добавил: Admin | Теги: эмулятор пульта кондиционера | Рейтинг: 4.5/2 |
Всего комментариев: 2


1 deniss1900  
Вопрос а как быть с кондерами других фирм. Можно как ни будь сделать например с родного пульта снять определенные команды и втолкунуть в прошивку и как вы сняли команды?

2 Admin  
0
Только править прошивку. У разных производителей кондиционеров обычно свой формат передачи данных.
Для снятия команд с пульта ТУ необходим фотоприемник и анализатор (или осциллограф). А дальше, считав формат передачи и нужные команды необходимо их засунуть в контроллер.





T2M © 2024
Сайт управляется системой uCoz