Membuat Mesin Absensi Otomatis Berbasis ESP32 dan RFID

3 min read 23-08-2024
Membuat Mesin Absensi Otomatis Berbasis ESP32 dan RFID

Pendahuluan

Absensi merupakan salah satu aspek penting dalam manajemen kehadiran di berbagai institusi seperti sekolah, universitas, dan perusahaan. Dengan perkembangan teknologi, sistem absensi kini dapat dilakukan secara otomatis menggunakan perangkat berbasis microcontroller. Dalam artikel ini, kita akan membahas cara membuat mesin absensi otomatis menggunakan ESP32 dan RFID.

Apa itu ESP32?

ESP32 adalah salah satu chip microcontroller yang dirancang oleh Espressif Systems, yang memiliki kemampuan Wi-Fi dan Bluetooth. Chip ini sangat populer di kalangan penggemar IoT dan DIY karena kemampuannya yang kuat, harga yang terjangkau, serta dukungan komunitas yang luas. Dengan menggunakan ESP32, kita bisa membuat berbagai aplikasi, termasuk mesin absensi otomatis.

Apa itu RFID?

RFID (Radio Frequency Identification) adalah teknologi yang menggunakan gelombang radio untuk mengidentifikasi objek secara otomatis. Sistem RFID terdiri dari dua komponen utama: reader dan tag. Tag RFID terpasang pada objek yang ingin diidentifikasi (misalnya kartu identitas) dan reader RFID berfungsi untuk membaca informasi dari tag tersebut. Dalam konteks mesin absensi, tag RFID dapat digunakan oleh siswa atau karyawan untuk melakukan absen.

Komponen yang Dibutuhkan

Sebelum kita mulai membuat mesin absensi otomatis, berikut adalah komponen yang perlu disiapkan:

  1. ESP32: Sebagai otak dari mesin absensi.
  2. Modul RFID RC522: Untuk membaca tag RFID.
  3. Kartu RFID: Sebagai tag untuk absensi.
  4. Breadboard: Tempat untuk merakit rangkaian.
  5. Jumper wire: Untuk menghubungkan komponen.
  6. LED dan resistor: Sebagai indikator status absensi.
  7. Buzzer: Untuk memberikan notifikasi suara saat absensi berhasil.
  8. Koneksi internet: Jika ingin mengirim data ke server atau database.

Skematik Rangkaian

Sebelum merakit rangkaian, kita perlu memahami bagaimana cara menghubungkan komponen-komponen tersebut. Berikut adalah skema dasar dari rangkaian:

                        +--------------+
                        |              |
                        |    RFID RC522|
                        |              |
                        +--------------+
                          |   |    |   |
                     SDA |   |    |   | VCC
                         GND  |   |   MOSI
                         CS   |   |   SCK
                          |   |   |   |
                          |   |   |   |
                        +-----------------+
                        |                 |
                        |      ESP32     |
                        |                 |
                        +-----------------+

Keterangan Pin (ESP32 dan RFID)

  • SDA (Pin 21)
  • SCK (Pin 18)
  • MOSI (Pin 23)
  • MISO (Pin 19)
  • RST (Pin 5)
  • VCC (3.3V)
  • GND (Ground)

Pemrograman ESP32

Setelah menyelesaikan tata letak rangkaian, langkah selanjutnya adalah memprogram ESP32. Kita akan menggunakan Arduino IDE untuk memudahkan pemrograman. Pastikan Anda telah menginstal library MFRC522 untuk modul RFID.

Berikut adalah contoh kode untuk mesin absensi otomatis:

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 21
#define RST_PIN 5
MFRC522 rfid(SS_PIN, RST_PIN); 

void setup() {
  Serial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();
  Serial.println("Scan a card...");

  pinMode(LED_BUILTIN, OUTPUT); // LED untuk indikator
  pinMode(12, OUTPUT); // Buzzer
}

void loop() {
    if ( ! rfid.PICC_IsNewCardPresent()) {
      return;
    }

    if ( ! rfid.PICC_ReadCardSerial()) {
      return;
    }

    Serial.print("UID tag:");
    for (byte i = 0; i < rfid.uid.size; i++) {
      Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
      Serial.print(rfid.uid.uidByte[i], HEX);
    }
    Serial.println();

    // Absen berhasil
    digitalWrite(LED_BUILTIN, HIGH);
    digitalWrite(12, HIGH); // Menyalakan buzzer
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    digitalWrite(12, LOW); // Mematikan buzzer
}

Penjelasan Kode

  1. Library: Kode dimulai dengan mengimpor library SPI dan MFRC522 yang digunakan untuk mengoperasikan modul RFID.

  2. Inisialisasi: Dalam fungsi setup(), kita inisialisasi SPI dan modul RFID.

  3. Loop: Dalam fungsi loop(), kita memeriksa apakah ada kartu RFID yang baru. Jika ada dan berhasil membacanya, UID kartu akan dicetak ke serial monitor. Kemudian, kita menyalakan LED dan buzzer sebagai indikator bahwa absensi telah berhasil.

Penyimpanan Data Absensi

Untuk menyimpan data absensi, Anda dapat menghubungkan ESP32 dengan database menggunakan koneksi internet. Anda bisa memanfaatkan berbagai layanan cloud seperti Firebase, Blynk, atau membuat server sendiri dengan menggunakan PHP dan MySQL. Proses pengiriman data bisa dilakukan dengan menggunakan HTTP POST atau MQTT.

Berikut adalah contoh sederhana untuk mengirim data ke server menggunakan HTTP POST:

#include <WiFi.h>
#include <HTTPClient.h>

const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";

void setup() {
  // Setup wireless connection
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
}

void sendData(String uid) {
    if(WiFi.status() == WL_CONNECTED) {
        HTTPClient http;
        http.begin("http://yourserver.com/api/absensi");
        http.addHeader("Content-Type", "application/x-www-form-urlencoded");

        String httpRequestData = "uid=" + uid;
        int httpResponseCode = http.POST(httpRequestData);

        if (httpResponseCode > 0) {
            String response = http.getString();
            Serial.println(httpResponseCode);
            Serial.println(response);
        } else {
            Serial.print("Error on sending POST: ");
            Serial.println(httpResponseCode);
        }
        http.end();
    }
}

Dengan menambahkan fungsi sendData(), Anda dapat mengirimkan UID ke server setelah setiap absensi berhasil.

Kesimpulan

Dengan memanfaatkan teknologi ESP32 dan RFID, Anda dapat membuat sistem absensi otomatis yang efisien dan mudah digunakan. Proyek ini tidak hanya membantu dalam menciptakan solusi absensi yang lebih baik, tetapi juga memperkenalkan konsep IoT dan pemrograman microcontroller kepada pembaca. Dengan variasi dan pengembangan lebih lanjut, Anda dapat menyesuaikan sistem ini sesuai dengan kebutuhan spesifik Anda. Selamat mencoba!