0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用RFID制作一個自動點(diǎn)名考勤系統(tǒng)

科技觀察員 ? 來源:hackster.io ? 作者:hackster.io ? 2022-05-11 17:00 ? 次閱讀

作為一名教師,傳統(tǒng)上的出勤(點(diǎn)名)是一項耗時的任務(wù),如果自動化,教師可以專注于其他教學(xué)活動。在本項目中,RFID閱讀器模塊和RFID卡將用于實現(xiàn)自動考勤系統(tǒng)。

課程在密閉空間內(nèi)進(jìn)行,如果環(huán)境太熱或太冷,很難聽課。為了實現(xiàn)有效的學(xué)習(xí),應(yīng)保持教室內(nèi)正確的物理環(huán)境。該項目將使用相對濕度和溫度傳感器(DHT11)來監(jiān)控溫度和濕度,并在值超出范圍時發(fā)出通知。

庫和定義

在開始代碼之前,需要將庫包含在程序中。定義了物理連接到Arduino板的引腳號。創(chuàng)建將用于數(shù)據(jù)采集的RFID接收器(mfrc522)和DHT傳感器(dht)的實例。創(chuàng)建了一個名為student的變量,它是一個二維字符串?dāng)?shù)組,用于存儲學(xué)生姓名和相關(guān)的RFID標(biāo)簽ID。

poYBAGJ7eT2AT-oKAADDdRZe2F8191.png

設(shè)置

setup()函數(shù)僅在板子上電或按下復(fù)位按鈕時執(zhí)行一次。串行連接以9600的波特率初始化。DHT傳感器采集調(diào)用函數(shù)begin()開始采集。

調(diào)用一些ArduinoIoTCloud函數(shù)來初始化屬性、開始連接、設(shè)置調(diào)試消息級別并打印任何調(diào)試信息。

pYYBAGJ7eTmAdmgrAACWB8HSMak145.png

主要功能-循??環(huán)

Arduino中的loop()函數(shù)包括SPI通信的開始和mfrc522的初始化。起初,這兩個初始化是在設(shè)置階段完成的,但由于ArduinoCloud更新時的錯誤而被移到循環(huán)中。它將引腳10更改為輸入,中斷SPI通信。解決方案是在每個循環(huán)上初始化SPI通信,以將引腳10重置為輸出模式。

void loop() {
SPI.begin();
mfrc522.PCD_Init();
if ( mfrc522.PICC_IsNewCardPresent()) {
if (mfrc522.PICC_ReadCardSerial()) {
String content = "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
//Serial.println(content.substring(1));
content.toUpperCase();
for (int i = 0; i < 6; i++) {
if (content.substring(1) == student[i][0])
{
msg_Attendance = "Attendance Recorded for Student: " + student[i][1] ;
}
}
Serial.println(msg_Attendance);
}
}
dht_sensor_getdata();
delay(500);
ArduinoCloud.update();
}

mfrc522初始化后,調(diào)用PICC_IsNewCardPresent()函數(shù)。如果檢測到新卡,PICC_ReadCardSerial()函數(shù)會從 RFID 卡中讀取 ID 信息。ID 是一個字符串類型的變量,稱為內(nèi)容。它被轉(zhuǎn)換為大寫,以便與存儲在程序定義部分中的學(xué)生ID 數(shù)組進(jìn)行比較。當(dāng)從卡中讀取的 ID 與記錄中的學(xué)生匹配時,會記錄出勤情況并將其存儲在變量msg_Attendance 中。

dht_sensor_getdata ()函數(shù)被調(diào)用,更多詳細(xì)信息在下一節(jié)中。在調(diào)用ArduinoCloud.update()函數(shù)之前引入了 500 毫秒的短暫延遲。此函數(shù)將所有四個變量發(fā)送到云端:溫度、濕度、msg_Attendance和msgTempHum 。

DHT傳感器功能
創(chuàng)建函數(shù)dht_sensor_getdata()是為了從 DHT11 傳感器讀取濕度和溫度數(shù)據(jù)。dht.h 庫導(dǎo)入函數(shù) readHumidity() 和 readTemperature()。

if-else 條件檢查低溫 (20oC) 和高溫 (27oC) 的閾值,然后向儀表板發(fā)送消息。這可以通過執(zhí)行器(打開或關(guān)閉空調(diào))或真實教室中的警報來實現(xiàn)。

void dht_sensor_getdata()
{
float hm = dht.readHumidity();
Serial.print(F("Humidity "));
Serial.println(hm);
float temp = dht.readTemperature();
Serial.print(F("Temperature "));
Serial.println(temp);
humidity = hm;
temperature = temp;
if (temp > 27) {
msgTempHum = "Temperature = " + String (temperature) + " Humidity = " + String(humidity) + " -> High ";
}
else if (temp < 20) {
msgTempHum = "Temperature = " + String (temperature) + " Humidity = " + String(humidity) + " -> Low ";
}
else {
msgTempHum = "Temperature = " + String (temperature) + " Humidity = " + String(humidity) + " -> All ok ";
}
}

