• Elvis Tsang

MODI 物聯網入門應用 (2):洗手間空置指示燈

先前我們介紹過 MODI 模組化電子積木平台 以及如何利用 MODI 模組搭建簡單的門窗警報系統,今次我們繼續嘗試使用 MODI 平台提供的模組來學習如何解決一些現實中的問題,而本文的主題是洗手間空置標示牌。


在公共場所或學校的洗手間,我們有時候可以看見廁格門外會有指示燈或者門鎖上會有顏色標示是否已經鎖上,用作標示廁格內是否有人。但是有時候可能會有人忘記鎖上門,或者沒有相關的設計。今次的應用例子就會教大家如何設計一個簡單的空置指示燈,以標示門內是否有人正在使用洗手間。


首先,我們需要想好指示燈的整個運作流程。最簡單的可以是以下這種「手動」的模式:

1.    當用家進入洗手間後按下按鈕,LED將亮起紅色
2.    當用家離開時再次按下按鈕,LED回復綠色

但是以上這個簡單的設計並沒有好好利用 MODI 平台所帶來的好處,例如使用各種傳感器達到自動化操作。MODI 套件中的紅外線模組 (IR Module) 和超聲波模組 (Ultrasonic Module) 提供了兩種非接觸式的方法來檢測附近是否存在物體,其中紅外線模組可以檢測 4-30cm 而超聲波模組則可以檢測 50-450cm 的範圍。


值得注意的是,由於紅外線模組使用紅外線作為偵測,可檢測的角度較為窄;而超聲波模組,顧名思意,即使用超聲波,可檢測的角度比較寬。這種現象是由於紅外線的波長 (wavelength) 較短,繞射 (diffraction) 不及超聲波明顯,導致發射出來的紅外線較集中而不會擴散太多。我們可以從下圖了解超聲波 (圖左) 以及紅外線 (圖右) 的檢測範圍的差別。

本示意圖僅供參考,圖例不按比例繪畫

由於兩種傳感器模組在檢測角度和距離皆有不同的特點,我們可以視乎實際需要來決定使用哪種模組作為傳感器,甚至可以同時使用兩種模組互補不足。


在這個應用例子中,我們可以使用超聲波和紅外線模組感應洗手間內是否有人,從而改變門外 LED 指示燈的顏色:

1.    量度紅外線或超聲波模組的讀數
2.    如果讀數在某一範圍內,代表門內有人,LED將會亮起紅色
3.    如果讀數超出指定範圍,代表門內正在空置,LED則亮起綠色

在今次的應用例子中,我們會使用超聲波模組,有關紅外線模組的編程使用可以參考這裡。今次我們需要的 MODI 模組有四個:

  1. 超聲波模組 (Ultrasonic Module) - 近距離物體感應

  2. 二極管模組 (LED Module) - 空置指示燈

  3. 網絡模組 (Network Module) - 連接電腦和手機 App

  4. 電池模組 (Battery Module) - 提供電源

除了我們先前介紹過的磁力連接方式,我們亦可以透過 MODI Expert Kit 套裝所提供的 5-pin 接線以及轉接頭連接兩個需要安裝在不同位置的模組,例如右圖中的二極管模組 (LED Module) 和旋鈕模組 (Dial Module)。這種方式可以大幅增加設計的靈活度,不用限制整個系統的每個模組都必須相鄰其他模組。



在今次空置指示燈的應用中,我們可以將二極管模組放到門外,而電池模組、網絡模組和超聲波模組則可以放到門內。大家可以參考以下幾張示意圖如何將系統的每個部分安裝在洗手間內。

安裝在門內的超聲波模組
安裝在門外的 LED 空置標示燈
以上示意圖僅供參考,一切以實物為準

將所有 MODI 模組連接好,並使用 USB 數據線連接電腦和網絡模組後,我們就可以開始編程。打開 MODI Studio 並建立新項目 (New Project) 後,應該可以看見我們的模組在右邊的面板出現。


假設洗手間內有人時,超聲波的讀數會在 50cm - 100cm 範圍內,我們可以使用 if 條件句控制 LED 亮起紅燈:

再次從左手邊面板把 if 拉到底下,選擇 else 然後把 LED 顏色改為綠色:

以上 else 的意思是,如果一開始 if 條件句中的條件不成立,則會執行 else 以下的代碼。所以如果超聲波模組的讀數為 50-100cm 內,LED 會亮起紅色代表門內有人,否則亮起綠色代表空置。


把代碼寫好後,按下頂部的 Upload 即可把代碼上傳到 MODI 模組內,然後我們就可以按照前面介紹的安裝方式,或者其他合適的方法安裝到洗手間內。


大家完成以上的步驟後,不妨想想如何實現以下功能:

  1. 如果洗手間現在空置但是十分鐘內有人使用過,亮起黃燈

  2. 使用多個超聲波模組或紅外線模組更準確地感應門內是否有人

  3. 將多個空置指示燈系統組合在一起,並使用顯示器模組 (Display Module) 顯示現時有多少個空置的廁格可供使用

除了以上幾項功能外,還有很多其他可以改進的地方,大家可以根據實際需要來設計一個更實用的空置標示系統,甚至可以使用類似的設計應用在其他地方。