UA-23773963-1
Ваш браузер устарел. Рекомендуем обновить его до последней версии.

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

по протоколу ModBus RTU RS485

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

Похожий контроллер ранее уже рассматривался на страницах этого сайта.  Отличие данного контроллера от предыдущего варианта заключается в том, что для его интеграции в систему домашней автоматизации вместо радиоканала используется интерфейс RS485 с протоколом Modbus RTU и пользователь может самостоятельно запрограммировать нужные команды управления.

 

Принципиальная схема контроллера приведена на рис. 1

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

Рис. 1

 

 

    Схема состоит из микроконтроллера PIC12F629, приемопередачика МАХ487, стабилизатора напряжения +5В 78L05 и каскада управления ИК светодиодами, выполненного на транзисторе 2N3417. Внешнее питание на контроллер подается по отдельным жилам интерфейсного кабеля. В схеме предусмотрен вход для подключения герконового датчика, что позволяет настроить в системе запрет на включение кондиционера при открытых окнах.

      В контроллере реализован программный USART и программный передатчик команд управления по ИК. Как уже отмечалось, передатчик контроллера эмулирует работу протокола NEC 28 или 32 бит.

    Данные для передачи ИК команд хранятся в энергонезависимой памяти микроконтроллера. На хранение каждой команды отводится по 4 ячейки памяти (для 32 передаваемых бит). По умолчению в память записаны 14 команд для управления кондиционерами и две команды для управления телевизорами. Всего можно разместить в памяти микроконтроллера до 31 команды.

   Команды с 00h по 0Fh имеют длинну 28 бит и предназначены для управления кондиционером, а команды с 10h по h имеют длинну 32 бит и предназначены для управления телевизором. Команды ИК управления можно записать в память микроконтроллера не только на этапе прошивки, но и через интерфейс RS485.

    Сначала последовательность бит команд управления следует считать с пульта ДУ эмулируемого устройства и затем записать в виде 4-х байт в соответствующие ячейки микроконтроллера. Для этого можно использовать любой фотоприемник, например типа TSOP1738 или ИК-фотодиод, подключенный к входу осциллографа или анализатора (рис.2).

 

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

Рис. 2

 

 

    Алгоритм считывания команд следующий: читаем биты от стартовой последовательности слева направо и пишем байты в память микроконтроллера по порядку. Для 28 битных команд последний байт содержит в старшей тетраде 0. Например для 32 битной последовательности (рис.3) последовательность кодов будет выглядеть следующим образом: 85h-7Ah-07h-F8h, а для 28 битной команды (следующая диаграмма на рис.3): 85h-7Ah-07h-08h.

 

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

Рис. 3

 

 

    Перечень всех команд Modbus RTU, выполняемых устройством, сведен таблицу Exel приложенной к пакету файлов проекта.

    Необходимо отметить, что к сожалению не удалось аппаратными средствами используемого микроконтроллера сделать независимыми процедуры передачи ИК сигнала и приема передачи по сети Modbus RTU, поэтому после получения команды на передачу ИК команды, устройство “уходит в себя" для передачи ИК команды на время около 40 мс. И если в это время придет запрос с центрального модуля устройство ему не ответит. В сущности это не создает проблемы, т.к. для передачи ИК команд с большой частотой нет необходимости, но данный факт в любом случае необходимо учитывать.

 

Архив материалов к статье