在Arduino的世界裡所接觸到的多半是直流電的範疇,但是這次的應用對象比較特別,就像醫生脖子上掛著聽診器為病人聽診,Arduino聽診的對象是交流電,利用感測器來聆聽交流電路的電流量。
家中大大小小電器,翻轉電器的背面或底部,就會看到一張印有功率瓦數的標籤,標籤上的數據很清楚告訴使用者,這個家電產品是屬於是省電的,還是高耗電的。既然家電都已經明白告訴我們耗電的數據,要為家裡那些屈指可數的用電設備設計一套電力監視系統,未免太過小題大作。不過基於好奇和興趣,還是花了時間心力做出一套自認堪用的成品。實作過程就是在驗證自己對書本學習的認知,並在過程中矯正自己對交流電許多錯誤的觀念。有關家庭電箱的配置知識,這篇技術文獻給我莫大幫助:實作派電子實驗室:配電箱-接線怎麼配置-搞懂110V與220V在哪裡
製作的主要材料,除了不可或缺的MCU外,其他兩位要角,分別是電流互感器(CT,Current Transformer) SCT-013 與類比數位轉換模組ADS1115。ADS1115網路上的說明應用就像其他Arduino的模組一樣多到不可勝數。但是SCT-013的貼文就少了,ADS1115模組搭配SCT-013的應用更是如毛麟角。我是看了這篇文章的介紹才讓我決心動手一搏。
電流互感器就是日常用來量測交流電流的手持式勾表的鉗體,屬於非侵入式的電流量測手法,可在不變更交流線路下取得電流值,雖然量測誤差比侵入式手法來得大,但在本次的應用中仍是可接受的範圍。
配電箱是家裡電力系統的控制中心,要做電力監視系統就得從電箱內部著手。一般的做法是在電箱內安裝電力資料蒐集盒,蒐集到的電流資料透過無線WiFi上傳到伺服器儲存,需要資料時,無論是當下即時資料,或是長期歷史資料,再從伺服器擷取分析。我的應用單純一點,不需要伺服器,也就沒有複雜的網路技術架構。電箱是封閉的鐵箱子,不能從蒐集端直接拉出線路接上顯示幕來顯示電力資訊,只能在電箱外面另外設計一個獨立的資訊顯示盒(面板端),兩者之間再利用藍牙通訊傳遞資料。鐵製的電箱容易隔離網路信號,由於我的面板端就掛在電箱外面,兩個控制盒距離非常接近,還不至於發生通訊不良的問題。
主要材料清單如下:
蒐集端:
面板端:
電箱的電力配置,110V加220V共有13條迴路,加上電力公司引入的主要三條主幹線路,總計16條線路需要監控,也就是需要安裝16個SCT-013。電箱內部空間有限,SCT-013的體積不算小,塞不了那麼多個 聽診器。即使勉強塞進去,16個SCT-013就有16條引線連接到蒐集端控制盒,引線接頭規格是視聽器材3.5mmAV雙聲道接頭,蒐集端控制盒必須安裝16個AV母座,而這個控制盒本身也要塞進電箱內部,所以也有體積上的限制。每片ADS1115模組可以支援兩個SCT-013,16個SCT-013總共需要8片ADS1115模組。
再來就是考量蒐集端控制盒內部實際能夠收納的空間。控制盒體積已經是我挑選可以塞進電箱的最大尺寸,但還是無法符合理想的安裝數量需求。經過不斷地整併與微調,最後在控制盒內塞進6片ADS1115模組與12個AV母座,總計可連接12個SCT-013,這是空間妥協下最大的支援數量。SCT-013的需求由16個減少到12個,另外4個迴路的總電流,只好由電路總流量減去監控的分支迴路流量粗略估算取得。
ADS1115走的是I2C通訊協定,量測每個SCT-013須要花1秒鐘才能計算出RMS電流。12個SCT-013量測一輪下來就需要12秒。ESP32有兩組I2C bus,為了提高效率,6片ADS1115平均分配給兩組I2C bus,將量測時間縮短到一半,這也是ESP32最大的支援數量。由於前後量測時間的落差,每個CT資料並非同步更新,有時難免會發現數據不一致的窘況。
為了確認每件從網購來的ADS1115與SCT-013的品質,挑了幾樣大小家電測試,輔以電流計相互比對,確保沒有買到瑕疵品,同時也驗證程式的可信度。
以往視覺或聲音的輸出大都依賴喇叭或LED燈號或七段顯示器模組,由於這次輸出的數據比較多樣,面板端採用了ILI9341 240*320 3.2寸液晶顯示屏模組。挑選這款屏幕尺寸的原因很單純,就是為了配合控制盒的挖孔大小。這個模另附有螢幕觸摸功能與SD讀卡機,螢幕觸摸功能非常方便,不需要再為使用者安裝其他的按鍵輸入介面。可惜的是螢幕觸機件很脆弱,用不到三天就拜拜了,害得我最後還是需要從ESP32本身拉兩條內建的觸摸IO充當按鍵介面。
以下為完工後的成品組裝圖片:






留言
張貼留言