TL; DR
Surveiller le changement du niveau du signal Wi-Fi des appareils IoT stationnaires situés autour de la maison vous permet de créer un capteur de mouvement volumétrique entièrement logiciel (il manque du matériel dédié) dans l'appartement, qui montre assez précisément la présence de personnes en mouvement actif (en fait, ne dormant pas).
Contexte
Il existe un "appartement de spécialiste informatique" ordinaire avec un système "maison intelligente" basé sur Home Assistant:
Interrupteurs d'éclairage faits maison basés sur ESP8266 + MSP430
Plusieurs capteurs de température / humidité, CO2 et qualité de l'air.
Contrôleur de ventilateur de salle de bain / toilettes
une paire de Sonoff Mini pour le reste.
Communication entre appareils - via Wi-Fi + MQTT. Pour minimiser l'impact des ESP à faible vitesse sur le réseau Wi-Fi «opérationnel», un réseau Wi-Fi séparé pour l'IoT est lancé sur un Raspberry Pi 3 séparé, basé sur le standard hostapd . Au total, il y a 12 appareils dans le réseau Wi-Fi IoT .
Un courtier MQTT fonctionne également sur RPi et Home Assistant se trouve sur le «serveur domestique» à proximité.
Idée
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") . - .
Empiriquement, nous pouvons supposer que la distance du signal IW> 1 (horizontal vert) correspond à l'activité des personnes présentes dans la pièce. Mais cette limite est susceptible d'être différente pour les autres configurations de pièce et le nombre d'appareils.
résultats
Le système fonctionne sous cette forme depuis plus de deux ans et montre de manière assez fiable l'activité à l'intérieur de l'appartement, avec une influence minimale des voisins.
Mon implémentation de l'algorithme est disponible sur github (https://github.com/k-korn/misc-scripts/tree/main/iwmon), mais elle est assez spécifique (Perl + Zabbix + visualisation dans Grafana) - et donc une solution prête à l'emploi "plug et jouer "ne peut toujours pas servir.