Модель: sht20
Напряжение питания: от 4 до 30 Вольт
Диапазон температур: от -20 ℃ до +60 ℃, при влажности 0-100.
Точность показаний: ± 0,3 ℃ для температуры, ± 3% для влажности
Выходной интерфейс: RS485 MODBUS
Адрес устройства: от 1 до 247 может быть установлен, по умолчанию установлен 1.
Скорость передачи данных: 9600 (можно изменить), 8 бит данных, 1 стоп бит, без контроля четности;
Размер: 60*30*18 (мм)
Подключение:
Красный провод - плюс питания
Черный провод - минус питания
Желтый провод - RS485 A
Белый провод - RS485 B
Функции:
0x04 - считывания показаний (ОЗУ)
0x03 - считывания настроек (ПЗУ)
0x06 - запись настроек в ПЗУ
Регистры:
0x0001 - считывание температуры
0x0002 - считывание влажности
0x0101 - адрес устройства
0x0102 - скорость передачи данных (0=9600, 1=14400, 2=19200)
0x0103 - корректировка температуры (/10) от -10 до +10
0x0104 - корректировка влажности (/10) от -10 до +10
Формат запроса:
Адрес устройства(1) - Функция(1) - Регистр(2) - Значение(2) - CRC(2)
Формат ответа:
Адрес устройства(1) - Функция(1) - Количество байт в ответе(1) - Ответ(?) - CRC(2)
Пример запроса температуры:
0x01 0x04 0x00 0x01 0x00 0x01 0x60 0x0A
Ответ:
0x01 0x04 0x02 0x01 0x31 0x79 0x74
Разбираем ответ, нам нужены байты 0x01 0x31 = 131в 16-ричной системе
Переводим в десятичную, получаем 305. Значит температура 30.5 градусов
Если темература отрицательная будет обратный отчет в hex, т.е. 0xFF33 = -20.5 градусов
Пример запроса влажности:
0x01 0x04 0x00 0x02 0x00 0x01 0xC1 0xCA
Ответ:
0x01 0x04 0x02 0x02 0x22 0xD1 0xBA
Разбираем ответ, нам нужены байты 0x02 0x22 = 222(HEX) = 546(DEC) = 54.6%
Пример запроса на изменение настроек (адреса устройства):
0x01 0x06 0x01 0x01 0x00 0x08 0xD4 0x0F
Ответ будет такой же как и запрос
0x08 - установит устройству 8ой адрес, последующие обращения нужно будет начинать с 0x08