基于溫度的非接觸式考勤系統(tǒng),采用NodeMCU和MLX90614紅外測溫儀
新冠肺炎疫情爆發(fā)后,非接觸式測溫設備越來越受歡迎,大多數(shù)采用紅外溫度傳感器。這個裝置在沒有任何身體接觸的情況下測量人的體溫。今天我們還將使用NodeMCU和Arduino IDE來接口MLX90614紅外溫度傳感器。
因此,在本教程中,我們將使用NodeMCU, MLX90614紅外溫度計,EM18 RFID讀取器和超聲波傳感器構建基于物聯(lián)網(wǎng)的智能員工溫度篩選系統(tǒng)。它可以用非接觸式紅外溫度傳感器測量員工的體溫,并將員工的姓名和體溫發(fā)送到一個網(wǎng)頁上,該網(wǎng)頁可以通過互聯(lián)網(wǎng)從任何地方監(jiān)控。網(wǎng)頁將時間、人名和溫度存儲在一個表中。超聲波傳感器用于測量傳感器與人之間的距離,因此MLX90614傳感器可以在傳感器與人之間的距離小于20cm時測量溫度,以獲得更好的精度。
組件的要求
?NodeMCU ESP8266
?EM18 RFID模塊
?MLX90614紅外溫度計
?超聲波傳感器
?電路試驗板
?跳線
EM18 RFID閱讀器模塊
EM18 RFID讀寫器模塊是一種低成本,低功耗,小尺寸和易于使用的設備,是開發(fā)RFID系統(tǒng)的理想選擇。該模塊用于讀取125 kHz標簽,并通過UART和RS232轉換器直接連接到任何微控制器或PC。它可以通過UART/Wiegand26提供輸出。
閱讀器模塊帶有片上天線,可以通過5V電源供電。當您掃描讀取模塊上的RFID卡時,卡內(nèi)的應答器將所有信息(例如以RF信號形式的特定ID)傳輸?shù)絉FID模塊。該讀卡器模塊還有一個BUZ引腳,可用于連接蜂鳴器以檢測有效的RFID卡。
我們以前使用相同的EM18 RFID模塊來構建智能購物車。
MLX90614紅外溫度傳感器
在這里,我們與NodeMCU連接了一個名為MLX90614的非接觸式溫度傳感器。它是一種用于非接觸式溫度傳感的紅外溫度計。它出廠校準了一個數(shù)字SM總線輸出,可以完全訪問在最高溫度范圍內(nèi)測量的溫度,分辨率為0.02°C,它可以用來測量特定物體的溫度,范圍從-70°C到382.2°C,在室溫下精度約為0.5C。
它內(nèi)嵌兩個器件,一個是紅外熱電堆探測器(傳感單元),另一個是信號調理應用處理器。它的工作原理基于斯蒂芬-玻爾茲曼定律,該定律指出,任何不低于絕對零度(0°K)的物體都會在紅外光譜中發(fā)出與其溫度成正比的光。傳感器的傳感單元利用發(fā)射的光來測量物體的溫度。
線路圖
使用ESP8266 NodeMCU的紅外測溫儀電路圖如下:
如電路圖所示,連接非常簡單,因為我們已經(jīng)將它們用作模塊,我們可以直接在面包板上構建它們。當有人掃描標簽時,連接到EM18閱讀器模塊的BUZ引腳的LED會變高。RFID模塊以串行方式向控制器發(fā)送數(shù)據(jù);因此RFID模塊的發(fā)送端引腳連接到NodeMCU的接收端引腳。連接進一步分類如下表所示:
編程NodeMCU
這個紅外溫度篩選項目的完整代碼可以在頁面的末尾找到。這里將以小片段的形式解釋相同的程序。
NodeMCU代碼
這部分代碼將讀取超聲波傳感器、MLX90614和RFID模塊,并將這些數(shù)據(jù)發(fā)送到web服務器。在編寫NodeMCU之前,從給定的鏈接中安裝所需的庫:
Wire.h
Adafruit_MLX90614.h
通過包含所有必需的庫來啟動代碼。這里Wire庫用于使用I2C協(xié)議進行通信,Adafruit_MLX90614.h庫用于讀取MLX90614傳感器數(shù)據(jù)。
然后,輸入你的Wi-Fi名稱和密碼。
然后在接下來的幾行中,我們定義了連接超聲波傳感器的引腳。我們已經(jīng)將三角引腳連接到D5,回聲引腳連接到D6
之后,定義變量來存儲RFID模塊、超聲波傳感器和MLX90614傳感器數(shù)據(jù)和卡ID。
handleRoot()函數(shù)在我們使用NodeMCU IP地址在瀏覽器中打開網(wǎng)頁時執(zhí)行。
在void setup()函數(shù)內(nèi)部,使用begin()函數(shù)初始化波特率和MLX90614傳感器,并使用server.begin()函數(shù)初始化網(wǎng)頁。然后使用Wi-Fi名稱和密碼將模塊與Wi-Fi連接。另外,將三角和回聲引腳設置為輸出和輸入引腳。
要了解有關超聲波傳感器及其三角和回聲引腳的更多信息,請遵循我們之前基于超聲波傳感器的項目。
在void loop()函數(shù)內(nèi)部,計算人與傳感器之間的距離,如果距離小于或等于20cm,則調用reader()函數(shù)掃描標簽。
當距離小于20 CM時,將調用void reader()函數(shù),在此函數(shù)中,我們將掃描的卡數(shù)據(jù)與預定義的標簽ID進行比較。如果標簽ID與掃描的卡匹配,則讀取該人的體溫,并將該人的體溫和姓名發(fā)送給WebServer。
在temp_read()函數(shù)中,以攝氏度為單位讀取MLX90614傳感器數(shù)據(jù),并將其存儲在‘ TempReading ’變量中。
網(wǎng)頁的HTML代碼
標簽用于告訴web瀏覽器我們正在使用哪個版本的html來編寫html代碼。
在標簽之間編寫的代碼將被瀏覽器讀取。標簽用于定義網(wǎng)頁的標題、標題行和樣式。中寫入的數(shù)據(jù)是瀏覽器中選項卡的名稱。標簽用于給表格和標題行設置樣式。
標簽用于包含jQuery。jQuery是JavaScript庫。標記中的getData函數(shù)用于從NodeMCU獲取數(shù)據(jù)并更新數(shù)據(jù)表。
XMLHttpRequestobject用于從web服務器請求數(shù)據(jù)。所有瀏覽器都有一個內(nèi)置的XMLHttpRequest對象,用于從服務器請求數(shù)據(jù)。使用XMLHttpRequest,我們可以在不重新加載頁面的情況下更新網(wǎng)頁,從服務器請求數(shù)據(jù),從服務器接收數(shù)據(jù),并可以向服務器發(fā)送數(shù)據(jù)。在這里,我們使用這個對象從NodeMCU獲取該人的溫度和姓名,并在不刷新網(wǎng)頁的情況下更新數(shù)據(jù)表。
XMLHttpRequest對象的open和send方法用于向服務器發(fā)送請求。xhttp的語法。開放如下:
測試紅外線溫度計
準備好硬件和程序后,將程序上傳到NodeMCU?,F(xiàn)在打開波特率為9600的串行監(jiān)視器,獲得NodeMCU的IP地址。超聲波傳感器不斷計算距離。當您與傳感器之間的計算距離小于20厘米時,掃描您的卡,如果您的卡被授權,MLX傳感器將讀取您的溫度。要檢查網(wǎng)頁上的數(shù)據(jù),在web瀏覽器中輸入您的IP地址,您的網(wǎng)頁將如下所示:
本文編譯自iotdesignpro