WiFi空间智能感知引擎
Cross-platform WiFi Spatial Intelligence Engine
WiFiSense 是一款轻量级的跨平台WiFi空间智能感知工具,灵感来源于 GitHub Trending 项目 RuView。
- 📡 实时信号监测 - 跨平台WiFi信号强度实时监控
- 📍 空间定位 - 基于信号强度的室内三角定位
- 👤 存在感测 - 通过信号变化检测人员存在
- 📊 覆盖分析 - WiFi信号覆盖热力图可视化
- ⚡ 零依赖 - 核心模块零外部依赖,即装即用
- 跨平台原生支持 - Windows/macOS/Linux 全平台兼容
- 零依赖核心 - 核心功能无需安装任何第三方库
- TUI/GUI双界面 - 支持终端界面和图形界面
- 存在感知识别 - 独特的WiFi信号变化检测算法
- 轻量级设计 - 单文件即可运行,占用资源极低
# 方式一:pip安装
pip install wifisense
# 方式二:从源码安装
git clone https://github.com/gitstq/WiFiSense.git
cd WiFiSense
pip install -e .
# 方式三:直接运行(无需安装)
python3 main.py --help- Python 3.8+
- 操作系统:Windows / macOS / Linux
- WiFi适配器(支持混杂模式)
# 扫描WiFi网络
wifisense scan
# 获取当前连接
wifisense connected
# 实时监控模式(TUI界面)
wifisense monitor
# 存在感知识别
wifisense presence --duration 120
# 覆盖分析
wifisense analyze --width 20 --height 15
# JSON格式输出
wifisense scan --json
# 导出数据
wifisense export -o data.json安装增强依赖以获得更好的体验:
pip install -r requirements.txt这将安装:
rich- 彩色TUI界面numpy- 数值计算scipy- 科学计算matplotlib- 数据可视化
# 基本扫描
wifisense scan
# JSON格式(便于程序处理)
wifisense scan --json输出示例:
SSID MAC 信号 距离 质量 频道
--------------------------------------------------------------------------------
MyHome_WiFi AA:BB:CC:DD:EE:FF -45dBm 0.3m 🟢excellent 6
Office_Network 11:22:33:44:55:66 -58dBm 0.8m 🔵good 11
Guest_WiFi 77:88:99:AA:BB:CC -72dBm 2.5m 🟡fair 1
# 启动TUI监控界面
wifisense monitor
# 调整更新间隔
wifisense monitor -i 1 # 每秒更新界面预览:
┌─────────────────────────────────────────────────────────┐
│ WiFiSense - WiFi空间智能感知引擎 | 2024-01-15 14:30:25 │
├─────────────────────────────────────────────────────────┤
│ SSID MAC 信号 距离 │
│ MyHome_WiFi AA:BB:CC:... -45dBm 0.3m │
│ Office_Network 11:22:33:... -58dBm 0.8m │
├─────────────────────────────────────────────────────────┤
│ 🟢 存在感测: 检测到存在 (置信度: 78%) │
│ ⚡ 按 Ctrl+C 退出 │
└─────────────────────────────────────────────────────────┘
# 校准后进行120秒监控
wifisense presence --samples 5 --duration 120工作原理:
- 首先在校准模式下采样(无人环境)
- 然后检测信号强度变化
- 当多个AP信号发生显著变化时,判断为有人员存在
# 分析10m x 10m区域的WiFi覆盖
wifisense analyze --width 10 --height 10输出:
覆盖评分: 85.2%
良好覆盖率: 85.2%
检测到AP数: 8
分析区域: 10.0m x 10.0m
📈 信号质量分布:
excellent : ████████ (5)
good : ███ (2)
fair : █ (1)
# 编辑代码配置AP位置
known_positions = {
'AA:BB:CC:DD:EE:FF': (0, 0), # AP1位置
'11:22:33:44:55:66': (5, 0), # AP2位置
'77:88:99:AA:BB:CC': (2.5, 4), # AP3位置
}# 运行位置估算
wifisense position
# 输出: 📍 估算位置: (2.32, 1.85)WiFiSense
├── wifi_scanner.py # 信号采集层
├── signal_processor.py # 信号处理层
├── config.py # 配置管理层
├── cli.py # 命令行接口
├── tui.py # TUI界面
└── main.py # 主入口
| 组件 | 选型 | 原因 |
|---|---|---|
| 核心语言 | Python 3.8+ | 跨平台、生态丰富 |
| 信号采集 | 系统API | 零依赖、直接调用系统命令 |
| UI框架 | Rich/TUI | 现代化终端体验 |
| 可视化 | Matplotlib | 灵活的数据绑定 |
-
距离估算:使用对数路径损耗模型
RSSI = TX_POWER - 10 * n * log10(d) -
三角定位:加权质心算法
- 多AP信号强度加权
- 实时位置估算
-
存在感测:信号变化检测
- 基线建立
- 滑动窗口分析
- 异常检测
- 支持更多平台特性
- 增强存在感测精度
- 添加信号历史记录
- GUI图形界面
- Web控制台
- 多设备协同
- 机器学习增强定位
- 实时热力图生成
- 开放API
chmod +x build.sh
./build.shchmod +x build.sh
./build.shbuild.batFROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install -e .
CMD ["wifisense", "monitor"]我们欢迎各种形式的贡献!
- 🐛 报告问题
- 💡 提出建议
- 🔧 提交代码
请查看 CONTRIBUTING.md 了解更多。
本项目基于 MIT 协议开源。
Made with ❤️ by gitstq