Smart RFID Attendance

//*******************************Program********************************
//*******************************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");
}
}

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
“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
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
SMART FARMING (IoT Berbasis ESP32)
/******************************************************* Program : SMART FARMING (IoT Berbasis ESP32) Chip : ESP32 Website : https://bintangterang
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
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
SMART FARMING ESP32 - FULL AUTOMATIC
Kelompok 1 – Water & Irrigation (4 relay) Relay Fungsi Pin ESP32 RELAY_AIR Isi air tandon 25 RELAY_POMPA_HARIAN
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.
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
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






