PiNG Video Doorbell 由 Raspberry Pi 提供支持,當訪客按下按鈕時,它會使用 Google Duo 在您的手機上與您進行視頻通話。
PiNG Video Doorbell 由 Raspberry Pi 提供動力,復古風格地裝在 1986 年對講機和老式 Sony 磁帶播放器中。
當按下門鈴按鈕時,Pi 會使用Google Duo進行高質量的視頻通話,可以在手機、平板電腦或電腦上接聽。讓您在出門在外時(或在家但被貓咪困住時),可以通過 WiFi 和蜂窩網絡運行,因此您甚至可以在外出散步時開門。
它還會在屋內發出標準的無線門鈴作為故障保險,以防無法接聽電話。
設置和代碼非常簡單,請繼續閱讀,我將展示如何在短短幾個小時內以低于 50 英鎊的價格從頭開始制作自己的視頻門鈴(如果您已經擁有 Pi 和一些組件,則幾乎不再需要任何額外的費用)。
我一直想用 Raspberry Pi 制作視頻門鈴,但直到最近我還沒有找到一種簡單的方法來進行視頻通話。既可以在項目中使用,又可以讓其他人直接重新創建。然而,這一切在最近發生了變化,當我讀到有關基于瀏覽器的 Google Duo 版本已經發布的報道恍然大悟——這意味著它可以在不安裝專用應用程序的情況下運行。
我已經研究過使用 Skype 和 WhatsApp 進行 Pi 通話的挑戰,之后我正準備安裝 Android 以嘗試使用 Google Duo,但由于無法輕松集成 GPIO 接口而被推遲,直到上面那則振奮人心的消息。
閱讀完文章后,我首先在我的 Windows 筆記本電腦上測試了 Duo,然后迅速在我的車間機器 Pi 2 上嘗試使用 Chromium。這并不順利,出現了 Duo 網站并讓我登錄,但是沒有顯示我的聯系人列表或任何更改設置的選項。我決定考慮使用其他瀏覽器(文章說它也適用于 Firefox 和 Safari),并在更強大的 Pi 3 上進行測試。
我在 Pi 3 上連接了一個羅技網絡攝像頭,然后啟動了 Chromium,令我驚訝的是,在調整了一些設置后,幾秒鐘后我就可以在客廳里給我妻子打電話了。我測試的網絡攝像頭有一個內置麥克風,即使在第一次綜合測試通話中,質量也很棒。這是一個非常激動人心的時刻,釋放了可視門鈴項目的潛力以及許多其他可能性。
因此,使用鍵盤、鼠標和屏幕進行視頻通話無疑是一種選擇——但是如何使用無頭樹莓派和一些按鈕進行這項工作呢?
應用操作
讓 Duo 在 Chromium 中運行很棒,我以為我只是全屏運行它,但后來(實際上是偶然)我意識到它可能會“耗盡瀏覽器”運行,就像您可以“安裝”網絡應用程序一樣在 Windows PC 上 - 方法如下:
轉到 Pi 上 Chromium 中的 Google Duo 站點 (https://duo.google.com/)
使用您要用來撥打門鈴的 Google 帳戶登錄
單擊三個點(漢堡包)》 安裝 Google Duo(如果您使用的不是最新的 Raspbian,則可能需要選擇更多工具 》 添加到桌面
在出現的對話框中點擊“添加”
- 桌面上會出現一個 Google Duo 快捷方式
然后雙擊桌面上的圖標 Duo 打開,但就像一個應用程序,沒有通常的 Chromium 家具。我不確定以這種方式運行它是否使用更少的 Pi 資源(似乎有意義?)但它確實使界面更清晰。
經過一些測試后,我為門鈴設置了一個單獨的谷歌帳戶并將其鏈接到安卓手機上的電話號碼,但如果你有一個現有的谷歌帳戶并且你很樂意將它用于門鈴,你可能不需要這樣做。
它不會在每次啟動時記住您的登錄詳細信息,但是一旦您打開它就會保持登錄狀態,我的已經運行了一個多星期而無需觸摸它。在進行測試呼叫之前,您需要確保網絡攝像頭已插入并選擇音頻源,方法是單擊“cog”設置圖標和“Manage Sources”。可用的麥克風和揚聲器選項很簡單,您可以播放測試聲音以確保它們正確 - 您必須在第一次執行此操作時在彈出窗口中授予權限,并且可能需要根據您的網絡攝像頭進行試驗/音頻設置。
保存源后,將視頻形狀設置為寬也是一個好主意,以便在門鈴呼叫您時盡可能多地看到。要執行此操作,請單擊聯系人,就像您要撥打電話一樣,然后單擊視頻預覽右上角的“顯示寬視頻”矩形,然后按 X 返回。此設置將被記住,直到 Pi 重新啟動。
鼠標地圖
如果 Duo 是一個完整的應用程序,那么命令行選項可能可用,例如啟動應用程序并立即呼叫特定聯系人。在沒有這個(現在?)的情況下,我需要找到一種通過按下 GPIO 按鈕自動開始通話的方法。
為此,我使用了 Python 模塊PyUserInput ,它可以讓您對鼠標移動、點擊和鍵盤敲擊進行編程。
我的想法是設置一個腳本來等待按鈕按下,然后將鼠標移動到“聯系人”文本框,輸入聯系人的姓名,按“Enter”并單擊“視頻通話”。Duo 記得最后聯系的人并將他們顯示在屏幕中央,但我不想依賴這個,以防門鈴叫錯人(因為這曾經就在測試中發生過)!
10讓鼠標在正確的位置單擊(讓應用程序全屏幫助)并找到正確的擊鍵來模擬“Enter”鍵需要一些試驗和錯誤,但它很有趣。在 GitHub 頁面上還有一個名為 Position.py 的小腳本,用于顯示鼠標坐標,非常有用。
解決了這個問題后,我添加了更多代碼來根據 GPIO 按鈕單擊啟動鼠標移動。這在測試中效果很好,一旦電話掛斷,樹莓派就會回到原來的屏幕,所以當再次按下門鈴按鈕時,它會重復同樣的動作。
軟件設置
經過大量試驗后,我將設置過程改進為以下步驟。
全新(完整)安裝 Raspbian 后,最好在連接顯示器的情況下完成以下大部分設置。首先啟用 VNC 服務器,最好登錄/創建一個 VNC 帳戶,以盡可能簡單地連接到 Pi。在 Pi 無頭運行的情況下,您需要在啟動后連接并登錄 Duo,這很簡單,只需要幾秒鐘 - 我通常只使用手機來完成此操作。
VNC 可以在 Start 》 Preferences 》 Raspberry Pi Configuration(接口選項卡)下啟用。因為 Pi 將無頭運行,我們還需要告訴它假設連接了 HDMI 顯示器,并手動設置分辨率(系統選項卡),以便腳本中的鼠標命令與 Web 應用程序上的元素對齊。我選擇了選項 19,1280x720,如果您使用不同的分辨率,您可能需要在 PiNG.py 腳本中編輯鼠標坐標。
接下來我們需要從終端安裝PyUserInput :
pip3 install PyUserInput
。。。然后從GitHub將PiNG.py 腳本下載到 Pi 上,我只是將它彈出到主 Pi 文件夾中。為了避免在每次重新啟動后啟動腳本,值得通過編輯全局自動啟動文件將其設置為在桌面加載后自動運行:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
并在底部添加以下行以指向腳本位置:
@python3 /home/pi/PiNG.py
重新啟動后,腳本應自動運行。
由于 Pi 可能會等待一段時間讓門鈴響起(除非你真的很受歡迎),所以最好禁用默認的屏幕調光,因為這可能會干擾鼠標點擊。與直覺相反,實現此目的的最佳方法是安裝 Xscreensaver:
sudo apt-get install xscreensaver
安裝后,您可以配置屏幕保護程序選項(開始 》 首選項 》 屏幕保護程序)并將其設置為禁用。
它本質上只是對門鈴按鈕進行編程,以執行一系列鼠標點擊來控制屏幕上的 Duo Web 應用程序。除了它不是真的在屏幕上,因為 Pi 是無頭運行的。
如果您已完成上述操作并且 Pi 已重新啟動,您應該能夠斷開顯示器(如果您使用過顯示器),通過 VNC 從手機或 PC 連接到 Pi 并登錄 Duo,將其設置為 full-屏幕,選擇音頻源并設置視頻寬度,如上所述。完成后,您可以斷開 VNC 連接,門鈴就可以使用了!
音頻
我知道音頻對于這個項目很重要,因為如果郵遞員聽不到你的聲音,那么遠程與他交談是沒有意義的!我決定使用Pimoroni pHAT BEAT ,因為我有一個方便的——盡管在某些方面對于這個項目來說有點矯枉過正。
我真的只需要一個門鈴單聲道輸出,但 pHAT BEAT 為兩個揚聲器提供立體聲輸出,以及一個漂亮的 LED VU 表。
將 pHAT 用于音頻的唯一復雜之處在于它會位于 GPIO 接頭上的所有引腳上——我需要其中的一些來連接門鈴按鈕和 LED。為了解決這個問題,我在去年的Raspberry Fields的派對包中添加了一頂 pico hat hack3r 。這是一個小巧但非常方便的電路板,基本上將 GPIO 輸出一分為二,讓您在連接 HAT 的同時仍然暴露一整套 GPIO 引腳。雖然這很好,但您必須小心不要與 HAT 已經使用的引腳沖突,所以我仔細檢查了pinout.xyz并決定如下:
門鈴按鈕 - GPIO22(引腳 15)和隔壁的 3v3(引腳 17)
通知 LED - GPIO9 正極(引腳 21,通過電阻器),引腳 25 處負極
隨著網絡攝像頭、音頻、按鈕和 LED 連接并正常工作,我現在有了一個可以工作的視頻門鈴——盡管它分布在整個工作臺上。接下來我需要考慮如何使用它以及它會是什么樣子。
額外的鐘聲
設置在替補席上運行良好,但 IRL 會發生什么?我想在外面只有一個門鈴來避免混亂的訪客,但同時想知道如果有人在我無法接聽電話的情況下按門鈴,或者如果有人在房子里沒有聽到會發生什么雙人電話打來。
這些擔憂的答案是在構建中包括一個標準的無線門鈴發射器,它可以與我們現有的房子里的鈴聲配對。這樣,即使構建的 Pi 部分由于某種原因停止工作,“正常”的門鈴也會響起。
案例邏輯
一旦我證明了代碼可以工作,接下來的事情就是決定該項目的案例。我希望它顯然是一個門鈴,但出于明顯的安全原因,我不喜歡將一個完全連接的 Pi 掛在我家外面的想法。
我決定將項目一分為二——在屋外安裝一個門鈴單元,連接到屋內的 Pi 基站。朝這個方向發展有幾個很好的理由:
更少的組件可以擠入外殼并暴露在元素中
更容易執行維護和升級
將我珍貴的 Pi 3B+ 固定在鎖著的門后面
在網絡攝像頭上做出決定很容易——我的一個MotionEye安全攝像頭已經使用 Microsoft Lifecam HD 3000 和 Pi Zero 24/7 運行了兩年多,所以這是一個合乎邏輯的選擇——尤其是因為它有一個集成的麥克風。許多其他網絡攝像頭與 Pi 配合得很好,你甚至可以使用標準的 Pi 攝像頭——不過你需要一個單獨的麥克風來捕捉音頻。
外部設備也很簡單,1986 年的對講機!前段時間我買了 3 件這樣的復古設備,并且在 2017 年只在Google Pi Intercom項目中使用了一個,所以備件很方便——而且我已經熟悉它的內部結構,并且相信我可以讓所有東西都適合。
對于內部基本單元,我考慮只使用標準塑料項目盒,但由于當地 Maplin 已關閉,選擇合適的匹配并不容易 - 所以我決定重新使用一些更舊的技術并安裝 Pi在一個舊的磁帶播放器里面。由于有足夠的空間,所以效果非常好 - 這意味著 VU 表 LED 可以通過磁帶窗口顯示,這是一種方便的額外觸摸。我還能夠將盒式磁帶播放器的原始揚聲器連接到 Phat Beat 上的備用輸出 - 這意味著鈴聲和語音將在屋內和室外播放。
要將兩個單元連接在一起,我決定使用 6 芯報警電纜,因為它非常薄且易于使用,可以在每端添加一個連接塊。
與往常一樣,這些箱子在準備好使用之前需要進行一些拆卸和修改,所以一旦我剝離了原始電路,我就開始使用旋轉工具清理內部。
對講機是第一個,我不得不砍掉一個塑料柱為網絡攝像頭騰出空間,為廣角鏡頭切出一個孔,并打磨掉許多突出物,以使揚聲器之類的東西更容易安裝。一旦我有了一塊空白畫布,我就會考慮如何適應各種組件。我需要騰出空間:
一個新的揚聲器
兩個杠桿微動開關
無線門鈴電路
網絡攝像頭
電纜連接塊
LED的小型原型板電路
以及最初的開關和機制 - 起初看起來很寬敞,但現在我開始懷疑了。
為了使這個過程更容易,我使用了Hitachi Pi TV Conversion 的一個方便的技巧,并首先構建了一個有機玻璃底盤來容納所有組件。有機玻璃絕對是最理想的,因為您可以在標記在哪里切割孔時看到它。首先,我將它粗略地切割成合適的尺寸,然后鉆孔,這樣它就可以安裝在對講機現有的螺絲柱上。從這里我一個一個地添加組件,鉆孔和切割孔以適合它們或為它們騰出空間。這樣做的另一個好處是我能夠在最終組裝之前測試一切是否正常!
為了使網絡攝像頭適合,我必須小心地切掉它的很多塑料外殼,這樣它就可以直接粘在廣角鏡頭后面 - 如果你需要這樣做,首先要撬開它的前面,不要砍掉像我一樣用剪線鉗和鉗子在后面!
我對盒式磁帶播放器不那么挑剔,并且無情地剝離了所有電路和組件,只留下一個空盒子。像大按鈕這樣的化妝品部件只是熱粘合到位,我用一個紅色的按鈕填充了一個破碎的小燈窗孔。
為了讓 pi 放在磁帶窗口后面的正確位置,我首先將一個樂高板熱粘到一個舊的Pi 盒的底部。然后,我在磁帶播放器內的正確位置熱粘合了一個匹配的板,以制作一個很好的半永久性配件 - GPIO 引腳可以在磁帶門打開的情況下使用,但我想確保我可以將 Pi 取出來更換SD卡等沒有任何麻煩。我已經學會了提前計劃未來拆卸和維護的艱難方法!最后,我在磁帶播放器的外部切掉了一些插槽,以便在組裝后仍然可以使用 USB 和 HDMI 端口,以防萬一。
組裝和繪畫
將有機玻璃底盤試裝到對講機中后,我給它涂了一層油漆 - 我為顏色苦惱了一段時間,試圖在白色、亞光黑色和棕色之間進行選擇,但選擇了“Claret Red”進行更改。
最終組裝非常簡單,我將對講機底盤熱粘合到最后的外殼上,還將無線門鈴電路安裝在設備背面,以便于更換電池。最后一項工作是添加一個銘牌,我只是用不同的字體大小打印出來的——但是當我開始添加這個時,我意識到一些熱膠從表殼上的一個小孔中滲出,蔓延到整個新鮮的油漆并堵塞銘牌槽。
-
樹莓派
+關注
關注
117文章
1710瀏覽量
105898
發布評論請先 登錄
相關推薦
基于***升邁FIC8120的可視門鈴方案設計
請問我這個樹莓派高清視頻直播服務器設計方案可行嗎?
攻克可視門鈴中的設計障礙
基于 ESP32的可視智能門鈴參考設計方案
樹莓派的學習設計方案合集
![<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的學習<b class='flag-5'>設計方案</b>合集](https://file.elecfans.com/web1/M00/E4/F2/pIYBAGBJ3nyAfiuBAADJFfe3bpM958.png)
智能可視門鈴的工作原理及功能特點
樹莓派使用KiCad設計方案
基于樹莓派的機器人設計方案
![基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的機器人<b class='flag-5'>設計方案</b>](https://file1.elecfans.com/web2/M00/A9/48/wKgaomUwsbeAOspEAABq7zLHtIA020.png)
評論