1 原来ESP32竟可《一“芯”两用》既做人体检测传感器也做Wi-Fi数据传输-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

原来ESP32竟可《一“芯”两用》既做人体检测传感器也做Wi-Fi数据传输

机智云 2024-12-18 18:12 次阅读

今天将介绍ESP32如何"一芯两用",既做人体检测传感器也做Wi-Fi数据传输模块;

对于使用ESP32做Wi-Fi数据通讯,相信玩ESP32的基本上都知道怎么玩了,但是如何使用ESP32来做人体检测传感器,对我来说还是挺新鲜的事儿,对你来说是否有也一样呢?接下来我会重点来展开说说如何通过ESP32来实现,这里我用的的是ESP32C3模组;

0、前言

之前看过乐鑫演示了他们家的ESP-CSI智能人体感知检测方案,觉得很有意思,居然可以使用Wi-Fi来检测人体移动等一系列检测,其中能够检测到的状态有:有人/无人、运动/静止;

8511a6d2-bd28-11ef-8084-92fbcf53809c.jpg

ESP-CSI检测

于是就想着自己动手实践一下这个方案的实际效果;

最后通过修改参考代码,实现了一个基于ESP-CSI方案的ESP32C3人体检测传感器,同时接入到了HomeAssistant平台,可以通过HomeAssistant来观察整个检测的过程;

一句话:本文基于ESP32C3实现了一个人体检测方案,让ESP32C3既做人体检测传感器也做Wi-Fi数据传输模块,并且接入到了HomeAssistant平台。

1、一些关于ESP-CSI基础知识介绍

CSI:Channel Sstate Information,信道状态信息,是描述无线信道特性的重要参数,包括信号幅度相位信号延迟等指标。在Wi-Fi通信中,CSI用于测量无线网络的信道状态。

通过分析和研究CSI的变化,可以推断引起信道状态变化的物理环境变化,实现非接触式智能传感。

CSI对环境变化非常敏感。它不仅能感知人或动物的行走、奔跑等大动作引起的变化,还能捕捉静态环境中人或动物的细微动作,如呼吸、咀嚼等。这些能力使得 CSI 在智能环境监测、人体活动监测、无线定位等应用中具有广泛的应用前景。

2、一些Wi-Fi CSI的有趣例子

网上还有很多关于CSI的有趣例子,这里罗列几个有趣的例子,就当为了提升你对CSI的兴趣吧。

通过CSI检测人的运动姿态

852fc8ec-bd28-11ef-8084-92fbcf53809c.png
  1. CSI检测人的运动姿态

人在检测

  1. 人在检测

通过以上的例子,让我们了解到CSI的应用方向还是挺多的,而乐鑫通过对CSI数据进行一系列的处理,最终封装为一个esp-radar库,让我们无需再进行复杂的技术分析,只需要会调用esp-radar相关的APi即可,即可完成检测到有人/无人、运动/静止这些情况。

所以利用ESP-CSI我们本质上是理解相关API的作用和使用流程;

3、ESP-CSI相关API介绍

我并没有看到乐鑫有对这个库的API做比较详细的说明,其作用我都是通过看源码注释理解进行说明,如果有不正确的欢迎留言指出,一起交流;

通过打开esp_radar.h文件,可以看到总共提供了11个API,通过API名称其功能大概也能猜出个7,8成,具体的API如下

#设置Wi-Fi radar配置,相关配置可以通过wifi_radar_config_t结构体查看
esp_err_tesp_radar_set_config(constwifi_radar_config_t*config);
#获取Wi-Fi radar配置
esp_err_tesp_radar_get_config(wifi_radar_config_t*config);
#启动Wi-Fi radar
esp_err_tesp_radar_start(void);
#停止Wi-Fi radar
esp_err_tesp_radar_stop(void);
#初始化Wi-Fi radar
esp_err_tesp_radar_init(void);
#释放Wi-Fi radar 初始化
esp_err_tesp_radar_deinit(void);
#训练Wi-Fi radar 相关配置,主要用于自主校准,校准之后可以获取相关的参数,如有无人的阈值
esp_err_tesp_radar_train_start(void);
#移植训练Wi-Fi radar后相关的配置,一般用于需要重新校准的情况,不然上一次校准的数据可能会影响本次的结果
esp_err_tesp_radar_train_remove(void);
#停止训练,可以通过入参获取训练后的两个结果 wander和jitter这两个阈值
esp_err_tesp_radar_train_stop(float*wander_threshold,float*jitter_threshold);
#获取模组的增益
esp_err_tesp_radar_get_rx_gain(uint8_t* agc_gain,int8_t*fft_gain);
#设置模组的增益
esp_err_tesp_radar_set_rx_gain(uint8_tagc_gain,int8_tfft_gain);