準(zhǔn)備工作-設(shè)置云

要連接到ArduinoIoTCloud,首先我們需要創(chuàng)建一個帳戶或登錄。

要使用已經(jīng)安裝了所有核心和庫的基于Web的編輯器,我們需要安裝CreateAgentPlugin。該代理將識別通過USB連接到計算機(jī)的板。

進(jìn)入網(wǎng)頁編輯器頁面后,我們可以看到板已連接/斷開,編輯我們的代碼并在完成后上傳。

但是,還有其他兩個選項可用:

經(jīng)典離線ArduinoIDE1.8.13(集成開發(fā)環(huán)境)作為–用于本地傳感器故障排除。

新的ArduinoIDE2.0-具有調(diào)試、代碼突出顯示和自動完成等新功能,目前處于beta階段(準(zhǔn)備此項目時)。

要選擇IoTCloud菜單或Web編輯器,我們可以單擊個人資料圖片附近的右上角按鈕。

poYBAGJ7eTGAQ_nvAABEPIhknwo346.png

一旦我們選擇了物聯(lián)網(wǎng)云菜單,就會有一些選項可用,但在這個項目中,我們將專注于創(chuàng)建事物、關(guān)聯(lián)設(shè)備和準(zhǔn)備儀表板。

pYYBAGJ7eS2AFvZkAAAkDilsHpM910.png

單擊上圖所示的“創(chuàng)建事物”后。我們遵循了這個項目中的步驟:

第1步-設(shè)備-將設(shè)備與我們的事物相關(guān)聯(lián)

第2步-添加變量

第3步-更改網(wǎng)絡(luò)設(shè)置

第4步-編輯草圖,連接到串行監(jiān)視器

第5步-準(zhǔn)備儀表板

第6步-從發(fā)送到云端的板上獲取數(shù)據(jù)并導(dǎo)出

第1步-設(shè)備

第一步是單擊并選擇設(shè)備。

poYBAGJ7eSeAXRNoAAAtk0QdlWU598.png

可以關(guān)聯(lián)以前在IoT云中使用的任何設(shè)備,也可以設(shè)置新設(shè)備。

poYBAGJ7eSOAM438AABT1w7mYJs331.png

對于這個項目,我們將設(shè)備ArduinoMKRGSM1400與Thing相關(guān)聯(lián),但可以使用任何其他板,例如ArduinoMKRWiFI1010或NodeMCU。

第2步-變量

第二步是添加變量:

poYBAGJ7eR-AFq8SAABTDr-hEeM315.png

單擊添加變量后,您需要選擇變量名稱、類型、權(quán)限、更新策略和閾值。在這個項目中,創(chuàng)建了5個變量:

濕度——在儀表板上存儲和顯示相對濕度值

溫度-在儀表板上存儲和顯示室溫

msg_Attendance–顯示學(xué)生出勤、姓名和時間

msgTempHum–顯示溫度和濕度以及任何警告

led-此LED用于快速故障排除以檢查板/云連接

變量權(quán)限可以是:

讀寫——變量既可以作為輸入也可以作為輸出,數(shù)據(jù)可以從設(shè)備發(fā)送到云端,反之亦然

只讀——變量只能作為輸出,數(shù)據(jù)只能從設(shè)備發(fā)送到云端

變量更新策略可以是:

OnChange:只要值的變化大于或等于設(shè)置的閾值,變量就會更新到云端

定期:每次經(jīng)過設(shè)置的秒數(shù)時,變量將更新到云端

該項目中使用的基本變量類型是:

布爾值-真或假(LED)

浮點(diǎn)數(shù)-帶小數(shù)的數(shù)字(溫度和濕度)

字符串-單詞和句子(msg_Attendance和msgTempHum)

poYBAGJ7eQ6AXsdPAADClTOAIi4734.png

第3步-網(wǎng)絡(luò)

設(shè)置好所有變量后,第三步是在configureNetwork中添加網(wǎng)絡(luò)憑據(jù)

pYYBAGJ7eRWAU2ZqAAAr4L3AzzA173.png

在這個項目中,我們使用了具有如下憑據(jù)的ArduinoSIM卡:

poYBAGJ7eQmACWd7AABds1bsmwU235.png

如果您使用的是Wi-Fi設(shè)備,網(wǎng)絡(luò)配置會有所不同。本地Wi-Fi名稱不得包含空格。

pYYBAGJ7eQWAByk8AAA5J9bO06g177.png

第4步-草圖

