Linux AP + ESP8266のソフトプレゼンスセンサー

TL; DR

家の周りに恒久的に配置されているIoTデバイスからのWi-Fi信号のレベルの変化を監視することで、アパートに完全にソフトウェア(専用のハードウェアがない)ボリュームモーションセンサーを作成できます。これにより、活発に動いている(実際には眠っていない)人々の存在を非常に正確に示します。





バックグラウンド

ホームアシスタントに基づく「スマートホーム」システムを備えた通常の「ITスペシャリストのアパート」があります。





  • ESP8266 + MSP430に基づく自家製ライトスイッチ





  • 温度/湿度、CO2および空気品質のためのいくつかのセンサー。





  • バスルーム/トイレファンコントローラー





  • 残りのためのソノフミニのペア。





デバイス間の通信-Wi-Fi + MQTTを介して。「動作中の」Wi-Fiネットワークに対する低速ESPの影響を最小限に抑えるために、標準のhostapdに基づいて、IoT用の個別のWi-Fiネットワークが個別のRaspberry Pi3で起動されます。IoTWi-Fiネットワークには合計12台のデバイスがあります







MQTTブローカーはRPiで起動され、HomeAssistantは「ホームサーバー」で起動されました。





考え

Wi-Fi . / RSSI, . , wi-fi - .





- , , " " - .





iw dev wlan0 station dump, :





Station 60:01:94:21:f8:4c (on wlan0)
        inactive time:  8000 ms
        rx bytes:       11269629
        rx packets:     91423
        tx bytes:       6159821
        tx packets:     70707
        tx failed:      0
        signal:         -53 [-53] dBm
        tx bitrate:     1.0 MBit/s
        rx bitrate:     54.0 MBit/s
        ...
        connected time: 763375 seconds
Station 18:fe:34:98:dc:81 (on wlan0)
        inactive time:  4000 ms
        rx bytes:       11388688
        rx packets:     92101
        tx bytes:       6143200
        tx packets:     70205
        tx failed:      39
        signal:         -40 [-40] dBm
        tx bitrate:     1.0 MBit/s
        rx bitrate:     18.0 MBit/s
        ...
        connected time: 763378 seconds
      
      



RSSI ("signal: -40 [-40] dBm") , iw - .





iw RSSI - :





, "" +/- 10 dBm. , "" .





:





  • (" ")









  • , " "





, . - , .

4 :





~4:30. , - . , - , " " .





" " - .





  • 500 RSSI iw dev wlan0 station dump.

    , Raspberry Pi .





  • 1024 " ":





$RSSI = -65; #   iw dev dump
$baseline = ($RSSI + 1023 * $baseline) / 1024;
      
      



  • 256 " ".





  • " " "" "" wi-fi .





:





("IW Signal Distance") . - .





経験的に、IW信号距離> 1(緑の水平)は、部屋にいる人々の活動に対応すると想定できます。ただし、この境界は、他の部屋の構成やデバイス数によって異なる可能性があります。





結果

このシステムは2年以上この形で運用されており、隣人からの影響を最小限に抑えながら、アパート内での活動を非常に確実に示しています。







私のアルゴリズムの実装はgithub(https://github.com/k-korn/misc-scripts/tree/main/iwmon)で入手できますが、非常に具体的です(Perl + Zabbix + Grafanaでの視覚化)-したがって、既製のソリューション「プラグ」そして、「まだ役立たない」と遊ぶ。












All Articles