這個(gè)項(xiàng)目的目標(biāo)是建造一個(gè)物聯(lián)網(wǎng)風(fēng)格的電動(dòng)寵物門(mén),這樣我們就可以控制哪些動(dòng)物可以進(jìn)入房子。為此,我們使用附著在動(dòng)物(貓)上的BLE標(biāo)簽和RaspberryPi3上的內(nèi)置藍(lán)牙模塊來(lái)掃描標(biāo)簽。同時(shí)我們還在RaspberryPi3上配備了一些LED指示燈,用于對(duì)門(mén)應(yīng)該處于的狀態(tài)進(jìn)行故障排除。
Node-REDBLEScan節(jié)點(diǎn)持續(xù)掃描BLE廣告。如果它看到與設(shè)備名稱(chēng)和最小RSSI匹配的設(shè)備,它將打開(kāi)寵物門(mén),并在超時(shí)后關(guān)閉門(mén)。為了防止門(mén)在緩慢移動(dòng)的動(dòng)物身上過(guò)早關(guān)閉,系統(tǒng)將在獲得BLE匹配時(shí)重置計(jì)時(shí)器。
這個(gè)項(xiàng)目有幾個(gè)不同的部分:
硬件:操縱門(mén)所需的所有布線和組件
軟件:決定門(mén)應(yīng)該向哪個(gè)方向移動(dòng)的所有邏輯。
硬件
門(mén)的打開(kāi)和關(guān)閉由一個(gè)12VDC電動(dòng)汽車(chē)天線完成,該天線倒置安裝在門(mén)上方,天線的末端連接到門(mén)本身。并帶有一個(gè)電路,可以對(duì)其進(jìn)行逆向工程以控制天線,但我們?cè)谶@里不通過(guò)這種方式,因此您需要將電路撕掉并直接使用電機(jī)線。
要驅(qū)動(dòng)天線電機(jī),您很可能需要至少1A的12V電源。我使用了一個(gè)舊的D-Link路由器電源:
您需要在門(mén)上安裝兩個(gè)限位開(kāi)關(guān)以停止兩端的電機(jī)。我使用了磁性開(kāi)關(guān),因?yàn)檫@是我手頭有的現(xiàn)成的東西,但是帶有杠桿臂的標(biāo)準(zhǔn)開(kāi)關(guān)會(huì)更好。
根據(jù)下圖組裝H橋PiHat,注意二極管的方向;這是限制電路。使用的H橋是雙通道的,但我們現(xiàn)在只使用一個(gè)。如圖所示,電機(jī)、開(kāi)關(guān)和12VDC輸入將連接到PiHat。
根據(jù)下圖組裝LEDPiHat。藍(lán)色LED需要的電流比Pi能夠通過(guò)GPIO可靠提供的電流多一點(diǎn),因此我們從5V線路為所有LED供電,并使用連接到GPIO的晶體管來(lái)切換它們。
軟件
該項(xiàng)目的軟件只是在標(biāo)準(zhǔn)Raspbian安裝上運(yùn)行的Node-RED。大多數(shù)邏輯都是使用帶有RPi版本node-red的標(biāo)準(zhǔn)節(jié)點(diǎn)處理的,但BLE掃描儀除外,它需要來(lái)自node-red-contrib-noble的“scanble”節(jié)點(diǎn)。按照以下鏈接中的說(shuō)明設(shè)置組件:
安裝Raspbian
安裝Node-RED
安裝node-red-contrib-noble
在一切都安裝并工作后,繼續(xù)配置您的Node-RED流程,使其看起來(lái)像這樣:
我們的流程入口點(diǎn)是“scanble”節(jié)點(diǎn);確保選中該框以允許重復(fù)。
之后添加一個(gè)“function”節(jié)點(diǎn)來(lái)根據(jù)“l(fā)ocalname”屬性過(guò)濾BLE廣告;我使用了使用“Tile”作為本地名稱(chēng)的TileTracker標(biāo)簽。
接下來(lái)是一個(gè)“切換”節(jié)點(diǎn),用于檢查廣告的RSSI。您需要調(diào)整此設(shè)置以匹配標(biāo)簽和開(kāi)門(mén)距離。
然后,您可以添加另一個(gè)“開(kāi)關(guān)”節(jié)點(diǎn)來(lái)根據(jù)標(biāo)簽的唯一ID過(guò)濾標(biāo)簽,這樣它就不會(huì)在門(mén)附近的其他標(biāo)簽上觸發(fā)。如果您還不知道唯一ID,您可以使用“scanble”節(jié)點(diǎn)上的調(diào)試節(jié)點(diǎn)來(lái)查看廣告并嘗試查看哪個(gè)是您的。設(shè)置第一條規(guī)則匹配一個(gè)空UUID并且不連接輸出;這將過(guò)濾掉一些垃圾廣告,為每個(gè)UUID添加附加規(guī)則。
為您在前一個(gè)節(jié)點(diǎn)中添加的每個(gè)規(guī)則添加一個(gè)“更改”節(jié)點(diǎn),并為其賦予一個(gè)唯一的“觸發(fā)源”值。這些節(jié)點(diǎn)不是必需的,但它們將使您能夠在將來(lái)對(duì)每個(gè)標(biāo)簽進(jìn)行額外的過(guò)濾,我用我的貓的名字作為來(lái)源。
接下來(lái),我們需要通過(guò)將消息有效負(fù)載更改為1來(lái)告訴流的其余部分我們想要觸發(fā)門(mén)打開(kāi)。將任何打開(kāi)的觸發(fā)源連接到此節(jié)點(diǎn)。
現(xiàn)在這個(gè)觸發(fā)消息將做兩件事:觸發(fā)藍(lán)色LED閃爍以接收BLE數(shù)據(jù)包,并觸發(fā)門(mén)打開(kāi)。
首先通過(guò)添加“觸發(fā)器”節(jié)點(diǎn)來(lái)設(shè)置LED路徑。將其設(shè)置為發(fā)送1,然后在500毫秒后發(fā)送0。這將導(dǎo)致LED僅閃爍一次。
到該節(jié)點(diǎn)連接一個(gè)“rpigpio”輸出節(jié)點(diǎn)并將其配置為藍(lán)色LEDGPIO。將其設(shè)置為初始化為0(關(guān)閉)狀態(tài)。
接下來(lái)是配置門(mén)觸發(fā)路徑。返回觸發(fā)有效負(fù)載節(jié)點(diǎn)并將“更改”節(jié)點(diǎn)與兩個(gè)輸出連接。一個(gè)輸出將路由到具有“1”有效負(fù)載的開(kāi)放路徑,另一個(gè)將路由到具有“0”有效負(fù)載的關(guān)閉路徑。
這兩個(gè)輸出都將連接到同一個(gè)節(jié)點(diǎn),但打開(kāi)的連接在路徑中有一個(gè)額外的觸發(fā)節(jié)點(diǎn),可以在超時(shí)后觸發(fā)關(guān)閉。添加“觸發(fā)”節(jié)點(diǎn)以發(fā)送“1”,然后在超時(shí)(15秒)后發(fā)送“0”。
然后將該觸發(fā)節(jié)點(diǎn)和前一個(gè)節(jié)點(diǎn)的第二個(gè)輸出連接到“功能”節(jié)點(diǎn)。此功能節(jié)點(diǎn)有兩個(gè)輸出連接到打開(kāi)的GPIO節(jié)點(diǎn)和關(guān)閉的GPIO節(jié)點(diǎn)。由于您不希望門(mén)同時(shí)打開(kāi)和關(guān)閉,因此它將向每個(gè)輸出發(fā)送相反的值。因此,如果觸發(fā)有效載荷為“1”表示打開(kāi),它將向打開(kāi)的GPIO發(fā)送“1”,向關(guān)閉的GPIO發(fā)送“0”,如果有效載荷為“0”表示關(guān)閉,它將向打開(kāi)的GPIO發(fā)送“0”和“1”到關(guān)閉的GPIO。
最后,將兩個(gè)GPIO節(jié)點(diǎn)連接到每個(gè)輸出:一個(gè)用于LED,一個(gè)用于H橋輸入。
這應(yīng)該對(duì)主要的Node-RED流程執(zhí)行此操作。此外,您應(yīng)該添加一個(gè)“注入”節(jié)點(diǎn)以自動(dòng)“1”有效負(fù)載以在啟動(dòng)時(shí)打開(kāi)門(mén),這樣流程就知道門(mén)處于哪個(gè)狀態(tài)。我還添加了一些手動(dòng)注入節(jié)點(diǎn),用于通過(guò)Node-RED接口。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2931文章
46251瀏覽量
392678 -
藍(lán)牙模塊
+關(guān)注
關(guān)注
30文章
610瀏覽量
56678 -
樹(shù)莓派
+關(guān)注
關(guān)注
121文章
2009瀏覽量
107483
發(fā)布評(píng)論請(qǐng)先 登錄
樹(shù)莓派下一個(gè)關(guān)注的領(lǐng)域是什么?
請(qǐng)教利用樹(shù)莓派制作六足機(jī)器人的問(wèn)題
分享一款不錯(cuò)的基于樹(shù)莓派Raspberry Pi CM的物聯(lián)網(wǎng)網(wǎng)關(guān)方案
樹(shù)莓派在物聯(lián)網(wǎng)開(kāi)發(fā)的應(yīng)用
如何利用樹(shù)莓派去設(shè)計(jì)一個(gè)物聯(lián)網(wǎng)智能小車(chē)
如何利用樹(shù)莓派實(shí)現(xiàn)物聯(lián)網(wǎng)?
樹(shù)莓派和Siri完美結(jié)合,語(yǔ)音控制iphone打開(kāi)車(chē)庫(kù)門(mén)!
利用樹(shù)莓派實(shí)現(xiàn)IoT(物聯(lián)網(wǎng))開(kāi)關(guān)門(mén)監(jiān)控設(shè)備
樹(shù)莓派 3 或開(kāi)啟物聯(lián)網(wǎng)革命的大門(mén)
基于樹(shù)莓派CM4的工業(yè)物聯(lián)網(wǎng)PC

基于樹(shù)莓派CM4的工業(yè)物聯(lián)網(wǎng)PC

樹(shù)莓派裝ubuntu和raspbian哪個(gè)更好
類(lèi)樹(shù)莓派網(wǎng)關(guān):物聯(lián)網(wǎng)應(yīng)用的新標(biāo)桿

樹(shù)莓派+Telegram:開(kāi)啟你的物聯(lián)網(wǎng)智能花園!

評(píng)論