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