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日志可无线查看和实时记录跟踪的方法

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

    关注

    2574

    文章

    54438

    浏览量

    786358
  • 数据传输
    +关注

    关注

    9

    文章

    2077

    浏览量

    67181
  • ESP32
    +关注

    关注

    24

    文章

    1087

    浏览量

    20885
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Wi-Fi模块选型指南 | 低功耗蓝牙/Wi-Fi 6模块推荐 | 物联网设备集成攻略

    物联网的快速发展,Wi-Fi技术的成熟的情况下,越来越多的场景需要用到Wi-Fi来无线传输数据,尤其是移动设备中,怎么再设备中选择合适的Wi-Fi
    的头像 发表于 12-09 11:27 444次阅读
    <b class='flag-5'>Wi-Fi</b>模块选型指南 | 低功耗蓝牙/<b class='flag-5'>Wi-Fi</b> 6模块推荐 | 物联网设备集成攻略

    单片机之间可以进行无线数据传输

    ) 1. 使用其他无线通信技术:如果单片机之间的距离较近,可以考虑使用如Wi-Fi、蓝牙、ZigBee等短距离无线通信技术进行数据传输。这些技术通常支持设备间的直接通信,但传输距离和速率可能有
    发表于 11-28 08:15

    ESP32-C5来袭,双频Wi-Fi 6 + BLE 5.0 + Zigbee三线合

    低功耗物联网数据记录仪 Wi-Fi+蓝牙网卡 封装图示 芯片封装管脚排列 ESP32-C5系列芯片专为物联网(IoT)和智能家居应用设计。它搭载RISC-V架构的32 位单核处理
    发表于 11-08 23:04

    ESP32-C5-双频Wi-Fi 6 + BLE 5.0 + Zigbee三线合

    通用低功耗物联网数据记录仪 Wi-Fi+蓝牙网卡 封装图示 ESP32-C5系列芯片专为物联网(IoT)和智能家居应用设计。它搭载RISC-V架构的32 位单核处理,主频
    发表于 10-11 15:33

    振弦式应变计两种数据传输方式介绍

    采集的效率与可靠性。下面给大家介绍振弦式应变计两种数据传输方式。、有线传输:稳定可靠的传统方案有线传输是振弦式应变计最传统的数据传输方式,
    的头像 发表于 07-15 13:38 342次阅读
    振弦式应变计<b class='flag-5'>两种数据传输</b>方式介绍

    Wi-Fi 8:开启极高可靠性 (UHR) 连接的新纪元——2

    。尽管蓝牙与Wi-Fi 的调制方式存在差异,但在某些使用场景与连线环境下,者之间仍然可能互相干扰或降低连线质量。传统的解决方式是让蓝牙设备在Wi-Fi不进行数据传输时发射信号,以避免
    发表于 06-13 11:15

    ‌迅通PTR7002 Wi-Fi 6模块技术解析

    实测,在20节点并发传输测试中,模块的MU-MIMO调度延迟稳定在3ms以内(5GHz频段),较Wi-Fi 5方案降低40%;在电池供电的传感器场景下(10分钟/次数据传输),配合TW
    发表于 06-10 10:38

    ESP32-C6 智能网关设备WiFi6高性能通信应用

    随着物联网设备的不断增多,对无线连接技术的要求越来越高,无线连接技术不仅需要提供更高的数据传输速率,还需要更强的网络连接稳定性和更低的功耗。 在这场智能化的浪潮中,Wi-Fi 6技术,不仅提供了
    发表于 05-30 13:54

    基于SiWG917Y的无电池Wi-Fi 6传感器

    本开发视频将帮助您快速了解Silicon Labs(科科技)与合作伙伴Sigma Connectivity协力打造的款无电池Wi-Fi 6传感器设备。该参考设计中的开发板基于高能效
    的头像 发表于 04-19 15:46 1222次阅读

    nRF Cloud Wi-Fi 定位服务

    中实现高性能和超低功耗。对于 Wi-Fi 定位请求,nRF Cloud 借助 Wi-Fi 数据库计算设备位置,该数据库包含不同
    发表于 04-17 15:07

    Wi-Fi 定位服务

    Wi-Fi 网络数据库进行比较。 Wi-Fi 定位系统包含以下关键组件: 用户设备中的 Wi-Fi 无线电设备,用于检测附近的网络。 将
    发表于 04-17 15:01

    2.4GHz+5GHz双频低功耗 Wi-Fi 6协同IC -nRF7002

    数据传输速率、更大的容量和更高的能效,使用户在虚拟世界中获得更稳定、低延迟的体验。nRF7002 Wi-Fi 6协同IC是款低功耗IC,专为提供无线连接和基于Wi-Fi的定位功能而
    发表于 02-26 14:54

    乐鑫ESP32调试Wi-Fi常用调试API

    在使用ESP32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不上,Wi-Fi断连等问题。下面介绍些API,方便新手调试Wi-
    的头像 发表于 02-07 18:10 4061次阅读
    乐鑫<b class='flag-5'>ESP32</b>调试<b class='flag-5'>Wi-Fi</b>常用调试API

    串口与Wi-Fi的连接方式

    在现代通信技术中,串口和Wi-Fi种常见的数据传输方式。串口通信以其简单、稳定的特性在工业控制、嵌入式系统等领域得到广泛应用。而Wi-Fi作为无线局域网技术,因其灵活性和便捷性在家
    的头像 发表于 12-27 10:10 1860次阅读

    蓝牙信号和Wi-Fi信号怎么区分

    蓝牙信号和Wi-Fi信号在技术特点、通信距离、频段、数据传输速度、功耗、安全性以及连接性等方面存在显著差异。选择使用哪种技术取决于具体的应用需求、设备兼容性、功耗要求以及传输速率等因素。
    的头像 发表于 12-19 16:34 2228次阅读