СОДЕРЖАНИЕ

RF433, пожарная сигнализация

26.01.2020

Как-то по случаю купил я простых пожарных датчиков для подключения к GSM-сигнализации. Причём саму сигнализацию купить я так и не собрался – не нашёл никакого варианта, которым можно было бы адекватно управлять со стороны умного дома.

Датчики в целом достаточно неплохие. Врать не буду – в работе проверить их не довелось. Да надеюсь и не доведётся. Но в остальном вполне живые. Батарейки хватает года на два.

Но вот как получить от них сигнал аварии? GSM-сигнализация – вариант странный. Что бы ещё придумать? Купил я странный модуль… MP323RX3.

Модуль несложный, но какой-то нелепый. Невнятный. Неуправляемый. Короче, даже несмотря на то, что он как-то заработал и проработал пару лет вполне неплохо – не рекомендую его к использованию, поскольку штука необслуживаемая. Хорошо, наверное, подойдёт в проекте, который нужно сделать один раз и забыть о нём навсегда. Для дома лучше всё-таки что-то более наглядное.

Эта мысль меня мучала какое-то время и тут я нашёл пару свободных часов и решил вспомнить про эту проблему.

Попытки немного погуглить показали, что в мире появились прекрасные датчики дыма от Xiaomi. Заявленные характеристики в 5 лет работы от батарейки выглядели очень впечатляюще. Но выбрасывать мои старые датчики было как-то жалко, да и не даёт покоя политика Xiaomi, связанная с управлением чисто из приложения и тем, что постоянно ставятся новые палки в колёса гейтования мимо серверов Xiaomi. Всё это не радостно, особенно для такой системы, как пожарная сигнализация.

Вспомнилось мне, что когда-то я уже пытался найти сил решить эту проблему и даже что-то для этого купил. Покопавшись в глубинах домашних завалов я обнаружил несколько интересных устройств.

CC1101 USB Wireless RF Transceiver Module

Прекрасное устройство с простым USB-подключением. На борту и передатчик и приёмник. Может почти всё. У него только один недостаток – вообще отсутствует документация и упоминания в сети о том, что кому-то удалось его запустить. Поэтому - не подошло.

SV613 433MHz USB Interface Wireless RF Transceiver

Долго на него смотрел… 100% друг предыдущего устройства. Как с ним работать – непонятно. Пришлось тоже отложить до лучших времён.

И тут где-то на дне коробок попались мне самые древние, самые нелепые модули. Зачем-то я их тоже купил. "433 Mhz Superheterodyne RF Receiver and Transmitter Module For Arduino". На самом деле они немного не такие, как на картинке, но схожесть где-то на 95%.

Дай, думаю, попробую.

Подключать решил как обычно к Raspberry PI.

Не могу сказать, что попалось много внятных статей. Пришлось перебрать какое-то количество софта, который отказался работать, отказался ставиться, отказался скачиваться… Видимо не сильно то популярна нынче возня с RF433. Но найти работающее решение удалось.

Проект называется 433Utils.

Устанавливаем:


apt-get install wiringpi

git clone --recursive https://github.com/itprosto/433Utils

cd 433Utils/RPi_utils

make


Теперь вам доступен бинарник RFSniffer, который стоит положить куда-то в более удачное место.

Запускаем RFSniffer с двумя параметрами pulseLength и PIN. Первый параметр по умолчанию равен нулю. Я не стал с ним разбираться. Второй отвечает за порт GPIO, к которому вы подключили RF-модуль. Только вот почему-то он как-то странно задаётся… Сниффер работает через wiringPi, возможно там какая трансляция осуществляется…

Я использовал GPIO17. При этом "gpio readall" сообщил мне, что GPIO17 соответствует PIN 0 для wPi. Когда-нибудь потрачу 10 минут, чтобы понять, что это значит. Пока просто буду использовать PIN = 0.

Запускаем и получаем искомое! На выходе у нас:


Received 5592149

Received 5592149

Received 1398101

Received 1398101


Дальше лепим лёгкую обвязку к этому снифферу и запускаем в прод.