用Python實時追蹤你家的電量使用情況
現在的電錶(附在你家房子外面的玩意)在每瓦時電量被使用後就會發出一下紅外閃光,穿過電錶頂部的埠。事實證明,你可以很容易地監測這一閃光,把它解碼變成“實時的”電量使用情況,然後做成像這樣酷的圖表:
Y軸表示實時功率,單位是KW,X軸表示時間。
這閃光燈,好像有很高的瞬間準確度,至少我家的是這樣,這意味著當1瓦時電量被使用時,它會很精確地閃了。這實在太棒了,因為它使得顯示精確、實時的電量使用情況可以實現。比如,當我開啟我家辦公室裡的電燈時,我很快可以看到功率上跳了~65W,然後當我把燈關掉時功率又下降了。
這是一種可以追蹤哪些電器或者瘋狂電腦又或者寄生耗電在大量地吃你家的電的有趣的方式!
這些年我為這個已經做了幾個設計。我上一次的嘗試被摧毀了,因為閃電擊中了我的房子(不過,總是會有一絲光明的!),所以,我決定這次嘗試一些新的東西,且因為新的方法更加簡單以及把脈衝監測轉用Python實現,所以我很哈皮!
我用一個很普通的類比電路來監測紅外脈衝。這個電路由2個串聯起來的100K的電阻和一個與其中一個電阻並聯起來的紅外光電二極體組成。確保把光電二極體的極性搞對,否則它是不會為你工作的!把你的光電二極體裝到你的電錶上去,將它保持跟閃光燈平行使其可以“看到”紅外脈衝。我又在那個電阻上並聯了一個小小(0.01μF)的陶瓷電容,用來抑制瞬時電磁場,不然就用較長的電線吸收到我的電錶去。
終於,我使用這個簡單的USB音訊介面卡將難題轉化為數字領域的難題,把那2個串聯電阻的兩端接到介面卡上的麥插口從而實現模數轉換。這個USB音訊介面卡使用~4.0V偏置電壓驅動麥插口,這很棒因為不然你就需要一個外部電源了。
當沒有脈衝時,光電二極體就像是一個斷開的開關,這意味著在麥插口上接有固定值為200K的阻性負載。當有脈衝產生(我的看起來持續了大約10毫秒),光電二極體就像是一個閉合的開關,突然間把串聯電阻的阻值降到了100K。阻值的下降在麥插口的電壓上引起了一個可以很好地被監測到的脈衝(先為很大的負值然後變為很大的正值)。我覺得有點可疑因為偏置電壓的後面有一個電容(但:我不是類比電路工程師,所以這算是一種猜測!)。
你可以把這個USB音訊介面卡插到任何電腦上去;我使用了一個Sheeva 插頭電腦(討人喜歡的小玩意,非常低耗——我有三個!)。我記錄了數字抽樣值(arecord在2KHz的頻率下工作得很好)然後用Python進行解碼,從而每當值降到-1000以下就監測一個脈衝。你可以很容易地計算基於兩個相鄰脈衝之間的時間的實時功率,把它存進資料庫,然後使用Google的visualization API製成上文那種圖表(我使用dygraphs)。
我上一次的方法沒有很高的瞬時精確度(例如:它隨時間的變化很平滑),這樣就看不到有趣東西了。舉個例子,現在我能夠分辨阻性負載(咖啡機,微波爐,crockpot電鍋)和感性負載(電冰箱的壓縮機,吸塵器)之間的區別了,因為感性負載在開始時會有一個大幅的上升,比如電機,因為為了轉起來電機要消耗大量的電量。
原文:Track your home's live electricity usage with Python
歡迎參加iTran樂譯4期!
相關文章
- 實時光線追蹤技術:發展近況與未來挑戰
- 追蹤時間的10個給力應用程式
- 用 Rust 實現簡單的光線追蹤Rust
- SQL追蹤和事件追蹤SQL事件
- 實時通訊全鏈路質量追蹤與指標體系構建指標
- 鏈路追蹤技術的應用及實踐
- Tockler for Mac時間追蹤工具Mac
- 如何追蹤Python動態Python
- 電子郵件被黑客追蹤黑客
- RTX顯示卡實時光線追蹤技術解析 英偉達RTX顯示卡的光線追蹤技術是什麼?
- 安卓應用對多核心的利用情況安卓
- OpenCV-Python實戰(16)——人臉追蹤詳解OpenCVPython
- 監控java程式啟動時的CPU使用情況Java
- 基於Python-sqlparse的SQL表血緣追蹤解析實現PythonSQL
- 電力資料:追蹤全球電力市場轉型
- 10 款 Android 平臺的任務管理和時間追蹤應用Android
- 利用神器BTrace 追蹤線上 Spring Boot應用執行時資訊Spring Boot
- go-zero的全鏈路追蹤與超時Go
- AsyncLocal<T>在鏈路追蹤中的應用
- 追蹤mysql操作記錄時間1.MySql
- 監控 Python 記憶體使用情況和程式碼執行時間!Python記憶體
- 臨時表空間的空間使用情況查詢
- 教你如何用Python追蹤快遞資訊!Python
- 用ping檢測網段ip的佔用情況
- go的鏈路追蹤Go
- 虛幻引擎中的實時光線追蹤(二):建築視覺化視覺化
- 工作中平板電腦的使用情況–資料資訊圖
- 日誌追蹤
- 程式碼追蹤
- 如何用實時資料追蹤來解決專案瓶頸?
- 監控index 的使用情況Index
- 監視index的使用情況Index
- VR先驅研製眼球追蹤 未來VR頭顯將實現眼球追蹤VR
- 用HTML5 Geolocation實現一個距離追蹤器HTML
- 輕量級的分散式日誌追蹤利器,十分鐘即可接入,從此日誌追蹤無難事分散式
- 微服務追蹤SQL(支援Isto管控下的gorm查詢追蹤)微服務SQLGoORM
- 金州勇士隊採用可眼動追蹤VR頭顯,檢測球員的傷勢情況VR
- 「Java分享客棧」隨時用隨時翻:微服務鏈路追蹤之zipkin搭建Java微服務