這個項目的目標(biāo)是建造一個物聯(lián)網(wǎng)風(fēng)格的電動寵物門,這樣我們就可以控制哪些動物可以進(jìn)入房子。為此,我們使用附著在動物(貓)上的BLE標(biāo)簽和RaspberryPi3上的內(nèi)置藍(lán)牙模塊來掃描標(biāo)簽。同時我們還在RaspberryPi3上配備了一些LED指示燈,用于對門應(yīng)該處于的狀態(tài)進(jìn)行故障排除。
Node-REDBLEScan節(jié)點持續(xù)掃描BLE廣告。如果它看到與設(shè)備名稱和最小RSSI匹配的設(shè)備,它將打開寵物門,并在超時后關(guān)閉門。為了防止門在緩慢移動的動物身上過早關(guān)閉,系統(tǒng)將在獲得BLE匹配時重置計時器。
這個項目有幾個不同的部分:
硬件:操縱門所需的所有布線和組件
軟件:決定門應(yīng)該向哪個方向移動的所有邏輯。

硬件
門的打開和關(guān)閉由一個12VDC電動汽車天線完成,該天線倒置安裝在門上方,天線的末端連接到門本身。并帶有一個電路,可以對其進(jìn)行逆向工程以控制天線,但我們在這里不通過這種方式,因此您需要將電路撕掉并直接使用電機(jī)線。

要驅(qū)動天線電機(jī),您很可能需要至少1A的12V電源。我使用了一個舊的D-Link路由器電源:

您需要在門上安裝兩個限位開關(guān)以停止兩端的電機(jī)。我使用了磁性開關(guān),因為這是我手頭有的現(xiàn)成的東西,但是帶有杠桿臂的標(biāo)準(zhǔn)開關(guān)會更好。

根據(jù)下圖組裝H橋PiHat,注意二極管的方向;這是限制電路。使用的H橋是雙通道的,但我們現(xiàn)在只使用一個。如圖所示,電機(jī)、開關(guān)和12VDC輸入將連接到PiHat。

根據(jù)下圖組裝LEDPiHat。藍(lán)色LED需要的電流比Pi能夠通過GPIO可靠提供的電流多一點,因此我們從5V線路為所有LED供電,并使用連接到GPIO的晶體管來切換它們。

軟件
該項目的軟件只是在標(biāo)準(zhǔn)Raspbian安裝上運行的Node-RED。大多數(shù)邏輯都是使用帶有RPi版本node-red的標(biāo)準(zhǔn)節(jié)點處理的,但BLE掃描儀除外,它需要來自node-red-contrib-noble的“scanble”節(jié)點。按照以下鏈接中的說明設(shè)置組件:
安裝Raspbian
安裝Node-RED
安裝node-red-contrib-noble
在一切都安裝并工作后,繼續(xù)配置您的Node-RED流程,使其看起來像這樣:

我們的流程入口點是“scanble”節(jié)點;確保選中該框以允許重復(fù)。

之后添加一個“function”節(jié)點來根據(jù)“l(fā)ocalname”屬性過濾BLE廣告;我使用了使用“Tile”作為本地名稱的TileTracker標(biāo)簽。

接下來是一個“切換”節(jié)點,用于檢查廣告的RSSI。您需要調(diào)整此設(shè)置以匹配標(biāo)簽和開門距離。

然后,您可以添加另一個“開關(guān)”節(jié)點來根據(jù)標(biāo)簽的唯一ID過濾標(biāo)簽,這樣它就不會在門附近的其他標(biāo)簽上觸發(fā)。如果您還不知道唯一ID,您可以使用“scanble”節(jié)點上的調(diào)試節(jié)點來查看廣告并嘗試查看哪個是您的。設(shè)置第一條規(guī)則匹配一個空UUID并且不連接輸出;這將過濾掉一些垃圾廣告,為每個UUID添加附加規(guī)則。

為您在前一個節(jié)點中添加的每個規(guī)則添加一個“更改”節(jié)點,并為其賦予一個唯一的“觸發(fā)源”值。這些節(jié)點不是必需的,但它們將使您能夠在將來對每個標(biāo)簽進(jìn)行額外的過濾,我用我的貓的名字作為來源。

