王鵬,池建鋼,葉金霖,邱美艷
(天津中德應用技術大學,天津,300350)
能源問題是關系著國家經濟穩定增長、社會可持續發展[1],對于國民,我們應該知道家用電器的功率以便節約用電[2],為此將真實的能耗情況顯示出來,可為用戶發現更多的節能機會和更優化的能源供應和管理方案[3]。基于此,用電設備的電量檢測及控制裝置得到了快速發展[4]。本文基于物聯網技術設計的用電設備能耗檢測系統,可實現對直流用電設備的電流、電壓和功率的實時檢測,并將能耗信息上傳到物聯網平臺,用戶可在后臺打印能耗信息。
能耗監測系統由能耗檢測系統和數據打印系統兩部分組成。其中,能耗檢測系統是以掌控板為主控制器進行開發設計,采用高精度電壓電流功率測量模塊進行能耗檢測,采用Easy IoT作為物聯網平臺,采用MQTT協議進行數據上傳;數據打印系統是以Micro:bit為主控制器進行開發設計,采用OLED顯示屏進行能耗的顯示,采用OBLOQ物聯網模塊進行通信,采用嵌入式熱敏打印機進行數據打印,最終實現用電設備能耗檢測及打印的效果。系統設計方案如圖1所示。

圖 1 系統設計方案
本系統的硬件電路設計主要包括能耗檢測系統電路設計和數據打印電路設計。采用雙控制器便于對整個系統進行分塊管理,在數據打印系統功能故障的時候,仍然可以通過登錄物聯網平臺進行實時數據的檢測。能耗檢測系統電路主要通過能耗監測模塊進行相關工作,首先通過能耗檢測模塊對測試環境的能耗進行檢測,將檢測到的數據保存在控制器的存儲模塊內,再將檢測到的數據上傳到Easy IoT物聯網平臺以便于與進行數據打印。數據打印系統電路主要功能部分主要通過物聯網模塊將檢測到的能耗信息從Easy IoT物聯網平臺讀取下來,在顯示屏上進行相關數據的顯示,并且通過熱敏打印機進行相關信息的打印。
(1)主控制電路
能耗檢測系統采用掌控版及其IO擴展板作為主控制器進行開發設計。掌控板采用ESP32作為主控芯片,將類型各異的傳感器和執行器集成在48mm×52mm的底板上,同時所有的輸入與輸出端口使用金手指的方式向外延伸,工作狀態穩定、外接設備時性能可靠。可以采用圖形編程和Python編程兩種編程方式。掌控板IO擴展板功能強大,可以供Micro:bit和掌控板兩種主板使用。可以外接數字或模擬插針口,I2C口和UART口,主控制器主要用于采集高精度電壓電流功率測量模塊的信息,并通過MQTT協議發送到Easy IoT物聯網平臺。
(2)能耗檢測電路
能耗檢測電路采用高精度電壓電流功率測量模塊進行能耗數據的采集,通過串口和主控制器進行通信,該模塊可采集當前的電流電壓及功率值。
INA226自動測量電流或功率。測量施加在IN+和IN-引腳之間的電壓和VBUS引腳上的電壓。在測量電流和功率值,必須通過配置校準寄存器(05h)對電流寄存器的分辨率和應用程序中并聯電阻的值進行配置,Current_LSB和分流電阻的值都用于計算校準寄存器的值,設備使用該值來計算基于測量的分流和總線電壓的相應的電流和功率值。能耗檢測模塊如圖2所示。
(3)顯示電路
顯示電路采用Gravity OLED-12864顯示器進行數據顯示,該顯示器是一種無背景光源的自發光顯示模塊,采用OLED專用驅動芯片SSD1306進行控制。該顯示器與控制器進行信息的傳遞時是通過I2C接口,且傳輸速率非常高,刷新率可達60赫茲,主要用于溫度和能耗數據的顯示。OLED-12864如圖3所示。

圖 2 能耗檢測模塊

圖 3 OLED-12864
(4)物聯網電路
物聯網電路采用OBLOQ物聯網模塊,該模塊可配合DFRobot公司自己開發的物聯網平臺(Easy IoT)一起使用,OBLOQ物聯網模塊是基于ESP8266所設計的,采用WiFi進行數據的收發。
圖4是能耗檢測系統設計電路的主體部分。OLED1通過I2C與控制器相連接,使用硬件I2C進行通信。能耗模塊通過串口進行數據收發。在能耗檢測系統硬件設計中由于引腳不便于接線,需要增加一個擴展版以便于各個模塊與控制器相連接。引用擴展板功能僅限于便于模塊與控制器相連接。
(1)主控制電路
數據打印系統采用Micro:bit及其擴展板作為主控制器進行開發設計,用于讀取物聯網服務器中能耗信息,并驅動熱敏打印機進行數據打印。
(2)數據打印電路
本系統使用EM5820熱敏打印機進行能耗數據的打印,EM5820通過USB/TTL/RS232接口連接設備。本系統中EM5820采用TTL接口與Micro:bit擴展板相連,接受串口發送的打印信息。熱敏打印機接口示意圖如圖5所示。

圖 4 能耗檢測系統電路設計接口圖

圖 5 熱敏打印機接口示意圖
(3)顯示電路
OLED-12864顯示屏與Micro:bit電機驅動擴展板的I2C端口相連接,嵌入式熱敏打印機的TX、RX分別與Micro:bit電機驅動擴展板的P15、P16端口相連接,物聯網模塊的TX、RX連接到Micro:bit電機驅動擴展板的P0、P1端口上。
數據打印端的硬件連接圖如圖6所示。

圖 6 數據打印端硬件連接圖
圖7是數據打印系統電路設計接口示意圖。OLED2與控制器的I2C相連,熱敏打印機通過軟件部分定義的軟串口與控制器相連接,物聯網模塊通過串口與控制器相連接。
本系統采用Mind+作為IDE,其包含了各種主流主控板及數百種的開源硬件,可以進行人工智能(AI)與物聯網(IoT)的開發工作,可以拖動圖形化積木編程,也可以使用Python/C/C++等高級編程語言。采用Easy IoT作為物聯網服務器,軟件設計主要分為能耗監測程序設計、數據打印程序設計。
能耗檢測部分的主控制器是掌控板,傳感器選擇能耗模塊,在顯示模塊里選擇OLED-12864顯示屏,存儲模塊使用的是EEPROM,在網絡服務中選擇MQTT、Wi-Fi。添加以上擴展指令模塊是編程之前一項不可少的工作。能耗檢測部分控件添加流程圖如圖8所示。

圖 7 數據打印系統電路設計接口圖

圖 8 能耗監測部分控件添加流程圖
(1)用鼠標單擊擴展按鈕,切換到“主控板”,添加掌控板;
(2)用鼠標單擊擴展按鈕,切換到“傳感器”,添加能耗模塊;
(3)用鼠標單擊擴展按鈕,切換到“功能模塊”,添加EEPROM模塊;
(4)用鼠標單擊擴展按鈕,切換到“網絡服務”,添加MQTT和WiFi模。
能耗監測部分程序設計思路:
首先定義掌控板主程序,設置WiFi連接設備的賬號與密碼便于能耗監測設備開機后自動連接到WiFi設備,在WiFi連接過程中屏幕顯示“正在連接WiFi…”的字樣,以此判斷是否WiFi連接成功,當網絡連接成功后,掌控板顯示“WiFi連接成功”,隨后MQTT進行初始化參數,MQTT發 起 連 接,EEPROM清 除 數 據,屏幕進行清屏處理。初始化部分全部完成后,開始循環執行程序主體部分,進行能耗數據檢測,將檢測到的能耗數據存入EEPROM。通過MQTT協議將檢測到的數據發送到設置好的物聯網平臺Easy IoT的Topic上。在設置各個數據范圍內,屏幕會顯示相應的能耗數值,并且能耗檢測值超過設定閾值后會進行一個物理報警。能耗監測部分執行流程圖如圖9所示。

圖 9 能耗監測部分執行流程圖
數據打印端的主控制器是Micro:bit,在顯示模塊里依舊選擇OLED-12864顯示屏,通信模塊使用的是OBLOQ物聯網模塊,功能模塊里選擇軟串口。數據打印部分控件添加流程圖如圖10所示。

圖 10 數據打印部分控件添加流程圖
(1)用鼠標單擊擴展按鈕,切換到“主控板”,添加Micro:bit;
(2)用鼠標單擊擴展按鈕,切換到“顯示器”頁面,添加OLED-12864顯示屏;
(3)用鼠標單擊擴展按鈕,切換到“通信模塊”,添加OBLOQ物聯網模塊;
(4)用鼠標單擊擴展按鈕,切換到“功能模塊”頁面,添加軟串口模塊。
數據打印部分程序設計思路:
定義Micro:bit主程序,OLED-12864顯示屏初始化IIC地址,OBLOQ與MQTT也進行初始化,OBLOQ與MQTT的串口設置為硬串口,與熱敏打印機進行數據傳輸的串口設置為軟串口,并進行軟串口的初始化。
當物聯網平臺能耗監測Topic接收到上傳的能耗檢測數據后,數據打印部分會通過OBLOQ讀取到上傳的數據在OLED-12864顯示出相關的能耗信息,通過按鍵選擇是否打印當前傳輸過來的能耗檢測數據,如果打印當前測試道德數據,則通過設置好的軟串口與熱敏打印機進行數據傳輸,將當前的能耗信息通過熱敏打印機打印出來。
(1)深入研究了關于能耗檢測系統的發展情況,在此基礎上設計了基于MQTT的用電設備能耗檢測系統,搭建出了整個系統的框架。
(2)建立了Easy Iot物聯網平臺,實現了能耗監測部分和數據打印部分的信息傳遞。同時也可以將測得的能耗數據進行記錄和上傳。
(3)設計并實現了基于MQTT的用電設備能耗檢測系統,該系統實現了能耗檢測、打印、數據上傳、顯示等功能。各個模塊相互工作,不會相互影響,當各部分需要配合的時候也可以做到預期的數據交互。經過測試,每個模塊都能正常運行。
該系統許多方面都達到了預期的工作效果,但是還存在著一些不足之處,比如系統的傳感器精度不高,有時也會出現能耗監測不準的情況;物聯網的連接可能有時會遲鈍,記錄數據不及時;系統的內部布線過于雜亂,出現問題時不易檢修。