twSdrPower

Radio power sensor for TWSNMP FC

View on GitHub

twSdrPower

English Version

twSdrPowerは、RTL-SDRを活用して広範囲(24MHz〜1.7GHz)の無線周波数(RF)電力を監視する軽量なセンサーアプリケーションです。MQTTとSyslogを介してデータをストリーミングすることで、スペクトラム使用状況のリアルタイムな可視化を可能にし、電磁ノイズ調査やネットワーク統合型のRF監視に最適なツールとなります。

Godoc Reference Go Report Card

twSdrPower Infographic

概要

RTL-SDRを利用して周辺の電波の強度(電力)をモニタし、その情報をTWSNMP FCなどの管理システムへSyslogまたはMQTTで送信するためのセンサープログラムです。電磁波のノイズ調査や、特定の周波数帯の利用状況の可視化に役立ちます。

主な機能

取得データ詳細

現在のバージョンでは以下の情報を取得・送信できます。

取得した電波強度をグラフ(HTML形式)として出力することもできます。

ステータス

v2.0.0 MQTT送信機能の追加、ビルド環境の改善

ビルド

環境

ビルドするためには、以下が必要です。

RTL-SDRのライブラリはMac OSの場合、Homebrewでインストールできます。

brew install librtlsdr

Linux版は、Docker環境の中でビルドするので、ホスト環境にはmakeとDockerがあればビルドできます。

ビルド方法

ビルドはmakeで行います。

$ make

以下のターゲットが指定できます。

  all        全実行ファイルのビルド(Mac, Linux amd64/arm/arm64)
  mac        Mac用の実行ファイルのビルド
  clean      ビルドした実行ファイルおよびdistディレクトリの削除
  zip        リリース用のZIPファイルを作成

ビルドされた実行ファイルは dist ディレクトリに作成されます。

実行方法

環境

実行するためには、RTL-SDRのライブラリが必要です。 Mac OSの場合は、開発環境の説明にあるbrewでインストールできます。 Linux環境にはrtl-sdrパッケージをインストールしてください。

$ sudo apt install rtl-sdr

使用法

Usage of twSdrPower:
  -chart string
    	chart title
  -dark
    	dark mode chart
  -debug
    	Debug mode
  -end string
    	end frequency (default "1667M")
  -folder string
    	chart folder (default "./")
  -gain int
    	RTL-SDR Tuner gain (0=auto)
  -interval int
    	syslog/MQTT send interval(sec) (default 600)
  -list
    	List RTL-STR
  -mqtt string
    	MQTT broker destination (e.g., 192.168.1.1:1883)
  -mqttClientID string
    	MQTT client ID (default "twSdrPower")
  -mqttPassword string
    	MQTT password
  -mqttTopic string
    	MQTT topic (default "twsnmp/twSdrPower")
  -mqttUser string
    	MQTT user
  -once
    	Only once
  -sdr int
    	RTL-SDR Device Number
  -start string
    	start frequency (default "24M")
  -step string
    	step frequency (default "1M")
  -syslog string
    	syslog destination list (comma separated)

syslog送信先の設定

syslogの送信先はカンマ区切りで複数指定できます。ポート番号を指定することも可能です。

-syslog 192.168.1.1,192.168.1.2:5514

MQTT送信の設定

MQTTブローカーの情報を指定します。

-mqtt 192.168.1.1:1883 -mqttTopic my/topic

MQTTで送信されるデータはJSON形式です。以下のトピックに送信されます。

起動例 (Mac OSの場合)

./dist/twSdrPower.darwin -chart noise -gain 500 -dark -folder /tmp -interval 300 -sdr 0 -mqtt 192.168.1.250:1883

デバイスの確認

-list オプションを付けて起動することで、接続されているRTL-SDRデバイスを確認できます。

$ ./dist/twSdrPower.darwin -list
Device List count=1
0,Generic RTL2832U OEM,Realtek,RTL2838UHIDIR,00000001

先頭の 0 がデバイス番号(-sdr オプションで指定する値)です。

著作権

./LICENSE を参照してください。

Copyright 2022-2026 Masayuki Yamai