---
title: "HomeKey-ESP32"
url: "https://maker.wiznet.io/lawrence/projects/homekey-esp32/"
markdown_url: "https://maker.wiznet.io/lawrence/projects/homekey-esp32/md"
type: "UCC: User Created Content"
author: "lawrence"
author_url: "https://maker.wiznet.io/lawrence/"
original_url: "https://github.com/rednblkx/HomeKey-ESP32"
published: "2025-12-11"
language: "en"
likes: 0
views: 381
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# HomeKey-ESP32

> HomeKey-ESP32

Original source: https://github.com/rednblkx/HomeKey-ESP32

## Article

### 1️⃣ HomeKey-ESP32 프로젝트 살펴보기

| 항목 | 내용 |
| --- | --- |
| **목적** | ESP32 + PN532 조합만으로 **Apple Home Key**(NFC) 기능을 DIY 잠금장치에 구현하기 위한 오픈소스 펌웨어 |
| **주요 HW** | • ESP32 dev board • PN532 NFC 모듈(SPI) • 선택 : W5500·DM9051 등 이더넷 PHY 지원 [GitHub](https://github.com/rednblkx/HomeKey-ESP32) |
| **라이선스** | MIT License [GitHub](https://github.com/rednblkx/HomeKey-ESP32) |
| **최근 상태** | 2025-11-22 기준 10번째 릴리스, ★ 798 · 포크 57 [GitHub](https://github.com/rednblkx/HomeKey-ESP32) |

#### ✨ 핵심 기능

**Apple Home Key 완전 지원Express Mode(화면·Face ID 불필요), Power Reserve(배터리 5시간 예비 전원), iPhone·Apple Watch 동시 지원, 300 ms 이하 인증스마트홈 연동** : HomeKit 네이티브·MQTT(HA, OpenHAB)·복합 Lock State 지원

**웹 UI & OTA** : Svelte 5 + Tailwind, 실시간 WebSocket 로그, 브라우저 플래셔 지원

**모듈형 C++ 아키텍처** : NFC/Lock/Web/MQTT/Config 매니저로 역할 분리, 확장성 우수

| **구분** | **설명** |
| --- | --- |
| **ESP32의 역할** | **Apple HomeKey 인증 절차를 수행하는 NFC 리더기 역할**을 합니다. 일반적인 NFC 태그를 읽는 수준을 넘어, Apple의 보안 요구사항을 충족하고 기기와 안전하게 통신해야 합니다. |
| **NFC 신호 처리** | 1. **PN532 NFC 모듈**이 iPhone/Apple Watch에서 전송되는 HomeKey NFC 신호를 수신합니다. 2. 이 신호에는 **보안 요소(Secure Element)**에 저장된 암호화된 디지털 키 데이터가 포함되어 있습니다. 3. ESP32는 이 신호를 **역설계(Reverse-engineered)**된 로직을 이용해 해석하고, 유효한 HomeKey 인증인지 확인합니다. |
| **최종 동작** | 인증이 성공하면, ESP32는 해당 사용자 정보를 **MQTT** 메시지로 발행합니다. 이 메시지는 Home Assistant와 같은 스마트 홈 플랫폼에서 **"잠금 해제"** 명령을 실행하는 트리거로 사용됩니다. |

**'인증 절차 구현':** ESP32 자체가 HomeKit 및 HomeKey의 **복잡한 보안 및 인증 절차**를 자체적으로 구현하여, Apple 기기가 이 ESP32 장치를 정식 HomeKey 리더기로 인식하고 통신하도록 만드는 것입니다.

### 2️⃣ Apple Home Key 심층 세션

![How to Setup Apple Home Key](https://www.homekitauthority.com/wp-content/uploads/2022/01/How-to-setup-Apple-Home-Key.jpg)

#### Home Key란?

iOS 15에서 도입된 **지갑(Apple Wallet) 기반 디지털 집-키**로, iPhone 또는 Apple Watch를 잠금장치 NFC 리더에 **툭** 대면 즉시 열립니다.

Apple HomeKey(홈 키)는 **iPhone 또는 Apple Watch**를 사용하여 **NFC(근거리 무선 통신)** 방식으로 호환되는 스마트 도어락의 잠금을 해제할 수 있게 해주는 기능입니다. 전통적인 열쇠나 도어락 비밀번호 대신, 사용자의 Apple 기기를 디지털 키로 활용하는 것입니다.

이 기능은 Apple의 스마트 홈 플랫폼인 **HomeKit**에 통합되어 있으며, 사용자에게 높은 편리성과 보안을 동시에 제공합니다.

#### 작동 방식

| 단계 | 설명 |
| --- | --- |
| ① **설정** | 홈 앱에서 지원 락 추가 → Wallet에 **Home Key** 카드 발급 |
| ② **Express Mode** | Face ID·패스코드 없이 슬립 상태에서도 1-Tap 해제 |
| ③ **Power Reserve** | iPhone 전원 꺼져도 최대 5 시간 NFC 잠금 해제 |
| ④ **보안** | Secure Element + ECP(Enhanced Contactless Polling)로 1회용 암호화 토큰 교환 |

#### 2025년 현재 지원 기기

**스마트락**
• Schlage Encode Plus, Level Lock +, Aqara U100, Ultraloq Bolt NFC(-> 안드로이드 Tap-to-Unlock 추가 업데이트) 등 [9to5Mac+2Geeky Gadgets+2](https://9to5mac.com/2024/11/01/home-key-door-locks/?utm_source=chatgpt.com)

**iPhone / Watch** : iPhone XS·11 이후, Apple Watch Series 4 이후 (최신 iOS 17 / watchOS 10 권장)

### ESP32 to Apple Home

**전체 작동 구조 (Architecture)**

데이터는 다음과 같은 흐름으로 전달됩니다.

**ESP32 (Device):** 센서 값을 읽거나 스위치 제어 명령을 받습니다. MQTT 프로토콜을 사용해 메시지를 발행(Publish)하거나 구독(Subscribe)합니다.

**MQTT Broker (Server):** ESP32와 브릿지 사이에서 메시지를 중계하는 우체국 역할을 합니다. (보통 Raspberry Pi나 PC에 `Mosquitto` 등을 설치)

**Middleware (Bridge):** MQTT 메시지를 받아서 Apple HomeKit 프로토콜(HAP)로 변환해 줍니다. **가장 핵심적인 부분**입니다.

**Apple Home (iOS):** 사용자는 일반적인 HomeKit 기기처럼 제어합니다.

![](https://maker.wiznet.io/upload/ckeditor5/843188807%5F1765788591%2Epng)

**Apple Home은 애플 생태계 안에서 가장 직관적이고 보안성이 높은 스마트 홈 제어 솔루션**이지만, 외부에서 제어하려면 **애플 TV나 홈팟 같은 별도의 허브 장비가 필수**라는 특징이 있습니다.

![](https://maker.wiznet.io/upload/ckeditor5/843188807%5F1765788540%2Epng)

#### 결론

**HomeKey-ESP32**는 **저렴한 하드웨어**를 이용해 Home Key 경험을 직접 구현해볼 수 있는 최적의 학습/DIY 프로젝트입니다.

**Apple Home Key** 자체는 2025년 현재 스마트락 시장에서 가장 간편하고 안전한 모바일 키 솔루션으로 자리잡고 있으며, Matter·Android NFC 확장과 함께 더욱 빠른 생태계 확장이 예상됩니다.

---

Source: https://maker.wiznet.io/lawrence/projects/homekey-esp32/
