基于物聯(lián)網(wǎng)的智能電能表,采用NodeMCU ESP8266
掃描二維碼
隨時(shí)隨地手機(jī)看文章
我們家庭中用來測(cè)量能源消耗的傳統(tǒng)電能表是一種離線設(shè)備,因此必須手動(dòng)監(jiān)控。但現(xiàn)在市場(chǎng)上有智能電能表,其讀數(shù)可以從任何地方使用互聯(lián)網(wǎng)進(jìn)行監(jiān)控,不僅是能源消耗,而且我們可以使用物聯(lián)網(wǎng)在筆記本電腦或移動(dòng)設(shè)備上監(jiān)控多個(gè)參數(shù),如電壓,電流,功率因數(shù),頻率等。
所以今天我們正在使用物聯(lián)網(wǎng)構(gòu)建智能電表。在這里,我們將使用pzm - 004t交流多功能電能計(jì)量功率監(jiān)視器模塊來測(cè)量參數(shù),并將使用NodeMCU ESP8266將數(shù)據(jù)發(fā)布到HTML網(wǎng)頁(yè)。
材料
?NodeMCU ESP8266
?pzem - 004 t模塊
?CT線圈
?電路試驗(yàn)板
?跳投
?連接線
pzm - 004t模塊的工作
pzm - 004tac模塊用于測(cè)量交流電壓、電流、有功功率、頻率、功率因數(shù)和有功能量。該模塊通過TTL端子輸出,可被各種微控制器讀取以供進(jìn)一步應(yīng)用。
技術(shù)特點(diǎn):
?電壓測(cè)量范圍:80-260 VAC
?電流測(cè)量范圍:0-100安培
?有功功率測(cè)量范圍:0-23KW
?功率因數(shù)測(cè)量范圍:0-1
?頻率測(cè)量范圍:45- 65hz
?模塊工作電壓:5V DC
?輸出接口:TTL
Pin描述:
?VCC:模塊5V直流輸入電源
?GND:接地電基準(zhǔn)
?TX: UART數(shù)據(jù)傳輸引腳
?RX: UART數(shù)據(jù)接收引腳
物聯(lián)網(wǎng)電能表電路圖
使用NodeMCU ESP8266的基于物聯(lián)網(wǎng)的智能電能表電路圖如下:
以下是物聯(lián)網(wǎng)電能表在所有連接后的完整設(shè)置:
編程的解釋
在成功完成硬件設(shè)置之后,現(xiàn)在是時(shí)候?qū)odeMCU進(jìn)行編程了。這個(gè)智能電表的完整代碼以及視頻在本教程的最后給出。下面給出了代碼的逐步描述。
要使用Arduino IDE將代碼上傳到NodeMCU,請(qǐng)遵循以下步驟:
1. 打開Arduino IDE,然后進(jìn)入File - >Preferences - >Settings。
2. 在“附加板管理器URL”字段中鍵入,然后單擊“確定”。
3. 現(xiàn)在轉(zhuǎn)到Tools > Board > Boards Manager。在“單板管理器”窗口中,在搜索框中輸入ESP8266,選擇最新版本的單板,單擊“安裝”。
4. 安裝完成后,進(jìn)入“Tools ->Board ->”,選擇“NodeMCU 1.0(ESP-12E Module)”?,F(xiàn)在您可以使用Arduino IDE對(duì)NodeMCU進(jìn)行編程。
完成上述設(shè)置后,使用Arduino IDE對(duì)NodeMCU進(jìn)行編程,將完整的代碼上傳到ESP8266 NodeMCU。下面給出了完整代碼的逐步解釋。
首先,在代碼中包含所有必需的庫(kù)文件。在這里,ESP8266板庫(kù)用于NodeMCU, PZEM004Tv30.h用于能源監(jiān)控模塊,可以從這里下載。
然后在類PZEM004Tv30中創(chuàng)建一個(gè)對(duì)象,該對(duì)象可以在整個(gè)程序范圍內(nèi)使用。還定義了軟件串行引腳,在我的情況下是D1和D2。
然后使用名稱服務(wù)器和默認(rèn)端口號(hào)80創(chuàng)建ESP8266WebServer類對(duì)象。
現(xiàn)在,聲明網(wǎng)絡(luò)憑據(jù),即SSID和密碼。需要將我們的NodeMCU連接到互聯(lián)網(wǎng)。
然后,將NodeMCU連接到互聯(lián)網(wǎng),調(diào)用WiFi。開始并傳遞網(wǎng)絡(luò)SSID和密碼作為參數(shù)。使用WiFi.status()檢查網(wǎng)絡(luò)連接是否成功,連接成功后,在帶有IP地址的Serial Monitor中打印一條消息。
在下一步中,將創(chuàng)建如下所示的HTML頁(yè)面,其中包含一個(gè)HTML表,用于顯示購(gòu)物車中的產(chǎn)品詳細(xì)信息和賬單信息。HTML頁(yè)面存儲(chǔ)在一個(gè)字符串變量中,以便在客戶端請(qǐng)求時(shí)使用server.send()函數(shù)發(fā)送回。
在loop()中,使用專用函數(shù)(如voltage(), current()等)讀取不同的參數(shù),然后將其分配給附加在HTML網(wǎng)頁(yè)中的單獨(dú)變量。
最后,為了處理客戶機(jī)請(qǐng)求,我們必須調(diào)用server.handleClient()。它將處理新的請(qǐng)求并檢查它們。
使用NodeMCU測(cè)試基于物聯(lián)網(wǎng)的電能表
完成連接和硬件設(shè)置后,只需將代碼上傳到NodeMCU,并打開串口監(jiān)視器中打印的IP地址。您將看到如下所示。
在這里,我們連接了一個(gè)交流燈泡,以監(jiān)測(cè)燈泡消耗的能量以及其他參數(shù),如電壓,電流,功率因數(shù)等。
這里我們不必?fù)?dān)心電壓、電流、功率等的計(jì)算,因?yàn)閜zem004t模塊提供的庫(kù)(PZEM004Tv30.h)有與之相關(guān)的所有功能,我們只需要調(diào)用它們來顯示相關(guān)信息。
這就是我們?nèi)绾问褂肗odeMCU ESP8266構(gòu)建基于物聯(lián)網(wǎng)的智能電能表。
本文編譯自iotdesignpro