4、ESP-Radar编程实现=>人体检测连接到HomeAssistant

通过对esp-radar库api和相关工程流程的理解,接下来就是编程实现文章开头说的,功能: 基于ESP-CSI方案例程connect_rainmaker使用ESP32C3实现人体检测传感器,同时接入到了HomeAssistant平台;

4.1、工程配置;

  1. 检查SDK是否启动CSI:Menuconfig>Components config>Wi-Fi>Wi-Fi CSI (Channel State Information)
  2. 由于我们要添加把检测到的状体有人/无人、运动/静止,上报到HA平台,所以我定义了两个实体,一个是人在实体,一个是移动实体,然后通过MQTT接入到HA,所以我们需要在工程中添加mqtt模块,我们在idf_component.yml添加mqtt,如下图
854c7b86-bd28-11ef-8084-92fbcf53809c.png

4.2 整体程序主要CSI逻辑

85508c9e-bd28-11ef-8084-92fbcf53809c.png

image 4

4.3 通过MQTT协议链接到HomeAssistant

我们通过MQTT协议来把监听到的数据上报到HA,具体如何通过MQTT来声明设备的属性服务以及如何上报可以参考我之前写的文章

  • HomeAssistant|【入门篇】基于MQTT的零代码、少配置,设备高效接入方法
  • HomeAssistant|【高级篇】基于MQTT的零代码、少配置,设备高效接入方法
  • HomeAssistant|【实战篇】基于MQTT的零代码、少配置,设备高效接入方法

5、工程效果展示

  1. 通过ESP-RainMkaker APP 把设备配置网络
85687318-bd28-11ef-8084-92fbcf53809c.jpg
  1. 通过在APP上校准设备,校准设备过程需要确保没有人在房间,整个校准过程60秒
8573f9ea-bd28-11ef-8084-92fbcf53809c.jpg
  1. 通过通过HomeAssistant显示捕捉到:有人/无人、运动/静止
85895ad8-bd28-11ef-8084-92fbcf53809c.png
  1. 同时我们通过HA的历史记录也可以更好的观察过去一段时间的检测情况
8594a906-bd28-11ef-8084-92fbcf53809c.png
  1. 具体的编程实现可以参考我添加的代码ha_mqtt
85b397c6-bd28-11ef-8084-92fbcf53809c.png

我们使用了使用了乐鑫的例程实践,直观感受到了esp32既可以做传统的数据传输模块也可以用来同时做人在和移动检测传感器,最后通过加入自己的代码,实现把检测到的状态也上报到了HA平台;工具安利最后给大家推荐我做的一个无线串口数据采集工具,感兴趣的童鞋可以点击看看一种让你的MCU日志可无线查看和实时记录跟踪的方法

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2550

    文章

    51034

    浏览量

    753021
  • 数据传输
    +关注

    关注

    9

    文章

    1880

    浏览量

    64552
  • ESP32
    +关注

    关注

    18

    文章

    970

    浏览量

    17198
