ESP32 마이크로파이썬 LED 절전 모드 없이 깜박이기
이 튜토리얼은 다른 작업을 방해하지 않으면서 LED를 깜빡이게 하는 ESP32용 MicroPython 코드를 작성하는 방법을 안내합니다. 자세히 말하면, 우리는 다음을 배울 것입니다:
- ESP32는 논블로킹 방식을 사용하여 LED를 깜빡입니다.
- ESP32는 일정 시간 간격으로 LED를 깜빡입니다.
- 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Ω Resistor | 아마존 | |
1 | × | 브레드보드 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
LED 소개
LED에 익숙하지 않다면(핀 배열, 작동 원리, ESP32와의 인터페이싱, 그리고 ESP32와 상호작용하는 MicroPython 코드 작성 포함), 자세한 내용을 여기에서 확인할 수 있습니다:
선연결

이 이미지는 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 라이브러리를 설치하세요.

- 제공된 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 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.