RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

原來ESP32竟可《一“芯”兩用》既做人體檢測傳感器也做Wi-Fi數(shù)據(jù)傳輸

機智云 ? 2024-12-18 18:12 ? 次閱讀

今天將介紹ESP32如何"一芯兩用",既做人體檢測傳感器也做Wi-Fi數(shù)據(jù)傳輸模塊;

對于使用ESP32做Wi-Fi數(shù)據(jù)通訊,相信玩ESP32的基本上都知道怎么玩了,但是如何使用ESP32來做人體檢測傳感器,對我來說還是挺新鮮的事兒,對你來說是否有也一樣呢?接下來我會重點來展開說說如何通過ESP32來實現(xiàn),這里我用的的是ESP32C3模組;

0、前言

之前看過樂鑫演示了他們家的ESP-CSI智能人體感知檢測方案,覺得很有意思,居然可以使用Wi-Fi來檢測人體移動等一系列檢測,其中能夠檢測到的狀態(tài)有:有人/無人、運動/靜止;

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

ESP-CSI檢測

于是就想著自己動手實踐一下這個方案的實際效果;

最后通過修改參考代碼,實現(xiàn)了一個基于ESP-CSI方案的ESP32C3人體檢測傳感器,同時接入到了HomeAssistant平臺,可以通過HomeAssistant來觀察整個檢測的過程;

一句話:本文基于ESP32C3實現(xiàn)了一個人體檢測方案,讓ESP32C3既做人體檢測傳感器也做Wi-Fi數(shù)據(jù)傳輸模塊,并且接入到了HomeAssistant平臺。

1、一些關(guān)于ESP-CSI基礎(chǔ)知識介紹

CSI:Channel Sstate Information,信道狀態(tài)信息,是描述無線信道特性的重要參數(shù),包括信號幅度相位、信號延遲等指標。在Wi-Fi通信中,CSI用于測量無線網(wǎng)絡(luò)的信道狀態(tài)。

通過分析和研究CSI的變化,可以推斷引起信道狀態(tài)變化的物理環(huán)境變化,實現(xiàn)非接觸式智能傳感。

CSI對環(huán)境變化非常敏感。它不僅能感知人或動物的行走、奔跑等大動作引起的變化,還能捕捉靜態(tài)環(huán)境中人或動物的細微動作,如呼吸、咀嚼等。這些能力使得 CSI 在智能環(huán)境監(jiān)測、人體活動監(jiān)測、無線定位等應(yīng)用中具有廣泛的應(yīng)用前景。

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

網(wǎng)上還有很多關(guān)于CSI的有趣例子,這里羅列幾個有趣的例子,就當(dāng)為了提升你對CSI的興趣吧。

通過CSI檢測人的運動姿態(tài)

852fc8ec-bd28-11ef-8084-92fbcf53809c.png
  1. CSI檢測人的運動姿態(tài)

人在檢測

  1. 人在檢測

通過以上的例子,讓我們了解到CSI的應(yīng)用方向還是挺多的,而樂鑫通過對CSI數(shù)據(jù)進行一系列的處理,最終封裝為一個esp-radar庫,讓我們無需再進行復(fù)雜的技術(shù)分析,只需要會調(diào)用esp-radar相關(guān)的APi即可,即可完成檢測到有人/無人、運動/靜止這些情況。

所以利用ESP-CSI我們本質(zhì)上是理解相關(guān)API的作用和使用流程;

3、ESP-CSI相關(guān)API介紹

我并沒有看到樂鑫有對這個庫的API做比較詳細的說明,其作用我都是通過看源碼注釋理解進行說明,如果有不正確的歡迎留言指出,一起交流;

通過打開esp_radar.h文件,可以看到總共提供了11個API,通過API名稱其功能大概也能猜出個7,8成,具體的API如下

#設(shè)置Wi-Fi radar配置,相關(guān)配置可以通過wifi_radar_config_t結(jié)構(gòu)體查看
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);
#訓(xùn)練Wi-Fi radar 相關(guān)配置,主要用于自主校準,校準之后可以獲取相關(guān)的參數(shù),如有無人的閾值
esp_err_tesp_radar_train_start(void);
#移植訓(xùn)練Wi-Fi radar后相關(guān)的配置,一般用于需要重新校準的情況,不然上一次校準的數(shù)據(jù)可能會影響本次的結(jié)果
esp_err_tesp_radar_train_remove(void);
#停止訓(xùn)練,可以通過入?yún)@取訓(xùn)練后的兩個結(jié)果 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);
#設(shè)置模組的增益
esp_err_tesp_radar_set_rx_gain(uint8_tagc_gain,int8_tfft_gain);

4、ESP-Radar編程實現(xiàn)=>人體檢測連接到HomeAssistant

通過對esp-radar庫api和相關(guān)工程流程的理解,接下來就是編程實現(xiàn)文章開頭說的,功能: 基于ESP-CSI方案例程connect_rainmaker,使用ESP32C3實現(xiàn)人體檢測傳感器,同時接入到了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協(xié)議鏈接到HomeAssistant

我們通過MQTT協(xié)議來把監(jiān)聽到的數(shù)據(jù)上報到HA,具體如何通過MQTT來聲明設(shè)備的屬性服務(wù)以及如何上報可以參考我之前寫的文章

  • HomeAssistant|【入門篇】基于MQTT的零代碼、少配置,設(shè)備高效接入方法
  • HomeAssistant|【高級篇】基于MQTT的零代碼、少配置,設(shè)備高效接入方法
  • HomeAssistant|【實戰(zhàn)篇】基于MQTT的零代碼、少配置,設(shè)備高效接入方法

5、工程效果展示

  1. 通過ESP-RainMkaker APP 把設(shè)備配置網(wǎng)絡(luò)
85687318-bd28-11ef-8084-92fbcf53809c.jpg
  1. 通過在APP上校準設(shè)備,校準設(shè)備過程需要確保沒有人在房間,整個校準過程60秒
8573f9ea-bd28-11ef-8084-92fbcf53809c.jpg
  1. 通過通過HomeAssistant顯示捕捉到:有人/無人、運動/靜止
85895ad8-bd28-11ef-8084-92fbcf53809c.png
  1. 同時我們通過HA的歷史記錄也可以更好的觀察過去一段時間的檢測情況
8594a906-bd28-11ef-8084-92fbcf53809c.png
  1. 具體的編程實現(xiàn)可以參考我添加的代碼ha_mqtt
85b397c6-bd28-11ef-8084-92fbcf53809c.png

我們使用了使用了樂鑫的例程實踐,直觀感受到了esp32既可以做傳統(tǒng)的數(shù)據(jù)傳輸模塊也可以用來同時做人在和移動檢測傳感器,最后通過加入自己的代碼,實現(xiàn)把檢測到的狀態(tài)也上報到了HA平臺;工具安利最后給大家推薦我做的一個無線串口數(shù)據(jù)采集工具,感興趣的童鞋可以點擊看看一種讓你的MCU日志可無線查看和實時記錄跟蹤的方法

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2550

    文章

    51035

    瀏覽量

    753061
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    1880

    瀏覽量

    64554
  • ESP32
    +關(guān)注

    關(guān)注

    18

    文章

    971

    瀏覽量

    17201
