ESP32 마이크로파이썬 팬 제어

이 튜토리얼은 ESP32와 MicroPython을 사용하여 12V 또는 5V 팬을 제어하는 방법을 안내합니다. 다룰 내용은:

팬을 구동하는 방법은 두 가지입니다: 릴레이 또는 MOSFET 모듈. 릴레이는 단순한 스위치라서 팬이 완전히 켜지거나 완전히 꺼질 뿐입니다. MOSFET 모듈도 그렇게 할 수 있고, 딸깍 소리 없이 PWM으로 팬을 더 빠르게 또는 더 느리게 돌릴 수도 있습니다. 이 페이지에서는 두 가지 방법을 모두 보여 드립니다.

ESP32 마이크로파이썬 팬

준비물

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow 쿠팡 | 아마존
1×(또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide 쿠팡 | 아마존
1×(또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide 아마존
1×(또는) ESP32 Uno-form board 아마존
1×(또는) ESP32 S3 Uno-form board 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×릴레이 아마존
1×(또는) MOSFET Module (AOD4184, LR7843 or FR120N) 아마존
1×12V DC 선풍기 아마존
1×(또는) 5V DC 선풍기 쿠팡 | 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

DC 팬에 대하여

핀아웃

DC 팬은 보통 두 개의 핀이 있습니다.

  • 검은색 핀(음극(-)으로 표시됨)을 DC 전원 공급 장치의 음극 전선에 연결하세요.
  • 빨간색 핀(양극(+)으로 표시됨)을 DC 전원 공급 장치의 양극 전선에 연결하세요.
팬 핀아웃
image source: diyables.io

팬에 필요한 전압과 DC 전원 공급 장치의 전압이 동일한지 확인하십시오. 이 가이드에서는 12VDC와 5VDC가 필요한 팬을 사용합니다.

팬 제어 방법

  • DC 팬이 12V/5V 전원을 사용할 때, 최대 속도로 회전합니다.
  • DC 팬이 12V/5V PWM 신호를 사용할 때, 팬의 속도를 조절할 수 있습니다.

이 가이드에서는 ESP32를 사용하여 팬을 켜고 끄는 방법을 알려드립니다. 팬의 속도 제어 방법은 다른 가이드에서 설명하겠습니다. 팬을 제어하기 위해 ESP32와 팬 사이에 릴레이를 연결합니다. ESP32는 릴레이를 제어하여 간접적으로 팬을 제어합니다. ESP32용 릴레이 또는 MicroPython 프로그래밍이 처음이라면 아래 튜토리얼을 확인해 보시기 바랍니다.

속도 제어도 하고 싶으신가요? 그렇다면 MOSFET 모듈을 사용하면 됩니다. 핀과 작동 방식은 ESP32 마이크로파이썬 - MOSFET 모듈 튜토리얼에서 설명합니다.

팬용 릴레이와 MOSFET 모듈 비교

릴레이 MOSFET 모듈
제어할 수 있는 것 팬 켜기 또는 끄기 팬 켜기 또는 끄기, 그리고 팬 속도(PWM)
소음 스위칭할 때마다 딸깍 소리 소리 없음
스위칭 속도 느림, 몇 밀리초 매우 빠름
수명 여러 번 스위칭하면 금속 접점이 마모됨 움직이는 부분이 없어 마모되지 않음
팬 종류 AC 또는 DC 팬 DC 팬만 가능
팬 공급 전압 릴레이 정격 안의 모든 전압 약 6V 이상 (5V 팬은 작동하지 않음)
절연 예, 코일과 접점 사이 예, PC817 포토커플러를 통해
이럴 때 선택 AC 팬, 단순한 켜기/끄기 속도 제어를 원하는 12V DC 팬

이 가이드의 12V DC 팬에는, 조용하고 절반 속도로도 돌 수 있는 팬을 원한다면 MOSFET 모듈이 더 좋은 선택입니다. AC 팬이나 5V 팬에는 릴레이를 사용하세요. MOSFET 모듈은 더 높은 공급 전압이 필요하기 때문입니다.

선연결

  • ESP32를 연결하고 breadboard를 이용해 팬을 제어하는 방법 (USB 케이블로 전원 공급)
ESP32 마이크로파이썬 팬 배선도

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

  • ESP32를 연결하고 브레드보드를 사용하여 팬을 제어하는 방법 (Vin 핀을 통해 전원 공급)
ESP32 마이크로파이썬 팬 배선도

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

ESP32를 연결하고 팬을 제어하는 방법
ESP32 배선 및 팬 제어 방법

ESP32 MicroPython 코드

이 코드는 팬을 5초 동안 켠 후, 또 다른 5초 동안 끕니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-controls-fan */ from machine import Pin import time RELAY_PIN = 16 # The ESP32 pin GPIO16 connected to the fan via relay pin # Initialize the relay pin as an output relay = Pin(RELAY_PIN, Pin.OUT) # Infinite loop while True: relay.value(1) # Turn on fan for 5 seconds time.sleep(5) relay.value(0) # Turn off fan for 5 seconds time.sleep(5)

자세한 사용 방법

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

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
  • MicroPython을 사용하는 ESP32가 처음이라면, 단계별 안내를 위해 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
  • 제공된 다이어그램에 따라 ESP32 보드를 팬에 연결하세요.
  • ESP32 보드를 USB 케이블로 컴퓨터에 연결하세요.
  • 컴퓨터에서 Thonny IDE를 실행하세요.
  • Thonny IDE에서 도구 옵션으로 이동하세요.
  • 인터프리터 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하세요.
  • 올바른 포트가 선택되어 있는지 확인하세요. Thonny IDE가 보통 자동으로 감지하지만, 수동으로 선택해야 할 수도 있습니다(예: Windows에서는 COM12, Linux에서는 /dev/ttyACM0).
  • 제공된 MicroPython 코드를 복사하여 Thonny의 에디터에 붙여넣으세요.
  • ESP32에 코드를 저장하려면:
    • 저장 버튼을 클릭하거나 Ctrl+S를 누르세요.
    • 저장 대화 상자에서 MicroPython 장치를 선택하세요.
    • 파일 이름을 main.py로 지정하세요.
  • 녹색 실행 버튼(또는 F5 키)을 클릭하여 스크립트를 실행하세요.
  • 팬의 작동 상태를 확인하세요.

코드 설명

위의 ESP32 MicroPython 코드의 주석들이 세부사항을 설명합니다.

MOSFET 모듈로 팬 속도 제어하기

이 부분에서는 릴레이 대신 MOSFET 모듈을 사용합니다. 이제 ESP32가 PWM 신호를 보내므로, 팬은 켜지고 꺼질 뿐 아니라 천천히, 빠르게, 또는 그 사이의 어떤 속도로도 돌 수 있습니다.

배선도

ESP32 마이크로파이썬 쿨링 팬 mosfet 모듈 배선도

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

시작 연결 대상
ESP32 GPIO18 MOSFET 모듈의 PWM 핀
ESP32 GND MOSFET 모듈의 GND 핀
12V 어댑터 + (DC 전원 잭 경유) + 단자
팬 빨간색 전선 (+) + 단자 (어댑터 +와 공유)
팬 검은색 전선 (−) LOAD 단자
12V 어댑터 − (DC 전원 잭 경유) − 단자

팬 안에는 모터 코일이 있습니다. 팬의 두 전선 사이에 플라이백 다이오드(1N4007 또는 1N5819)를 연결하세요. 줄무늬가 있는 쪽(캐소드)은 팬 + 전선에, 다른 쪽은 팬 − 전선에 연결합니다. 이렇게 하면 MOSFET을 전압 스파이크로부터 보호할 수 있습니다.

ESP32 MicroPython 코드 - MOSFET 모듈로 팬 속도 제어

팬이 2초 동안 최대 속도로 돌다가 2초 동안 멈춥니다. 그다음 스크립트가 출력을 10%에서 100%까지 올리므로 팬이 빨라지는 소리가 들립니다. 그 후 출력을 다시 낮추면 팬이 느려지다가 멈춥니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-controls-fan */ from machine import Pin, PWM import time MOSFET_PIN = 18 # ESP32 GPIO18 connected to the PWM pin of the MOSFET module pwm = PWM(Pin(MOSFET_PIN), freq=500) # 500 Hz PWM, slow enough for the module's optocoupler pwm.duty_u16(0) # start with the load OFF def set_load(percent): pwm.duty_u16(percent * 65535 // 100) # convert 0-100% to 0-65535 print("Load power: {}%".format(percent)) while True: # turn the load fully ON, then fully OFF print("Load: ON") set_load(100) time.sleep(2) print("Load: OFF") set_load(0) time.sleep(2) # increase the power step by step (PWM) for percent in range(10, 101, 10): set_load(percent) time.sleep(0.5) # decrease the power step by step (PWM) for percent in range(90, -1, -10): set_load(percent) time.sleep(0.5) time.sleep(1)

자세한 사용 방법

  • 위의 릴레이 Quick Steps와 같은 방법으로 Thonny와 ESP32를 설정하세요.
  • 다이어그램과 같이 팬, MOSFET 모듈, DC 전원 잭을 연결하세요. 12V 어댑터는 아직 꽂지 마세요.
  • 코드를 Thonny에 붙여넣고 ESP32에 main.py로 저장하세요.
  • 12V 어댑터를 꽂으세요.
  • 녹색 실행 버튼을 클릭하세요 (또는 F5 키를 누르세요).
  • 팬 소리를 듣고 Thonny의 Shell을 확인하세요.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

일부 팬은 10%나 20%에서 시작하지 않습니다. 이는 정상입니다. 더 높은 출력에서 돌기 시작합니다.

※ 주의:

MOSFET 모듈은 DC 전용이며, 약 6V 이상의 팬 전원이 필요합니다. AC 팬에는 릴레이를 사용하세요.

동영상

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