基于ESP32的WiFi-RSSI定位

整个项目地址在这:ESP-WiFi-Localization

一、理论分析

实验原理其实很简单,WiFi信号的RSSI强度会随着距离的增加而减弱,依据这个原理,在不同的距离的设备对应的RSSI强度也是不一样的。当在一个平面定位一个点时,可以通过多个设备去定位,使其维度增加,可以定位其位置。

二、实验过程

我们实验室的场景如下。。比较简陋- -
基于ESP32的WiFi-RSSI定位
根据论文,将整个实验阶段分为离线和在线两个过程。

离线阶段统计室内几个固定点的不同基站测量到的RSSI强度,得到一个表格。
在线阶段测量到RSSI值,与离线阶段的数据进行比对,用最邻近方法NN(Nearest-Neighbor)去判断点位。
基于ESP32的WiFi-RSSI定位
之所以选用ESP32是因为之前用到过,而且ESP32带有RSSI测量的变量。

基于ESP32的WiFi-RSSI定位
实验的框架如图三个基本节点去测量上游节点的RSSI值,并发送给他,上游的节点会将离线阶段的表格进行计算对比,然后得到自己的位置:

基于ESP32的WiFi-RSSI定位

三、实验结果

实验结果不算理想:
1.NN算法中心节点成功率较低,而边缘节点较高。可能的原因是分辨率太高了,RSSI没法识别这么近的距离。
基于ESP32的WiFi-RSSI定位
2.KNN算法因为是多个值平均,所以没法去确定某个点,只能估算其偏差。
基于ESP32的WiFi-RSSI定位
3. WKNN是对其加权,得到的结果比KNN更好一些。
基于ESP32的WiFi-RSSI定位
详细的结果在项目的Report中。