Беспроводной метеодатчик с дисплеем Explore Scientific ST1005

После того, как удалось разобраться с датчиком Explore Scientific ST1004, меня заинтересовал его ближайший родственник — ST1005. При той же цене он показался более привлекательным — у него, в отличие от собрата, имеется дисплей. По заявлению производителя он совместим с другой серией погодных станций — RPW3009000000.

Итак что представляет из себя ST1005. В отличие от ST1004 тут всё сделано заметно лучше. Да, датчик точно так же идёт в совершенно неприглядной коробке, но он завёрнут в мешочек из пенополиэтилена — всё же копеечная, но забота о потребителе.

ce65791b21532c25ac093e281c220f44.JPG

Дисплей маленький, но легко читаемый… при правильном падении света. Подсветки, разумеется нет. Под крышкой батарейного отсека все точно так же: переключатель каналов и кнопка сброса. Но есть ещё весьма полезная кнопка принудительной передачи данных «ТХ» и не особенно полезная кнопка переключения дисплея на отображение температуры в Фаренгейтах.

9ccd32c4bb36a4f67cdec25c7c527590.JPG2d3c0dc7b35b7a9f462d714bd3c93fee.JPGbe6727d8cffa63bf1709d4e1340b0f50.JPG

Внутри корпуса тоже ждёт приятный сюрприз: как в старые добрые времена терморезистор и резистивный датчик влажности вынесены в отдельный вентилируемый отсек. Резиновой прокладки у отсека нет, но всё равно при такой конструкции пыли и влаги будет попадать на плату меньше. Вообще Всё смотрится вполне прилично для такого дешёвого устройства. Хотя да, антенна спиральная, несимметричная, да и расположена горизонтально.

8c14439b522b416fe8a76b9d4a5792da.JPG

А вот то, что датчик передаёт в эфир, выглядит весьма печально… и странно. Как и в ST1004 здесь используется частотно-импульсное кодирование, соотношение такт/бит здесь иное: ¼ для нуля и 1/7 для единицы. Необычно то, что тактовая частота здесь находится в районе 1470,6Гц — что не кратно частоте установленного в схеме часового кварца — 32768Гц. Частота передачи данных плавает, причём не только с изменением температуры и напряжения батареи, но и зависит от режима работы: при нажатии кнопку «TX» она отличается от частоты в режиме передачи данных по таймеру. Почему так происходит, остаётся только догадываться. Но это ещё не всё! Отсутствие у пакеты передачи данных традиционной для радиопередачи преамбулы — это ещё полбеды. Вместо преамбулы здесь используются импульсы нестандартной для протокола длины с некратными длительности тактов передачи интервалами.

6d28b1b0a5484c2af868bbf1d2be2449.jpg

И все эти параметры точно так же меняются при изменении температуры датчика и напряжения питания. Отловить такой «плавающий» пакет в эфире не намного сложнее, чем обычный, но возможностей восстановить его при наличии помех значительно меньше. На эту бочку дёгтя всё же есть ложка мёда — в пакете присутствует контрольная сумма. Считается она тоже как-то странно. Это не CRC, а обычное сложение тетрад, но всё же она есть.А это хоть какие-то данные для проверки полученного пакета.

Вещание идёт сериями пакетов с интервалами 93c, 97c и 101c для 1-ого, 2-ого и 3-его канала соответственно. Содержание каждого из пакетов данных следующее:

  • Байт (8-и битовое поле) идентификатора. Изменяется после каждого сброса устройства,

  • Тетрада (4-ех битовое поле), содержащая флаг разряженной батареи (&8h), флага передачи данных по кнопке «ТХ» (&4h) и номер канала (&2h + 1),

  • Трёхтетрадное (12-и битовое) знаковое число, разделив которое на 10 получаем данные о температуре с точностью до десятой доли градуса,

  • 7-и битовое поле, содержащее целочисленное значение влажности,

  • 6-и битное поле контрольной суммы, рассчитываемое как сумма восьми первых восьми тетрад пакета, последняя из которых логически помножена на Еh.

Например для пакета

IIIIIIII OIIO OOOOOOIIOIOO IOIIIII OOOIOO

получаем следующие значения:

1.IIIIIIII = FFh — ID пакета,

2.OIIO = 6h:

6h & 8h = 0 — батарея заряжена,

6h & 4h = 4 — передача по кнопке «ТХ»,

6h & 2h + 1 = 3 — канал передачи,

3.OOOOOOIIOIOO = 34h — Температура +5.2C,

4.IOIIIII = 5Fh — влажность 95%

5.OOOIOO = 4h— контрольная сумма, рассчитанная следующим образом:

IIII + IIII + OIIO + OOOO + OOII + OIOO + IOII + IIIO = OOOIOO = 4h

Если рассматривать ST1005 как отдельное устройство для сбора метеоинформации, то его можно описать одним словом — оно странное. Неплохое «железо» в совокупности с необычным, плохо восстанавливаемым в условиях помех протоколом передачи данных делают из датчика прежде всего цифровой термометр с дисплеем, а уже только потом — устройство в системе умного дома или домашней метеостанции, но с небольшим радиусом вещания. У меня в итоге примерно так и вышло: после добавления поддержки протокола в библиотеку для сбора данных с беспроводных метеодатчиков, ST1005 поселился в неотапливаемой кладовке, совсем недалеко от базового блока домашней метеостанции.

© Habrahabr.ru