0

我正在 esp32 上创建一个项目,目前我需要为 esp 收集有关设备与 wifi 与 esp32 模块的距离的信息。我使用来自 github 的项目来收集信息,

https://github.com/StevenMHernandez/ESP32-CSI-Tool

从这个项目中,我上传了一个用于在频道上被动收听的程序。

收集的信息显示如下信息:

type,role,mac,rssi,rate,sig_mode,mcs,bandwidth,smoothing,not_sounding,aggregation,stbc,fec_coding,sgi,noise_floor,ampdu_cnt,channel,secondary_channel,local_timestamp,ant,sig_len,rx_state,real_time_set,real_timestamp,len,CSI_DATA

这是 esp32 收集的数据,它在我的 wifi 频道上收听并通过我的手机发送。

CSI_DATA,PASSIVE,54:72:4F:09:7B:7B,-57,11,1,7,0,1,1,1,0,0,1,-94,1,11,0,2970769,0,82,0,0,3.234535,256,[82 32 5 0 -9 -21 -10 -21 -9 -20 -10 -20 -10 -20 -10 -20 -11 -19 -11 -18 -12 -18 -12 -18 -12 -17 -13 -17 -13 -17 -13 -17 -14 -17 -14 -16 -14 -17 -15 -18 -14 -18 -14 -18 -14 -19 -14 -20 -13 -21 -12 -22 -10 -24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 -31 -2 -31 0 -30 1 -29 1 -28 2 -27 2 -26 2 -25 2 -25 1 -24 1 -24 1 -24 0 -23 -1 -23 -2 -23 -2 -22 -3 -22 -4 -22 -5 -22 -6 -22 -6 -22 -7 -22 -7 -22 -8 -22 -8 -21 -8 -22 ]
CSI_DATA,PASSIVE,54:72:4F:09:7B:7B,-61,9,0,0,0,0,0,0,0,0,0,-94,0,11,0,3340468,0,28,0,0,3.622702,128,[28 -64 1 0 -2 17 -1 17 0 16 0 17 1 16 1 16 2 15 2 16 3 15 3 15 4 15 4 15 5 15 4 15 5 15 6 15 6 15 6 15 6 16 6 16 7 16 6 17 5 17 4 19 2 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -17 32 -18 30 -20 27 -21 25 -20 23 -19 22 -18 21 -17 20 -17 19 -15 18 -15 17 -14 17 -13 17 -12 17 -11 17 -10 17 -10 17 -8 17 -7 17 -6 18 -6 18 -5 18 -4 18 -4 17 -4 18 -4 18 ]
CSI_DATA,PASSIVE,54:72:4F:09:7B:7B,-68,9,0,0,0,0,0,0,0,0,0,-92,0,11,0,66470508,0,28,0,0,66.710994,128,[28 -64 1 0 -12 -7 -12 -6 -12 -5 -12 -5 -12 -4 -12 -3 -12 -3 -12 -2 -12 -1 -11 0 -12 0 -11 0 -11 1 -11 1 -11 3 -11 3 -11 3 -10 4 -10 5 -10 4 -11 5 -11 4 -12 4 -11 4 -11 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -19 -38 -15 -38 -12 -38 -10 -36 -8 -34 -7 -32 -7 -31 -6 -29 -6 -27 -6 -26 -6 -24 -6 -23 -6 -22 -7 -21 -8 -19 -8 -18 -9 -17 -9 -16 -10 -15 -11 -14 -11 -14 -11 -12 -11 -11 -12 -11 -12 -10 -12 -9 ]
CSI_DATA,PASSIVE,54:72:4F:09:7B:7B,-58,9,0,0,0,0,0,0,0,0,0,-92,0,11,0,93555394,0,28,0,0,93.845638,128,[28 -64 1 0 -13 -19 -13 -19 -13 -18 -14 -18 -14 -17 -14 -17 -14 -17 -14 -16 -14 -15 -14 -15 -15 -14 -15 -14 -15 -14 -15 -14 -15 -14 -16 -13 -16 -14 -16 -14 -15 -14 -15 -15 -16 -15 -15 -16 -14 -17 -13 -18 -12 -19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -11 -37 -8 -37 -6 -35 -4 -35 -4 -33 -3 -32 -2 -31 -2 -30 -2 -29 -3 -28 -3 -27 -3 -26 -4 -26 -5 -25 -5 -25 -6 -24 -7 -24 -8 -22 -9 -22 -10 -22 -10 -22 -10 -22 -10 -21 -11 -21 -12 -21 -12 -21 ]
CSI_DATA,PASSIVE,54:72:4F:09:7B:7B,-58,9,0,0,0,0,0,0,0,0,0,-92,0,11,0,93571320,0,28,0,0,93.868210,128,[28 -64 1 0 15 14 16 14 16 13 16 12 16 12 16 12 16 11 16 10 16 9 16 9 17 9 17 8 17 8 17 7 17 8 17 8 17 7 17 7 17 8 18 9 17 9 17 10 17 10 16 12 15 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 31 15 31 13 31 11 31 9 29 9 28 7 27 8 26 7 25 8 24 8 24 8 23 8 22 9 21 11 20 10 19 11 19 11 18 13 18 13 18 14 17 14 17 15 16 15 16 15 16 15 15 ]

我可以使用 RSSI 从 esp32 收集距离信息,距离越小值越大。但是RSSI不是很准确,所以问题是,我可以从CSI_DATA读取到设备的距离吗?

4

1 回答 1

1

你可以看看 Espressif 的这个项目。

CSI 工具https ://github.com/espressif/esp-csi/blob/master/examples/console_test/tools/README.md

CSI 示例https ://github.com/espressif/esp-csi/tree/master/examples/console_test

对于以米/英尺为单位的距离,由于天线的不同方面,您需要进行校准。

对于 ESP32-S2 和 ESP32-C3,您有 ToF(飞行时间)来计算设备和路由器的往返行程。如果你有这些板,你可以试试。

https://github.com/espressif/esp-idf/tree/master/examples/wifi/ftm(仅适用于S2/C3)

于 2021-05-11T08:14:09.467 回答