WB-MIR v2 - Modbus IR Remote Control: различия между версиями
Kilpio (обсуждение | вклад) |
|||
(не показаны 182 промежуточные версии 14 участников) | |||
Строка 1: | Строка 1: | ||
[[File:WB-MIR-sample.png |300px|thumb|right| Модуль WB-MIR]] | |||
[[File:Wb-MIR-sample_internals.png |300px|thumb|right| Внутренее устройство модуля. Видны подписи контактов на разъёмах]] | |||
[[File:Wb-mir-ir-transmitter.png |300px|thumb|right| Отверстие ИК-передатчика на задней стороне модуля]] | |||
[[File:Wbmir_transmitter_mount.png|300px|thumb|right|Пример монтажа ИК-излучателя модуля WB-MIR v2 на приемнике кондиционера под декоративной крышкой]] | |||
[[File:Wbmir_transmitter_mount.png|300px|thumb|right|Пример монтажа ИК-излучателя модуля WB-MIR | |||
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. | Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. | ||
Управление производится с контроллера или ПК по шине RS-485 командами по протоколу | Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS. Выпускается в двух модификациях: WB-MIR и WB-MIR v2. | ||
== | |||
== Входы == | |||
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W. | |||
В некоторых моделях присутствует внутренний датчик температуры (DS18B20 в корпусе TO-92 в модели WB-MIR и термистор в модели WB-MIR v2, распаянный в верхней левой части платы модуля. | |||
==Монтаж== | |||
===WB-MIR=== | |||
Модуль монтируется на кондиционер на двусторонний скотч таким образом, чтобы небольшое отверстие излучающего диода с обратной стороны располагалось бы напротив ИК-приемника кондиционера, не закрывая приемник от основного пульта устройства. Положение подбирается экспериментальным путем ввиду огромного множества конструкций корпусов кондиционеров. То же относится и к любым бытовым устройствам, управляемым по ИК-каналу. | |||
===WB-MIR v2=== | |||
Модуль монтируется в непосредственной близости от устройства или внутри корпуса управляемого устройства, например, кондиционера. Если после монтажа планируется дальнейшее обучение или переобучение модуля, то ИК-приемник следует располагать в доступном месте. ИК-передатчик, вынесенный на проводе длиной ~140 см, крепится рядом с ИК-приемником управляемого устройства на двусторонний скотч (входит в комплект) таким образом, чтобы обеспечить устойчивую передачу ИК-команд управления, но сохранить возможность управлять устройством с пульта, не загораживая ИК-приемник устройства полностью. | |||
== Технические характеристики == | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="text-align: center;" | Параметр | ! style="text-align: center;" | Параметр | ||
Строка 18: | Строка 25: | ||
|- | |- | ||
|Напряжение питания | |Напряжение питания | ||
|9 — | |9 — 24 В постоянного тока | ||
|- | |- | ||
|Потребляемая мощность | |Потребляемая мощность | ||
Строка 25: | Строка 32: | ||
|- | |- | ||
|Дальнодействие передатчика | |Дальнодействие передатчика | ||
|< | | < 1м | ||
|- | |- | ||
| Внешние датчики | | Внешние датчики | ||
| | | Возможность подключения цифрового датчика температуры DS18B20. | ||
|- | |||
! colspan="2" |Управление | |||
|- | |- | ||
|Интерфейс управления | |||
|RS-485 | |||
|- | |- | ||
| | |Изоляция интерфейса | ||
| | |Неизолированный | ||
|- | |- | ||
| | |Протокол обмена данными | ||
| | |Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке | ||
|- | |- | ||
| | |Параметры интерфейса RS-485 | ||
| | | | ||
скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; | |||
Начиная с версии прошивки '''3.1.0''' параметры интерфейсы могут быть настроены программно: | |||
*Скорость: 1200, 2400, 4800, 9600 (по умолчанию), 19200, 38400, 57600, 115200 бит/с | |||
*Данные: 8 бит | |||
*Проверка чётности: нет (по умолчанию), 1 - нечётный (odd), 2 - чётный (even) | |||
*Стоповых бит: 2 (по умолчанию), 1 | |||
|- | |- | ||
! colspan="2" |Габариты | |||
! colspan="2" | Габариты | |||
|- | |- | ||
| | | Габариты | ||
| | | | ||
40x15x11 мм | * 45x35x14 мм (WB-MIR) | ||
* 40x15x11 мм (WB-MIR v2) | |||
|- | |||
! colspan="2" |Условия эксплуатации | |||
|- | |||
| Температура воздуха | |||
| -40°С до +80°С | |||
|- | |- | ||
| Относительная влажность воздуха | |||
| до 98%,без конденсата влаги | |||
|} | |} | ||
== | == Обучение и использование модуля == | ||
Подробное описание и использования модуля, а также карта регистров, описаны в разделе [[WB-MSx_Consumer_IR_Manual|Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR]]. | |||
== Дополнительные Функции== | |||
'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80). | |||
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. | |||
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. | |||
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3. | |||
== Карты регистров == | |||
Подробно описаны в разделе [[WB-MSx_Consumer_IR_Manual|Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR]]. | |||
==Сигнатура устройства == | |||
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus: | |||
=== | {| class="wikitable" | ||
! style="font-weight: bold;" | Модуль | |||
| | ! style="font-weight: bold;" | Сигнатура | ||
|- | |||
| WB-MIR | |||
| WBMIR'0x00' | |||
|} | |||
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. | |||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | |||
== Управление модулем из web-интерфейса == | |||
В настоящий момент для подключения модуля WB-MIR имеется два шаблона '''WB-MIR''' и '''WB-MIR (simple)'''. Шаблон '''WB-MIR''' предоставляет полный набор к функциям модуля из веб-интерфейса, включая обучение, а упрощенная версия '''WB-MIR (simple)''' может использоваться с уже обученным пультом и содержит гораздо меньшее количество элементов управления. | |||
{| class="wikitable" | |||
|[[File:Web_wb_mir.png |600px|thumb|right|Веб-интерфейс модуля WB-MIR]] | |||
|[[File:Web-wb-mir-simple.png|300px|thumb|right|Упрощенный веб-интерфейс модуля WB-MIR]] | |||
|} | |||
На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение. | |||
{| class="wikitable" | {| class="wikitable" | ||
! Название элемента управления | ! Название элемента управления | ||
Строка 96: | Строка 125: | ||
|Play from RAM||Воспроизведение ИК-сигнала из оперативного буфера (см. раздел [[#Оперативный режим|Оперативный режим]]). | |Play from RAM||Воспроизведение ИК-сигнала из оперативного буфера (см. раздел [[#Оперативный режим|Оперативный режим]]). | ||
|- | |- | ||
|Learn to ROMx||Запись ИК-сигнала в | |Learn to ROMx||Запись ИК-сигнала в соотв. ячейку ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF. | ||
|- | |- | ||
|Play from ROMx||Воспроизведение ИК-сигнала из | |Play from ROMx||Воспроизведение ИК-сигнала из соотв. ячейки ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF. | ||
|- | |- | ||
|ROMx -> RAM||Копирование данных из | |ROMx -> RAM||Копирование данных из соотв. ячейки ПЗУ в оперативный буфер для редактирования (см. раздел [[#Постоянный режим|Постоянный режим]]). Для редактирования контрол переводится в положение ON, после редактирования — OFF. | ||
|- | |- | ||
|Internal/External Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом. | |Internal/External Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом. | ||
|- | |- | ||
|Serial NO||Серийный номер модуля WB-MIR может потребоваться при обращении в техподдержку. | |Serial NO||Серийный номер модуля WB-MIR, может потребоваться при обращении в техподдержку. | ||
|- | |- | ||
|Reset all ROM||Сброс содержимого всех ячеек памяти. '''Будьте внимательны, очистка ПЗУ будет выполнена без запроса на подтверждение!''' | |Reset all ROM||Сброс содержимого всех ячеек памяти. '''Будьте внимательны, очистка ПЗУ будет выполнена без запроса на подтверждение!''' | ||
|- | |- | ||
|} | |} | ||
== Управление модулем из командной строки == | |||
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]]. | |||
=== Пример чтения регистров === | |||
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку: | |||
''' | <syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \ | ||
-a1 -t0x03 -r200 -c 6 | \ | |||
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight> | |||
''' | В результате выполнения команды получаем строку, например '''WBMIR'''. В этом примере модуль WB-MIR имеет Modbus-адрес 1. | ||
=== Перезагрузка === | |||
В ряде случаев может потребоваться перезагрузка модуля. Для этого в регистр 120 (0x78) необходимо записать любое значение, отличное от нуля: | |||
<syntaxhighlight lang="bash"> | |||
modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r0x78 100 | |||
</syntaxhighlight> | |||
Такая перезагрузка равносильна сбросу по питанию и изменению адреса устройства на 0x01. Предварительно, конечно, необходимо остановить сервис wb-mqtt-serial. Перезагрузку лучше делать с одним устройством на шине. |
Версия 13:43, 22 сентября 2017
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS. Выпускается в двух модификациях: WB-MIR и WB-MIR v2.
Входы
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W. В некоторых моделях присутствует внутренний датчик температуры (DS18B20 в корпусе TO-92 в модели WB-MIR и термистор в модели WB-MIR v2, распаянный в верхней левой части платы модуля.
Монтаж
WB-MIR
Модуль монтируется на кондиционер на двусторонний скотч таким образом, чтобы небольшое отверстие излучающего диода с обратной стороны располагалось бы напротив ИК-приемника кондиционера, не закрывая приемник от основного пульта устройства. Положение подбирается экспериментальным путем ввиду огромного множества конструкций корпусов кондиционеров. То же относится и к любым бытовым устройствам, управляемым по ИК-каналу.
WB-MIR v2
Модуль монтируется в непосредственной близости от устройства или внутри корпуса управляемого устройства, например, кондиционера. Если после монтажа планируется дальнейшее обучение или переобучение модуля, то ИК-приемник следует располагать в доступном месте. ИК-передатчик, вынесенный на проводе длиной ~140 см, крепится рядом с ИК-приемником управляемого устройства на двусторонний скотч (входит в комплект) таким образом, чтобы обеспечить устойчивую передачу ИК-команд управления, но сохранить возможность управлять устройством с пульта, не загораживая ИК-приемник устройства полностью.
Технические характеристики
Параметр | Значение |
---|---|
Питание | |
Напряжение питания | 9 — 24 В постоянного тока |
Потребляемая мощность |
0.1 Вт |
Дальнодействие передатчика | < 1м |
Внешние датчики | Возможность подключения цифрового датчика температуры DS18B20. |
Управление | |
Интерфейс управления | RS-485 |
Изоляция интерфейса | Неизолированный |
Протокол обмена данными | Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке |
Параметры интерфейса RS-485 |
скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; Начиная с версии прошивки 3.1.0 параметры интерфейсы могут быть настроены программно:
|
Габариты | |
Габариты |
|
Условия эксплуатации | |
Температура воздуха | -40°С до +80°С |
Относительная влажность воздуха | до 98%,без конденсата влаги |
Обучение и использование модуля
Подробное описание и использования модуля, а также карта регистров, описаны в разделе Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR.
Дополнительные Функции
Смена адреса производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).
По адресу 200 лежит сигнатура длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.
Карты регистров
Подробно описаны в разделе Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR.
Сигнатура устройства
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
Модуль | Сигнатура |
---|---|
WB-MIR | WBMIR'0x00' |
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. Начиная с регистра 220 записана дата сборки прошивки, в формате "числоx00времяx00" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Управление модулем из web-интерфейса
В настоящий момент для подключения модуля WB-MIR имеется два шаблона WB-MIR и WB-MIR (simple). Шаблон WB-MIR предоставляет полный набор к функциям модуля из веб-интерфейса, включая обучение, а упрощенная версия WB-MIR (simple) может использоваться с уже обученным пультом и содержит гораздо меньшее количество элементов управления.
На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение.
Название элемента управления | Назначение |
---|---|
Input Voltage | Напряжение питания модуля |
Learn to RAM | Запись ИК-сигнала в оперативный буфер (см. раздел Оперативный режим). Для обучения контрол переводится в положение ON, после обучения — OFF. |
Play from RAM | Воспроизведение ИК-сигнала из оперативного буфера (см. раздел Оперативный режим). |
Learn to ROMx | Запись ИК-сигнала в соотв. ячейку ПЗУ (см. раздел Постоянный режим). Для обучения контрол переводится в положение ON, после обучения — OFF. |
Play from ROMx | Воспроизведение ИК-сигнала из соотв. ячейки ПЗУ (см. раздел Постоянный режим). Для обучения контрол переводится в положение ON, после обучения — OFF. |
ROMx -> RAM | Копирование данных из соотв. ячейки ПЗУ в оперативный буфер для редактирования (см. раздел Постоянный режим). Для редактирования контрол переводится в положение ON, после редактирования — OFF. |
Internal/External Temperature Sensor | Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом. |
Serial NO | Серийный номер модуля WB-MIR, может потребоваться при обращении в техподдержку. |
Reset all ROM | Сброс содержимого всех ячеек памяти. Будьте внимательны, очистка ПЗУ будет выполнена без запроса на подтверждение! |
Управление модулем из командной строки
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице Modbus-client. Доступ к командной строке описан в статье SSH.
Пример чтения регистров
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку:
echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`
В результате выполнения команды получаем строку, например WBMIR. В этом примере модуль WB-MIR имеет Modbus-адрес 1.
Перезагрузка
В ряде случаев может потребоваться перезагрузка модуля. Для этого в регистр 120 (0x78) необходимо записать любое значение, отличное от нуля:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r0x78 100
Такая перезагрузка равносильна сбросу по питанию и изменению адреса устройства на 0x01. Предварительно, конечно, необходимо остановить сервис wb-mqtt-serial. Перезагрузку лучше делать с одним устройством на шине.