ESP8266 펌프

이 튜토리얼은 ESP8266을 사용하여 펌프를 제어하는 방법을 안내합니다. 이 튜토리얼을 변형하여, 관개 시스템, 수족관, 물 보충 시스템 등을 구축할 수 있습니다.

펌프를 구동하는 두 가지 방법, 즉 릴레이와 MOSFET 모듈을 배웁니다. 릴레이는 펌프를 시작하고 멈추기만 할 수 있습니다. MOSFET 모듈도 시작하고 멈출 수 있으며, 거기에 더해 PWM으로 펌프 속도를 바꿔 물을 더 많이 또는 더 적게 퍼 올릴 수 있습니다. 딸깍 소리 없이 작동하기도 합니다.

준비물

1×Micro USB Cable 아마존
1×ESP8266 NodeMCU 쿠팡 | 아마존
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×(추천) ESP8266용 스크루 터미널 확장 보드 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

12V 펌프에 대하여

펌프 핀배열

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

12V 펌프에는 보통 두 개의 핀이 있습니다:

  • 음극(-) 핀(검은색)은 DC 전원 공급 장치의 GND에 연결되어야 합니다.
  • 양극(+) 핀(빨간색)은 DC 전원 공급 장치의 12V에 연결되어야 합니다.

ESP8266을 사용하여 펌프를 제어하는 방법

12V 펌프에 12V 전원 공급장치가 제공되면 작동합니다. 펌프를 제어하려면 ESP8266과 펌프 사이에 릴레이를 사용해야 합니다. 그러면 ESP8266은 릴레이를 통해 펌프를 제어할 수 있습니다.

릴레이(핀배열, 작동, 프로그래밍 등)에 익숙하지 않으시다면, 추가 정보를 위해 ESP8266 - 릴레이을 참고해 주세요.

마찬가지로, MOSFET 모듈을 아직 사용해 보지 않으셨다면 ESP8266 - MOSFET 모듈 튜토리얼에서 기본을 배울 수 있습니다.

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

항목 릴레이 MOSFET 모듈
펌프 제어 시작/정지만 가능 시작/정지 및 유량(PWM)
스위칭 시 소음 딸깍 소리 무음
반응 시간 느림, 밀리초 단위 매우 빠름
내구성 시간이 지나면 접점이 마모됨 움직이는 부품 없음
펌프 전원 AC 또는 DC DC만 가능
펌프 전압 릴레이 정격 범위 내 최소 약 6V
절연 예 (코일 / 접점) 예 (PC817 포토커플러)
이상적인 용도 AC 펌프, 단순한 켜짐/꺼짐 DC 펌프, 유량 제어, 잦은 스위칭

12V DC 펌프는 MOSFET 모듈과 매우 잘 맞습니다. 유량을 약하게 또는 강하게 만들 수 있기 때문입니다. 펌프가 AC 주전원으로 작동한다면 릴레이를 사용해야 합니다.

선연결

ESP8266 NodeMCU pump 연결 배선도

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

ESP8266 핀배열 및 ESP8266 전원을 켜는 방법에 대해 더 많이 보십시오.

브레드보드 없이 연결한 같은 배선입니다:

ESP8266 NodeMCU pump 연결 배선도 (브레드보드 없음)

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

펌프 제어를 위한 ESP8266 코드

아래의 코드는 펌프를 5초마다 켜고 끄는 것을 반복하도록 합니다.

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-pump */ #define RELAY_PIN D8 // ESP8266 핀이 릴레이의 IN 핀에 연결됨 // 설정 함수는 리셋 또는 전원 켜질 때 한 번 실행됩니다. void setup() { // 디지털 핀 D8을 출력으로 초기화합니다. pinMode(RELAY_PIN, OUTPUT); } // 루프 함수는 무한히 반복됩니다 void loop() { digitalWrite(RELAY_PIN, HIGH); // 펌프를 4초 동안 켭니다 delay(4000); digitalWrite(RELAY_PIN, LOW); // 펌프를 4초 동안 끕니다 delay(4000); }

사용 방법

Arduino IDE에서 ESP8266을 시작하는 방법은 다음과 같습니다:

  • ESP8266을 처음 사용하는 경우, ESP8266 - 소프트웨어 설치 튜토리얼을 확인하세요.
  • 다이어그램에 표시된 대로 구성요소를 연결하세요.
  • USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • USB 케이블을 사용하여 ESP8266을 컴퓨터에 연결하세요.
  • Arduino IDE를 실행하고 적절한 보드와 포트를 선택하세요.
  • 위의 코드를 복사하여 Arduino IDE에서 엽니다.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 ESP8266에 전송하세요.
  • 펌프 상태의 변화를 확인하세요.

코드 설명

소스 코드의 주석에 포함된 줄별 설명을 확인하세요!

이 튜토리얼을 확인하세요 ESP8266 - 버튼 - 펌프.

MOSFET 모듈로 펌프 유량을 제어하는 ESP8266 코드

이 부분에서는 릴레이를 MOSFET 모듈로 바꿉니다. NodeMCU 핀 D5가 PWM을 출력하고, 듀티 사이클이 펌프가 얼마나 빨리 돌고 물을 얼마나 많이 옮길지 결정합니다.

배선도

ESP8266 NodeMCU nodemcu water pump mosfet module 연결 배선도

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

  • NodeMCU D5 (GPIO14) → 모듈 PWM
  • NodeMCU G (GND) → 모듈 GND
  • 12V 어댑터 + → 모듈 +
  • 펌프 빨간색 선 (+) → 모듈 + (어댑터 + 선과 함께)
  • 펌프 검은색 선 (−) → 모듈 LOAD
  • 12V 어댑터 − → 모듈 −

펌프 모터는 코일입니다. 펌프의 두 선 사이에 플라이백 다이오드(1N4007 또는 1N5819)를 연결하고, 줄무늬가 있는 쪽(캐소드)을 펌프 + 선에 연결하세요.

ESP8266 코드

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-pump */ const int MOSFET_PIN = D5; // ESP8266 pin D5 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); }

펌프의 동작은 다음과 같습니다. 2초 동안 최대 유량, 2초 동안 정지, 그다음 유량이 10%에서 100%까지 늘어났다가 다시 0%까지 줄어듭니다. 전력이 낮으면 펌프가 튜브 위로 물을 밀어 올리지 못할 수 있습니다.

빠른 단계

  • 위의 릴레이 빠른 단계에서 한 Arduino IDE와 NodeMCU 설정을 하세요.
  • 펌프를 물에 넣고 다이어그램대로 연결하세요. 12V 어댑터는 꽂지 마세요.
  • 위의 코드를 업로드하세요.
  • 12V 어댑터를 꽂고 물의 흐름을 보세요.
  • 시리얼 모니터를 9600 보드레이트로 여세요.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E 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
Nodemcu 1.0 (ESP-12E Module) on COM15
2

MOSFET 모듈에는 DC 펌프와 약 6V 이상의 전원이 필요하다는 점에 유의하세요. AC 펌프는 릴레이를 그대로 사용해야 합니다. 펌프를 절대 물 없이 작동시키지 마세요.

동영상

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