TL; DR
Monitorar a mudança no nível do sinal de Wi-Fi de dispositivos IoT permanentemente localizados ao redor da casa permite que você faça um sensor de movimento volumétrico totalmente software (falta hardware dedicado) no apartamento, que mostra com bastante precisão a presença de pessoas se movendo ativamente (na verdade, não dormindo).
fundo
Existe um "apartamento de especialista em TI" comum com um sistema de "casa inteligente" baseado no Home Assistant:
Interruptores de luz caseiros baseados em ESP8266 + MSP430
Vários sensores de temperatura / umidade, CO2 e qualidade do ar.
Controlador de ventilador de banheiro / toalete
um par de Sonoff Mini para o resto.
Comunicação entre dispositivos - via Wi-Fi + MQTT. Para minimizar o impacto de ESPs de baixa velocidade em uma rede Wi-Fi "funcional", uma rede Wi-Fi separada para IoT é lançada em um Raspberry Pi 3 separado, com base no hostapd padrão . No total, existem 12 dispositivos na rede Wi-Fi IoT .
Um broker MQTT foi lançado no RPi e o Home Assistant foi lançado no "servidor inicial".
Idéia
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") . - .
Empiricamente, podemos supor que a distância do sinal IW> 1 (verde horizontal) corresponde à atividade das pessoas na sala. Mas é provável que esse limite seja diferente para outras configurações de sala e contagens de dispositivos.
resultados
O sistema está operando desta forma há mais de dois anos e mostra com bastante confiabilidade a atividade dentro do apartamento, com mínima influência dos vizinhos.
Minha implementação do algoritmo está disponível no github (https://github.com/k-korn/misc-scripts/tree/main/iwmon), mas é bastante específico (Perl + Zabbix + visualização em Grafana) - e, portanto, uma solução pronta "plug e jogar "ainda não pode servir.