用 LinkIt One 做烘衣機自動控制裝置

Description

Description

作者:章國俊

專案緣起

前一陣子用了多年的烘衣機壞了,原本想修理一下繼續使用,不過考量安全問題,還是買了台新的。但是新機器在使用上有一點不便利之處,尤其是依據設定的烘乾時間結束之後,有時衣服還是溼的;不然就是設定的時間過長以至於浪費了許多電力。這次打算使用LinkIt One來做一個裝置,可以在烘衣機上先設定一定足夠烘乾衣服的時間,但當衣服已經烘好時,提前結束烘乾的行程以節省電力。

Jpeg

這次要運用LinkIt One現成的範例來修改,以迭代(iterate)的方式進行,並儘量減少程式碼(雖然我喜歡寫程式),逐步建構出一個「外掛」的烘衣機控制裝置。雖然直接取代原本的定時開關感覺比較厲害,但仍以不拆開機器為原則,先完成這個版本。

在學習各種開發板的使用時,溫溼度計、繼電器…是常看到的範例,有趣的是這些範例可以用在這裡做出一個有用的裝置的!

以下分享一下使用LinkIt One搭配 MediaTek Cloud Sandbox (MCS) 以及我邊做邊學的過程!在這專案中會使用到:

  • 在 LinkIt One 使用溫溼度感應器
  • 透過 WiFi 連上網路
  • 運用 MediaTek Cloud Sandbox
  • 透過 RESTFul API 傳送、取得資料

想法驗證

在衣服烘乾的過程中,烘乾機所排出的空氣溼度應該會逐漸降低,直到持續在一個溼度不再降低時,應該就是已經烘好了(這是一個假設),此時就可以切斷烘乾機的電源。

先用 LinkIt One上實作一個雛型並測試,試看看這個概念是否可行,然後做出一個實用的裝置。步驟如下:

  • 步驟 1:使用 LinkIt One + Grove – Temperature & Humidity Sensor Pro 偵測溫、溼度。
  • 步驟 2:讓LinkIt One連接 WiFi,將溫溼度數據傳送到MCS,觀察自開始烘乾到結束時溫溼度的變化,以確認烘衣機排氣的溼度可以用來決定是否提前關閉烘衣機。MCS在這個階段的主要任務是紀錄資料,然後運用這些資料驗證可行性。
  • 步驟 3:若驗證上述方式是可行的,開始規劃程式,並加入繼電器用來控制電源。
  • 步驟 4:藉著這個裝置可以上網的能力,增加更多功能:例如即時通知、耗電量統計…

Jpeg

在完成設計後(完整的實作分享,請見MakerPRO教學文),我真的洗了一堆衣服,然後開始烘乾,並且把LinkIt One拿去測試。程式每10秒鐘開始將溫溼度傳送到MCS。此時,也可以看到MCS的Console上面數據不斷的變化。一個多小時之後,衣服乾了。

接著需要觀察這段時間的數據。雖然MCS Console上面可以察看歷史資料,也可以只顯示一個區間的數據。

05cdfc6e-3ad7-11e5-8c81-83792868b28b

不過就是沒辦法順利顯示所期望的區間,但還是可以透過RESTful的API來取得(說明文件)。資料取得之後,用熟悉的試算表工具把這些數據以圖表方式顯現。可以發現溫度會不斷上升,而溼度會不斷下降,而在衣服烘乾時趨於穩定(不過似乎太早結束實驗了)。

至此,可以做到運用溫溼度感測器的數據來判斷衣服是否已經烘乾。不過有兩個問題:

  1. 在測試過程中LinkIt One到WiFi AP 經常有斷線的情況,只好手動重置,也造成了資料不連續。
  2. 資料的抖動(jitter)過大,有可能會造成誤判。

下階段要做以下的改善:

  1. 當程式發現網路斷線時,必須能夠自動恢復連線。
  2. 用程式實現低通濾波器消除資料的抖動,讓溫、溼度數據的曲線變得平滑,易於判斷。

Resource

完整教學文(MakerPRO)連結

Contact

Contact
  • Category
    Smart Home
  • Location
    No Location

Project簡述

Project簡述
  • Excerpt
    這次打算使用LinkIt One來做一個裝置,可以在烘衣機上先設定一定足夠烘乾衣服的時間,但當衣服已經烘好時,提前結束烘乾的行程以節省電力。
  • Author
    章國俊

您的姓名 〈需填寫〉

您的電子郵件信箱 〈需填寫〉

主旨

您的信件內容