Пытаюсь подключить беспроводной датчик от noname метеостанции к компьютеру с помощью arduino. Подключился к базовой станции на выход приемника 433Мгц, но в силу зашумленности диапазона получаю много лишнего.
Пакет передачи почти разобрал, осталось понять, как crc считается, чтобы точно находить свой пакет.
Пример пакета передачи (пакет шлется 2 раза, второй раз без последних 8 бит):
111111110111 0111011100 1010101010 00111000 01 01 1111 1100100011110100
что удалось выяснить:
первые 12 бит всегда одинаковые, затем 10 бит меняются после перезагрузки датчика, 10 бит температуры, 8 бит влажности, 2 бита сигнал низкой батареи, 2 бита номер канала, 4 бита 1111, 16 бит случайные числа (логично должно быть crc). Как узнать, как считаются эти 16 бит?
пробовал искать пакет по первым битам и 4 единицам в конце, но все равно много левых пакетов.
Олег: так crc это и есть простой алгоритм, просто его вариантов множество может быть... Там в документе перечислено 6 параметров. Мне тоже непонятно почему меньше второй раз... Кстати а пробовали дампить пакеты сразу после включения датчика? Он их по идее после включения чаще слать будет, может еще какие то дополнительные данные удастся получить
Виталий Перетятько: Датчик тоже тупой=) Шлет каждые 10 секунд эти 2 пакета, после включения ничего нет. База включает приемник каждые 7с. на 3с. надеясь что в это время будут данные и как то их находит, я же получаю кроме своих еще штук 5 пакетов которые подошли под мое условие.
Виталий Перетятько: noname метеостанция. Покупалась на ebay На плате есть только WS1066-01, в интернете находил толоко сообщения о том что не показывает, как и у меня, отрицательные температуры, собственно поэтому и решил датчик к ардуине прицепить, он шлет то что надо.
Я бы сделал так: логировал бы данные и записывал, какие показания при этом были на приборе. Когда накопится десяток-другой строк, можно начать анализировать. Если двум строкам двоичных данных соответствуют одинаковые показания на приборе, то и контрольные суммы у двоичных строк должны совпадать. Если не совпадают, то это либо не контрольная сумма, либо она короче 16 бит. Затем сравнить строки, которые отличаются только показаниями температуры только на один разряд и проанализировать изменение контрольной суммы. Таким путем убедиться, сколько же занимает реально контрольная сумма, если она есть. Возможно, там еще время присутствует.