如何從樹莓派發(fā)送推送通知到智能手機
如今,家庭安全非常重要,市場上有許多監(jiān)控系統(tǒng)可以從任何地方監(jiān)控您的家庭或辦公室。但是這些基于IP的安全系統(tǒng)非常昂貴,而且更便宜的系統(tǒng)只能在本地傳輸數(shù)據(jù)。
所以在這里,我們正在建立一個簡單而有用的家庭安全系統(tǒng)使用樹莓派和PIR傳感器。該系統(tǒng)將檢測到入侵者的存在,并通過向用戶的手機發(fā)送推送通知來快速提醒用戶。樹莓派用于控制整個系統(tǒng),PIR傳感器用于檢測任何運動。這個系統(tǒng)可以安裝在你家或辦公室的門附近,如果有人進入你的房子,你可以得到實時通知。
樹莓派是最適合物聯(lián)網(wǎng)項目的微控制器,因為它內(nèi)置了Wi-Fi,可以輕松連接互聯(lián)網(wǎng)。要開始使用樹莓派,您應(yīng)該有一個可以使用HDMI電纜連接的顯示器,或者您可以使用SSH終端或VNC服務(wù)器訪問它。在我們之前的項目中,我們通過各種物聯(lián)網(wǎng)平臺控制樹莓派GPIO。
什么是推送通知?它是如何工作的?
推送通知就像在智能手機或臺式機/筆記本電腦上彈出的即時消息。這些消息由后端服務(wù)器推送,其中包含一些與最新優(yōu)惠,促銷,廣告,分?jǐn)?shù)等相關(guān)的信息。幾乎所有的移動平臺都支持推送通知,大多數(shù)應(yīng)用程序都以推送消息的形式發(fā)送通知,比如Facebook、amazon、chrome等。然而,你可以關(guān)閉來自特定應(yīng)用程序的推送通知。這項服務(wù)可以幫助用戶在屏幕上彈出重要信息時繼續(xù)工作。
在Android設(shè)備中,推送消息以應(yīng)用程序圖標(biāo)和狀態(tài)欄中的消息顯示。當(dāng)用戶點擊那個圖標(biāo)時,它就會指向那個特定的應(yīng)用程序。
推送通知是如何工作的?
有一些服務(wù)器用于向你的設(shè)備發(fā)送數(shù)據(jù),如Android的GCM (Google Cloud Messaging),微軟的MPNS和蘋果的APNS。
以下步驟展示了Android設(shè)備上的推送通知:
?通過發(fā)送發(fā)送方ID和應(yīng)用程序ID,首先在GCM服務(wù)器上注冊android設(shè)備。
?注冊成功后,服務(wù)器會給android設(shè)備頒發(fā)一個注冊ID。
?然后將接收到的注冊ID發(fā)送到處理該特定應(yīng)用程序的服務(wù)器。
?應(yīng)用服務(wù)器將在數(shù)據(jù)庫中存儲注冊ID以供以后使用。
每當(dāng)需要推送通知時,應(yīng)用服務(wù)器將消息連同設(shè)備注冊ID發(fā)送給GCM服務(wù)器。
使用該設(shè)備注冊ID, GCM服務(wù)器將把該消息傳遞到受尊重的移動設(shè)備。
現(xiàn)在需要一個服務(wù)器來承載推送通知服務(wù)。為此,我們有很多平臺,比如Pushetta、Pushsafer、PushBullet等。從所有這些服務(wù)中,Pushbullet都很容易免費使用。Pushbullet有預(yù)構(gòu)建的python庫,這使得它很容易與樹莓派一起使用。
設(shè)置Pushbullet帳戶
1. 首先在Pushbullet網(wǎng)站上創(chuàng)建一個賬戶。
2. 現(xiàn)在,我們需要帳戶設(shè)置中的訪問令牌密鑰。所以,點擊設(shè)置,然后點擊賬戶,向下滾動。您將找到創(chuàng)建訪問令牌按鈕。點擊它,就會出現(xiàn)一個鍵。復(fù)制此鍵,它將在代碼中需要。
要顯示推送通知,請在android設(shè)備上安裝Pushbullet應(yīng)用程序。現(xiàn)在,使用用于獲取訪問令牌的相同帳戶登錄?,F(xiàn)在推送消息將開始出現(xiàn)在給定的屏幕上。
在樹莓派上安裝Pushbullet庫
運行以下命令安裝在Raspberry Pi上使用Pushbullet所需的庫。
現(xiàn)在,我們準(zhǔn)備編寫python代碼來檢測運動并在有人進入房間時發(fā)送推送通知。
組件的要求
?Raspberry Pi,安裝Raspbian OS。
?PIR傳感器
?跳線
線路圖
在這個項目中,只有PIR傳感器與樹莓派相連。在這里,PIR傳感器的信號引腳連接到樹莓派的11號引腳,如下圖所示。
代碼與說明
完整的python代碼和工作視頻在本項目的末尾給出。
首先導(dǎo)入使用RPi gpios、pushbullet和time所需的所有重要庫。
現(xiàn)在,設(shè)置連接PIR傳感器的GPIO模式和引腳編號。
輸入我們在Pushbullet上創(chuàng)建帳戶時復(fù)制的訪問令牌,并打印正在使用您帳戶的所有設(shè)備。
現(xiàn)在,在while循環(huán)檢查任何運動檢測通過檢查PIR輸出引腳。
如果有人進入PIR傳感器的范圍,那么值將是“1”?,F(xiàn)在,從Pushbullet應(yīng)用程序中輸入設(shè)備名稱。設(shè)備名稱也可以在運行此腳本時找到,如下圖所示。然后輸入要作為推送通知發(fā)送的消息。
現(xiàn)在,最后復(fù)制項目末尾給出的完整代碼,并以.py擴展名保存該文件。然后使用下面的命令運行這個腳本
確保PIR傳感器連接正確。
每當(dāng)有人靠近PIR傳感器時,運動消息將顯示在終端上,您將獲得推送通知,如下面的快照所示。
本文編譯自iotdesignpro