收藏 人收藏

    评论

    相关推荐

    华为海思正式进入Wi-Fi FEM赛道?

    转载自——钟林谈 昨天在网上看到份九联UNR050 BE3600无线路由拆机报告,Wi-Fi主芯片是海思新款Wi-Fi7芯片Hi115
    发表于 12-11 17:42

    Simplelink™ Wi-Fi®传感器标签

    德赢Vwin官网 网站提供《Simplelink™ Wi-Fi®传感器标签.pdf》资料免费下载
    发表于 11-25 14:17 0次下载
    Simplelink™ <b class='flag-5'>Wi-Fi</b>®<b class='flag-5'>传感器</b>标签

    Wi-Fi与蓝牙的波特率对比分析

    Wi-Fi与蓝牙是种不同的无线通信技术,它们在波特率(或称数据传输速率)方面存在显著的差异。以下是对Wi-Fi与蓝牙波特率的对比分析:
    的头像 发表于 11-22 09:54 247次阅读

    基于ESP32-C3FN4为核心自主研发的Wi-Fi+BT模块-RF-WM-ESP32B1

    WI-FI模组 - RF-WM-ESP32B1是基于ESP32-C3FN4为核心自主研发的Wi-Fi+BT模块,支持IEEE 802.11b/g/n (2.4 GHz
    的头像 发表于 11-07 09:45 213次阅读
    基于<b class='flag-5'>ESP32</b>-C3FN4为核心自主研发的<b class='flag-5'>Wi-Fi</b>+BT模块-RF-WM-<b class='flag-5'>ESP32</b>B1

    代无线局域网标准Wi-Fi 7(802.11be)

    Wi-Fi7(称为802.11be)是下代无线局域网标准,旨在提供更高的数据传输速度、更低的延迟以及更强大的网络容量。以下是Wi-Fi7
    的头像 发表于 11-05 08:01 779次阅读
    下<b class='flag-5'>一</b>代无线局域网标准<b class='flag-5'>Wi-Fi</b> 7(802.11be)

    【AI技术支持】ESP32无线Wi-Fi常用调试API

    Wi-Fi常用调试API在使用esp32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不上,Wi-Fi断连等问题。下面介绍
    的头像 发表于 10-26 08:00 473次阅读
    【AI技术支持】<b class='flag-5'>ESP32</b>无线<b class='flag-5'>Wi-Fi</b>常用调试API

    esp32esp8266代码共用吗

    8266作为款具有Wi-Fi功能的微控制,因其低成本、易用性和灵活性而受到广泛关注。然而,尽管它们在某些方面具有相似性,但在硬件性能、开发环境和编程语言等方面仍存在定差异。 二、
    的头像 发表于 08-19 18:23 1106次阅读

    esp8266和esp32区别是什么

    以下是关于ESP8266和ESP32的主要区别: 处理和架构 : ESP8266 :使用个Tensilica L106 80MHz的处理
    的头像 发表于 08-19 18:16 5215次阅读

    esp32什么软件编程

    ESP32款由乐鑫(Espressif)推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制,广泛应用于物联网、智能家居、智能穿戴等领域。要对ES
    的头像 发表于 08-19 17:24 3398次阅读

    如何记住ESP8266中的Wi-Fi凭据?

    AT CWSTARTSMART=1 并在执行电源重启后,则不会记住 Wi-Fi 凭据。这是实际用户手册中正确的 AT 命令。尝试使用 AT CWJAP_DEF 存储数据,但再次没有成功。 我应该怎么
    发表于 07-15 07:07

    【新品】ESP32双核蓝牙Wi-Fi模块,稳定性、兼容性网打尽

    作为款高度集成的MCU芯片,ESP32-C6在无线通信技术的前沿,为开发者提供了广阔的应用空间。ESP32-C6在ESP32系列的基础上增加了对W
    的头像 发表于 07-12 08:21 1915次阅读
    【新品】<b class='flag-5'>ESP32</b>双核蓝牙<b class='flag-5'>Wi-Fi</b>模块,稳定性、兼容性<b class='flag-5'>一</b>网打尽

    Wi-Fi Halow占领海外安防监控新高地,弥补Wi-Fi与LPWAN不足

    900MHz的低频范围,较传统Wi-Fi实现更远的信号传播、更强的信号穿透/穿墙能力,适合对传输距离需求更大、允许低速传输传感器应用如智
    的头像 发表于 07-12 08:05 171次阅读
    <b class='flag-5'>Wi-Fi</b> Halow占领海外安防监控新高地,弥补<b class='flag-5'>Wi-Fi</b>与LPWAN不足

    为什么ESP8266没有检测Wi-Fi的SSID?

    你好,我的ESP8266没有检测到我家Wi-Fi的SSID。我尝试打开我的 iPhone 热点,我可以正常查看和连接(我成功连接到 MQTT)。相反,没有办法看到我家的
    发表于 07-09 06:44

    请问ESP32-AT支持Wi-Fi漫游指令吗?

    请问 ESP32-AT 支持 Wi-Fi 漫游指令吗?我这边在 ESP-IDF 下面看到有 roaming 的示例,但是在 esp-at 中没有找到相关指令。
    发表于 06-27 07:13

    Wi-Fi HaLow和传统Wi-Fi的区别

    Wi-Fi HaLow和传统Wi-Fi的区别  Wi-Fi种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,
    的头像 发表于 02-02 15:28 1250次阅读