Smart RFID Attendance

 

 

//*******************************Program********************************

Program  : Absensi Online dengan RFID MFRC-522
Chip        : wemos d1 mini
Website   : https://bintangterang.or.id/url/2
Tgl Edite  : 22 Mei 2025
Pembuat  : OCIM
Pemodal  : NIA ASTRIANA
Tempat    : TUK BINTANG TERANG
Penguji    : Eyen Haryanto

//*******************************libraries********************************

//RFID-----------------------------

#include

#include

//NodeMCU--------------------------

#include

#include

//************************************************************************

#define SS_PIN  D2  //D2

#define RST_PIN D1  //D1

//************************************************************************

MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.

 

//************************************************************************

/* Set these to your desired credentials. */

const char *ssid = "BINTANG TERANG";

const char *password = "1sampai8";

const char* device_token  = "79f4c9f0c7eb0973";

//************************************************************************

// Sertifikat Root CA (Root certificate yang digunakan untuk validasi SSL)

const char IRG_Root_X1 [] PROGMEM = R"CERT(

-----BEGIN CERTIFICATE-----

MIIDvzCCA0SgAwIBAgISBEE32ONerKlFUrP7J5GT+RVfMAoGCCqGSM49BAMDMDIx

CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF

NTAeFw0yNTAyMTMwMzU3NTVaFw0yNTA1MTQwMzU3NTRaMB4xHDAaBgNVBAMTE2Jp

bnRhbmd0ZXJhbmcub3IuaWQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATx8VTVVt/O

0nyhpbaz8HEu8sSiXDofyVk2eYU2Jt3FfTo1vkv3FEdIB1bzWeQsqaQGIJb+UDRT

Dzvlw0MEdk3K5RSdUOqV9DPfX6v434CssRzP9XWgsjHmxRb5Lc/uuSCjggIvMIIC

KzAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC

MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLplWVMz2AD8VtV52iPPxNQQmDq1MB8G

A1UdIwQYMBaAFJ8rX888IU+dBLftKyzExnCL0tcNMFUGCCsGAQUFBwEBBEkwRzAh

BggrBgEFBQcwAYYVaHR0cDovL2U1Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZo

dHRwOi8vZTUuaS5sZW5jci5vcmcvMDcGA1UdEQQwMC6CE2JpbnRhbmd0ZXJhbmcu

b3IuaWSCF3d3dy5iaW50YW5ndGVyYW5nLm9yLmlkMBMGA1UdIAQMMAowCAYGZ4EM

AQIBMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYAzPsPaoVxCWX+lZtTzumyfCLp

hVwNl422qX5UwP5MDbAAAAGU/apU6wAABAMARzBFAiALIK8OdclSSGi0eaFn+G1P

3gMaRLZwktYRNsLNXuUXUAIhAKl2tayqr+vXI4M/pUPo5U5NHwWZZTGYJ1vZEbhU

8H8RAHcAouMK5EXvva2bfjjtR2d3U9eCW4SU1yteGyzEuVCkR+cAAAGU/apU7wAA

BAMASDBGAiEAsUxp87ZU11iBghbkHof/Z6N4+Q+OcPq/g5ac3pAUWkQCIQCSUUhs

9Aj3CfDgST2lpW07I05s2v4Bf/ArDjpMl3Yr3zAKBggqhkjOPQQDAwNpADBmAjEA

gHStbdMlEPpXUCMr0NvEvuyWP6M1j+LkI9tKXcln/QMTDSlvlOgHgBE9rAHix74i

AjEA2Bgw440A0HkxsXvEEm5XXet84utjTGu2wwTtNxmgse9M0EVqQZtESgubVPwH

4KtC

-----END CERTIFICATE-----

)CERT";

 

//************************************************************************

String URL = "https://bintangterang.or.id/url/2/getdata.php"; //computer IP or the server domain

String getData, Link;

String OldCardID = "";

unsigned long previousMillis = 0;

//************************************************************************

void setup() {

  delay(1000);

  Serial.begin(115200);

  SPI.begin();  // Init SPI bus

  mfrc522.PCD_Init(); // Init MFRC522 card

  //---------------------------------------------

  connectToWiFi();

}

//************************************************************************

void loop() {

  //check if there's a connection to Wi-Fi or not

  if(!WiFi.isConnected()){

    connectToWiFi();    //Retry to connect to Wi-Fi

  }

  //---------------------------------------------

  if (millis() - previousMillis >= 15000) {

    previousMillis = millis();

    OldCardID = "";  // Reset old card ID every 15 seconds

  }

  delay(50);

  //---------------------------------------------

  //look for new card

  if ( ! mfrc522.PICC_IsNewCardPresent()) {

    return;  // If no card is present, restart the loop

  }

  // Select one of the cards

  if ( ! mfrc522.PICC_ReadCardSerial()) {

    return;  // If unable to read the card, restart the loop

  }

  String CardID = "";

  for (byte i = 0; i < mfrc522.uid.size; i++) {

    CardID += String(mfrc522.uid.uidByte[i], HEX);  // Convert to Hex string for consistency

  }

  //---------------------------------------------

  if( CardID == OldCardID ){

    return;  // If same card is detected, skip sending data

  }

  else{

    OldCardID = CardID;  // Update OldCardID to the current one

  }

  //---------------------------------------------

//  Serial.println(CardID);

  SendCardID(CardID);

  delay(1000);  // Short delay to prevent rapid re-triggering

}

//************send the Card UID to the website*************

