回顧過往數星期,入侵者拍攝裝置共分為四期。首先,我們認識了硬件,接著學習測試,和設定 Twitter 戶口。今期踏入最後一個步驟,就是撰寫程式,將所有事情連結。此外,今期也介紹一下選購硬件的心得分享。
經過多次習作後,部分有興趣的同學或同工表示想研究更多,當中一個問題是如何選購硬件?其實選購硬件與選購生活物品相似,只要清楚用途後就會有方向。對入門者來說,建議前往官方網站搜集資料。
選購硬件小知識
從官方網站,初步可以看到 Rassberry Pi 共六種型號,對於初次入門來說,若沒有大小及預算限制,會建議選購較新及功能較齊全的版本。 Zero 版本是該公司低成本,但減省了所有外接接口的裝置。 Raspberry Pi 1 Mobile B+ 於 2014 年開始發行,科技產品若非成本考慮,有新買新,普遍會支援較多。
[row][double_paragraph]
[/double_paragraph][double_paragraph]
[/double_paragraph] [/row]
接下來就是看產品規格,很多人認為是難以閱讀的外星文。不過,細心看看原來有很多都是大家都略知一二的共同語言。以 Raspberry Pi 3 和 Raspberry Pi 2 的比較來說, Wi-Fi 和 Bluetooth 相信大家都熟悉,兩者分別不大。至於其他數字,由於列表不複雜,正好逐一研究,主要查看是有分別的選項,分別是處理器( Processor )和電量,從資料的數字來看, Raspberry Pi 3 比 2 更快支援更多。最後就是價錢,兩者的價值也一樣,選購就是如此簡單!
撰寫程式
回歸主題,完成了硬件的部分,也設定 Twitter 戶口後,接著就撰寫下列有關的 Python 程式碼。 intruderPhoto.py ,程式碼如下:
[row][double_paragraph] [/double_paragraph][double_paragraph] Python 程式 doorMontitor.py 的說明如下:
行數 1-4 : 載入所需要用的 Library , 當中包括 GPIO 、 Picamera 和與 Twitter 平台溝通的 Library 。
行數 5 : 建立一個新的 MotionSensor 物件,並將此物件連繫於接口 4 。
行數 6 : 建立一個拍攝工具。
行數 7 : 將拍攝的影像旋轉 180 度。
行數 8-11 : 在剛才「將照片傳送至 Twitter 」的步驟 4 中,開啟 Twitter 的過程中得出的四個關鍵數值,包括「 consumer_key 」、「 consumer_secret 」、「 access_token 」及「 access_token_secret 」。
行數 12-17 : 為令程式表達簡潔清楚,在這裏使用自定義函式( Function ) detectMotion 。在這個自定義函式當中,功能包括在 Python Shell 中打印出「 Motion Detected! 」字句;開啟拍攝鏡頭的預覽功能,並等待一秒。然後拍攝相片,並將相片存放在桌面上,檔案名稱設為 image.jpg 。
行數 18-23 : 這是另一個自定義函式 send_tweet ,當中會匯入四個關鍵數值「 consumer_key 」、「 consumer_secret 」、「 access_token 」及「 access_token_secret 」。
行數 25-26 : 將剛剛拍攝的相片檔案設定為 latest_photo; 設定上傳到 Twitter 的字句為「 Here is the photo of the intruder! 」。
行數 27-28 : 最後將相片及信息字句上傳到 Twitter 戶口。
行數 29-33 : 設立一個 while 循環,當紅外線人體感測器偵測到有人靠近的時候,便會呼叫自定義函式 detectMotion 及 send_tweet 。
行數 31 : 等待五秒,此設定目的是為了避免裝置會拍攝過多的相片。 [/double_paragraph] [/row]
總結
這次介紹的習作非常有趣兼有學習意義,既是動手作之餘,當中電腦程式編寫的部分涉及數據上載到互聯網,因此也是一個簡單的物聯網裝置,應用範圍亦都非常廣泛,發揮得宜,可以應用在不同的情境。例如若讀者家中有飼養小狗或小貓的話,只需調教一下感應器的位置,或額外加上一些功能,例如在相片上加入日期時間等資料,就可成為讀者觀察家中寵物的裝置。