奧推網

選單
科技

【零基礎】一起DIY智慧家居 篇六:紅外+雷達雙判斷人體存在感測器設計

作者:sonatasss

前言:

最近看了下網上的人體存在DIY文章。大多硬體搭配都是感應雷達+門磁

個人覺得espC3+環境光+紅外+毫米波更合理

紅外+毫米波雙保險防止誤判

而且功耗更低

環保一點,畢竟毫米波雷達發熱也挺厲害的

硬體搭配

主機板:wroom

環境光感測器:BH1750 Illuminance

紅外感測器:sr-602

24GHz毫米波雷達:cem5825f

cem5825f和最近比較熱的LD2410最主要的區別是功耗低

我試了下3。3v 工作電流60ma 功率200mw

LD2410只能5v以上,功率350mw左右

其實LD2410也一樣用

只不過設計有3。3v需求,就選了cem5825f

接線和設計思路

焊接導線

這款模組沒有自帶排針

也不是標準排針間距

先把雙公頭杜邦線一段剪掉剝5mm左右導線

點上適量的錫膏後用烙鐵依次加熱即可

最後用指甲鉗去掉多餘銅線就可以用了。

邏輯思路

紅外感測器檢測到人後先判斷環境亮度

低於設定亮度開啟雷達判斷人的位置

距離過遠關燈關雷達

流程圖如下

測試過程我發現雷達波似乎可以被牆面反射

實際使用用小於設定距離或者多雷達協作更不容易誤判

看圖比較直觀

接線uart i2c前面都講過了

這裡就不贅述了

本來想直接用eps32的gpio給雷達供電

後來發現所需電流超過針腳限定值(限流30-40ma)

那就只能從3。3v直接取電用繼電器控制了

3。3v的繼電器暫時手頭只有這個雙刀雙擲的

先對付著測試吧

只用1、8         6、5針腳就行

18通電 65跟著也接通

這個繼電器太小 ,只能劈個叉插在麵包板上了

繼電器部分模擬接線圖如下

我還用了個紅色發光二極體模擬燈具

實際接線圖如下

線有點亂糟糟,實際應用還是自己畫個pcb打板好一點

如果想直接接入米家

把發光二極體換成米家門磁就可以了(個人覺得沒必要)

程式碼

之前講過的部分略過

說說感應雷達部分

這裡直接用hassbian大佬發的驅動檔案

需要注意的是在檔案開頭name後面載入驅動模組 UartReadLineSensor。h檔案

附上驅動檔案

如果是跟著篇一裝的docker版 直接用下面命令就可以了

其他安裝位置的下載到和yaml檔案相同目錄即可

wget -P  /home/esphome  https://gitee。com/sonata1/esphome/raw/master/人體感應雷達/UartReadLineSensor。h

由於程式碼200多行大家直接看原始檔吧

複製貼上到配置檔案後面

tx_pin:和 rx_pin修改成自己接的針腳的就可以了

https://gitee。com/sonata1/esphome/raw/master/人體感應雷達/UartReadLineSensor。h

更新韌體後HA的介面如下

然後結合篇5講的邏輯判斷就可以多條件控制燈具了

這裡附上關燈的關鍵程式碼

above 後面改成自己想要的數值就行了

想小於多少關燈就把above換成below

程式碼片段

https://gitee.com/sonata1/esphome/raw/master/人體感應雷達/cem5825f+pir.yaml

程式碼所用針腳

效果測試

總結

本文沒有介紹HA裡面建立條件判斷

本示例還有很多可以最佳化的地方,比如:

紅外+雷達同時判斷有人再開燈;手動開燈優先順序;多雷達協同判斷距離;距離大於xx持續xx秒以後再關燈

這些都可以在HA裡很方便的新增條件

網頁介面滑鼠點點就可以

如有大家有需求回頭單獨開一篇再講

大家可以嘗試參考篇5影片自己在HA建立一個自動化指令碼