🎯 Co zbudujesz?
W tym projekcie zbudujesz inteligentny zamek drzwiowy, który otwiera się tylko po rozpoznaniu twarzy właściciela — bez potrzeby internetu. Wszystko działa lokalnie, dzięki Raspberry Pi i sztucznej inteligencji.
🧰 Komponenty
- Raspberry Pi (rekomendowany: 3B+, 4 lub Zero 2 W)
- Kamera kompatybilna z Raspberry Pi (np. Kamera v2 lub USB)
- Moduł przekaźnika 5V (do sterowania elektrozaczepem)
- Elektrozaczep 12V (lub serwomechanizm do testów)
- Zasilacz 12V i/lub powerbank
- Obudowa (np. plastikowa skrzynka lub druk 3D)
- Przewody, złącza, śrubki
📷 Schemat działania
- Kamera rejestruje obraz.
- Algorytm rozpoznaje twarz na podstawie wcześniej zapisanych wzorców.
- Jeśli twarz pasuje – Raspberry Pi aktywuje przekaźnik, odblokowując zamek.
💻 Oprogramowanie i biblioteki
Zainstaluj na Raspberry Pi:
sudo apt update
sudo apt install python3-opencv python3-pip
pip3 install face-recognition imutils
Opcjonalnie (do uruchamiania przy starcie):
sudo apt install screen
🧠 Kod – rozpoznawanie twarzy
Plik: face_lock.py
import face_recognition
import cv2
import numpy as np
import RPi.GPIO as GPIO
import time
# Ustawienia GPIO
RELAY_PIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(RELAY_PIN, GPIO.OUT)
GPIO.output(RELAY_PIN, GPIO.HIGH) # Zamek zamknięty
# Załaduj znane twarze
known_image = face_recognition.load_image_file("known/owner.jpg")
known_encoding = face_recognition.face_encodings(known_image)[0]
video_capture = cv2.VideoCapture(0)
print("Uruchomiono system rozpoznawania twarzy...")
while True:
ret, frame = video_capture.read()
rgb_frame = frame[:, :, ::-1]
face_locations = face_recognition.face_locations(rgb_frame)
face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)
for face_encoding in face_encodings:
matches = face_recognition.compare_faces([known_encoding], face_encoding)
if True in matches:
print("Twarz rozpoznana – otwieram zamek!")
GPIO.output(RELAY_PIN, GPIO.LOW) # Otwórz zamek
time.sleep(5)
GPIO.output(RELAY_PIN, GPIO.HIGH) # Zamknij zamek
break
time.sleep(0.2)
🛠️ Montaż krok po kroku
- Zamontuj Raspberry Pi i kamerę w obudowie przy drzwiach.
- Podłącz kamerę i przekaźnik (do GPIO17).
- Podłącz elektrozaczep przez przekaźnik i zasilacz 12V.
- Stwórz folder
known/
i umieść tam zdjęcie właściciela jakoowner.jpg
. - Wgraj kod
face_lock.py
i uruchom: bashKopiujEdytujpython3 face_lock.py
- System rozpoznaje twarz i odblokowuje drzwi na 5 sekund po pozytywnej weryfikacji.
🔧 Możliwe rozszerzenia
- Obsługa wielu użytkowników (więcej zdjęć i identyfikacja po imieniu)
- Interfejs webowy lub przycisk do manualnego otwierania
- Wersja z czujnikiem ruchu – oszczędność energii
- Integracja z domofonem lub systemem smart home (np. Home Assistant)
- Zastosowanie maskowania tła i ochrony antyspoofingowej (np. detekcja 3D)
🧠 Wersja z AI
Jeśli chcesz ulepszyć rozpoznawanie:
- Trenuj model lokalnie z użyciem np. MediaPipe, OpenCV lub ONNX
- Możesz użyć TinyML + Edge Impulse + kamery USB do rozpoznania twarzy offline nawet na ESP32-S3 (bardziej zaawansowana wersja)
✅ Podsumowanie
To projekt, który daje nie tylko satysfakcję z działania – ale i realne poczucie bezpieczeństwa. Idealny do nauki AI w praktyce oraz wykorzystania Raspberry Pi. Zamek na twarz? Teraz to możliwe — i całkowicie offline.