ESP32 마이크로파이썬 물/액체 밸브
이 튜토리얼은 ESP32와 MicroPython, 솔레노이드 밸브를 사용하여 물, 맥주, 오일 등 액체의 흐름을 제어하는 방법을 안내합니다. 다룰 내용은 다음과 같습니다:
- ESP32와 솔레노이드 밸브를 연결하는 방법
- ESP32로 물 밸브를 제어하기 위한 MicroPython 코드 작성 방법
- 릴레이 대신 MOSFET 모듈로 밸브를 열고 닫는 방법
밸브는 릴레이 또는 MOSFET 모듈로 스위칭할 수 있습니다. 솔레노이드 밸브에는 "반쯤 열림" 설정이 없으므로, 둘 다 밸브를 열기(ON) 또는 닫기(OFF)만 할 수 있습니다. 그렇다면 왜 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 | × | Liquid Solenoid Valve | 아마존 | |
| 1 | × | 12V 전원 어댑터 | 아마존 | |
| 1 | × | DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Breakout Expansion Board for ESP32 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
물/액체 밸브에 관하여
핀아웃

솔레노이드 밸브는 일반적으로 두 개의 연결을 가지고 있습니다:
- 빨간색 양극(+) 핀을 12V DC 전원에 연결하십시오.
- 검정 또는 다른 색 음극(-) 핀을 DC 전원의 GND에 연결하십시오.
물/액체 밸브의 작동 원리
일반적으로 밸브는 닫힌 상태입니다. 두 터미널에 12V DC를 인가하면 밸브가 열려 물이나 다른 유체가 흐를 수 있게 됩니다.
※ 주의:
일부 밸브는 개스킷이 있으며, 12V DC 전압이 인가되었을 때 열리기 위해 일정 압력이 필요합니다. 이 압력은 액체의 흐름에 의해 제공됩니다. 또한, 일부 밸브는 액체가 한 방향으로만 흐르도록 허용합니다.
물/액체 솔레노이드 밸브 제어 방법
밸브에 12V 전원이 공급되면 밸브가 열립니다. ESP32로 밸브를 제어하려면 릴레이를 사용해야 합니다. ESP32는 릴레이에 신호를 보내고, 릴레이가 밸브를 제어합니다. 릴레이의 작동 원리, 핀 구성 또는 설치 방법이 익숙하지 않다면 ESP32 마이크로파이썬 - 릴레이을 확인하세요.
MOSFET 모듈도 같은 일을 할 수 있습니다. 핀과 단자를 이해하려면 ESP32 마이크로파이썬 - MOSFET 모듈 튜토리얼을 참고하세요.
물/액체 밸브용 릴레이와 MOSFET 모듈 비교
| 릴레이 | MOSFET 모듈 | |
|---|---|---|
| 밸브 제어 | 열림 또는 닫힘 | 열림 또는 닫힘 (밸브에는 PWM 사용 안 함) |
| 스위칭 시 딸깍 소리 | 있음 | 없음, 조용함 |
| 반응 시간 | 느림 (밀리초) | 매우 빠름 |
| 마모 | 접점이 시간이 지나면 마모됨 | 모듈 안에 움직이는 부분 없음 |
| 밸브 종류 | AC 또는 DC 밸브 | DC 밸브만 가능 |
| 밸브 공급 전압 | 릴레이 정격 안의 모든 전압 | 최소 약 6V |
| 절연 | 예 (코일과 접점) | 예 (PC817 포토커플러) |
| 이럴 때 선택 | AC 밸브, 간단한 사용 | 자주 열리고 닫히는 12V DC 밸브, 조용한 프로젝트 |
솔레노이드 밸브에 PWM을 사용하지 마세요. 밸브는 반쯤 열린 상태를 유지할 수 없으며, PWM은 밸브에서 윙윙거리는 소리가 나고 뜨거워지게 할 수 있습니다. 12V DC 밸브에는 MOSFET 모듈이 조용한 스위치로 적합합니다. AC 밸브에는 릴레이를 사용하세요.
선연결
- USB 케이블로 전원 공급되는 브레드보드를 사용하여 ESP32와 물/액체 밸브를 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32와 물/액체 밸브를 브레드보드를 사용하여 연결하는 방법 (Vin 핀을 통해 전원 공급됨)

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

