Presensi RFID Berbasis IoT
Monitoring kehadiran siswa realtime menggunakan ESP32, RFID, dan Google Spreadsheet
Presensi RFID ESP32 Google Spreadsheet Realtime Attendance System
Profil Tim
1. Isi Nama Siswa
2. Isi Nama Siswa
3. Isi Nama Siswa
SMK Negeri 1 Kedungwuni
Deskripsi Proyek
Komponen yang Digunakan
| No | Komponen | Jumlah |
|---|---|---|
| 1 | ESP32 | 1 |
| 2 | RFID RC522 | 1 |
| 3 | LCD I2C 16x2 | 1 |
| 4 | Buzzer | 1 |
| 5 | Kartu RFID | Beberapa |
Wiring ESP32
SDA → GPIO 5
SCK → GPIO 18
MOSI → GPIO 23
MISO → GPIO 19
RST → GPIO 22
3.3V → 3.3V
GND → GND
LCD I2C
SDA → GPIO 21
SCL → GPIO 22
Buzzer
+ → GPIO 25
Alur Sistem
2. RFID membaca UID kartu
3. ESP32 mencocokkan data siswa
4. Data dikirim ke Google Spreadsheet
5. LCD menampilkan nama siswa
6. Rekap kehadiran langsung terlihat realtime
Google Apps Script
function doGet(e){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
sheet.appendRow([
new Date(),
e.parameter.uid,
e.parameter.nama
]);
return ContentService.createTextOutput("OK");
}
Source Code ESP32
#include <WiFi.h>
#include <HTTPClient.h>
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal_I2C.h>
#define SS_PIN 5
#define RST_PIN 22
#define BUZZER 25
MFRC522 rfid(SS_PIN,RST_PIN);
LiquidCrystal_I2C lcd(0x27,16,2);
const char* ssid="NamaWifi";
const char* password="PasswordWifi";
String scriptURL="ISI_URL_APPS_SCRIPT";
void setup(){
Serial.begin(115200);
SPI.begin();
rfid.PCD_Init();
pinMode(BUZZER,OUTPUT);
lcd.init();
lcd.backlight();
WiFi.begin(ssid,password);
while(WiFi.status()!=WL_CONNECTED){
delay(500);
}
lcd.print("System Ready");
}
void loop(){
if(!rfid.PICC_IsNewCardPresent()) return;
if(!rfid.PICC_ReadCardSerial()) return;
String uid="";
for(byte i=0;i



