ESP32 마이크로파이썬 4x4 키패드
이 가이드는 MicroPython을 사용하여 ESP32와 4x4 키패드를 활용하는 방법을 알아봅니다. 다음 단계를 진행할 것입니다:
- ESP32에 4x4 키패드 연결 방법
- ESP32용 MicroPython 스크립트 작성 방법: 4x4 키패드에서 키가 눌렸는지 확인하는 방법
- 4x4 키패드를 통해 입력받은 비밀번호를 검증하는 MicroPython 스크립트 작성 방법

준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | Membrane Keypad 4x4 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
4x4 키패드에 대하여
4x4 키패드에는 행과 열로 구성된 그리드를 형성하는 16개의 소프트 버튼이 포함되어 있습니다. 각 버튼은 키라고 합니다.
핀아웃
4x4 키패드는 행과 열이라는 두 가지 유형으로 나뉜 8개의 핀을 사용합니다.
4개의 핀이 행(R1, R2, R3, R4)에 연결됩니다.
4개의 핀이 열(C1, C2, C3, C4)에 연결됩니다.

선연결
- ESP32와 키패드 4x4를 브레드보드를 사용하여 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32와 4x4 키패드를 나사 단자 블록 브레이크아웃 보드를 사용하여 연결하는 방법

ESP32 마이크로파이썬 코드
from DIYables_MicroPython_Keypad import Keypad
import time
NUM_ROWS = 4
NUM_COLS = 4
# Constants for GPIO pins
ROW_PINS = [19, 18, 5, 17] # The ESP32 pin GPIO19, GPIO18, GPIO5, GPIO17 connect to the row pins
COLUMN_PINS = [16, 4, 0, 2] # The ESP32 pin GPIO16, GPIO4, GPIO0, GPIO2 connect to the column pins
# Keymap corresponds to the layout of the keypad 4x4
KEYMAP = ['1', '2', '3', 'A',
'4', '5', '6', 'B',
'7', '8', '9', 'C',
'*', '0', '#', 'D']
# Initialize the keypad
keypad = Keypad(KEYMAP, ROW_PINS, COLUMN_PINS, NUM_ROWS, NUM_COLS)
keypad.set_debounce_time(400) # 400ms, addjust it if it detects twice for single press
print("Keypad 4x4 example")
# Main loop to check for key presses
while True:
key = keypad.get_key()
if key:
print("Key pressed: ", key)
자세한 사용 방법
다음은 Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법에 대한 안내입니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
- MicroPython이 탑재된 ESP32를 처음 사용한다면, 단계별 지침을 제공하는 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
- 다이어그램에 표시된 대로 4x4 키패드를 ESP32에 연결하세요.
- USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Thonny IDE를 실행하세요.
- Thonny IDE에서 Tools Options로 이동하세요.
- Interpreter 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하세요.
- 올바른 포트가 선택되어 있는지 확인하세요. Thonny IDE는 보통 이를 자동으로 감지하지만, 필요한 경우 수동으로 선택해야 할 수 있습니다(예를 들어, Windows에서는 COM12, Linux에서는 /dev/ttyACM0).
- Thonny IDE의 Tools Manage packages 메뉴로 이동하세요.
- “DIYables-MicroPython-Keypad”를 검색한 후, DIYables에서 만든 Keypad 라이브러리를 찾으세요.
- DIYables-MicroPython-Keypad를 클릭한 다음, Keypad 라이브러리를 설치하기 위해 Install 버튼을 클릭하세요.

- 제공된 MicroPython 코드를 복사하여 Thonny 에디터에 붙여넣으십시오.
- 다음 방법으로 ESP32에 코드를 저장하십시오:
- Save 버튼을 클릭하거나 Ctrl+S를 누르십시오.
- 저장 대화상자에서 MicroPython device를 선택하십시오.
- 파일 이름을 main.py로 지정하십시오.
- 녹색 Run 버튼(또는 F5 키)을 클릭하여 스크립트를 실행하십시오.
- 4x4 키패드에서 몇 개의 키를 누르십시오.
- Thonny 하단의 Shell에서 메시지를 확인하십시오.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
Keypad 4x4 example
Key pressed: 1
Key pressed: 2
Key pressed: 3
Key pressed: 4
Key pressed: A
Key pressed: B
Key pressed: C
Key pressed: *
Key pressed: #
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
작동하지 않으면 배선을 꼼꼼히 확인하세요. ESP32를 4x4 키패드에 연결할 때 혼란스러워지기 쉽습니다.
키패드와 비밀번호
키패드는 종종 비밀번호를 입력하는 데 사용됩니다. 여기서는 두 개의 특수 키를 사용합니다:
- "*" 키와 같이 비밀번호 입력을 시작하거나 다시 입력하기 위한 키입니다.
- "#" 키와 같이 비밀번호 입력을 완료하기 위한 키입니다.
비밀번호는 두 개의 특수 키를 제외한 다른 키들로 구성됩니다. 키를 누르면:
- 만약 입력한 키가 "*"나 "#"가 아니라면, 입력 중인 비밀번호에 포함시킵니다.
- 만약 입력한 키가 "#"라면, 입력한 비밀번호가 올바른지 확인한 후 비밀번호를 초기화합니다.
- 만약 입력한 키가 "*"라면, 비밀번호를 초기화합니다.
키패드 - 비밀번호 코드
/*
* 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-keypad-4x4
*/
from DIYables_MicroPython_Keypad import Keypad
import time
NUM_ROWS = 4
NUM_COLS = 4
# Constants for GPIO pins
ROW_PINS = [19, 18, 5, 17] # The ESP32 pin GPIO19, GPIO18, GPIO5, GPIO17 connect to the row pins
COLUMN_PINS = [16, 4, 0, 2] # The ESP32 pin GPIO16, GPIO4, GPIO0, GPIO2 connect to the column pins
# Keymap corresponds to the layout of the keypad 4x4
KEYMAP = ['1', '2', '3', 'A',
'4', '5', '6', 'B',
'7', '8', '9', 'C',
'*', '0', '#', 'D']
# Initialize the keypad
keypad = Keypad(KEYMAP, ROW_PINS, COLUMN_PINS, NUM_ROWS, NUM_COLS)
keypad.set_debounce_time(400) # 400ms, addjust it if it detects twice for single press
# Define the correct password
correct_password = "1234A"
input_password = ""
print("Keypad 4x4 password")
# Main loop
while True:
key = keypad.get_key()
if key:
print(key)
if key == '*':
input_password = "" # Clear input password
elif key == '#':
if input_password == correct_password:
print("Password is correct")
# DO YOUR WORK HERE
else:
print("Password is incorrect, try again")
input_password = "" # Clear input password
else:
input_password += key # Append new character to input password string
- 위의 코드를 복사하여 Thonny IDE의 편집기에 붙여넣으십시오.
- 스크립트를 ESP32에 저장하십시오.
- "123" 키를 누른 후 "#" 키를 누르십시오.
- "1234A" 키를 누른 후 "#" 키를 누르십시오.
- Thonny 하단의 Shell에서 메시지를 확인하십시오.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
MPY: soft reboot
Keypad 4x4 password
1
2
3
#
Password is incorrect, try again
1
2
3
4
A
#
Password is correct
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.