第1步:
我總是喜歡使用Raspberry Pi制作一個可視門鈴,但是直到最近我找不到一種簡單的方法來進行視頻通話,既可以在項目中工作,也可以直接讓其他人重新創建。然而,當我閱讀有關基于瀏覽器的Google Duo版本已經發布的報告時,這一切都在2月26日發生了變化 - 這意味著它可以在不安裝專用應用程序的情況下運行。
已經研究過使用Skype和WhatsApp進行Pi調用的挑戰我正在安裝Android以嘗試使用Google Duo,但由于無法輕松集成GPIO接口而被推遲,所以網絡應用新聞真的很鼓舞人心。在吞噬文章之后,我首先在我的Windows筆記本電腦上測試了Duo,然后迅速移動到我的工作室機器上用Chromium嘗試它,一個Pi 2.這不是很好,Duo網站出現了,讓我登錄,但是沒有顯示我的聯系人列表或任何更改設置的選項。我決定使用其他瀏覽器(該文章說它也適用于Firefox和Safari),并在更強大的Pi 3上進行測試。
我將一個Logitech網絡攝像頭連接到Pi 3然后激起了Chromium,令我驚訝的是,在調整了幾個設置之后,幾秒鐘之后能夠在客廳里給我的妻子打電話。我測試的網絡攝像頭有一個內置麥克風,甚至在第一次拋出測試電話時質量也很好。這是一個非常激動人心的時刻,釋放了視頻門鈴項目的潛力以及許多其他可能性。
因此,使用鍵盤,鼠標和屏幕進行視頻通話是一個明確的目標 - 但如何使用無頭Pi和按鈕進行視頻通話?
第2步:Appy Duo
讓Duo在Chromium中運行很棒,我假設我只是全屏運行,但后來(實際上是偶然的)我意識到它可以“運行瀏覽器”,就像你可以“安裝”一樣“Windows PC上的網絡應用程序 - 方法如下:
- 訪問Pi上的Chromium中的Google Duo網站(https://duo.google.com/)
-使用您想要用來進行門鈴呼叫的Google帳戶登錄
- 點擊三個點(漢堡包)》安裝Google Duo(如果您沒有使用最新的Raspbian,則可能需要選擇更多工具》添加到桌面
- 在出現的對話框中單擊“添加”
- 桌面上會出現Google Duo快捷方式
如果您再雙擊桌面上的圖標Duo會打開,但就像應用程序一樣,沒有通常的Chromium家具。我不確定以這種方式運行它是否使用較少的Pi資源(似乎有意義?)但它確實使接口變得更清晰。
經過一些測試我為其設置了一個單獨的谷歌帳戶門鈴并將其鏈接到Android手機上的電話號碼 - 如果你有一個現有的谷歌賬戶并且你很樂意將它用于門鈴,你可能不需要這樣做。
它沒有記住每次發布時的登錄詳細信息,但是一旦打開它就會保持登錄狀態,我已經運行了一個多星期而不必觸摸它。在進行測試呼叫之前,您需要確保已插入網絡攝像頭并選擇音頻源,方法是單擊“cog”設置圖標和“Manage Sources”。麥克風和麥克風揚聲器選項很簡單,您可以播放測試聲音以確保它們是正確的 - 您必須在第一次執行此操作時通過彈出窗口授予權限,并且可能需要根據您的網絡攝像頭/音頻設置進行試驗。
保存信號源時,最好將視頻形狀設置為“寬”,以便在門鈴呼叫時盡可能多地看到。要執行此操作,請單擊聯系人,就像您要打電話一樣,然后單擊視頻預覽頂部的“顯示寬視頻”矩形,然后點擊X返回。重新啟動Pi之前,將記住此設置。
第3步:鼠標映射
如果Duo是一個完整的應用程序,那么命令行選項可能是可用的,例如啟動應用程序并立即致電特定聯系人。如果沒有這個(現在?),我需要找到一種方法,通過按下GPIO按鈕自動開始通話。
為此,我使用了Python模塊PyUserInput,它允許您編寫鼠標移動,點擊和鍵盤敲擊。
想法是設置一個腳本等待按下按鈕,然后將鼠標移動到“聯系人”文本框,輸入聯系人姓名,按“Enter”并單擊“視頻通話” 。 Duo記得最后聯系的人并將其顯示在屏幕中央,但我不想依賴這個,以防門鈴叫錯人(這發生在測試中 - 對不起Harry)!
需要一些試驗和錯誤才能讓鼠標在正確的位置點擊(讓應用程序全屏幫助)并找到正確的按鍵來模擬“回車”鍵是一樣的,但它很有趣。在GitHub頁面上還有一個名為Position.py的小腳本,它顯示了鼠標坐標,這非常有用。
解決了這個問題后,我又添加了一些代碼來啟動鼠標移動基于GPIO按鈕單擊。這在測試中非常有效,一旦電話掛斷電話,Pi就會回到原來的屏幕,所以當再次按下門鈴按鈕時,它會重復同樣的動作。
第4步:軟件設置
經過大量的實驗,我將設置過程細化為以下步驟。
全新安裝(完整) Raspbian最好在連接顯示器的情況下完成下面的大部分設置。首先啟用VNC服務器,理想情況下登錄/創建VNC帳戶,以盡可能簡單地連接到Pi。由于Pi無頭運行,你需要在啟動后連接并登錄到Duo,這很簡單,只需幾秒鐘 - 我通常只是用手機。
可以在“開始”》“首選項”》“Raspberry Pi配置”(“接口”選項卡)下啟用VNC。由于Pi將無頭運行,我們還需要告訴它假設已連接HDMI監視器,并手動設置分辨率(系統選項卡),以便腳本中的鼠標命令與Web應用程序上的元素對齊。我選擇了選項19,1280x720,如果你使用不同的分辨率,你可能需要在PiNG.py腳本中編輯鼠標坐標。
接下來我們需要從終端安裝PyUserInput:
pip3 install PyUserInput
。..并將PiNG.py腳本從GitHub下載到Pi上,我只是在主Pi文件夾中彈出它。為了節省在每次重新啟動后必須啟動腳本,通過編輯全局自動啟動文件,值得將其設置為在桌面加載后自動運行:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
。..并添加以下內容在底部的行指向腳本位置:
@python3 /home/pi/PiNG.py
重新啟動后,腳本應該自動運行。
因為Pi可能會等待一段時間響起門鈴(除非你真的很受歡迎),最好禁用默認的屏幕變暗,因為這可能會干擾鼠標點擊。反直覺地說,實現此目的的最佳方法是安裝Xscreensaver:
sudo apt-get install xscreensaver
。..安裝后您可以配置屏幕保護程序選項(開始》首選項》屏幕保護程序)并將其設置為已禁用
Python代碼在GitHub上非常簡單 - 它實際上只是對門鈴按鈕進行編程,以執行一系列鼠標點擊來控制屏幕上的Duo Web應用程序。除了它沒有真正在屏幕上,因為Pi正在無頭運行。
如果您已完成上述操作并且Pi已重新啟動,您應該能夠斷開顯示器(如果您使用過),請連接到通過手機或PC上的Pi通過VNC登錄到Duo,將其設置為全屏,選擇音頻源并設置視頻寬度,如上所述。一旦完成,您可以斷開VNC并且門鈴已準備好使用!
步驟5:Phat音頻
我知道音頻對于這個項目來說很重要,因為如果他不能正確地聽到你的話,就沒有必要遠程與郵遞員交談!我決定使用Pimoroni pHAT BEAT,因為我有一個方便 - 雖然在某些方面對于這個項目來說有點過分。
我只需要一個單聲道輸出用于門鈴,但是pHAT BEAT為兩個揚聲器提供立體聲輸出,以及一個漂亮的LED VU表。
關于安裝和安裝沒什么可說的。設置,我按照說明進行了操作。立即運行,聽取測試文件的催眠“前左,前右”。
使用pHAT進行音頻的唯一復雜因素是它將位于GPIO接頭上的所有引腳上 - 我需要其中一些來連接門鈴按鈕和LED。為了解決這個問題,我添加了一個pico hat hack3r - 在去年的Raspberry Fields的派對包中找到了。它是一個小巧但非常方便的電路板,它基本上將GPIO輸出分成兩部分,讓您在仍然暴露全套GPIO引腳的同時連接HAT。雖然這很棒,但你必須小心不要與HAT已經使用的引腳沖突,所以我仔細檢查了pinout.xyz并決定了以下內容:
門鈴按鈕 - GPIO22(引腳15) )和隔壁3v3(引腳17)
通知LED - GPIO9正極(引腳21,通過電阻),引腳25負極GND
連接網絡攝像頭,音頻,按鈕和LED起床和工作,我現在有一個工作的可視門鈴 - 雖然分布在整個工作臺上。接下來我需要考慮如何使用它以及它會是什么樣的。
第6步:額外的鐘聲
所以這個設置在板凳上工作正常,但是IRL會發生什么?我想在外面只有一個門鈴,以避免令人困惑的訪客,但同時又想知道如果有人在我無法接聽電話時發出聲音,或者如果其他人在房子里并且沒有聽到吶喊來了。
這些擔憂的答案是在構建中包括一個標準的無線門鈴發射器,它將與我們現有的鐘聲配對。這樣,即使構建的Pi部分由于某種原因停止工作,“正常”門鈴也會響鈴。
我從Ebay訂購了一個兼容的門鈴按鈕(使用,2.50英鎊),經過一些測試后,將兩根飛線焊接到其電路的微動開關觸點上。這意味著我可以砍下門鈴的塑料外殼并連接我自己的杠桿開關以觸發鈴聲。
有了這個故障保護讓我覺得在“狂野”中使用這個項目感覺好多了,而且還增加了很少的功能 - 一些視頻門鈴供應商會根據你的需要向你收取高達50英鎊的費用一個額外的鐘聲單元!
步驟7:案例邏輯
門鈴案例視頻:https://youtu.be/Bn1qj2Uvl0w?t = 416
基本單元視頻:https://youtu.be/Bn1qj2Uvl0w?t = 865
一旦我證明代碼可行,接下來的事情就是確定項目的案例。我希望它顯然是一個門鈴,但出于明顯的安全原因,我不喜歡將一個完全連接的Pi掛在我家門外的想法。
我決定將項目分成兩部分 - 在房子外面有一個門鈴單元,連接到內部的Pi基站。這方面有幾個很好的理由:
- 更少的部件擠入外殼并暴露在元件中
- 房屋內的WiFi信號更好,增加了以太網選項
- 更易于執行維護和維護升級
- 將我寶貴的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芯報警電纜,因為它非常薄且易于使用,每端都添加了一個連接塊。
第8步:斬波和擬合
一如既往需要拆除一些箱子。在他們準備好使用之前進行修改,所以我設置了旋轉工具來整理內部,一旦我剝離了原來的電路。
對講機是第一次,我不得不砍掉一個塑料柱以便為網絡攝像頭騰出空間,為廣角鏡頭(從Tiger購買)切出一個洞并打磨掉許多突出物以使揚聲器更容易適合。一旦我有一個空白的畫布,我就考慮了如何適應各種組件。我需要騰出空間:
- 一個新的揚聲器
- 兩個杠桿微動開關
- 無線門鈴電路
- 網絡攝像頭
- 電纜連接塊
- 用于LED的小型電路板電路
。..以及原始開關和機構 - 這看起來很寬敞但現在我開始懷疑。
為了簡化這個過程,我使用了Hitachi Pi TV轉換的方便提示,并首先構建了一個有機玻璃機箱來容納所有組件。 Perspex絕對是理想的選擇,因為在標記切孔位置時可以看到它。首先,我將其切割成大致尺寸,然后鉆孔,使其適合對講機現有的螺釘柱。從這里我逐個添加組件,鉆孔和切割孔以適合或為它們騰出空間。這樣做的另一個好處是我能夠在最終裝配之前測試一切正常!
為了使網絡攝像頭更合適,我必須小心地切掉很多塑料外殼,這樣它就會直接粘在廣角鏡頭后面 - 如果你需要這樣做,首先要撬開前面的它,不要像我一樣用鋼絲鉗和鉗子劈開背部!
我對卡式錄音機不太挑剔,并且無情地剝離了所有的電路和電路。組件只留下一個空盒子。像大按鈕這樣的化妝品部件只是熱粘在適當的位置,我用一個紅色的按鈕填充了一個破碎的小燈孔。
讓pi坐在磁帶窗口后面的正確位置我首先將Lego牌熱膠粘在一個舊的底部(在Pi 3歲生日派對上獲得!)Pi案。然后我在卡式錄音機內部的一個匹配的板子上正好位置,以制作一個漂亮的半永久性配件 - 在磁帶門打開的情況下可以訪問GPIO引腳,但我想確保我可以將Pi帶到交換SD卡等沒有任何麻煩。我已經學會了未來的拆卸和維護計劃的艱難方法!最后,我在卡式錄音機的外部切碎了一些插槽,以便裝配后USB和HDMI端口仍然可用以防萬一。
第9步:裝配和繪畫
裝配視頻:https://youtu.be/Bn1qj2Uvl0w?t = 2002
將有機玻璃底盤測試裝入對講機我給它涂了一層油漆 - 我痛苦不已嘗試在白色,亞光黑色和棕色之間進行選擇,但是選擇“紅葡萄酒”進行改變。
最后的組裝非常簡單,謝天謝地,我將對講機底盤熱粘到機箱的末端,也將無線門鈴電路安裝在設備背面,以便于更換電池。最后一項工作是添加一個銘牌,我只是用不同的字體大小打印出來 - 但當我加上這個時,我發現災難性的一些熱膠已滲透到表殼的一個小孔中,遍布新鮮涂漆并擋住銘牌插槽。
兩個小時的精巧手術刀刮了后來膠水消失了,但我不得不重新涂上一部分 - 完全疼痛,但實際上我應該讓油漆再硬化幾天 - 我永遠都不會學習!
步驟10:安裝
準備安裝我涂上一些薄的管道棕色以匹配前門,并鉆了一個洞來戳穿電纜,使用橡膠墊圈填補空隙。我離開自己大約一個小時來適應它,但這還不夠時間!從理論上講,我只需要安裝門鈴單元,將電線穿過門并將警報電纜重新連接到基座單元,這應該是直截了當的 - 除此之外什么都沒有。
對講機很容易固定在門框上,使用強力的3米尼龍搭扣墊,額定重量是單位的兩倍。當我重新連接電纜時,我發現我將其中的兩個剝開了剝離的末端,并且使用不同長度的電纜需要使用鑷子進行一些精細的工作來進行連接。很快就完全連接起來了,我打開了Pi來測試它。這里出現了第二個問題 - 門廊里非常弱的WiFi。不用擔心,我想,并添加在以太網電纜和電力線適配器,這解決了問題。
接下來是現實世界的測試,我通過VNC登錄設置Duo - 這個工作正常,但是當我設置音頻源時,PyUserInput動作就像我按下了一樣門鈴 - 一次又一次,視頻通話幾乎和我拒絕它們一樣快。這讓我大汗淋漓,我仔細拆除了所有東西以檢查連接,因為它在工作臺上工作了近一個星期。在檢查連接并發現任何不妥之處后,我更換了門鈴桿開關并用萬用表測試了整個裝置的電阻。然后我嘗試了另一種pHAT BEAT。然后是一個不同的Raspberry Pi。最后一個新鮮的pico hat hack3r。沒有什么工作,好像有人在外面不停地靠在門鈴上,劇本只是不停地開火和打電話。
唯一與工作臺設置不同的是電纜現在固定在放在管道內,在一個更加繁忙的環境中 - 結果證明是問題所在。干擾導致GPIO幾乎可以解釋任何按鈕。為了嘗試和解決這個問題,我首先在開關和Pi之間增加了一個1k電阻 - 這證實了我的想法,因為它將假陽性按壓減慢到一分鐘或兩分鐘。接下來,我盡可能地縮短了基本單元內的電纜,并用10k版本替換了1k電阻。這樣做了 - 我構建了一個簡單的腳本來測試它,并且每個按鈕按下只觸發一次,沒有幻像按下。
對于項目的一部分,我認為這將是有趣的&很容易這是一個令人沮喪的問題解決運動持續復活節周末,但找到解決方案是非常令人滿意的。整個事情的一線希望是換掉Pi - 我現在正在使用Pi 3 B +,而且通話速度和質量都有明顯改善 - 如果你計劃建立其中一個,我肯定會鼓勵你花費額外的幾磅在最高規格的Pi上。
步驟11:更多選項
隨著PiNG門鈴終于工作,我和孩子們(和貓)制作項目視頻有了很多樂趣,并開始思考我們可以用它做的其他事情。由于Python代碼很容易適應,所以這里有無窮無盡的選項,其中很多我希望很快就能嘗試:
設置腳本以在每次按下門鈴時拍照,并且將其上傳到Dropbox
將鈴鐺上的通知LED設置為在晚上不斷點亮,可以在設定的時間點亮,也可以使用像Astral這樣的Python模塊來計算當地的日落/日出時間
設置鈴聲&語音音量在晚上自動減少(我只是翻開盒蓋并使用pHAT上的按鈕)
在房子內加一個額外的按鈕取消電話,以防它響了但有人回答了門“手動” - 它在大約45秒后確實超時。
設置腳本以便您可以回叫門鈴 - 您可以輪詢窗口名稱或檢查哪個窗口具有焦點,并告訴它如果檢測到更改則單擊“回答”
從理論上講,你可以在按鈕&鍵盤按下以自動登錄到谷歌Duo以節省必須通過VNC執行此操作 - 雖然感覺有點不安全,并且Duo確實保持登錄狀態,我已經讓它在壓力機之間運行了幾天測試它。
還可以進行大量的硬件調整:
切斷USB電纜并使用多芯報警電纜進行擴展(可以獲得8芯很容易) - 我不是百分之百,這會工作或你能走多久,但這意味著要鉆一個小得多的洞。
制作一個使用PIR傳感器來啟動呼叫而不是按鈕的版本 - 這需要微調才能實用,但如果你的孩子失去了球并且你可以看到它背后會很方便在花園里的椅子。
添加一些額外的LED或單獨的太陽能泛光燈進行夜間照明
使箱子更加防水(我們的座椅位于遮篷下面所以不需要它太多)
用于接聽電話和電話。 PC的工作非常好,但你可能會建立一個專用的接收器單元,比如客廳,它會不斷地收聽電話,同時顯示照片或其他東西。它仍然可以使用PyUserInput點擊“答案”,你甚至可以使用AIY Kit集成Google智能助理,這樣在給定的語音命令上,呼叫就會得到解決 - 這將非常酷。
該技術的另一個好用途是建立一個超級簡單的視頻聊天站,只需一個大的“呼叫”按鈕 - 對于用老人或技術恐懼者輕松進行視頻通話非常有用相對的。
第12步:最后一位
我幾乎每次都這么說,但這是我迄今為止最有趣的項目。它恰好結合了新技術,舊硬件和實用性。也許我最喜歡的部分是它的簡單性和可靠性 - 我最初認為在無頭Pi上編程鼠標移動如果它起作用的話會很有氣質,但是效果很好。
使用Pi進行視頻通話也非常令人滿意,這已經成為我的“圣杯”之一,Google Duo做得很好,特別是在Pi 3B +上。通話的音質非常好,視頻肯定比預期的更順暢。我希望Duo的網絡版繼續發展,Google不會過多地破壞界面 - 盡管他們做了像移動按鈕或文本框這樣的東西,但是腳本中的坐標可以很容易地改變。我本周讀到他們可能會添加群聊,我很想知道這是如何運作的。
我現在正在回顧一些舊的電視轉換,并想知道是否將它們更新為視頻聊天控制臺,我確實有一個內置網絡攝像頭,它只需要一個鼠標來控制呼叫。將50年代和60年代想象出來的視頻電話的未來愿景變為現實真是太棒了。
我確實對這個項目有些過分了,但你可以用很少的組件構建類似的東西,只需要Pi,網絡攝像頭,揚聲器和放大器。按鈕真的 - 我們很樂意看到任何圖片或視頻,如果你做了一個,你可以發推特給我們@OldTechNewSpec或在評論中留下圖片。在專用機箱中使用漂亮的觸摸屏可視電話怎么樣,或者使用旋轉撥號盤選擇聯系人?
我在5月1日寫這篇文章,今天是一個重要的時刻 - 門鈴中第一個未經請求的“野外”電話!在市中心的午餐時間走路時,門鈴響起,我與亞馬遜的送貨員進行了很好的雙向交談。我發現他不需要簽名,討論在哪里存放包裹等,并且通話質量非常好,即使我在一條繁忙的街道上有一個不太好的4G信號。從那以后,我一直在笑著對自己說。
如果Pi有一個專用的門鈴HAT,在一塊板上集成了揚聲器,麥克風和按鈕,可以使用PI攝像頭或者可以放入3D打印的門鈴盒中,這是理想的選擇。網絡攝像頭 - 我認為這將是一個偉大的,低成本(與商業選項相比)和實用工具包,就像你現在可以獲得的野生動物相機套件。
考慮到這一點Google AIY Projects HAT擁有所有這些東西 - 當我試一試時,你不得不原諒我。..
-
可視門鈴
+關注
關注
0文章
20瀏覽量
8601 -
樹莓派
+關注
關注
116文章
1707瀏覽量
105633
發布評論請先 登錄
相關推薦
評論