ESP32 마이크로파이썬 발열체 제어

이 튜토리얼은 ESP32와 MicroPython을 사용하여 히팅 요소를 제어하는 방법을 안내합니다. 자세히 보면, 우리는 다음의 내용을 배울 것입니다:

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

히팅 엘리먼트에 대하여

핀 배치

ESP32 마이크로파이썬 가열 요소 핀아웃

가열 요소에는 일반적으로 두 개의 핀이 있습니다:

  • 양극(+) 핀(빨간색)을 12V DC 전원 공급 장치에 연결합니다.
  • 음극(-) 핀(검정색)을 DC 전원 공급 장치의 접지(GND)에 연결합니다.

발열체 제어 방법

12V 난방 요소가 12V 전원에 연결되면 열이 발생합니다. ESP32로 난방 요소를 제어하기 위해 릴레이를 사용합니다. ESP32가 릴레이에 신호를 보내면, 릴레이가 난방 요소를 제어합니다. 릴레이의 작동 방식, 핀 구성 또는 설정 방법에 대해 추가 정보가 필요하면 ESP32 마이크로파이썬 - 릴레이을 확인하세요.

두 번째 방법은 MOSFET 모듈입니다. ESP32 마이크로파이썬 - MOSFET 모듈 가이드에서 핀 배치, 세 가지 칩 버전, 그리고 PWM이 출력을 바꾸는 방법을 다룹니다.

히팅 요소용 릴레이와 MOSFET 모듈 비교

릴레이 MOSFET 모듈
발열 제어 최대 발열 또는 발열 없음 최대 발열, 발열 없음, 또는 그 사이의 발열 수준 (PWM)
자주 스위칭할 때 (예 정해진 온도 유지) 접점이 더 빨리 마모됨 문제 없음, 움직이는 부분이 없음
소리 딸깍 소리가 남 소리 없음
속도 느림 (밀리초) 매우 빠름
공급 전원 종류 AC 또는 DC DC만 가능
최소 공급 전압 최소값 없음 (정격 범위 안) 약 6V, 게이트가 이 전원에서 전압을 받기 때문
절연 예 (코일과 접점이 분리됨) 예 (PC817 포토커플러)
이럴 때 사용 AC 히터, 단순한 켜기/끄기 12V DC 히터, 발열 수준 제어, 잦은 스위칭

히팅 요소가 12V DC로 작동한다면 MOSFET 모듈이 잘 맞습니다. 더 낮은 발열 수준을 유지할 수 있고, 온도를 유지하기 위해 하루 종일 켜고 꺼도 마모되지 않습니다. 교류 전원(AC) 히터에는 반드시 릴레이를 사용해야 합니다.

선연결

  • USB 케이블로 전원 공급되는 브레드보드를 사용하여 ESP32와 히팅 요소를 연결하는 방법
ESP32 마이크로파이썬 가열 요소 배선도

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

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

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

ESP32를 연결하고 가열 요소를 제어하는 방법
ESP32와 히터 엘리먼트를 제어하기 위한 배선 방법

ESP32 마이크로파이썬 코드

이 코드는 난방 요소를 5초 동안 켠 후, 5초 동안 끄는 작업을 계속 반복합니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-controls-heating-element */ from machine import Pin import time RELAY_PIN = 16 # The ESP32 pin GPIO16 connected to the Heating Element 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 Heating Element for 5 seconds time.sleep(5) relay.value(0) # Turn off Heating Element for 5 seconds time.sleep(5)

자세한 사용 방법

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

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

WARNING

주의하십시오, 이 작업을 잘못 다루면 화상을 입거나 집에서 화재가 발생할 수 있습니다. 당신의 안전은 매우 중요합니다. 확신이 서지 않는 경우 직접 시도하지 마시고, 경험 있는 사람의 도움을 받으십시오. 저희는 당신의 안전에 대해 책임지지 않습니다.

코드 설명

이 ESP32 MicroPython 코드 위의 주석 섹션에서 설명을 확인할 수 있습니다.

ESP32 MicroPython 코드 - MOSFET 모듈로 히팅 요소 제어

이제 릴레이를 MOSFET 모듈로 바꿔 봅시다. ESP32의 PWM 신호로 히팅 요소를 30%, 50% 등 원하는 출력으로 작동시킬 수 있으며, 최대 출력으로만 작동하지 않아도 됩니다.

배선도

ESP32 마이크로파이썬 히팅 요소 및 mosfet 모듈 배선도

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

다음과 같이 연결하세요:

  • ESP32의 GPIO18 → 모듈의 PWM 핀
  • ESP32의 GND → 모듈의 GND 핀
  • 12V 어댑터 + (DC 전원 잭 경유) → + 단자
  • 히팅 요소 빨간색 전선 (+) → 역시 + 단자
  • 히팅 요소 검은색 전선 (−) → LOAD 단자
  • 12V 어댑터 − (DC 전원 잭 경유) → − 단자

히팅 요소에는 코일이 없으므로 여기서는 플라이백 다이오드가 필요하지 않습니다.

MicroPython 코드

매 반복마다 히팅 요소는 2초 동안 최대 출력을 받고, 그다음 2초 동안 출력을 받지 않습니다. 그 후 출력이 10%에서 100%까지 올라갔다가 다시 내려갑니다. 히팅 요소는 온도가 천천히 변하므로, 각 단계마다 느끼는 것이 아니라 시간이 지난 뒤에야 변화를 느끼게 됩니다.

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-controls-heating-element */ 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를 준비하세요.
  • 12V 어댑터는 아직 꽂지 않은 상태에서, 다이어그램에 따라 히팅 요소를 MOSFET 모듈에 연결하세요.
  • 코드를 Thonny에 복사하고 ESP32에 main.py로 저장하세요.
  • 12V 어댑터를 꽂은 다음 실행을 클릭하세요 (또는 F5 키를 누르세요).
  • 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 ≡

팁: MOSFET 모듈은 DC 히터 전용이며, 공급 전압은 약 6V 이상이어야 합니다. 히터는 큰 전류를 끌어올 수 있으므로, 모듈의 칩이 너무 뜨거워지지 않는지 확인하세요.

동영상

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