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:
SD卡是一种用于存储数字数据的存储卡,它是一种非易失性存储卡,可以用于移动设备、数码相机、音乐播放器、智能手机、平板电脑等各种设备。
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实时操作系统。
本节我们在迭代二的基础上使用四位数码管和OLED显示屏显示相关交互信息。
本节我们在迭代一的基础上增加采集土壤湿度数据,并根据湿度数据来决定是否自动进行浇水动作。
本节我们实现一个基本能工作的手动浇水装置,即通过按下按键来闭合继发器让小水泵进行浇水。