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