接下來,我們需要通過將消息有效負(fù)載更改為1來告訴流的其余部分我們想要觸發(fā)門打開。將任何打開的觸發(fā)源連接到此節(jié)點。

現(xiàn)在這個觸發(fā)消息將做兩件事:觸發(fā)藍(lán)色LED閃爍以接收BLE數(shù)據(jù)包,并觸發(fā)門打開。
首先通過添加“觸發(fā)器”節(jié)點來設(shè)置LED路徑。將其設(shè)置為發(fā)送1,然后在500毫秒后發(fā)送0。這將導(dǎo)致LED僅閃爍一次。

到該節(jié)點連接一個“rpigpio”輸出節(jié)點并將其配置為藍(lán)色LEDGPIO。將其設(shè)置為初始化為0(關(guān)閉)狀態(tài)。

接下來是配置門觸發(fā)路徑。返回觸發(fā)有效負(fù)載節(jié)點并將“更改”節(jié)點與兩個輸出連接。一個輸出將路由到具有“1”有效負(fù)載的開放路徑,另一個將路由到具有“0”有效負(fù)載的關(guān)閉路徑。

這兩個輸出都將連接到同一個節(jié)點,但打開的連接在路徑中有一個額外的觸發(fā)節(jié)點,可以在超時后觸發(fā)關(guān)閉。添加“觸發(fā)”節(jié)點以發(fā)送“1”,然后在超時(15秒)后發(fā)送“0”。

然后將該觸發(fā)節(jié)點和前一個節(jié)點的第二個輸出連接到“功能”節(jié)點。此功能節(jié)點有兩個輸出連接到打開的GPIO節(jié)點和關(guān)閉的GPIO節(jié)點。由于您不希望門同時打開和關(guān)閉,因此它將向每個輸出發(fā)送相反的值。因此,如果觸發(fā)有效載荷為“1”表示打開,它將向打開的GPIO發(fā)送“1”,向關(guān)閉的GPIO發(fā)送“0”,如果有效載荷為“0”表示關(guān)閉,它將向打開的GPIO發(fā)送“0”和“1”到關(guān)閉的GPIO。

最后,將兩個GPIO節(jié)點連接到每個輸出:一個用于LED,一個用于H橋輸入。

這應(yīng)該對主要的Node-RED流程執(zhí)行此操作。此外,您應(yīng)該添加一個“注入”節(jié)點以自動“1”有效負(fù)載以在啟動時打開門,這樣流程就知道門處于哪個狀態(tài)。我還添加了一些手動注入節(jié)點,用于通過Node-RED接口。

-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47826瀏覽量
415251 -
藍(lán)牙模塊
+關(guān)注
關(guān)注
30文章
661瀏覽量
57875 -
樹莓派
+關(guān)注
關(guān)注
122文章
2079瀏覽量
110481
發(fā)布評論請先 登錄
玩樹莓派必須要知道的十大妙用!你,還在等什么!
樹莓派下一個關(guān)注的領(lǐng)域是什么?
分享一款不錯的基于樹莓派Raspberry Pi CM的物聯(lián)網(wǎng)網(wǎng)關(guān)方案
樹莓派在物聯(lián)網(wǎng)開發(fā)的應(yīng)用
樹莓派和Siri完美結(jié)合,語音控制iphone打開車庫門!
利用樹莓派實現(xiàn)IoT(物聯(lián)網(wǎng))開關(guān)門監(jiān)控設(shè)備
樹莓派 3 或開啟物聯(lián)網(wǎng)革命的大門
基于樹莓派CM4的工業(yè)物聯(lián)網(wǎng)PC
基于樹莓派CM4的工業(yè)物聯(lián)網(wǎng)PC
樹莓派裝ubuntu和raspbian哪個更好
類樹莓派網(wǎng)關(guān):物聯(lián)網(wǎng)應(yīng)用的新標(biāo)桿
樹莓派+Telegram:開啟你的物聯(lián)網(wǎng)智能花園!
如何利用樹莓派建造一個物聯(lián)網(wǎng)風(fēng)格的電動寵物門
評論