一小部分代碼由ArduinoIoTCloud根據(jù)前三個步驟中添加的信息自動更新。您可以編輯草圖,完整代碼顯示在本頁底部。

pYYBAGJ7eQKABW__AAC5bAzdKrg378.png

檢查串行監(jiān)視器選項卡以排除連接故障。如果未連接到云端,我建議使用計算機(jī)中的本地ArduinoIDE并查看串行監(jiān)視器上的消息。

第5步-儀表板

儀表板是物聯(lián)網(wǎng)云設(shè)置的最后一部分,我們可以單擊在儀表板選項卡中構(gòu)建儀表板:

poYBAGJ7eP2AIFSLAABZ2SGtd3U704.png

要填充我們的儀表板,我們需要添加小部件。

pYYBAGJ7ePiAexDgAABiD90h6mo972.png

然后我們將一個變量鏈接到設(shè)置中的小部件。在這個項目中,我們添加了七個小部件,LED按鈕、濕度和溫度計、濕度和溫度圖表、溫度和濕度消息以及考勤消息。

poYBAGJ7ePOAfEt-AACE1IWNUbw625.png

執(zhí)行上述步驟的另一種方法是添加一個東西(這個項目的東西叫做SIM):

pYYBAGJ7eO-AUqoIAABX7peDn6U606.png

然后從Thing中選擇變量:

pYYBAGJ7eOqAVqY6AAERyvPX5X0411.png

有兩種類型的儀表板視圖:移動視圖

poYBAGJ7eOaAQ5rCAABqWtXFFpI845.png

和桌面視圖:

pYYBAGJ7eOKABb6qAAErw5ewvXc372.png

第6步-下載歷史數(shù)據(jù)

可以使用儀表板(i)上的“下載歷史數(shù)據(jù)”選項從云中導(dǎo)出數(shù)據(jù)。

poYBAGJ7eNyATk0OAABPykPTxoU215.png

下載歷史數(shù)據(jù)可以選擇我們要下載的變量和時間段。

poYBAGJ7eNiAf9QPAAD9bid1qxQ440.png

您可以查看通過電子郵件接收并下載為CSV文件的考勤數(shù)據(jù)示例。

poYBAGJ7eNSAKyGUAAF_NziUF7o379.png

readme.txt文件包含變量名稱、請求的時間段和希望我們“玩得開心!”的消息:

pYYBAGJ7eM-AdVkNAABDf2_g4X8565.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RFID
    +關(guān)注

    關(guān)注

    388

    文章

    6155

    瀏覽量

    237960
  • 考勤系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    11215
