WB-MIR v1 - Modbus IR Remote Control/en: различия между версиями
(Новая страница: «On the example of a fully functional module, consider the main controls of the module and their purpose. {| class="wikitable" ! The name of the control !Purpose |…») |
(Новая страница: «Described in detail in how to work with the IR receiver in the WB-MS WB-MSW, WB-MIR devices .») |
||
(не показано 11 промежуточных версий этого же участника) | |||
Строка 90: | Строка 90: | ||
{| class="wikitable" | {| class="wikitable" | ||
! rowspan="2" | | ! rowspan="2" |Регистр/ адрес | ||
! rowspan="2" | | ! rowspan="2" |Тип | ||
! rowspan="2" | | ! rowspan="2" |Чтение/ запись | ||
! rowspan="2" | | ! rowspan="2" |Значение по умолчанию | ||
! rowspan="2" | | ! rowspan="2" |Формат | ||
! rowspan="2" | | ! rowspan="2" |Назначение | ||
! | !Версии | ||
прошивки | |||
|- | |- | ||
! | ! | ||
Строка 106: | Строка 106: | ||
|0x7FFF | |0x7FFF | ||
|°C × 16 (signed) | |°C × 16 (signed) | ||
| | |Температура с встроенного датчика 1-Wire | ||
| | | | ||
|- | |- | ||
Строка 114: | Строка 114: | ||
|0x7FFF | |0x7FFF | ||
|°C × 16 (signed) | |°C × 16 (signed) | ||
| | |Температура с внешнего датчика 1-Wire | ||
| | | | ||
|- | |- | ||
Строка 130: | Строка 130: | ||
|96 | |96 | ||
|baud rate / 100 | |baud rate / 100 | ||
|RS-485 | |скорость порта RS-485, '''делённая на 100'''. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 | ||
| rowspan="3" |>3.1.0 | | rowspan="3" |>3.1.0 | ||
|- | |- | ||
Строка 138: | Строка 138: | ||
|0 | |0 | ||
| | | | ||
| | |настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) | ||
|- | |- | ||
|112 | |112 | ||
Строка 145: | Строка 145: | ||
|2 | |2 | ||
| | | | ||
| | |количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | ||
|- | |- | ||
| | | | ||
Строка 159: | Строка 159: | ||
|RW | |RW | ||
|0 | |0 | ||
| | |отличное от 0 | ||
| | |запись в регистр вызывает перезагрузку модуля без сохранения состояния | ||
| | | | ||
|- | |- | ||
Строка 168: | Строка 168: | ||
| - | | - | ||
|mV | |mV | ||
| | |текущее напряжение питания модуля | ||
| | | | ||
|- | |- | ||
Строка 176: | Строка 176: | ||
|1 | |1 | ||
| | | | ||
| | |Modbus-адрес устройства | ||
| | | | ||
|- | |- | ||
Строка 182: | Строка 182: | ||
|input | |input | ||
|R | |R | ||
| | |см. [[Sensors Modbus Management|Сигнатура устройства]] | ||
| | | | ||
| | |сигнатура | ||
| | | | ||
|- | |- | ||
Строка 191: | Строка 191: | ||
|R | |R | ||
| | | | ||
|__date__ | |__date__ __time__ | ||
| | |дата сборки прошивки | ||
| | | | ||
|- | |- | ||
Строка 199: | Строка 199: | ||
|R | |R | ||
| | | | ||
| | |строка, null-terminated | ||
| | |версия прошивки | ||
| | | | ||
|- | |- | ||
Строка 208: | Строка 208: | ||
| | | | ||
|32-bit unsigned int | |32-bit unsigned int | ||
| | |уникальный идентификатор (S/N) | ||
| | | | ||
|} | |} | ||
== | ==Сигнатура устройства == | ||
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus: | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="font-weight: bold;" | | ! style="font-weight: bold;" | Модуль | ||
! style="font-weight: bold;" | | ! style="font-weight: bold;" | Сигнатура | ||
|- | |- | ||
| WB-MIR | | WB-MIR | ||
Строка 224: | Строка 224: | ||
|} | |} | ||
Для получения сигнатуры нужно выполнить команду 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" | {| class="wikitable" | ||
|[[File:Web_wb_mir.png |600px|thumb|right|WB-MIR | |[[File:Web_wb_mir.png |600px|thumb|right|Веб-интерфейс модуля WB-MIR]] | ||
|[[File:Web-wb-mir-simple.png|300px|thumb|right| | |[[File:Web-wb-mir-simple.png|300px|thumb|right|Упрощенный веб-интерфейс модуля WB-MIR]] | ||
|} | |} | ||
На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение. | |||
{| class="wikitable" | {| class="wikitable" | ||
! | ! Название элемента управления | ||
! | !Назначение | ||
|- | |- | ||
|Input Voltage|| | |Input Voltage||Напряжение питания модуля | ||
|- | |- | ||
|Learn | |Learn to RAM||Запись ИК-сигнала в оперативный буфер (см. раздел [[#Оперативный режим|Оперативный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF. | ||
|- | |- | ||
|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|| | |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 \ | <syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \ | ||
Строка 274: | Строка 272: | ||
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight> | grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight> | ||
В результате выполнения команды получаем строку, например '''WBMIR'''. В этом примере модуль WB-MIR имеет Modbus-адрес 1. |
Версия 13:57, 23 июля 2019
<languages>
This page describes the device WB-MIR v1, discontinued in 11.2017. Direct replacement is improved module WB-MIR v2
Learning module with IR transceiver for IR control of various devices, including air conditioners, TVs, etc. The module is controlled from the controller or PC via RS-485 bus by Modbus commands.
Inputs
The module is powered by V+ and GND screw terminals, the RS-485 line is connected to inputs A and B. the DS18B20 External temperature sensor is connected via a parasitic power supply circuit, when the +5V and GND terminals are connected and connected to the GND terminal, the data output is connected to the 1-W terminal. D some models have an internal temperature sensor DS18B20 in the case TO-92, soldered in the upper left part of the module Board (the top view of the sensor housing is printed in this place by silkscreen).
Installation
The module is mounted on the air conditioner on a double-sided tape so that a small hole of the emitting diode on the reverse side would be located opposite the IR receiver of the air conditioner, without closing the receiver from the main console of the device. The position is selected experimentally due to the huge variety of designs of air conditioning housings. The same applies to any household devices controlled by IR channel.
Specifications
Option | Value |
---|---|
Power | |
Supply voltage | 9 — 24 V DC |
Power consumption |
0.1 W |
Transmitter range | < 1m |
External sensor | Digital temperature sensor DS18B20 can be connected. |
Control | |
Management interface | RS-485 |
Interface isolation | Uninsulated |
Communication protocol | Modbus RTU, address is set by software, factory settings are indicated on the label |
RS-485 interface parameters |
speed 9600 bps; data bits 8; parity N; stop bits 2; Starting from firmware version 3.1.0 parameters interfaces can be configured programmatically:
|
dimensions | |
Size | 45x35x14 mm |
Operating conditions | |
Air temperature | -40°C to +80°C |
Relative humidity | up to 98%,without moisture condensate |
Learning and using the module
Detailed description and use of the module, and a map of the registers is described in section how to work with the IR receiver in the WB-MS WB-MSW, WB-MIR devices.
Additional functionality
Address change is broadcast (slave_id 0) team record (WRITE_SINGLE_REGISTER) to holding register with address 128 (0x80).
The 6-byte module signature is stored at address 200. The signature is unique for each model of Wiren Board devices and allows to identify the model. To obtain the signatures necessary to fulfill READ_HOLDING_REGISTERS address 200 length 6. Writing to this area of memory is not supported and error 3 is returned when attempting to write to an invalid location.
Register map
Described in detail in how to work with the IR receiver in the WB-MS WB-MSW, WB-MIR devices .
Регистр/ адрес | Тип | Чтение/ запись | Значение по умолчанию | Формат | Назначение | Версии
прошивки |
---|---|---|---|---|---|---|
6 | input | R | 0x7FFF | °C × 16 (signed) | Температура с встроенного датчика 1-Wire | |
7 | input | R | 0x7FFF | °C × 16 (signed) | Температура с внешнего датчика 1-Wire | |
110 | holding | RW | 96 | baud rate / 100 | скорость порта RS-485, делённая на 100. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 | >3.1.0 |
111 | holding | RW | 0 | настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) | ||
112 | holding | RW | 2 | количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | ||
120 (0x78) | holding | RW | 0 | отличное от 0 | запись в регистр вызывает перезагрузку модуля без сохранения состояния | |
121 (0x79) | input | R | - | mV | текущее напряжение питания модуля | |
128 (0x80) | holding | RW | 1 | Modbus-адрес устройства | ||
200-206 | input | R | см. Сигнатура устройства | сигнатура | ||
220-241 | input | R | __date__ __time__ | дата сборки прошивки | ||
250-269 | input | R | строка, null-terminated | версия прошивки | ||
270-271 | input | R | 32-bit unsigned int | уникальный идентификатор (S/N) |
Сигнатура устройства
По адресу 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.