ESP8266 - DS18B20 온도 센서를 사용하는 냉각 시스템 | ESP8266 - Cooling System using DS18B20 Temperature Sensor

이 튜토리얼은 ESP8266을 사용하여 선풍기와 DS18B20 온도 센서로 온도를 제어하는 방법을 안내합니다.

DS18B20 대신 DHT11이나 DHT22 센서를 사용하고 싶으시다면, ESP8266 - DHT 센서를 이용한 냉각 시스템을 참조해 주세요.

준비물

1×ESP8266 NodeMCU Amazon
1×Micro USB Cable Amazon
1×DS18B20 Temperature Sensor (WITH Adapter) 쿠팡 | Amazon
1×DS18B20 Temperature Sensor (WITHOUT Adapter) Amazon
1×4.7 kΩ resistor Amazon
1×Relay Amazon
1×12V DC Cooling Fan Amazon
1×(Alternative) 5V DC Cooling Fan 쿠팡 | Amazon
1×12V Power Adapter Amazon
1×DC Power Jack 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 5V Power Adapter for ESP8266 Amazon
1×(Optional) Screw Terminal Expansion Board for ESP8266 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

냉각 팬 및 DS18B20 온도 센서 정보

이 튜토리얼은 12v 전원으로 작동하는 냉각 팬을 사용합니다. 전원이 공급되면 팬이 켜지고 제거되면 팬이 꺼집니다. ESP8266으로 팬을 제어하려면 중간자로 릴레이를 사용해야 합니다.

온도 센서와 팬(핀 배치, 작동 방식 및 프로그래밍 방법 포함)에 익숙하지 않은 경우, 다음 튜토리얼이 도움이 될 수 있습니다:

선연결

브레드보드를 사용한 배선도.

ESP8266 NodeMCU cooling fan system wiring diagram

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

ESP8266의 핀 배치ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.

터미널 어댑터를 사용한 배선도 (권장).

ESP8266 NodeMCU control relay wiring diagram

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

우리는 매끄러운 설치를 위해 DS18B20 센서와 함께 제공되는 연결 어댑터를 구매하는 것을 추천합니다. 이 어댑터에는 통합된 저항기가 포함되어 있어, 배선 중 추가 저항기가 필요 없습니다.

시스템 작동 방식

  • ESP8266은 온도 센서를 사용하여 온도를 확인합니다.
  • 온도가 설정된 상한보다 높을 경우, ESP8266에 의해 팬이 작동됩니다.
  • 온도가 설정된 하한보다 낮을 경우, ESP8266에 의해 팬이 꺼집니다.

이 절차는 반복적으로 끊임없이 진행됩니다.

온도가 특정 지점 이상이거나 이하일 때 선풍기를 켜고 끄고 싶다면, 단순히 상한선과 하한선을 같은 값으로 설정하면 됩니다.

DS18B20 센서를 사용한 냉각 시스템을 위한 ESP8266 코드

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-cooling-system-using-ds18b20-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> #define THRESHOLD_ON 30 // 상한 온도 임계값 #define THRESHOLD_OFF 15 // 하한 온도 임계값 #define SENSOR_PIN D7 // DS18B20 센서의 DQ 핀에 연결된 ESP8266 핀 #define FAN_PIN D1 // 릴레이에 연결된 ESP8266 핀 OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); void setup() { Serial.begin(9600); // Serial Monitor와 통신하기 위해 Serial을 초기화합니다. DS18B20.begin(); // DS18B20 센서를 초기화합니다. } void loop() { DS18B20.requestTemperatures(); // 온도를 얻기 위한 명령어를 보냅니다 float temperature = DS18B20.getTempCByIndex(0); // 섭씨 온도를 읽습니다 if (temperature > THRESHOLD_ON) { Serial.println("Turn the fan on"); digitalWrite(FAN_PIN, HIGH); // 켭니다 } else if (temperature < THRESHOLD_OFF) { Serial.println("Turn the fan off"); digitalWrite(FAN_PIN, LOW); // 끕니다 } delay(500); }

위 코드에서 온도가 25°C보다 높을 때, ESP8266은 팬을 작동시킬 것입니다. 온도가 20°C 아래로 떨어질 때까지 팬은 계속 작동할 것입니다.

사용 방법

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

  • ESP8266을 처음 사용한다면 Arduino IDE에서 ESP8266 환경 설정하는 방법 튜토리얼을 확인하세요.
  • 다이어그램에 표시된 대로 구성 요소를 연결하세요.
  • USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 정확한 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • USB 케이블을 연결하여 ESP8266을 PC에 연결하세요.
  • Arduino IDE를 실행하고, 적절한 보드와 포트를 선택하세요.
  • Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
  • “Dallas”을 검색한 다음, Miles Burton의 DallasTemperature 라이브러리를 찾으세요.
  • DallasTemperature 라이브러리를 설치하려면 Install 버튼을 누르세요.
ESP8266 NodeMCU Dallas Temperature library

의존성을 설치하라는 요청을 받게 됩니다. OneWire 라이브러리를 설치하려면 Install All 버튼을 클릭하세요.

ESP8266 NodeMCU onewire library
  • 코드를 복사하여 아두이노 IDE에서 열어주세요.
  • Upload 버튼을 클릭하여 코드를 ESP8266으로 전송하세요.
  • 센서 주변 환경의 온도를 변경하세요.
  • 시리얼 모니터에서 팬의 상태를 확인하세요.

고급 지식

위에서 설명한 제어 방법은 온-오프 컨트롤러로, 신호기나 "방방" 컨트롤러라고도 합니다. 이 방법은 실천하기가 매우 간단합니다.

PID 컨트롤러라고 알려진 대체 방법이 존재합니다. 이 방법은 더 안정적인 원하는 온도를 달성할 수 있게 하지만, 이해하고 구현하기가 복잡합니다. 그 결과, PID 컨트롤러는 온도 조절에 일반적으로 사용되지 않습니다.

동영상

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

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!