ESP32 마이크로파이썬 LED 절전 모드 없이 깜박이기

이 튜토리얼은 다른 작업을 방해하지 않으면서 LED를 깜빡이게 하는 ESP32용 MicroPython 코드를 작성하는 방법을 안내합니다. 자세히 말하면, 우리는 다음을 배울 것입니다:

ESP32 마이크로파이썬 LED 깜빡이기

준비물

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

LED 소개

LED에 익숙하지 않다면(핀 배열, 작동 원리, ESP32와의 인터페이싱, 그리고 ESP32와 상호작용하는 MicroPython 코드 작성 포함), 자세한 내용을 여기에서 확인할 수 있습니다:

선연결

ESP32 마이크로파이썬 LED 배선도

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

ESP32 마이크로파이썬 코드 - sleep 없이 깜빡이는 LED

이 MicroPython 코드는 LED를 빠르게 깜빡이게 합니다. LED는 250밀리초 동안 켜지고 750밀리초 동안 꺼지며, 이 패턴을 계속 반복해 다른 프로그램의 실행을 방해하지 않습니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-blink-led-without-sleep */ from DIYables_MicroPython_LED import LED, CTRL_ANODE # Create an LED object that attaches to pin 18 led = LED(18, CTRL_ANODE) led.blink(250, 750) # 250ms ON, 750ms OFF, blink immediately # led.blink(250, 750, 1000) # Uncomment to blink after 1 second delay # Main loop while True: led.loop() # MUST call the led.loop() function in loop # DO OTHER TASKS HERE # To stop blinking immediately, call led.cancel()

자세한 사용 방법

다음은 Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법에 관한 지침입니다:

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
  • ESP32와 MicroPython을 처음 사용한다면 단계별 안내를 위한 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
  • 제공된 다이어그램에 따라 ESP32 보드를 LED에 연결하세요.
  • 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-LED”를 검색하여 DIYables의 LED 라이브러리를 찾으세요.
  • DIYables-MicroPython-LED를 클릭한 후 Install 버튼을 클릭하여 ESP32 보드에 LED 라이브러리를 설치하세요.
ESP32 마이크로파이썬 LED 라이브러리
  • 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣습니다.
  • 다음 방법으로 ESP32에 코드를 저장합니다:
    • 저장 버튼을 클릭하거나 Ctrl+S를 누릅니다.
    • 저장 대화 상자에서 MicroPython device를 선택합니다.
    • 파일 이름을 main.py로 지정합니다.
  • 초록색 실행 버튼을 클릭하거나 (또는 F5 키를 눌러) 스크립트를 실행합니다.
  • Thonny IDE 하단의 Shell에 표시되는 메시지로 출력 결과를 확인합니다.
  • LED를 확인하세요: LED는 무한히 깜빡입니다.

ESP32 MicroPython 코드 - 일정 시간 간격으로 LED 깜빡이기

이 코드는 다른 코드를 방해하지 않고 10초마다 LED를 깜빡였다가 멈춥니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-blink-led-without-sleep */ from DIYables_MicroPython_LED import LED, LED_BLINKING, LED_IDLE, CTRL_ANODE # Create an LED object that attaches to pin GPIO18 led = LED(18, CTRL_ANODE) led.blink_with_duration(250, 750, 10000) # 250ms ON, 750ms OFF, blink for 10 seconds, blink immediately # led.blink_with_duration(250, 750, 10000, 1000) # Uncomment to blink after 1 second delay # Function to print the state of the LED def print_state(state): if state == LED_BLINKING: print("BLINKING") elif state == LED_IDLE: print("BLINK ENDED") previous_state = None # Main loop while True: led.loop() # MUST call the led.loop() function in loop # Get the current state of the LED current_state = led.get_state() # Print the state only if it has changed if current_state != previous_state: print_state(current_state) previous_state = current_state # Update the previous state # DO OTHER TASKS HERE # To stop blinking immediately, call led.cancel()

자세한 사용 방법

  • 위의 코드를 복사하여 Thonny IDE의 에디터에 붙여넣습니다.
  • 스크립트를 ESP32에 저장합니다.
  • 녹색 Run 버튼을 클릭하거나(F5 키를 눌러) 스크립트를 실행합니다. 스크립트가 실행됩니다.
  • LED를 관찰하세요: LED는 10초 동안 깜빡인 후 꺼집니다.

ESP32 MicroPython 코드 - 정해진 횟수만큼 LED 깜빡이기

이 코드는 LED가 250밀리초 동안 켜지고 750밀리초 동안 꺼지게 합니다. 이 패턴을 10번 반복하며 다른 코드의 실행을 중단하지 않습니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-blink-led-without-sleep */ from DIYables_MicroPython_LED import LED, LED_BLINKING, LED_IDLE, CTRL_ANODE # Create an LED object that attaches to pin GPIO18 led = LED(18, CTRL_ANODE) led.blink_n_times(250, 750, 10) # 250ms ON, 750ms OFF, repeat 10 times, blink immediately # led.blink_n_times(250, 750, 10, 1000) # Uncomment to blink after 1 second delay # Function to print the state of the LED def print_state(state): if state == LED_BLINKING: print("BLINKING") elif state == LED_IDLE: print("BLINK ENDED") previous_state = None # Main loop while True: led.loop() # MUST call the led.loop() function in loop # Get the current state of the LED current_state = led.get_state() # Print the state only if it has changed if current_state != previous_state: print_state(current_state) previous_state = current_state # Update the previous state # DO OTHER TASKS HERE # To stop blinking immediately, call led.cancel()

자세한 사용 방법

  • 위의 코드를 복사하여 Thonny IDE의 에디터에 붙여넣으세요.
  • 스크립트를 ESP32에 저장하세요.
  • 초록색 Run 버튼을 클릭하거나 (또는 F5 키를 눌러) 스크립트를 실행하세요. 스크립트가 실행됩니다.
  • LED를 관찰하세요: LED가 10번 깜박인 후 멈춥니다.

동영상

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