王鵬,池建鋼,葉金霖,邱美艷
(天津中德應(yīng)用技術(shù)大學,天津,300350)
能源問題是關(guān)系著國家經(jīng)濟穩(wěn)定增長、社會可持續(xù)發(fā)展[1],對于國民,我們應(yīng)該知道家用電器的功率以便節(jié)約用電[2],為此將真實的能耗情況顯示出來,可為用戶發(fā)現(xiàn)更多的節(jié)能機會和更優(yōu)化的能源供應(yīng)和管理方案[3]。基于此,用電設(shè)備的電量檢測及控制裝置得到了快速發(fā)展[4]。本文基于物聯(lián)網(wǎng)技術(shù)設(shè)計的用電設(shè)備能耗檢測系統(tǒng),可實現(xiàn)對直流用電設(shè)備的電流、電壓和功率的實時檢測,并將能耗信息上傳到物聯(lián)網(wǎng)平臺,用戶可在后臺打印能耗信息。
能耗監(jiān)測系統(tǒng)由能耗檢測系統(tǒng)和數(shù)據(jù)打印系統(tǒng)兩部分組成。其中,能耗檢測系統(tǒng)是以掌控板為主控制器進行開發(fā)設(shè)計,采用高精度電壓電流功率測量模塊進行能耗檢測,采用Easy IoT作為物聯(lián)網(wǎng)平臺,采用MQTT協(xié)議進行數(shù)據(jù)上傳;數(shù)據(jù)打印系統(tǒng)是以Micro:bit為主控制器進行開發(fā)設(shè)計,采用OLED顯示屏進行能耗的顯示,采用OBLOQ物聯(lián)網(wǎng)模塊進行通信,采用嵌入式熱敏打印機進行數(shù)據(jù)打印,最終實現(xiàn)用電設(shè)備能耗檢測及打印的效果。系統(tǒng)設(shè)計方案如圖1所示。
圖 1 系統(tǒng)設(shè)計方案
本系統(tǒng)的硬件電路設(shè)計主要包括能耗檢測系統(tǒng)電路設(shè)計和數(shù)據(jù)打印電路設(shè)計。采用雙控制器便于對整個系統(tǒng)進行分塊管理,在數(shù)據(jù)打印系統(tǒng)功能故障的時候,仍然可以通過登錄物聯(lián)網(wǎng)平臺進行實時數(shù)據(jù)的檢測。能耗檢測系統(tǒng)電路主要通過能耗監(jiān)測模塊進行相關(guān)工作,首先通過能耗檢測模塊對測試環(huán)境的能耗進行檢測,將檢測到的數(shù)據(jù)保存在控制器的存儲模塊內(nèi),再將檢測到的數(shù)據(jù)上傳到Easy IoT物聯(lián)網(wǎng)平臺以便于與進行數(shù)據(jù)打印。數(shù)據(jù)打印系統(tǒng)電路主要功能部分主要通過物聯(lián)網(wǎng)模塊將檢測到的能耗信息從Easy IoT物聯(lián)網(wǎng)平臺讀取下來,在顯示屏上進行相關(guān)數(shù)據(jù)的顯示,并且通過熱敏打印機進行相關(guān)信息的打印。
(1)主控制電路
能耗檢測系統(tǒng)采用掌控版及其IO擴展板作為主控制器進行開發(fā)設(shè)計。掌控板采用ESP32作為主控芯片,將類型各異的傳感器和執(zhí)行器集成在48mm×52mm的底板上,同時所有的輸入與輸出端口使用金手指的方式向外延伸,工作狀態(tài)穩(wěn)定、外接設(shè)備時性能可靠??梢圆捎脠D形編程和Python編程兩種編程方式。掌控板IO擴展板功能強大,可以供Micro:bit和掌控板兩種主板使用??梢酝饨訑?shù)字或模擬插針口,I2C口和UART口,主控制器主要用于采集高精度電壓電流功率測量模塊的信息,并通過MQTT協(xié)議發(fā)送到Easy IoT物聯(lián)網(wǎng)平臺。
(2)能耗檢測電路
能耗檢測電路采用高精度電壓電流功率測量模塊進行能耗數(shù)據(jù)的采集,通過串口和主控制器進行通信,該模塊可采集當前的電流電壓及功率值。
INA226自動測量電流或功率。測量施加在IN+和IN-引腳之間的電壓和VBUS引腳上的電壓。在測量電流和功率值,必須通過配置校準寄存器(05h)對電流寄存器的分辨率和應(yīng)用程序中并聯(lián)電阻的值進行配置,Current_LSB和分流電阻的值都用于計算校準寄存器的值,設(shè)備使用該值來計算基于測量的分流和總線電壓的相應(yīng)的電流和功率值。能耗檢測模塊如圖2所示。
(3)顯示電路
顯示電路采用Gravity OLED-12864顯示器進行數(shù)據(jù)顯示,該顯示器是一種無背景光源的自發(fā)光顯示模塊,采用OLED專用驅(qū)動芯片SSD1306進行控制。該顯示器與控制器進行信息的傳遞時是通過I2C接口,且傳輸速率非常高,刷新率可達60赫茲,主要用于溫度和能耗數(shù)據(jù)的顯示。OLED-12864如圖3所示。
圖 2 能耗檢測模塊
圖 3 OLED-12864
(4)物聯(lián)網(wǎng)電路
物聯(lián)網(wǎng)電路采用OBLOQ物聯(lián)網(wǎng)模塊,該模塊可配合DFRobot公司自己開發(fā)的物聯(lián)網(wǎng)平臺(Easy IoT)一起使用,OBLOQ物聯(lián)網(wǎng)模塊是基于ESP8266所設(shè)計的,采用WiFi進行數(shù)據(jù)的收發(fā)。
圖4是能耗檢測系統(tǒng)設(shè)計電路的主體部分。OLED1通過I2C與控制器相連接,使用硬件I2C進行通信。能耗模塊通過串口進行數(shù)據(jù)收發(fā)。在能耗檢測系統(tǒng)硬件設(shè)計中由于引腳不便于接線,需要增加一個擴展版以便于各個模塊與控制器相連接。引用擴展板功能僅限于便于模塊與控制器相連接。
(1)主控制電路
數(shù)據(jù)打印系統(tǒng)采用Micro:bit及其擴展板作為主控制器進行開發(fā)設(shè)計,用于讀取物聯(lián)網(wǎng)服務(wù)器中能耗信息,并驅(qū)動熱敏打印機進行數(shù)據(jù)打印。
(2)數(shù)據(jù)打印電路
本系統(tǒng)使用EM5820熱敏打印機進行能耗數(shù)據(jù)的打印,EM5820通過USB/TTL/RS232接口連接設(shè)備。本系統(tǒng)中EM5820采用TTL接口與Micro:bit擴展板相連,接受串口發(fā)送的打印信息。熱敏打印機接口示意圖如圖5所示。
圖 4 能耗檢測系統(tǒng)電路設(shè)計接口圖
圖 5 熱敏打印機接口示意圖
(3)顯示電路
OLED-12864顯示屏與Micro:bit電機驅(qū)動擴展板的I2C端口相連接,嵌入式熱敏打印機的TX、RX分別與Micro:bit電機驅(qū)動擴展板的P15、P16端口相連接,物聯(lián)網(wǎng)模塊的TX、RX連接到Micro:bit電機驅(qū)動擴展板的P0、P1端口上。
數(shù)據(jù)打印端的硬件連接圖如圖6所示。
圖 6 數(shù)據(jù)打印端硬件連接圖
圖7是數(shù)據(jù)打印系統(tǒng)電路設(shè)計接口示意圖。OLED2與控制器的I2C相連,熱敏打印機通過軟件部分定義的軟串口與控制器相連接,物聯(lián)網(wǎng)模塊通過串口與控制器相連接。
本系統(tǒng)采用Mind+作為IDE,其包含了各種主流主控板及數(shù)百種的開源硬件,可以進行人工智能(AI)與物聯(lián)網(wǎng)(IoT)的開發(fā)工作,可以拖動圖形化積木編程,也可以使用Python/C/C++等高級編程語言。采用Easy IoT作為物聯(lián)網(wǎng)服務(wù)器,軟件設(shè)計主要分為能耗監(jiān)測程序設(shè)計、數(shù)據(jù)打印程序設(shè)計。
能耗檢測部分的主控制器是掌控板,傳感器選擇能耗模塊,在顯示模塊里選擇OLED-12864顯示屏,存儲模塊使用的是EEPROM,在網(wǎng)絡(luò)服務(wù)中選擇MQTT、Wi-Fi。添加以上擴展指令模塊是編程之前一項不可少的工作。能耗檢測部分控件添加流程圖如圖8所示。
圖 7 數(shù)據(jù)打印系統(tǒng)電路設(shè)計接口圖
圖 8 能耗監(jiān)測部分控件添加流程圖
(1)用鼠標單擊擴展按鈕,切換到“主控板”,添加掌控板;
(2)用鼠標單擊擴展按鈕,切換到“傳感器”,添加能耗模塊;
(3)用鼠標單擊擴展按鈕,切換到“功能模塊”,添加EEPROM模塊;
(4)用鼠標單擊擴展按鈕,切換到“網(wǎng)絡(luò)服務(wù)”,添加MQTT和WiFi模。
能耗監(jiān)測部分程序設(shè)計思路:
首先定義掌控板主程序,設(shè)置WiFi連接設(shè)備的賬號與密碼便于能耗監(jiān)測設(shè)備開機后自動連接到WiFi設(shè)備,在WiFi連接過程中屏幕顯示“正在連接WiFi…”的字樣,以此判斷是否WiFi連接成功,當網(wǎng)絡(luò)連接成功后,掌控板顯示“WiFi連接成功”,隨后MQTT進行初始化參數(shù),MQTT發(fā) 起 連 接,EEPROM清 除 數(shù) 據(jù),屏幕進行清屏處理。初始化部分全部完成后,開始循環(huán)執(zhí)行程序主體部分,進行能耗數(shù)據(jù)檢測,將檢測到的能耗數(shù)據(jù)存入EEPROM。通過MQTT協(xié)議將檢測到的數(shù)據(jù)發(fā)送到設(shè)置好的物聯(lián)網(wǎng)平臺Easy IoT的Topic上。在設(shè)置各個數(shù)據(jù)范圍內(nèi),屏幕會顯示相應(yīng)的能耗數(shù)值,并且能耗檢測值超過設(shè)定閾值后會進行一個物理報警。能耗監(jiān)測部分執(zhí)行流程圖如圖9所示。
圖 9 能耗監(jiān)測部分執(zhí)行流程圖
數(shù)據(jù)打印端的主控制器是Micro:bit,在顯示模塊里依舊選擇OLED-12864顯示屏,通信模塊使用的是OBLOQ物聯(lián)網(wǎng)模塊,功能模塊里選擇軟串口。數(shù)據(jù)打印部分控件添加流程圖如圖10所示。
圖 10 數(shù)據(jù)打印部分控件添加流程圖
(1)用鼠標單擊擴展按鈕,切換到“主控板”,添加Micro:bit;
(2)用鼠標單擊擴展按鈕,切換到“顯示器”頁面,添加OLED-12864顯示屏;
(3)用鼠標單擊擴展按鈕,切換到“通信模塊”,添加OBLOQ物聯(lián)網(wǎng)模塊;
(4)用鼠標單擊擴展按鈕,切換到“功能模塊”頁面,添加軟串口模塊。
數(shù)據(jù)打印部分程序設(shè)計思路:
定義Micro:bit主程序,OLED-12864顯示屏初始化IIC地址,OBLOQ與MQTT也進行初始化,OBLOQ與MQTT的串口設(shè)置為硬串口,與熱敏打印機進行數(shù)據(jù)傳輸?shù)拇谠O(shè)置為軟串口,并進行軟串口的初始化。
當物聯(lián)網(wǎng)平臺能耗監(jiān)測Topic接收到上傳的能耗檢測數(shù)據(jù)后,數(shù)據(jù)打印部分會通過OBLOQ讀取到上傳的數(shù)據(jù)在OLED-12864顯示出相關(guān)的能耗信息,通過按鍵選擇是否打印當前傳輸過來的能耗檢測數(shù)據(jù),如果打印當前測試道德數(shù)據(jù),則通過設(shè)置好的軟串口與熱敏打印機進行數(shù)據(jù)傳輸,將當前的能耗信息通過熱敏打印機打印出來。
(1)深入研究了關(guān)于能耗檢測系統(tǒng)的發(fā)展情況,在此基礎(chǔ)上設(shè)計了基于MQTT的用電設(shè)備能耗檢測系統(tǒng),搭建出了整個系統(tǒng)的框架。
(2)建立了Easy Iot物聯(lián)網(wǎng)平臺,實現(xiàn)了能耗監(jiān)測部分和數(shù)據(jù)打印部分的信息傳遞。同時也可以將測得的能耗數(shù)據(jù)進行記錄和上傳。
(3)設(shè)計并實現(xiàn)了基于MQTT的用電設(shè)備能耗檢測系統(tǒng),該系統(tǒng)實現(xiàn)了能耗檢測、打印、數(shù)據(jù)上傳、顯示等功能。各個模塊相互工作,不會相互影響,當各部分需要配合的時候也可以做到預(yù)期的數(shù)據(jù)交互。經(jīng)過測試,每個模塊都能正常運行。
該系統(tǒng)許多方面都達到了預(yù)期的工作效果,但是還存在著一些不足之處,比如系統(tǒng)的傳感器精度不高,有時也會出現(xiàn)能耗監(jiān)測不準的情況;物聯(lián)網(wǎng)的連接可能有時會遲鈍,記錄數(shù)據(jù)不及時;系統(tǒng)的內(nèi)部布線過于雜亂,出現(xiàn)問題時不易檢修。