收藏 人收藏

    評論

    相關(guān)推薦

    文看懂RFID電子標(biāo)簽的特點(diǎn)及應(yīng)用

    ,是與讀寫器起構(gòu)成 RFID 系統(tǒng)的硬件主體。 ? RFID 系統(tǒng)基本組成包括RFID電子標(biāo)簽
    的頭像 發(fā)表于 12-02 10:09 ?735次閱讀
    <b class='flag-5'>一</b>文看懂<b class='flag-5'>RFID</b>電子標(biāo)簽的特點(diǎn)及應(yīng)用

    利用PCM5142的minidsp制作均衡器,遇到的兩疑問求解答

    你好,我的設(shè)計主要是利用PCM5142的minidsp 制作均衡器,現(xiàn)在遇到兩問題: 問題
    發(fā)表于 11-01 08:27

    賦能智能制造工業(yè)RFID技術(shù)不可或缺

    完整的RFID系統(tǒng)利用RFID技術(shù)進(jìn)行物體自動
    的頭像 發(fā)表于 10-17 14:28 ?219次閱讀

    物聯(lián)網(wǎng)系統(tǒng)中非接觸近場通信方案RFID技術(shù)詳解(二)_RFID標(biāo)簽篇

    01 物聯(lián)網(wǎng)系統(tǒng)中為什么要使用RFID標(biāo)簽 物聯(lián)網(wǎng)系統(tǒng)中使用RFID標(biāo)簽的原因主要體現(xiàn)在以下幾個方面: 非接觸式自動識別特性 無需人工干預(yù):
    的頭像 發(fā)表于 09-29 16:53 ?469次閱讀
    物聯(lián)網(wǎng)<b class='flag-5'>系統(tǒng)</b>中非接觸近場通信方案<b class='flag-5'>RFID</b>技術(shù)詳解(二)_<b class='flag-5'>RFID</b>標(biāo)簽篇

    遠(yuǎn)景達(dá)無感智慧考勤解決方案讓考勤管理更智能

    在現(xiàn)代社會,人力資源管理的重要環(huán)節(jié)就是員工考勤。然而,傳統(tǒng)的考勤方式存在諸多問題,如效率低下、數(shù)據(jù)更新不及時等。因此,種新的
    的頭像 發(fā)表于 05-27 10:47 ?499次閱讀
    遠(yuǎn)景達(dá)無感智慧<b class='flag-5'>考勤</b>解決方案讓<b class='flag-5'>考勤</b>管理更智能

    淺談隧道RFID定位系統(tǒng)

    隧道RFID定位管理系統(tǒng),是利用有源RFID技術(shù)實現(xiàn)的區(qū)域性的定位系統(tǒng)。利用
    的頭像 發(fā)表于 05-21 14:36 ?422次閱讀
    淺談隧道<b class='flag-5'>RFID</b>定位<b class='flag-5'>系統(tǒng)</b>

    無感考勤是什么意思

    無感考勤的含義及應(yīng)用1.無感考勤的基本概念無感考勤種新興的考勤方式,它通過自動化和人工智能技
    的頭像 發(fā)表于 05-17 10:59 ?776次閱讀
    無感<b class='flag-5'>考勤</b>是什么意思

    RFID射頻識別中的高頻HF

    完成讀寫器與標(biāo)簽之間的數(shù)據(jù)通信, 實現(xiàn)識別目標(biāo)與數(shù)據(jù)交換的目的。 RFID 系統(tǒng)基本組成包括 RFID 電子標(biāo)簽、讀寫器、應(yīng)用軟件,是利用
    發(fā)表于 05-08 11:31

    SI24R2E:智能電子學(xué)生卡2.4GHz考勤方案

    家長青睞。智能電子學(xué)生卡2.4G考勤應(yīng)用 學(xué)生卡和讀頭之間采用2.4G無線射頻技術(shù)傳輸,通過485數(shù)據(jù)線傳輸?shù)胶笈_智能終端;然后智能終端利用GSM無線網(wǎng)絡(luò)或有限寬帶(包括短信)與系統(tǒng)平臺完成數(shù)據(jù)交互
    發(fā)表于 03-29 16:26

    利用RFID技術(shù)建立智能服裝管理系統(tǒng)

    線上摜蛋平臺,使得摜蛋競技更加便捷,玩家可以隨時隨地參與比賽,同時也能通過算法匹配水平相當(dāng)?shù)膶κ?。通過在牌上或桌上安裝RFID標(biāo)簽,可以實現(xiàn)自動計分,當(dāng)牌局結(jié)束時,系統(tǒng)能立即顯示出每位選手的得分,提高了計分的準(zhǔn)確性和效率。例如,
    的頭像 發(fā)表于 03-11 16:47 ?422次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>RFID</b>技術(shù)建立智能服裝管理<b class='flag-5'>系統(tǒng)</b>

    射頻識別RFID

    2.4GHz微波與其進(jìn)行信息傳遞。也即是說,先利用低頻信號精確定位,再利用高頻信號快速傳輸數(shù)據(jù)。其通常應(yīng)用場景為:在高頻信號所能所覆蓋的大范圍中,在不同位置安置多個低頻閱讀器用于激
    發(fā)表于 02-28 11:31

    如何利用rfid技術(shù)實現(xiàn)對牛羊的識別

    智慧養(yǎng)殖利用RFID技術(shù)實現(xiàn)養(yǎng)殖場信息化管理,包括動物身份識別、智能分欄、精準(zhǔn)飼喂、智能稱重等。RFID電子耳標(biāo)內(nèi)嵌芯片,通過耳標(biāo)佩戴、掃描、錄入,準(zhǔn)確確定養(yǎng)殖數(shù)量和牛羊身份信息,實現(xiàn)可追溯的“電子
    的頭像 發(fā)表于 02-23 14:15 ?833次閱讀

    RFID系統(tǒng)的基本組成 rfid系統(tǒng)的工作原理

    RFID(Radio Frequency Identification)是種通過無線電信號識別物品的技術(shù),它由基本組成和工作原理兩方面構(gòu)成。在本文中,我們將詳細(xì)介紹RFID
    的頭像 發(fā)表于 02-04 13:48 ?4051次閱讀

    rfid倉庫管理系統(tǒng)的硬件組成和軟件組成

    RFID(射頻識別)倉庫管理系統(tǒng)利用RFID技術(shù)實現(xiàn)對倉庫貨物進(jìn)行追蹤、管理和安全控制的種智能化系統(tǒng)
    的頭像 發(fā)表于 01-15 11:36 ?1906次閱讀

    智慧農(nóng)業(yè)之新導(dǎo)物聯(lián)RFID果園苗圃系統(tǒng)

    RFID果園苗圃系統(tǒng)利用射頻識別技術(shù)(RFID)來管理果園和苗圃的系統(tǒng)。該
    的頭像 發(fā)表于 01-10 13:27 ?506次閱讀