我們通過硬件製作程雲端服務設定後,大部分的工作將準備就緒。今期我們將加入程式,就可將所有服務連結,日後毋須手動,也可進行自動監測。
[row][double_paragraph]
[/double_paragraph][double_paragraph] Python 程式 doorMontitor.py 的說明如下:
行數 1-5 :載入所需要用的 Library 。
行數 6-7 :設定磁控開關的接口位置。
行數 8 :列印出「 Raspberry Pi Zero W start to monitor the door 」表示電腦程式開始。
行數 10-13 :檢查門戶,若果被打開了, door 數值將設定為 1 ,否則設為 0 。
行數 14-17 :當檢查完結後,系統就會將 door 數值上載到 ThingSpeak 。留意在第 14 行中的 api_key ,是剛才 ThingSpeak Channel 的 Write API KEY ,只要複製上去便可以了。
行數 18 :等待( sleep ) 15 秒後,就會循環再重複上述的工作。 [/double_paragraph] [/row]
[row][double_paragraph]
[/double_paragraph][double_paragraph]
[/double_paragraph] [/row]
運用流程表
今期是一連三期的習作,相比過往的複雜度有少許提升,最主要是硬件以外,還涉及雲端儲存。在教學過程中,我們盡量考慮以基本出發,但少不免同學有疑問,比如製作的次序是否有相關?為何要等待 15 秒?如此類推的問題,說起來看似簡單,但若程式概念不清晰,少不免會有混亂感覺。要讓設計更清楚,也方便溝通與日後擴建,可製作流程圖。從流程圖中,就可清楚看出第一及第二部分的順序關連不大,但要完成兩者,才可進入撰寫程式一環。
另一方面,此佈局也有助提升邏輯思考。流程圖有助將問題切割,由大問題變成小問題,也就是邏輯解難的一環。例如末段的部分,是否要等待 15 秒,還是 1 分鐘?若要加插其他感應器或監察工具,例如發出通知訊息後,要啟動監視器,就可從當中思考及延伸。如大家有興趣,不妨使用 Google 文件製作。
[row][double_paragraph]
[/double_paragraph][double_paragraph]
[/double_paragraph] [/row]
總結
智能家居保安員製作簡單,非常適合初學者。用家只要利用有 Wi-Fi 功能的 RPi Zero W(或有 Wi-Fi 功能的 Arduino Yun ), 配合 ThingSpeak 平台,就可以做到。此外,系統也適合在其他情況下使用,例如在照顧家中的老人,想看看他有沒有定時打開藥箱服藥、或是監察大樓裡的房間正在被使用中。當然也可以單純通過此系統,自動傳送訊息作通知。只要讀者發揮想像力,相信改良此習作,就可以應用在更多不同的場合。