Advertisement





Iklan

Modul Penggunaan RFID pada NodeMCU ESP8266 untuk Mengontrol Hidup dan Mati Lampu

 


Pendahuluan

RFID (Radio Frequency Identification) adalah teknologi yang digunakan untuk mengidentifikasi objek menggunakan gelombang radio. Dalam proyek ini, kita akan menggunakan RFID bersama NodeMCU ESP8266 untuk mengontrol hidup dan mati lampu. Proyek ini cocok untuk aplikasi smart home atau sistem akses otomatis.

Tujuan

  1. Memahami cara kerja RFID dengan NodeMCU ESP8266.
  2. Membuat sistem yang dapat menghidupkan atau mematikan lampu menggunakan tag RFID.


Hardware yang Dibutuhkan

  1. NodeMCU ESP8266
  2. RFID RC522 Module
  3. Relay Module (1-channel) (Opsional)
  4. Lampu dan fitting lampu
  5. Kabel jumper
  6. Breadboard atau PCB
  7. Power supply 5V


Instalasi Perangkat Lunak

A. Persiapan Arduino IDE

1.  Unduh dan instal Arduino IDE dari situs resmi Arduino.
2.  Tambahkan board ESP8266:

  • Buka File > Preferences.
  • Pada kolom Additional Board Manager URLs, tambahkan URL berikut:
  • http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Klik OK.
  • Buka Tools > Board > Boards Manager, cari "ESP8266", lalu klik Install.

3.  Instal pustaka RFID:

  • Buka Tools > Manage Libraries.
  • Cari "MFRC522" dan klik Install.

4.  Instal pustaka relay (opsional jika belum ada).

B. Koneksi NodeMCU dengan Komputer

1.  Sambungkan NodeMCU ESP8266 ke komputer menggunakan kabel USB.
2.  Pilih port dan board di Arduino IDE:

  • Tools > Board > NodeMCU 1.0 (ESP-12E Module).
  • Tools > Port > Pilih port yang sesuai.


Rangkaian Elektronik

Diagram Koneksi

1.   NodeMCU ESP8266 ke RFID RC522

  • SDA -> D2
  • SCK -> D5
  • MOSI -> D7
  • MISO -> D6
  • GND -> GND
  • RST -> D1
  • 3.3V -> 3.3V
2.   NodeMCU ke Relay
  • IN -> D8
  • VCC -> 5V
  • GND -> GND

3.   Relay ke Lampu

  • Sambungkan relay sebagai saklar antara sumber listrik AC dan lampu.

Catatan: Hati-hati saat bekerja dengan listrik AC. Pastikan sumber daya dimatikan sebelum menyambungkan relay.

Kode Program 1 ( Untuk 1 kartu RFID)

Berikut adalah kode program untuk proyek ini:

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

#define RST_PIN D1
#define SS_PIN D2
#define RELAY_PIN D8

MFRC522 rfid(SS_PIN, RST_PIN);

// UID RFID yang diizinkan
byte authorizedUID[] = {0xD3, 0xF4, 0xA8, 0xA5}; // Ganti dengan UID kartu Anda
bool lampState = false;

void setup() {
  Serial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW); // Lampu mati saat start
  Serial.println("Sistem RFID Siap!");
}

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

  // Cek UID kartu
  if (checkUID()) {
    toggleLamp();
  } else {
    Serial.println("Akses Ditolak!");
  }

  rfid.PICC_HaltA();
}

bool checkUID() {
  for (byte i = 0; i < rfid.uid.size; i++) {
    if (rfid.uid.uidByte[i] != authorizedUID[i]) {
      return false;
    }
  }
  Serial.println("Akses Diterima!");
  return true;
}

void toggleLamp() {
  lampState = !lampState;
  digitalWrite(RELAY_PIN, lampState ? HIGH : LOW);
  Serial.println(lampState ? "Lampu Hidup" : "Lampu Mati");
}



Kode Program 2 ( Untuk lebih dari 1 kartu RFID)

Berikut adalah kode program untuk proyek ini:

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

#define RST_PIN D1
#define SS_PIN D2
#define RELAY_PIN D8

MFRC522 rfid(SS_PIN, RST_PIN);

// UID RFID yang diizinkan
byte authorizedUIDs[][4] = {
  {0xD3, 0xF4, 0xA7, 0xA5}, // Kartu 1
  {0xB1, 0xC2, 0xD3, 0xE4}  // Kartu 2
};
const int numOfCards = sizeof(authorizedUIDs) / sizeof(authorizedUIDs[0]);

bool lampState = false;

void setup() {
  Serial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW); // Lampu mati saat start
  Serial.println("Sistem RFID Siap!");
}

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

  // Cek UID kartu
  if (checkUID()) {
    toggleLamp();
  } else {
    Serial.println("Akses Ditolak!");
  }

  rfid.PICC_HaltA();
}

bool checkUID() {
  for (int i = 0; i < numOfCards; i++) {
    bool match = true;
    for (byte j = 0; j < rfid.uid.size; j++) {
      if (rfid.uid.uidByte[j] != authorizedUIDs[i][j]) {
        match = false;
        break;
      }
    }
    if (match) {
      Serial.println("Akses Diterima!");
      return true;
    }
  }
  return false;
}

void toggleLamp() {
  lampState = !lampState;
  digitalWrite(RELAY_PIN, lampState ? HIGH : LOW);
  Serial.println(lampState ? "Lampu Hidup" : "Lampu Mati");
}

Langkah-langkah Implementasi

1.   Upload Program

  • Sambungkan NodeMCU ke komputer.
  • Upload kode di atas menggunakan Arduino IDE.

2.   Uji RFID

  • Dekatkan kartu RFID ke reader.
  • Jika kartu sesuai dengan salah satu UID yang diotorisasi, lampu akan menyala/mati secara bergantian.

3.   Integrasi ke Sistem

  • Pasang NodeMCU dan perangkat lainnya pada tempat yang aman.
  • Pastikan koneksi listrik aman dan stabil.


Penutup

Proyek ini menunjukkan bagaimana RFID dapat digunakan untuk aplikasi smart home sederhana. Anda dapat mengembangkan proyek ini lebih lanjut, misalnya dengan menambahkan database UID atau kontrol berbasis IoT menggunakan Blynk atau MQTT.

Selamat mencoba!

Untuk Mendownload file source arduino dapat scand barcode dibawah ini



Posting Komentar

0 Komentar