Читаем данные с беспроводного датчика от метеостанции

5 февраля 2016, 8:10

Многие беспроводные устройства для домашнего использования работают на частоте 433 МГц. Это могут быть пульты управления, охранные датчики, брелки автомобильных сигнализаций, беспроводные датчики от метеостанций и многое другое.
Если посмотреть эфир на этой частоте, то можно увидеть обилие передатчиков.

Сегодня поговорим, как с помощью usb радиоприемника на чипе RTL2832 получать данные от беспроводных датчиков метеостанций.

У меня есть метеостанция Ea2 BL508 с одним беспроводным датчиком, попробуем получить с него данные.

Для работы нам потребуется библиотека rtlsdr и приложение rtl_433.
Я пробовал запускать rtl_433 и на Mac OS X 10.11 и на Raspberry Pi с Raspbian GNU/Linux 8 (jessie), в обоих случаях все работало. Перед началом установки необходимо убедиться в наличии libusb1.0 и cmake в системе.

Установка rtl-sdr

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig

Если все прошло успешно, переходим к следующему шагу.

Установка rtl_433

git clone https://github.com/merbanan/rtl_433.git
cd rtl_433/
mkdir build
cd build
cmake ../
make
sudo make install

Для Raspberry Pi еще потребовалось исключить модуль из ядра:

sudo modprobe -r dvb_usb_rtl28xxu

Использование rtl_433

Теперь, когда все установлено и вы знаете модель своего датчика, а модели датчиков поддерживаемые приложением rtl_433 можно посмотреть тут, можно запускать сканер:

rtl_433 -R 31

В ответ получим следующее:

Registering protocol "TFA-Twin-Plus-30.3049 and Ea2 BL999"
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000.
Bit detection level set to 8000.
Tuner gain set to Auto.
Reading samples in async mode...
Tuned to 433920000 Hz.
2016-01-31 20:14:04 TFA-Twin-Plus-30.3049 Sensor 24: battery OK, channel 1, temperature -2.0 C / 28.4 F, humidity 80%
2016-01-31 20:14:36 TFA-Twin-Plus-30.3049 Sensor 24: battery OK, channel 1, temperature -2.0 C / 28.4 F, humidity 80%

Как видно из вышестоящих строк, датчик отправляет каждые 30 секунд на метеостанцию температуру и влажность воздуха, а так же немного служебной информации.

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

rtl_433

И вы будете удивлены количеству таких датчиков:

2016-01-31 20:23:37 Prologue sensor 5 159: Channel 4, Battery OK, Button 1, Temperature -42.00 C, Humidity 0 %
2016-01-31 20:24:25 Digitech XC0348 weather station 162: Temperature -3.700000, Humidity 70, Wind direction N, Wind speed 4.400000
2016-01-31 20:25:16 TFA-Twin-Plus-30.3049 Sensor 24: battery OK, channel 1, temperature -2.1 C / 28.2 F, humidity 81%
Sensor        = Temperature and rain event
Device        = 164
Temp          = -2.100000
Rain          = 237
checksum      = 01==01
Received Data = A4 B0 FE ED 01
2016-01-31 20:37:05 Thermo Sensor THN132N: House Code 34, Channel 1, Battery OK, Temperature -2.50 C

Имея в быту приемник на чипе RTL2832 сколько различных применений можно для него найти.
Подписывайтесь и узнаете много всего интересного.

Поделиться
Запинить
1 комментарий
Мясников Алексей

Здравствуйте!
Я пытаюсь прикрутить rtl_433 на Odroid'е.
Не поделитесь опытом (если он был) как вы настраивали автозапуск утилиты rtl_433?
Мой вариант с upstart, systemd, udev-rules в итоге не обеспечивает автозапуск утилиты =(

Александр Кропочев

В автозапуске не было необходимости

Популярное