ESP8266 - 난방 시스템 | ESP8266 - Heating System

이 튜토리얼에서는 ESP8266, 발열 요소 및 DS18B20 온도 센서를 사용하여 방의 온도를 제어할 것입니다.

또한, 이 코드는 DS18B20 센서 대신 DHT11, DHT22, LM35와 같은 다른 온도 센서에도 적용할 수 있습니다.

준비물

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×Heating Element 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) ESP8266 Screw Terminal Adapter Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

난방 요소 및 DS18B20 온도 센서에 관하여

이 튜토리얼에서 사용되는 발열 요소는 12v 전원 공급이 필요합니다. 발열 요소에 전원이 공급되면 열을 발생시킬 것입니다. ESP8266으로 발열 요소를 제어하려면 중재자로 릴레이를 사용해야 합니다.

온도 센서와 발열 요소(핀아웃, 작동, 프로그래밍 등)에 익숙하지 않다면, 다음 튜토리얼이 도움이 될 수 있습니다:

선연결

ESP8266 NodeMCU heating system wiring diagram

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

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

시스템 작동 방식

  • ESP8266은 온도 센서에서 온도를 모니터링합니다.
  • 온도가 특정 하한선 아래로 떨어지면, ESP8266은 난방 요소를 활성화합니다.
  • 온도가 특정 상한선을 초과하면, ESP8266은 난방 요소를 비활성화합니다.

루프가 계속해서 반복됩니다.

DS18B20 센서가 있는 냉각 시스템을 위한 ESP8266 코드

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN D7 // ESP8266의 DS18B20 센서의 DQ 핀에 연결된 핀 #define RELAY_PIN D1 // 난방 요소에 연결된 릴레이에 연결된 ESP8266 핀 const int THRESHOLD_OFF = 20; // 온도의 상한 임계값, 원하는 값으로 변경 const int THRESHOLD_ON = 15; // 온도의 하한 임계값, 원하는 값으로 변경 OneWire oneWire(SENSOR_PIN); // oneWire 인스턴스 설정 DallasTemperature DS18B20(&oneWire); // DallasTemperature 라이브러리에 oneWire 전달 float temperature; // 섭씨 온도 void setup() { Serial.begin(9600); // 직렬 통신을 초기화하여 직렬 모니터와 통신함. DS18B20.begin(); // 센서 초기화 pinMode(RELAY_PIN, OUTPUT); // 디지털 핀을 출력으로 초기화 } void loop() { DS18B20.requestTemperatures(); // 온도를 가져오라는 명령 보내기 temperature = DS18B20.getTempCByIndex(0); // 섭씨 온도 읽기 if(temperature > THRESHOLD_OFF) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // 끄기 } else if(temperature < THRESHOLD_ON){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // 켜기 } delay(500); }

위의 코드에서 온도가 15°C보다 낮을 때, ESP8266은 발열 요소를 활성화할 것입니다. 발열 요소는 온도가 20°C를 초과할 때까지 켜져 있을 것입니다.

사용 방법

아두이노 IDE에서 ESP8266을 시작하는 방법은 다음 단계를 따르세요:

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

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

ESP8266 NodeMCU onewire library
  • 위의 코드를 복사하고 Arduino IDE로 열어주세요.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 ESP8266에 업로드하세요.
  • 센서 주변 환경의 온도를 변경하세요.
  • 발열체와 방의 온도를 확인하세요.

고급 지식

위에서 언급한 기술은 온-오프 컨트롤러이며, 이는 시그널러 또는 "뱅뱅" 컨트롤러로도 알려져 있습니다. 이 방법을 구현하는 것은 매우 쉽습니다.

PID 컨트롤러로 알려진 대체 접근법이 존재합니다. 이 온도 제어 방법은 더 안정적이지만 복잡하고 이해하고 실천하기 어렵습니다. 그 결과, PID 컨트롤러는 널리 사용되지 않습니다.

※ 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!