ESP32 마이크로파이썬 키패드 3x4

이 튜토리얼은 MicroPython을 사용하여 ESP32와 3x4 키패드를 사용하는 방법을 안내합니다. 자세히는, 우리는 다음을 배울 것입니다:

ESP32 마이크로파이썬 3x4 키패드

준비물

1×ESP32 ESP-WROOM-32 개발 모듈 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×Membrane Keypad 3x4 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

3x4 키패드에 대하여

3x4 키패드는 행과 열로 구성된 그리드에 배열된 12개의 소프트 키를 가지고 있습니다. 각 키는 버튼을 나타냅니다.

핀아웃

3x4 키패드에는 7개의 핀이 있습니다. 이 핀은 행과 열의 두 가지로 나뉩니다.

  • 4개의 핀이 행(R1, R2, R3, R4)에 연결됩니다.
  • 3개의 핀이 열(C1, C2, C3)에 연결됩니다.
3x4 키패드 핀아웃

선연결

  • ESP32와 3x4 키패드를 브레드보드를 사용하여 연결하는 방법
ESP32 마이크로파이썬 키패드 3x4 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP32와 3x4 키패드 연결 방법

ESP32 MicroPython 코드

from DIYables_MicroPython_Keypad import Keypad import time NUM_ROWS = 4 NUM_COLS = 3 # Constants for GPIO pins ROW_PINS = [18, 5, 17, 16] # The ESP32 pin GPIO18, GPIO5, GPIO17, GPIO16 connect to the row pins COLUMN_PINS = [4, 0, 2] # The ESP32 pin GPIO4, GPIO0, GPIO2 connect to the column pins # Keymap corresponds to the layout of the keypad 3x4 KEYMAP = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0', '#'] # 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 3x4 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 마이크로파이썬 - 시작하기 가이드를 확인하세요.
  • 도면에 표시된 대로 ESP32를 3x4 키패드에 연결하세요.
  • ESP32 보드를 USB 케이블을 사용하여 컴퓨터에 연결하세요.
  • 컴퓨터에서 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를 클릭한 후, Install 버튼을 클릭하여 Keypad 라이브러리를 설치하세요.
ESP32 마이크로파이썬 키패드 라이브러리
  • 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣습니다.
  • 코드를 ESP32에 저장하려면:
    • Save 버튼을 클릭하거나 Ctrl+S를 누릅니다.
    • 저장 대화 상자에서 MicroPython device를 선택합니다.
    • 파일 이름을 main.py로 지정합니다.
  • 초록색 Run 버튼(또는 F5)을 클릭하여 스크립트를 실행합니다.
  • 키패드에서 몇 개의 키를 누릅니다.
  • Thonny 하단의 Shell에서 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Key pressed: 3 Key pressed: 6 Key pressed: 9 Key pressed: 4 Key pressed: * Key pressed: #
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

작동하지 않을 경우, 배선을 꼼꼼하게 확인하세요. ESP32를 3x4 키패드에 연결할 때 혼란이 생기기 쉽습니다.

키패드와 비밀번호

키패드는 종종 비밀번호를 입력할 때 사용됩니다. 여기에서는 두 개의 중요한 키에 초점을 맞춥니다.

  • 비밀번호 입력을 시작하거나 다시 시작하는 키입니다. 예를 들어, '*' 키를 사용하십시오.
  • 고객 입력을 완료하는 키입니다. 예를 들어, '#' 키를 사용하십시오.

비밀번호는 두 개의 특수 키를 제외한 나머지 키들로 구성됩니다.

키를 누르면

  • 키가 "*" 또는 "#"가 아닌 경우, 입력 중인 비밀번호에 포함합니다.
  • 키가 "#"인 경우, 입력된 비밀번호가 올바른지 확인한 후 비밀번호를 초기화합니다.
  • 키가 "*"인 경우, 비밀번호를 초기화합니다.

키패드 - 비밀번호 코드

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-keypad-3x4 */ from DIYables_MicroPython_Keypad import Keypad import time NUM_ROWS = 4 NUM_COLS = 3 # Constants for GPIO pins ROW_PINS = [18, 5, 17, 16] # The ESP32 pin GPIO18, GPIO5, GPIO17, GPIO16 connect to the row pins COLUMN_PINS = [4, 0, 2] # The ESP32 pin GPIO4, GPIO0, GPIO2 connect to the column pins # Keymap corresponds to the layout of the keypad 3x4 KEYMAP = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '0', '#'] # 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 = "1234" input_password = "" print("Keypad 3x4 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"을 입력한 후 "#"을 누릅니다.
  • "1234"를 입력한 후 "#"을 누릅니다.
  • Thonny 하단의 Shell에서 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot MPY: soft reboot Keypad 3x4 password 1 2 3 # Password is incorrect, try again 1 2 3 4 # Password is correct
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.