畢業女生把Python應用到極致,製作一扇防盜門系統,驚艷全場!

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

背景(私信小編007自動獲取Python學習資料)

畢業季又要到了,而這次我加入了畢業季的大軍,在外面租了房子。但是不知道為什麼,每天上班我都會擔心家裡會不會遭小偷?有沒有哪個插頭沒拔會不會引起火災啊?聽說這是病,只可惜我沒錢治,不過好在我有樹莓派。

好吧,我們要達到的目標是樹莓派通過傳感器判斷是否有人闖入或者是否有火焰,並將數據發送到服務器,手機再從服務器獲取數據。於是流程大概就是這樣的:

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

硬件準備:

樹莓派

人體紅外感應模塊

火焰傳感器

10K電阻

麵包板和杜邦線

人體紅外感應模塊和火焰傳感器都是通過樹莓派的GPIO口與樹莓派連接的,我們使用11號和12號引腳。樹莓派的GPIO有多種編號方式,為了防止懵逼我們這裡就只說一種,看圖,下面那個迷之突起就是代表它是1號引腳,別人還友好的標出了P1。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

我們用12號引腳連接人體紅外感應模塊,11號引腳連接火焰傳感器。

硬件連接很簡單,人體紅外感應模塊雖然供電要求5V但是信號輸出卻是3.3V,而且電流很小,所以信號輸出OUT直接連接12號引腳就行了。人體紅外感應模塊也就是一個熱釋電模塊,人體輻射的紅外線中心波長為9~10–um,若探頭接收到人體 輻射的紅外線則輸出高電平。簡單的說就是有人時輸出高電平,沒人時輸出低電平。當然,這麼一來弱點也很明顯,第一就是容易受到其他熱源的影響,第二就是 人體的紅外輻射容易被遮擋,小偷如果用很奇怪的東西把自己包裹的很好,那麼就無能為力了。記得小時候看科普節目,有人用一面玻璃騙過了紅外感應報警器。

火焰傳感器就是探測有沒有火焰嘛,它自身的電阻值會隨著火焰的增大而變大。那麼如何採集信號呢?我們讓它與10K電阻串聯,初中學過串聯分壓,電阻值越大分得的電壓也就越大。蛋似,它是輸出模擬信號,而樹莓派沒有自帶ADC,怎麼辦呢?當然我們可以直接買一個數字信號輸出的火焰傳感器模塊,也可以自己買個ADC芯片,而我試了試,當火焰靠近傳感器時輸出電壓能達到3V,也就是說滿足了樹莓派對高電平的定義。當然了,這樣的話只有火焰足夠大才能報警,但也比沒人知道發生火災的情況好。火焰傳感器的連接方式如圖,不過要注意的是,

樹莓派的GPIO電平是3.3V,所以這裡的VCC也應該是3.3V,信號輸出就直接連到11號引腳就好啦。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

然後附上引腳的編號圖,大家對照著圖給人體紅外傳感器和火焰傳感器連接上VCC和GND就好了。

比如我是1號引腳給火焰傳感器供電,9號引腳作為火焰傳感器的GND,11號引腳作為火焰的信號線;2號引腳給人體紅外感應模塊供電,6號作為人體紅外感應模塊的GND,12號引腳是信號線。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

連接好後大概就是這樣:

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

然後就是Python編程了,樹莓派上我們當然用python,python可以很方便的操作GPIO。我們讀取GPIO的電平情況然後發送到服務器就行了。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

在服務器這邊,我們就簡單的用flask寫一個api吧。

首先要給樹莓派提供一個發送信息的api,為了方便我們使用GET請求的方式發送數據,參數i表示否是有人闖入,參數f表示是否有火焰。之後要給手機留一個獲取信息的api,返回json格式的數據,當然為了方便我們也是使用GET請求數據。其實這種對實時性有要求的項目還是用socket比較靠譜。代碼大概就是長這個樣子,我承認我偷了個懶。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

再之後就是安卓手機這邊了,其實功能簡單到我都不知道界面該怎麼做,就是顯示有沒有人闖入和有沒有火焰。當然,我們在有人闖入和有火焰時也要有報警提示才行。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

安卓這邊也比較簡單。首先是發送GET請求從服務器獲取數據。貌似現在有新的方法做GET請求了,我很久沒寫過安卓app了所以方法有點老舊還請大家指教。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

當然不能在主線程裡面直接做網絡訪問,我們另起一個線程,每5秒鐘請求一次數據,並且通過handler與主線程通信。另外當發現有人入侵或者有火焰時,在通知欄彈出消息提示。

畢業女生把Python應用到極致,製作一扇防盜門系統,驚豔全場!

這個主要還是對我的心裡安慰,不過現在上班的地方離住的地方走路只要10分鐘,所以即使有事我也能跑回來。這樣想想,我都不用去治病了(霧)。


分享到:


相關文章: