ESP32 펌프 제어

이 튜토리얼은 ESP32를 사용하여 펌프를 제어하는 방법을 안내합니다. 이 튜토리얼을 확장하여 DIY 수족관, 칵테일 기계, 커피 머신 또는 급수 시스템을 구축할 수 있습니다...

펌프를 켜고 끄는 방법은 두 가지입니다. 릴레이 또는 MOSFET 모듈입니다. 릴레이를 쓰면 펌프는 작동하거나 멈추기만 합니다. MOSFET 모듈을 쓰면 펌프가 얼마나 세게 작동할지도 정할 수 있어서 물의 흐름을 조절할 수 있습니다. 이 튜토리얼에서는 각각을 사용하는 방법을 배웁니다.

준비물

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×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

12V 펌프에 관하여

펌프 핀 배치

ESP32 pump 사용법 핀아웃
image source: diyables.io

12V 펌프에는 두 개의 전선이 있습니다:

  • 음극(-) 전선(검은색): 이 전선을 12V DC 전원 공급 장치의 음극 전선에 연결하세요
  • 양극(+) 전선(빨간색): 이 전선을 12V DC 전원 공급 장치의 양극 전선에 연결하세요

ESP32를 사용하여 펌프 제어 방법

만약 우리가 12V 전원 공급 장치를 펌프에 연결한다면, 펌프는 작동할 것입니다. 우리는 ESP32를 사용하여 프로그래밍 방식으로 펌프를 제어할 수 있습니다. 이를 위해서는, 펌프와 ESP32 보드 사이에 릴레이를 둘 필요가 있습니다. 우리는 릴레이에 대한 특정 튜토리얼을 가지고 있는데, 이 튜토리얼에는 하드웨어 핀아웃, 작동 원리, ESP32에 대한 배선 연결, ESP32 코드 등에 대한 자세한 정보와 단계별 지침이 포함되어 있습니다... ESP32 - 릴레이 튜토리얼에서 릴레이에 대해 알아보세요.

릴레이 대신 MOSFET 모듈을 사용할 수도 있습니다. 이 모듈이 무엇이고 어떻게 배선하는지 알아보려면 ESP32 - MOSFET 모듈 튜토리얼을 확인하세요.

펌프용 릴레이와 MOSFET 모듈 비교

릴레이 MOSFET 모듈
펌프 제어 작동 또는 정지 작동, 정지, 그리고 PWM으로 흐름 설정
소리 전환할 때 딸깍 소리가 남 소리 없음
전환 속도 느림, 밀리초 단위 매우 빠름
수명 여러 번 전환하면 접점이 마모됨 움직이는 부품이 없음
사용 가능한 펌프 AC 및 DC 펌프 DC 펌프만 가능
펌프 전압 아무 전압 (정격에 따라) 최소 약 6V
절연 예 (코일과 접점) 예 (PC817 포토커플러)
가장 적합한 경우 AC 펌프 또는 단순한 작동/정지 흐름 제어가 필요한 12V DC 펌프

물탱크를 채우기만 하면 된다면 릴레이로 충분합니다. 식물이나 수족관처럼 느리고 부드러운 흐름이 필요하다면 12V DC 펌프와 함께 MOSFET 모듈을 사용하세요.

ESP32, 릴레이, 펌프 간의 배선도

  • 브레드보드를 사용하여 ESP32와 펌프를 연결하는 방법 (USB 케이블로 전원 공급)
ESP32 pump 연결 배선도

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

  • 브레드보드를 사용하여 ESP32와 펌프를 연결하는 방법 (Vin 핀으로 전원 공급)
ESP32 pump 연결 배선도

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

how to connect ESP32 and controls pump
how to wire ESP32 and controls pump

ESP32 - 펌프 코드

아래 코드는 매 4초마다 펌프를 주기적으로 켜고 끕니다.

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-controls-pump */ #define RELAY_PIN 16 // ESP32 핀 GPIO16, 릴레이를 통해 펌프에 연결 // setup 함수는 보드에 리셋 버튼을 누르거나 전원을 켤 때 한 번 실행됩니다. void setup() { // 디지털 핀 GPIO16을 출력으로 초기화합니다. pinMode(RELAY_PIN, OUTPUT); } // loop 함수는 계속해서 반복 실행됩니다. void loop() { digitalWrite(RELAY_PIN, HIGH); // 펌프를 4초 동안 켭니다 delay(4000); digitalWrite(RELAY_PIN, LOW); // 펌프를 4초 동안 끕니다 delay(4000); }

사용 방법

  • ESP32를 처음 사용하는 경우, ESP32 - 소프트웨어 설치을 확인하세요.
  • 위 이미지대로 배선하세요.
  • USB Type-C 케이블로 ESP32 보드를 PC에 연결하세요.
  • PC에서 Arduino IDE를 엽니다.
  • 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.
  • 위 코드를 복사하여 Arduino IDE에 붙여넣으세요.
  • Arduino IDE에서 Upload 버튼을 클릭해 ESP32 보드에 코드를 컴파일하고 업로드하세요.
  • 펌프의 상태를 확인하세요.

코드 줄별 설명

위의 ESP32 코드에는 줄별 설명이 포함되어 있습니다. 코드의 주석을 읽어주세요!

MOSFET 모듈로 펌프 흐름을 제어하는 방법

여기서는 릴레이 대신 MOSFET 모듈을 사용합니다. ESP32의 PWM 신호가 펌프 속도를 바꾸고, 그에 따라 펌프가 밀어내는 물의 양도 바뀝니다.

ESP32, MOSFET 모듈, 펌프 간의 배선도

ESP32 pump mosfet module 연결 배선도

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

ESP32 / 전원 MOSFET 모듈
GPIO18 PWM
GND GND
12V 어댑터 +와 펌프 + (빨강) + 단자 (두 전선이 함께 사용)
펌프 − (검정) LOAD 단자
12V 어댑터 − − 단자

펌프 모터에는 코일이 있으므로, 펌프 전선 사이에 플라이백 다이오드(1N4007 또는 1N5819)를 추가하세요. 줄무늬(캐소드)는 펌프 + 쪽에 연결합니다.

ESP32 - 펌프 흐름 코드

먼저 펌프가 2초 동안 전력 100%로 작동한 뒤, 2초 동안 멈춥니다. 다음으로 전력이 10%에서 100%까지 올라갔다가 다시 내려가므로, 물의 흐름이 강해졌다가 약해집니다.

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-controls-pump */ const int MOSFET_PIN = 18; // ESP32 GPIO18 connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

사용 방법

  • 위의 릴레이 사용 방법에 나온 설정(Arduino IDE, 보드, COM 포트)을 따르세요.
  • 펌프를 물에 넣고 MOSFET 배선도와 같이 배선하세요. 12V 어댑터는 꽂지 마세요.
  • 코드를 Arduino IDE에 복사하고 ESP32에 업로드하세요.
  • 12V 어댑터를 꽂으세요.
  • Serial Monitor를 9600 보드레이트로 엽니다.
  • Serial Monitor에 전력 수준이 출력되는 동안 물의 흐름이 바뀌는 것을 지켜보세요.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
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%
Ln 11, Col 1
ESP32 Dev Module on COM15
2

팁: 펌프를 절대 물 없이 작동시키지 마세요. MOSFET 모듈은 약 6V 이상의 전원을 쓰는 DC 펌프용입니다. AC 펌프에는 릴레이를 사용하세요.

동영상

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

댓글