Channel State Information(信道状态信息)是无线通信中描述信道状态的详细数据。它通过分析 Wi-Fi 信号在不同子载波上传输时的幅度和相位变化,提供了信道的状态信息。
Wi-Fi 信号从路由器传输到 ESP32。人的动作会干扰 Wi-Fi 信号的传播路径,导致信道状态发生变化。CSI 可以捕捉这些变化,并通过算法分析来推断环境中的活动情况。

🌟 视频亮点一览:
1. 当动作检测或者存在检测的计算结果超出了阈值,ESP32 就会判定室内有人在活动。控制灯光调亮并打开电扇。

2. 当人体停止动作后,动作检测的结果会低于阈值。但是 CSI 依然可以通过存在检测判断室内是否有人。ESP32 可以根据结果保持灯光继续点亮,并将风扇切换成更舒适的自然风。

3. 当人离开屋子后,检测算法的结果会低于阈值,从而确认室内无人,并自动关闭家中电器,以达到节省能源的效果。

下面是 CSI 数据的实时检测界面:

左上角折线:图展示所收到的 CSI 原始数据;
右上角折线:图展示动作检测算法和人体存在检测算法的结果:
a. 绿色折线代表动作检测算法的实时计算结果
b. 紫色折线代表动作检测算法的实时阈值
c. 蓝色折线代表存在检测算法的实时计算结果
d. 黄色折线代表存在检测算法的阈值
右下角柱状图:展示动作检测的最终结果。
当一段时间窗口内出现多次计算结果超过阈值的情形,就可以判断环境中发生了动作。
其他应用
Wi-Fi CSI 还可以用于高精度的室内定位。通过分析多个 Wi-Fi 接入点(AP)或多个终端设备(STA)之间的 CSI 数据,定位算法(如指纹定位、到达角度(AoA)分析等可以计算出人所在的位置。
随着人体移动,CSI 数据会持续变化,定位系统可以通过这些变化实时更新位置,实现动态追踪。
我们还可以让室内的智能家居与 CSI 产生联动。例如,当走到书桌前,台灯会自动打开;风扇根据人的位置调整风向。
开发资源
视频中支持 Rainmaker 控制的智能无感风扇采用了乐鑫科技的 ESP32-S3-WROOM-1 模组作为系统主控,利用其 LEDC 与 MCPWM 模块实现三相逆变电路驱动。此外,系统支持接入 RainMaker 实现无刷电机的启停与速度控制。该方案已开源至立创开源硬件平台:
https://oshwhub.com/esp-college/esp-bldc
体验 ESP32 CSI 数据获取及检测算法:
https://github.com/espressif/esp-csi:
二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 。
Arduino-ESP32与ESP-IDF的版本对应表。
Arduino-ESP32提供了多种文件系统解决方案,本文将深入解析SPIFFS、LittleFS和SD卡三种主流存储方案,帮助你做出最佳选择。
ESP32-P4-WIFI6-DEV-KIT是一款微雪(Waveshare)设计的基于 ESP32-P4 的多媒体开发板,并集成 ESP32-C6,支持 Wi-Fi 6 和 BLE 5 无线连接。它提供丰富的人机交互接口,包括 MIPI-CSI (集成图像信号处理器 ISP)、MIPI-DSI、SPI、I2S、I2C、LED PWM、MCPWM、RMT、ADC、UART 和 TWAI 等。
ESP-Hosted 解决方案提供了将 ESP 板用作 Wi-Fi 和 Bluetooth/BLE 连接的通信处理器的方法。
ESP-Hosted 提供了一种将ESP芯片和模组用作通信协处理器的解决方案,该解决方案为主机微处理器或微控制器提供无线连接,使主机能够与其他设备通信。简单来说为网卡方案。
Arduino+ESP32上使用TFT_eSPI库快速点亮这个屏幕,驱动芯片ST7789
本文给出了一个ESP32与SPI 接口TFT显示屏接线的详细说明,供大家参考。
本文讲解如何在Micropython环境下使用ESP32的ESPNow功能进行数据传输。
ESP-Dongle 是一款基于 ESP32-S3 芯片开发的多功能 USB Device 解决方案。它不仅外形小巧,功能齐全,更集成了无线 U 盘、SD 卡读取以及 USB 无线网卡等多项功能。
ESP32-FreeRTOS项目提供了丰富的示例,帮助开发者快速掌握ESP32的硬件功能和FreeRTOS实时操作系统。