收藏 人收藏

    評論

    相關(guān)推薦

    華為海思正式進入Wi-Fi FEM賽道?

    轉(zhuǎn)載自——鐘林談 昨天在網(wǎng)上看到份九聯(lián)UNR050 BE3600無線路由拆機報告,Wi-Fi主芯片是海思新款Wi-Fi7芯片Hi115
    發(fā)表于 12-11 17:42

    Simplelink? Wi-Fi?傳感器標簽

    電子發(fā)燒友網(wǎng)站提供《Simplelink? Wi-Fi?傳感器標簽.pdf》資料免費下載
    發(fā)表于 11-25 14:17 ?0次下載
    Simplelink? <b class='flag-5'>Wi-Fi</b>?<b class='flag-5'>傳感器</b>標簽

    Wi-Fi與藍牙的波特率對比分析

    Wi-Fi與藍牙是種不同的無線通信技術(shù),它們在波特率(或稱數(shù)據(jù)傳輸速率)方面存在顯著的差異。以下是對Wi-Fi與藍牙波特率的對比分析:
    的頭像 發(fā)表于 11-22 09:54 ?251次閱讀

    基于ESP32-C3FN4為核心自主研發(fā)的Wi-Fi+BT模塊-RF-WM-ESP32B1

    WI-FI模組 - RF-WM-ESP32B1是基于ESP32-C3FN4為核心自主研發(fā)的Wi-Fi+BT模塊,支持IEEE 802.11b/g/n (2.4 GHz
    的頭像 發(fā)表于 11-07 09:45 ?216次閱讀
    基于<b class='flag-5'>ESP32</b>-C3FN4為核心自主研發(fā)的<b class='flag-5'>Wi-Fi</b>+BT模塊-RF-WM-<b class='flag-5'>ESP32</b>B1

    代無線局域網(wǎng)標準Wi-Fi 7(802.11be)

    Wi-Fi7(稱為802.11be)是下代無線局域網(wǎng)標準,旨在提供更高的數(shù)據(jù)傳輸速度、更低的延遲以及更強大的網(wǎng)絡(luò)容量。以下是Wi-Fi7
    的頭像 發(fā)表于 11-05 08:01 ?780次閱讀
    下<b class='flag-5'>一</b>代無線局域網(wǎng)標準<b class='flag-5'>Wi-Fi</b> 7(802.11be)

    【AI技術(shù)支持】ESP32無線Wi-Fi常用調(diào)試API

    Wi-Fi常用調(diào)試API在使用esp32調(diào)試Wi-Fi功能時,由于場景和各種因素的影響,難免會遇到各種連接不上,Wi-Fi斷連等問題。下面介紹
    的頭像 發(fā)表于 10-26 08:00 ?484次閱讀
    【AI技術(shù)支持】<b class='flag-5'>ESP32</b>無線<b class='flag-5'>Wi-Fi</b>常用調(diào)試API

    esp32esp8266代碼共用嗎

    8266作為款具有Wi-Fi功能的微控制,因其低成本、易用性和靈活性而受到廣泛關(guān)注。然而,盡管它們在某些方面具有相似性,但在硬件性能、開發(fā)環(huán)境和編程語言等方面仍存在定差異。 二、
    的頭像 發(fā)表于 08-19 18:23 ?1111次閱讀

    esp8266和esp32區(qū)別是什么

    以下是關(guān)于ESP8266和ESP32的主要區(qū)別: 處理和架構(gòu) : ESP8266 :使用個Tensilica L106 80MHz的處理
    的頭像 發(fā)表于 08-19 18:16 ?5233次閱讀

    esp32什么軟件編程

    ESP32款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、智能穿戴等領(lǐng)域。要對ES
    的頭像 發(fā)表于 08-19 17:24 ?3405次閱讀

    如何記住ESP8266中的Wi-Fi憑據(jù)?

    AT CWSTARTSMART=1 并在執(zhí)行電源重啟后,則不會記住 Wi-Fi 憑據(jù)。這是實際用戶手冊中正確的 AT 命令。嘗試使用 AT CWJAP_DEF 存儲數(shù)據(jù),但再次沒有成功。 我應(yīng)該怎么
    發(fā)表于 07-15 07:07

    【新品】ESP32雙核藍牙Wi-Fi模塊,穩(wěn)定性、兼容性網(wǎng)打盡

    作為款高度集成的MCU芯片,ESP32-C6在無線通信技術(shù)的前沿,為開發(fā)者提供了廣闊的應(yīng)用空間。ESP32-C6在ESP32系列的基礎(chǔ)上增加了對W
    的頭像 發(fā)表于 07-12 08:21 ?1923次閱讀
    【新品】<b class='flag-5'>ESP32</b>雙核藍牙<b class='flag-5'>Wi-Fi</b>模塊,穩(wěn)定性、兼容性<b class='flag-5'>一</b>網(wǎng)打盡

    Wi-Fi Halow占領(lǐng)海外安防監(jiān)控新高地,彌補Wi-Fi與LPWAN不足

    900MHz的低頻范圍,較傳統(tǒng)Wi-Fi實現(xiàn)更遠的信號傳播、更強的信號穿透/穿墻能力,適合對傳輸距離需求更大、允許低速傳輸傳感器應(yīng)用如智
    的頭像 發(fā)表于 07-12 08:05 ?171次閱讀
    <b class='flag-5'>Wi-Fi</b> Halow占領(lǐng)海外安防監(jiān)控新高地,彌補<b class='flag-5'>Wi-Fi</b>與LPWAN不足

    為什么ESP8266沒有檢測Wi-Fi的SSID?

    你好,我的ESP8266沒有檢測到我家Wi-Fi的SSID。我嘗試打開我的 iPhone 熱點,我可以正常查看和連接(我成功連接到 MQTT)。相反,沒有辦法看到我家的
    發(fā)表于 07-09 06:44

    請問ESP32-AT支持Wi-Fi漫游指令嗎?

    請問 ESP32-AT 支持 Wi-Fi 漫游指令嗎?我這邊在 ESP-IDF 下面看到有 roaming 的示例,但是在 esp-at 中沒有找到相關(guān)指令。
    發(fā)表于 06-27 07:13

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別? Wi-Fi種無線網(wǎng)絡(luò)技術(shù),可以連接到互聯(lián)網(wǎng)或局域網(wǎng),為用戶提供無線上網(wǎng)的便利。隨著科技的發(fā)展和互聯(lián)網(wǎng)的普及,
    的頭像 發(fā)表于 02-02 15:28 ?1253次閱讀
    RM新时代网站-首页