Raspberry Pi adalah mini komputer seukuran kartu kredit yang sangat populer untuk proyek IoT, otomasi, dan pembelajaran pemrograman.
Salah satu proyek menarik yang bisa dibuat dengan Raspberry Pi adalah Face Recognition Door Lock — sistem kunci pintu otomatis yang akan terbuka hanya jika wajah yang dikenali sesuai dengan data yang sudah tersimpan.

Tutorial ini ditujukan untuk pemula. Artinya, meskipun kamu belum pernah menggunakan Raspberry Pi sebelumnya, kamu tetap bisa mengikuti langkah demi langkah yang disediakan di sini.


Langkah 1 – Persiapan Alat dan Bahan

Sebelum memulai, pastikan semua kebutuhan perangkat keras dan perangkat lunak sudah siap. Tanpa alat yang lengkap, sistem tidak bisa berjalan sempurna.

Alat yang dibutuhkan

  • Raspberry Pi 4 (disarankan) + microSD 16/32 GB

  • Adaptor power Raspberry Pi

  • Kamera (Pi Camera Module atau USB Webcam)

  • Modul relay (untuk mengendalikan kunci pintu elektrik)

  • Kunci pintu elektrik (solenoid lock atau magnetic lock)

  • Kabel jumper

  • Breadboard (opsional untuk prototyping)

  • Monitor + keyboard + mouse (untuk setup awal)

Software

  • Raspberry Pi OS (diinstal via Raspberry Pi Imager)

  • Python 3 (sudah bawaan Raspberry Pi)

  • OpenCV (untuk pengolahan gambar)

  • Face Recognition library (berbasis dlib)


Langkah 2 – Instalasi Raspberry Pi

Raspberry Pi menggunakan sistem operasi berbasis Linux. Kita perlu menyiapkan OS ke dalam microSD agar Pi bisa digunakan.

  1. Download Raspberry Pi Imager dari situs resmi.

  2. Masukkan microSD ke laptop/PC.

  3. Jalankan Raspberry Pi Imager → pilih OS: Raspberry Pi OS (Lite atau Desktop).

  4. Pilih microSD target → klik Write.

  5. Setelah selesai, masukkan microSD ke Raspberry Pi.

  6. Sambungkan monitor, keyboard, mouse → nyalakan Pi.


Langkah 3 – Update dan Instalasi Library

Agar Raspberry Pi siap digunakan untuk pengolahan wajah, kita perlu mengupdate sistem dan memasang beberapa library Python.

 
sudo apt update && sudo apt upgrade -y sudo apt install python3-pip python3-opencv -y pip3 install face_recognition

Langkah 4 – Menangkap dan Menyimpan Dataset Wajah

Sistem face recognition membutuhkan data wajah yang sudah dikenali sebelumnya. Jadi kita buat program Python untuk mengambil gambar wajah lalu menyimpannya sebagai dataset.

 
import cv2 import os cam = cv2.VideoCapture(0) cv2.namedWindow("Capture Face") user_name = input("Masukkan nama pengguna: ") path = "dataset/" + user_name if not os.path.exists(path): os.makedirs(path) count = 0 while True: ret, frame = cam.read() if not ret: break cv2.imshow("Capture Face", frame) k = cv2.waitKey(1) if k%256 == 27: # ESC untuk keluar print("Escape ditekan, keluar...") break elif k%256 == 32: # SPACE untuk capture img_name = f"{path}/face_{count}.jpg" cv2.imwrite(img_name, frame) print(f"{img_name} tersimpan!") count += 1 cam.release() cv2.destroyAllWindows()

Langkah 5 – Pengenalan Wajah

Setelah dataset wajah tersimpan, sekarang kita buat program pengenalan wajah yang membandingkan wajah di depan kamera dengan dataset.

 
import face_recognition import cv2 import os import numpy as np known_encodings = [] known_names = [] dataset_dir = "dataset" # Load semua wajah di dataset for user_name in os.listdir(dataset_dir): user_folder = os.path.join(dataset_dir, user_name) for file in os.listdir(user_folder): img_path = os.path.join(user_folder, file) image = face_recognition.load_image_file(img_path) encoding = face_recognition.face_encodings(image)[0] known_encodings.append(encoding) known_names.append(user_name) video = cv2.VideoCapture(0) while True: ret, frame = video.read() rgb_frame = frame[:, :, ::-1] face_locations = face_recognition.face_locations(rgb_frame) face_encodings = face_recognition.face_encodings(rgb_frame, face_locations) for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings): matches = face_recognition.compare_faces(known_encodings, face_encoding) name = "Unknown" face_distances = face_recognition.face_distance(known_encodings, face_encoding) best_match_index = np.argmin(face_distances) if matches[best_match_index]: name = known_names[best_match_index] cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2) cv2.putText(frame, name, (left, top-10), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,255,0), 2) cv2.imshow("Face Recognition", frame) if cv2.waitKey(1) & 0xFF == ord('q'): break video.release() cv2.destroyAllWindows()

Langkah 6 – Integrasi dengan Door Lock

Sekarang kita hubungkan hasil pengenalan wajah dengan modul relay untuk membuka kunci pintu.

 
import RPi.GPIO as GPIO import time RELAY_PIN = 17 GPIO.setmode(GPIO.BCM) GPIO.setup(RELAY_PIN, GPIO.OUT) def open_door(): GPIO.output(RELAY_PIN, GPIO.HIGH) # aktifkan relay print("Pintu terbuka!") time.sleep(5) GPIO.output(RELAY_PIN, GPIO.LOW) # matikan relay print("Pintu terkunci kembali!")

Jika wajah dikenali, cukup panggil fungsi:

 
open_door()

Penutup

Dengan mengikuti tutorial ini, kamu telah berhasil membuat sistem Face Recognition Door Lock menggunakan Raspberry Pi. Mulai dari instalasi OS, instalasi library, pembuatan dataset wajah, hingga integrasi dengan modul relay.

Proyek ini bisa dikembangkan lebih jauh, misalnya dengan:

  • Menambahkan sistem logging (catatan siapa yang membuka pintu)

  • Mengirim notifikasi ke HP

  • Mengontrol pintu lewat aplikasi web atau mobile

WhatsApp