0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenWrt Wi-Fiセンシング

0
Posted at

:flag_jp: Japanese article
OpenWrt_icon.png

はじめに

本ツールについて

OpenWrtルーターを利用してWi-Fiセンシングの検証をしています

ライセンス

  • MITライセンス(商用利用可)/ GPLv2(OpenWrt部分)
    詳細: LICENSE

初心者対応構成

Wi-Fiセンシング

Spectral ScanとCSIの違い

Spectral Scan:
FFT(Fast Fourier Transform)で周波数スペクトル解析、干渉検知・チャネル最適化に使用

CSI(Channel State Information):
サブキャリアごとの振幅・位相データ、Wi-Fiセンシング(モーショントラッキング・人感検知)に使用

Spectral Scan と CSI は別物:
Spectral Scanは振幅のみ(I+Q)で位相情報は失われますが、CSIは振幅と位相の両方を含む複素数データです

Spectral Scan

IPQ9574

  • テスト機器:
    Velop WRT Pro 7
    QSDK 19.07-9
    ath11kについて

  • 動作確認
    athssd起動(バックグラウンド)

#WIFI_NUM=0  # 2.4GHz
#WIFI_NUM=1  # 5GHz
WIFI_NUM=2  # 6GHz
mkdir -p /tmp/aios2
killall athssd
athssd -i wifi$WIFI_NUM -j ath${WIFI_NUM}0 -s 0 -d > /tmp/aios2/spectral.log 2>&1 &
# RSSI値をリアルタイム監視
tail -f /tmp/aios2/spectral.log | grep -i "rssi\|interference"
# ログ確認
cat /tmp/aios2/spectral.log
# 停止:`Ctrl+C`
  • スクリプトテスト
opkg update && opkg install coreutils-stdbuf
mkdir -p /tmp/aios2
cat > /tmp/aios2/wifi_motion.sh << 'EOF'
#!/bin/sh
# Wi-Fiセンシング モーション検知

#WIFI_NUM=0  # 2.4GHz
#WIFI_NUM=1  # 5GHz
WIFI_NUM=2  # 6GHz

THRESHOLD=5
PREV_RSSI=0

# クリーンアップ
killall athssd
spectraltool -i wifi$WIFI_NUM stopscan
sleep 1

# モーション検知開始
stdbuf -oL athssd -i wifi$WIFI_NUM -j ath${WIFI_NUM}0 -s 0 -d 2>&1 | while read line; do
    echo "$line"
    
    if echo "$line" | grep -q "RSSI"; then
        RSSI=$(echo "$line" | grep -o 'RSSI [0-9]*' | awk '{print $2}')
        
        if [ ! -z "$RSSI" ]; then
            DIFF=$((RSSI - PREV_RSSI))
            [ $DIFF -lt 0 ] && DIFF=$((DIFF * -1))
            
            if [ $DIFF -gt $THRESHOLD ]; then
                echo ">>> モーション検知! RSSI変化: $DIFF"
            fi
            
            PREV_RSSI=$RSSI
        fi
    fi
done
EOF

chmod +x /tmp/aios2/wifi_motion.sh
/tmp/aios2/wifi_motion.sh
# 停止:`Ctrl+C`
  • 結果:
    athssdを動作確認 (QCA独自)
    Wi-Fi干渉検出が可能(RSSI値取得)
    2.4GHz、5GHz、6GHzで検出

  • athssdの問題点:

    • Wi-Fi通信も「干渉」として検出される
      クライアントPCとの通信
      他のWi-Fiデバイス
      データ転送時のRSSI変化

    • 真のモーション検知ではない
      電波環境全体の変化を見ているだけ
      人の動きと通信を区別できない

  • 結論:
    athssdは周波数スペクトルの解析で、Wi-Fi通信も干渉として検出してしまう
    Wi-Fi通信による干渉を検出しているだけで、真のモーション検知にはなりえない
    メッシュ構成で三角測量の可能性あるだろうが、やはりセンサー機器としての精度は期待出来そうにない

mt7996

  • テスト機器:
    BPI-R4
    OpenWrt 25.12.0-rc3

  • 動作確認

mkdir -p /tmp/aios2
# BPI-R4 (mt7996) はphy0.2-ap0で3帯域統合取得
while true; do
    iw dev phy0.2-ap0 survey dump | grep -i "noise\|busy\|receive"
    sleep 1
done

CSI

mt7981

PKGS="tcpdump netcat"

# パッケージマネージャー判定してインストール
command -v opkg && opkg update && opkg install $PKGS 2>/dev/null
command -v apk && apk update && apk add $PKGS 2>/dev/null

あとがき

CSIは該当機種を手に入れたらテストしよう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?