- ESP32와 물/액체 밸브를 스크류 터미널 블록 브레이크아웃 보드를 사용하여 연결하는 방법 (Vin 핀을 통해 전원 공급)

ESP32 MicroPython 코드
이 코드는 물 밸브를 5초간 켠 후, 또 다른 5초 동안 끕니다.
자세한 사용 방법
다음은 Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침입니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
- ESP32를 MicroPython과 함께 처음 사용하신다면, 단계별 지침은 ESP32 마이크로파이썬 - 시작하기 가이드를 참고하세요.
- 제공된 다이어그램에 따라 ESP32 보드를 수분 밸브에 연결하세요.
- USB 케이블을 사용해 ESP32 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Thonny IDE를 실행하세요.
- Thonny IDE에서 Tools Options로 이동하세요.
- Interpreter 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하세요.
- 올바른 포트가 선택되었는지 확인하세요. Thonny IDE는 보통 이를 자동으로 감지하지만, 직접 선택해야 할 수도 있습니다 (예: Windows에서는 COM12, Linux에서는 /dev/ttyACM0).
- 제공된 MicroPython 코드를 복사하여 Thonny의 편집기에 붙여넣으세요.
- 다음 단계로 ESP32에 코드를 저장하세요:
- Save 버튼을 클릭하거나 Ctrl+S를 누르세요.
- 저장 대화 상자에서 MicroPython device를 선택하세요.
- 파일 이름을 main.py로 지정하세요.
- 녹색 Run 버튼을 클릭하거나 (또는 F5 키를) 눌러 스크립트를 실행하세요.
- 수분 흐름을 확인하세요.
코드 설명
ESP32 MicroPython 코드에 제공된 주석에서 설명을 확인할 수 있습니다.
MOSFET 모듈로 물/액체 밸브 제어하기
딸깍 소리 없이 열리고 닫히는 밸브를 원한다면, 릴레이가 있던 자리에 MOSFET 모듈을 연결하세요. 밸브는 이전과 똑같이 열리거나 닫히기만 합니다.
참고로, 이 페이지에서 릴레이와 MOSFET 모듈은 서로 다른 핀을 사용합니다. 릴레이는 GPIO16을, MOSFET 모듈은 GPIO18을 사용합니다. 그래서 각 배선마다 자체 코드가 있습니다.
배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
다음과 같이 부품을 연결하세요:
- ESP32 GPIO18 → 모듈 PWM 핀
- ESP32 GND → 모듈 GND 핀
- 12V 어댑터 + (DC 전원 잭 경유) → + 단자
- 밸브 빨간색 전선 (+) → 역시 + 단자
- 밸브 검은색 전선 (−) → LOAD 단자
- 12V 어댑터 − (DC 전원 잭 경유) → − 단자
밸브 안에는 코일이 있으므로 플라이백 다이오드가 필요합니다. 1N4007 또는 1N5819 다이오드를 밸브 전선 사이에 연결하세요. 줄무늬(캐소드)는 밸브 + 전선에, 다른 쪽 끝은 밸브 − 전선에 연결합니다.
ESP32 MicroPython 코드
이 코드는 릴레이 코드와 같은 방식입니다: 핀이 HIGH가 되어 밸브를 5초 동안 열고, 그다음 LOW가 되어 5초 동안 닫으며, 이를 반복합니다. Shell에는 아무것도 출력하지 않습니다.
밸브에는 완전한 ON 또는 완전한 OFF만 주어야 하며, PWM은 절대 사용하면 안 됩니다. 그래서 여기서는 MOSFET 모듈 튜토리얼의 페이드 코드를 사용하지 않습니다.
자세한 사용 방법
- 다이어그램과 같이 밸브와 MOSFET 모듈을 연결하세요.
- USB 케이블로 ESP32 보드를 컴퓨터에 연결하세요.
- Thonny IDE를 열고, 위의 릴레이 Quick Steps와 같이 인터프리터와 포트를 설정하세요.
- 이 코드를 Thonny에 붙여넣고, ESP32에 main.py로 저장한 다음 실행을 클릭하세요.
- 밸브가 5초 동안 열리고 5초 동안 닫히지만, 이제는 릴레이 딸깍 소리가 없습니다.
팁: MOSFET 모듈은 DC만 스위칭하며 밸브 공급 전압이 최소 약 6V여야 합니다. 밸브가 AC로 작동한다면 계속 릴레이를 사용하세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.