void SendCardID(String Card_uid) {

  Serial.println("Sending the Card ID");

  if (WiFi.isConnected()) {

    WiFiClientSecure client;  // Create a secure Wi-Fi client for HTTPS

 

    client.setInsecure();  // Disable SSL certificate verification (for testing purposes)

    HTTPClient https;

 

    getData = "?card_uid=" + String(Card_uid) + "&device_token=" + String(device_token);

    Link = URL + getData;

 

    https.begin(client, Link);  // Use the correct client variable here

    int httpCode = https.GET();

    String payload = https.getString();

 

    Serial.println(Link);

    Serial.println(httpCode);

    Serial.println(Card_uid);

    Serial.println(payload);

 

    if (httpCode == 200) {

      if (payload.startsWith("login")) {

        Serial.println("Login: " + payload.substring(5));

      } else if (payload.startsWith("logout")) {

        Serial.println("Logout: " + payload.substring(6));

      }

    } else {

      Serial.println("HTTPS request failed");

    }

    https.end();

  }

}

 

//********************connect to the WiFi******************

void connectToWiFi(){

  WiFi.mode(WIFI_OFF);        //Prevents reconnection issue (taking too long to connect)

  delay(1000);

  WiFi.mode(WIFI_STA);

  Serial.print("Connecting to ");

  Serial.println(ssid);

  WiFi.begin(ssid, password);

 

  unsigned long startAttemptTime = millis();

 

  while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < 30000) {

    delay(500);

    Serial.print(".");

  }

 

  if (WiFi.status() == WL_CONNECTED) {

    Serial.println("");

    Serial.println("Connected");

    Serial.print("IP address: ");

    Serial.println(WiFi.localIP());  //IP address assigned to your ESP

  }

  else {

    Serial.println("Failed to connect to Wi-Fi");

  }

}

 

Download Skema Absensi Online dengan RFID MFRC-522

Komentari Tulisan Ini
Tulisan Lainnya
“Efisiensi Pertanian Modern: Monitoring Tanaman dalam Greenhouse”

  Di era pertanian modern, teknologi menjadi kunci untuk menciptakan sistem tanam yang efisien, produktif, dan ramah lingkungan. Dengan bantuan berbagai sensor canggih seperti

05/11/2025 16:31 - Oleh Admin - Dilihat 157 kali
“Belajar Peduli Lingkungan Melalui Kegiatan Merakit Tong Sampah Otomatisi”

 Panumbangan, 5 November 2025 — Siswa LPK Bintang Terang kembali menorehkan prestasi membanggakan. Kali ini, mereka berhasil merakit tong sampah pintar (smart trash bin) ya

05/11/2025 15:42 - Oleh Admin - Dilihat 112 kali
Kabid PNF Disdik Ciamis Beri Motivasi di LPK Bintang Terang

Ciamis, 01 November 2025 — Kepala Bidang Pendidikan Nonformal (PNF) Dinas Pendidikan Kabupaten Ciamis, Bapak Eka Yudha Katresna, S.Sos., M.M., berkunjung ke LPK/LKP Bintang Terang

01/11/2025 15:05 - Oleh Admin - Dilihat 586 kali
SMART FARMING (IoT Berbasis ESP32)

/******************************************************* Program   : SMART FARMING (IoT Berbasis ESP32) Chip      : ESP32 Website   : https://bintangterang

01/11/2025 08:11 - Oleh Admin - Dilihat 71 kali
CAMAT PANUMBANGAN KUNJUNGI LPK BINTANG TERANG

Camat Panumbangan Kunjungi LPK Bintang Terang, Beri Motivasi untuk Peserta Pelatihan Smart Farming Panumbangan, 31 Oktober 2025 — LPK Bintang Terang mendapat kunjungan istimewa

01/11/2025 02:06 - Oleh Admin - Dilihat 576 kali
Green Tech Farm Mini Lab Smart Farming Innovation Center

  Istilah “Green Tech Farm Mini Lab Smart Farming Innovation Center” terdiri dari beberapa konsep yang saling terkait — semuanya berhubungan dengan inovasi tekno

27/10/2025 07:48 - Oleh Admin - Dilihat 108 kali
SMART FARMING ESP32 - FULL AUTOMATIC

  Kelompok 1 – Water & Irrigation (4 relay) Relay Fungsi Pin ESP32 RELAY_AIR Isi air tandon 25 RELAY_POMPA_HARIAN

18/10/2025 18:51 - Oleh Admin - Dilihat 93 kali
PENJELASAN STATUS SISTEM HIDROPONIK

    Bagian Kode Nilai Parameter Arti H 1 1 Hari Tanam (Hari ke-) Tanaman Anda sedang berada di Hari ke-1 fase pertumbuhan.

14/10/2025 22:07 - Oleh Admin - Dilihat 144 kali
PRAKTIK RANGKAIAN LAMPU FLIP FLOP

kami akan melaksanakan praktik rangkaian lampu flip-flop, yaitu rangkaian sederhana yang menunjukkan prinsip kerja sistem penyalaan lampu bergantian secara otomatis. Tujuan dari prak

13/10/2025 14:11 - Oleh Admin - Dilihat 91 kali
PEMBUKAAN PELATIHAN SMART FARMING PROJECT BASED LEARING (PBL)

Pelatihan Smart Farming berbasis Internet of Things (IoT) ini merupakan langkah nyata dalam menghadapi tantangan era digital di sektor pertanian. Dengan penerapan teknologi, diharapk

13/10/2025 12:17 - Oleh Admin - Dilihat 88 kali