Модуль температуры¶
Технические характеристики¶
- Размеры: TBA
- Напряжение питания: TBA
- Потребляемые ток, пиковый: TBA
Подключение к головному устройству¶
Подключение к головному устройству осуществляется по протоколу RS-485 через разъем SH04, расположенному на плате. Распиновка приведена на рисунке ниже.
Выполняемые команды¶
Команда на получение температуры¶
Формат запроса¶
Длина запроса - 8 байт.
| Байт # | Поле | Тип | Значение | Описание |
|---|---|---|---|---|
| 0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
| 1 | id | uint8_t | 0x10 | Идентификатор получателя пакета. 0x10 - получатель - Датчик температуры |
| 2 | type | uint8_t | 0x01 | Тип пакета. 0x01 - пакет команды управления |
| 3 | action | uint8_t | 0x00 | Действие, которое необходимо выполнить. 0x00 - Чтение |
| 4 | param | uint8_t | 0x10 | Параметр для действия. 0x10 - данные температуры |
| 5 | data | uint8_t | 0x00 | Данные для действия. 0x00 - нет данных |
| 6 | payload | uint8_t | 0x00 | Дополнительные данные для действия. 0x00 - нет данных |
| 7 | checksum | uint8_t | 0xCB | Контрольная сумма пакета - младший байт суммы всех байтов пакета |
Формат ответа¶
Длина ответа - 13 байт.
| Байт # | Поле | Тип | Значение | Описание |
|---|---|---|---|---|
| 0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
| 1 | id | uint8_t | 0x01 | Идентификатор получателя пакета 0x01 - получатель - Головное устройство |
| 2 | type | uint8_t | 0x10 | 0x10 - Данные темперратуры |
| 3 | sensor_id | uint8_t | 0x00 | Идентификатор сенсора |
| 4 | systime | uint32_t | 0xXX | Системное время модуля в миллисекундах. Порядок байт - little endian |
| 5 | 0xXX | |||
| 6 | 0xXX | |||
| 7 | 0xXX | |||
| 8 | currentTemp | int32_t | 0xXX | Данные температуры в градусах Цельсия Полученное значение необходимо разделить на 10000 Порядок байт - little endian |
| 9 | 0xXX | |||
| 10 | 0xXX | |||
| 11 | 0xXX | |||
| 12 | checksum | uint8_t | 0xXX | Контрольная сумма пакета - младший байт суммы всех байтов пакета |
Имплементация значений¶
- Поле systime содержит значение системного времени модуля с дискретностью 1 миллисекунда.
- Поле currentTemp содержит значение температуры в градусах цельсия (Полученное значение необходимо разделить на 10000).
Примеры¶
Все команды приведены в HEX-формате без указания 0x
Запрос: AA 10 01 00 10 00 00 CB
Ответ: AA 01 10 00 F5 71 94 00 34 8C 03 00 78
Интерпретация ответа:
- тип пакета - данные температуры;
- systime = 00 94 71 F5 = 9728501 мс,
- температура = 00 03 8C 34 = 23.2 °C.