ESP32 마이크로파이썬 펌프 제어
이 가이드에서는 ESP32와 MicroPython을 사용하여 12V 펌프를 제어하는 방법을 배웁니다. 구체적으로는 다음 내용을 학습합니다:
- ESP32에 펌프 연결 방법
- ESP32용 MicroPython 코드를 작성하여 펌프를 켜고 끄는 방법
- MOSFET 모듈로 펌프를 구동하여 물의 유량을 바꾸는 방법
이 튜토리얼은 식물, 수족관 또는 물 보충 스테이션에 물을 주는 시스템을 만드는 데 도움이 될 것입니다.
펌프는 릴레이 또는 MOSFET 모듈로 켜고 끌 수 있습니다. 릴레이는 펌프를 시작하고 멈추기만 합니다. MOSFET 모듈도 시작하고 멈출 수 있지만, PWM으로 펌프를 더 느리게 또는 더 빠르게 돌릴 수도 있어 물이 흐르는 양을 제어할 수 있습니다. 게다가 딸깍 소리도 나지 않습니다. 두 가지 버전을 모두 만들어 봅니다.

준비물
| 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 펌프 | 쿠팡 | 아마존 | |
| 1 | × | Vinyl Tube | 아마존 | |
| 1 | × | 12V 전원 어댑터 | 아마존 | |
| 1 | × | DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Breakout Expansion Board for ESP32 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
12V 펌프에 대하여
핀 배치

12V 펌프는 보통 두 개의 핀이 있습니다.
- 음극(-) 핀(검정색)을 DC 전원 공급 장치의 GND에 연결합니다.
- 양극(+) 핀(빨간색)을 DC 전원 공급 장치의 12V에 연결합니다.
펌프 제어 방법
12V 전원 공급 장치는 12V 펌프에 완벽하게 작동합니다. ESP32로 펌프를 제어하려면 두 장치 사이에 릴레이를 연결하십시오. ESP32는 릴레이를 사용하여 펌프의 전원을 켜고 끕니다. ESP32용 릴레이 또는 MicroPython 프로그래밍이 처음이라면, 아래 튜토리얼을 확인해 보시기 바랍니다.
MOSFET 모듈을 한 번도 사용해 본 적이 없나요? 먼저 ESP32 마이크로파이썬 - MOSFET 모듈을 읽어 보세요. 핀, 나사 단자, PWM 코드를 설명합니다.
펌프용 릴레이와 MOSFET 모듈 비교
| 릴레이 | MOSFET 모듈 | |
|---|---|---|
| 펌프 제어 | 작동 또는 정지 | 작동 또는 정지, 그리고 펌프 속도와 유량 (PWM) |
| 가장 적합한 용도 | AC 펌프, 단순한 켜기/끄기 | 12V DC 펌프, 유량 제어, 잦은 시작과 정지 |
| 부하 종류 | AC 또는 DC | DC만 가능 |
| 펌프용 전원 | 릴레이 정격 안의 모든 전압 | 6V 이상 (게이트가 이 전원에서 전력을 받음) |
| 스위칭 소리 | 딸깍 소리가 들림 | 없음 |
| 스위칭 시간 | 느림, 밀리초 단위 | 매우 짧음 |
| 마모 | 접점이 시간이 지나면 마모됨 | 움직이는 부분 없음 |
| 절연 | 예, 코일과 접점 | 예, PC817 포토커플러 |
여기에서 사용하는 12V DC 펌프에서 물의 유량을 정하고 싶다면, 예를 들어 식물에 부드러운 흐름을 주고 싶다면 MOSFET 모듈을 선택하세요. 펌프가 교류 전원(AC)으로 작동한다면, 두 가지 중 릴레이만 사용할 수 있습니다.
선연결
- 브레드보드를 사용하여 ESP32와 펌프를 연결하는 방법 (USB 케이블로 전원 공급)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
이 회로는 브레드보드 없이도 만들 수 있습니다. 같은 배선은 다음과 같습니다:

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32와 브레드보드(Vin 핀을 통한 전원 공급)를 사용하여 펌프를 연결하고 제어하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- USB 케이블로 전원 공급되는 스크루 터미널 블록 브레이크아웃 보드를 사용하여 ESP32를 연결하고 펌프를 제어하는 방법

- ESP32를 연결하고 스크류 터미널 블록 브레이크아웃 보드를 사용하여 펌프를 제어하는 방법 (Vin 핀을 통해 전원 공급)

ESP32 마이크로파이썬 코드
아래 코드는 펌프를 5초간 켠 후 5회의 사이클 동안 끕니다.
자세한 사용 방법
Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하십시오.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하십시오.
- MicroPython과 함께 ESP32를 처음 사용한다면 단계별 지침을 위해 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하십시오.
- 제공된 다이어그램에 따라 ESP32 보드를 12V 펌프에 연결하십시오.
- USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하십시오.
- 컴퓨터에서 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 모듈을 사용합니다. PWM 듀티 사이클을 바꾸면 ESP32가 펌프 속도를 정하고, 그에 따라 펌프가 옮기는 물의 양도 정해집니다.
배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
브레드보드를 사용하지 않는다면 이렇게 연결하세요:

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| MOSFET 모듈 핀 | 연결 대상 |
|---|---|
| PWM | ESP32 GPIO18 |
| GND | ESP32 GND |
| + | 12V 어댑터 + (DC 전원 잭 경유) 및 펌프 빨간색 전선 (+) |
| LOAD | 펌프 검은색 전선 (−) |
| − | 12V 어댑터 − (DC 전원 잭 경유) |
펌프 모터는 코일이므로, 펌프의 두 전선 사이에 플라이백 다이오드(1N4007 또는 1N5819)를 추가하세요. 줄무늬가 있는 쪽(캐소드)은 펌프 + 전선에, 다른 쪽은 펌프 − 전선에 연결합니다.
ESP32 MicroPython 코드 - MOSFET 모듈로 펌프 제어
펌프는 먼저 2초 동안 최대 출력으로 작동한 다음, 2초 동안 멈춥니다. 그다음 출력이 10%에서 100%까지 단계적으로 올라가고, 물의 흐름이 강해집니다. 그 후 출력이 단계적으로 내려가고, 흐름이 약해지다가 멈춥니다.
자세한 사용 방법
- 위의 릴레이 Quick Steps에 따라 Thonny와 ESP32를 설정하세요.
- 펌프를 물에 넣으세요. 물 없이 절대 작동시키지 마세요.
- 다이어그램과 같이 모든 것을 연결하되, 12V 어댑터는 아직 꽂지 마세요.
- 코드를 ESP32에 main.py로 저장하세요.
- 12V 어댑터를 꽂고 녹색 실행 버튼을 클릭하세요 (또는 F5 키를 누르세요).
- 물의 흐름과 Shell의 메시지를 확인하세요.
낮은 출력에서는 펌프가 웅웅거리기만 하고 물을 옮기지 못할 수 있습니다. 이는 정상입니다. 더 높은 수준에서 펌핑을 시작합니다.
기억하세요: MOSFET 모듈은 DC 펌프 전용이며, 공급 전압은 최소 약 6V여야 합니다. AC 펌프에는 릴레이를 사용하세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.