基于Arduino和Adafruit IO的RFID考勤系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
傳統(tǒng)的人工考勤方法非常耗時(shí),而且經(jīng)常會(huì)導(dǎo)致人為錯(cuò)誤。手工系統(tǒng)也容易出現(xiàn)不當(dāng)行為,寶貴的工作時(shí)間被浪費(fèi)在考勤數(shù)據(jù)的組織和結(jié)構(gòu)化上。目前的考勤系統(tǒng)可以通過使用物聯(lián)網(wǎng)和RFID技術(shù)的智能考勤系統(tǒng)來取代更高效和有效的方法。RFID是一種自動(dòng)識(shí)別和數(shù)據(jù)收集技術(shù)。射頻識(shí)別(RFID)是一種通過電磁波在終端和附著在物體上的電子標(biāo)簽之間交換數(shù)據(jù)的技術(shù),目的是識(shí)別和跟蹤。一些標(biāo)簽可以在幾米外讀取,超出閱讀器的視線范圍
本課題是利用射頻識(shí)別(RFID)技術(shù)簡(jiǎn)化考勤系統(tǒng)。在這個(gè)項(xiàng)目中,我們使用Arduino Uno, RC522 RFID掃描儀和ESP8266 Wi-Fi模塊。Arduino和RFID掃描儀掃描RFID卡,然后借助ESP8266 Wi-Fi模塊將數(shù)據(jù)記錄到Adafruit IO云平臺(tái)。這些信息可以顯示在Adafruit IO儀表板上,并可以由所需的當(dāng)局訪問,以便隨時(shí)隨地通過互聯(lián)網(wǎng)查看和分析考勤情況。
組件的要求
硬件組件
?Arduino Uno
?RFID-RC522
?ESP8266-01
?跳線
軟件應(yīng)用程序和在線服務(wù)
?Arduino IDE
?Adafruit IO
設(shè)置你的Adafruit IO帳戶
Adafruit IO是一個(gè)開放的數(shù)據(jù)平臺(tái),允許您在云中聚合、可視化和分析實(shí)時(shí)數(shù)據(jù)。使用Adafruit IO,您可以在互聯(lián)網(wǎng)上上傳,顯示和監(jiān)控?cái)?shù)據(jù),并使您的項(xiàng)目啟用物聯(lián)網(wǎng)。您可以使用Adafruit IO控制電機(jī),讀取傳感器數(shù)據(jù),并通過互聯(lián)網(wǎng)制作酷的物聯(lián)網(wǎng)應(yīng)用程序。為了測(cè)試和嘗試,有一些限制,Adafruit IO是免費(fèi)使用的。我們以前也在樹莓派上使用過Adafruit IO。
1. 對(duì)于Adafruit IO設(shè)置,您需要做的第一件事是注冊(cè)Adafruit IO。登錄Adafruit IO的網(wǎng)站,點(diǎn)擊屏幕右上方的“Get started for Free”即可注冊(cè)。
2. 在此之后,將彈出一個(gè)窗口,您需要在其中填寫詳細(xì)信息
在注冊(cè)窗口填寫您的詳細(xì)信息,如您的姓名,郵件id,用戶名等。然后點(diǎn)擊保存設(shè)置,你的賬戶就創(chuàng)建好了。要獲得你的AIO密鑰,點(diǎn)擊“查看AIO密鑰”。
3. 一個(gè)窗口將彈出與您的Adafruit IO AIO密鑰。復(fù)制此鍵,稍后在代碼中需要它。
4. 現(xiàn)在,在此之后,您需要?jiǎng)?chuàng)建一個(gè)提要。要?jiǎng)?chuàng)建提要,請(qǐng)單擊“feed”。然后點(diǎn)擊“Actions”,你會(huì)看到一些選項(xiàng),點(diǎn)擊“Create a New Feed”。
5. 在此之后,將打開一個(gè)新窗口,您需要輸入:
名稱-在名稱中,選擇為提要寫一個(gè)簡(jiǎn)短的描述性名稱。你可以用
字母、數(shù)字和空格。
描述-對(duì)數(shù)據(jù)的長格式描述。這個(gè)字段不是必需的,但是你
可以寫你的數(shù)據(jù)的描述。
6. 點(diǎn)擊“創(chuàng)建”,你將被重定向到你的新提要。
ESP8266-01編程
利用FTDI板對(duì)ESP8266進(jìn)行編程的電路圖如下圖所示。FTDI板的Rx、Tx、GND與ESP8266相連。在本項(xiàng)目中,ESP8266需要同時(shí)在AT命令模式和編程模式下運(yùn)行。通過撥動(dòng)開關(guān),ESP8266可以在AT命令模式和編程模式之間切換,通過按鈕復(fù)位模塊。
要使模塊進(jìn)入編程模式,需要將ESP8266的GPIO 0引腳(紫色線)連接到地(綠色線),并按下復(fù)位按鈕。要將模塊置于AT命令模式,必須使GPIO 0引腳(紫色線)保持空閑狀態(tài),并按下復(fù)位按鈕。
請(qǐng)注意,默認(rèn)情況下,ESP8266-01模塊使用AT命令。但是當(dāng)我們使用Arduino IDE將程序上傳到它時(shí),默認(rèn)的AT命令固件將被我們的Arduino代碼覆蓋。要與AT命令一起使用它,您必須用其默認(rèn)固件Flash ESP8266模塊。
基于Arduino IDE的ESP8266編程
要用Arduino IDE編程ESP8266,請(qǐng)進(jìn)入File - > preferences - >Settings。
在“附加董事會(huì)管理器URL”字段中輸入,然后單擊“確定”。
現(xiàn)在轉(zhuǎn)到Tools > Board > Boards Manager。
在板管理器窗口中,在搜索框中輸入esp, esp8266將在下面列出?,F(xiàn)在選擇最新版本的電路板并單擊install。
安裝完成后,進(jìn)入“工具>單板>通用ESP8266模塊”。選擇正確的Port,然后上傳代碼。
RFID考勤系統(tǒng)的ESP8266編程
在本教程的最后給出了完整的代碼和工作視頻,在這里我們解釋程序以了解項(xiàng)目的工作原理。
通過添加所需的庫開始程序。在此之后,輸入Wifi憑據(jù)和密碼與Adafruit IO用戶名和AIO密鑰,我們之前獲得。
使用setup功能,我們將以11500波特率開始串行通信。然后我們將Wi-Fi客戶端連接到Adafruit IO服務(wù)器。
在void循環(huán)函數(shù)中,ESP將從串行讀取數(shù)據(jù),然后將其發(fā)布到Adafruit IO服務(wù)器。
一旦你的代碼準(zhǔn)備好了,檢查ESP8266是否工作。通過使ESP8266保持編程模式,使用FTDI模塊將代碼上傳到ESP8266。一旦代碼上傳,將其連接回AT命令模式并按復(fù)位按鈕。然后打開串行監(jiān)視器,你應(yīng)該看到它連接到Wi-Fi和Adafruit IO。
線路圖
RFID智能考勤系統(tǒng)的完整電路圖如下所示。電路圖是用Fritzing軟件制作的。
Arduino與RFID的連接如下表所示:
如圖所示,用Arduino和RFID-RC522替換FTDI板。RFID掃描儀由Arduino的3.3V引腳供電,ESP由LM317穩(wěn)壓器供電,通過12V直流適配器供電時(shí),穩(wěn)壓3.3V。Arduino UNO模塊通過USB接口供電。
為了制作電路,我通過參考CircuitDigest的IoT Arduino Wi-Fi Shield為ESP8266和LM317穩(wěn)壓器部分構(gòu)建了PCB。但你也可以在面包板上建立完整的電路,事情應(yīng)該工作得很好。我的硬件與連接如下所示。
Arduino Uno程序
MFRC522庫用于RFID掃描器。如電路圖所示,SDA和RST引腳分別與Arduino的10和9引腳相連。您可以從下面的鏈接下載庫的zip文件,并將其添加到您的Arduino IDE。
下載MFRC522 RFID庫Arduino
在setup函數(shù)中,我們將串行通信初始化為9600波特率,軟件串行初始化為115200波特率。我們也開通了與MFRC522的溝通。
在void循環(huán)函數(shù)中,我們將檢查是否存在一張新卡,如果存在一張新卡,那么它將檢查該卡的UID。對(duì)于有效卡,它將在串行監(jiān)視器上打印該卡的UID;否則,它將打印“未經(jīng)授權(quán)的卡”。
現(xiàn)在將下面給出的完整Arduino代碼上傳到UNO板,并將其與已經(jīng)運(yùn)行代碼的ESP連接起來。上傳碼掃描卡后,對(duì)于每張有效卡,它將在串行監(jiān)視器上打印卡的UID,并將卡的詳細(xì)信息發(fā)送到Adafruit IO。
這就是你如何建立一個(gè)基于物聯(lián)網(wǎng)的考勤系統(tǒng),并將其連接到互聯(lián)網(wǎng)上,通過互聯(lián)網(wǎng)監(jiān)控考勤情況。
本文編譯自iotdesignpro