아두이노 - 난방 시스템 | Arduino - Heating System

이 튜토리얼에서는 난방 요소와 DS18B20 온도 센서를 사용하여 방 온도를 제어할 것입니다. 온도가 너무 낮으면 난방 요소를 켜고, 온도가 따듯하면 난방 요소를 끕니다. DHT11이나 DHT22, LM35처럼 DS18B20 센서 대신 다른 온도 센서를 사용하도록 코드를 조정할 수도 있습니다.

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | 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) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno 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 전원 공급 장치를 사용합니다. 난방 요소에 전력이 공급되면, 난방 요소는 열을 발산합니다. 아두이노로 난방 요소를 제어하려면 중간에 릴레이를 사용해야 합니다.

온도 센서와 발열 요소(핀 배치, 작동 웩리, 프로그래밍 방법 등)에 대해 잘 모른다면, 다음 튜토리얼에서 배우십시오:

선연결

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

Arduino heating system wiring diagram

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

어댑터가 포함된 배선도 (추천)

Arduino teamperature controls heating system wiring diagram

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

시스템 작동 방식

  • 아두이노가 온도 센서에서 온도를 읽습니다
  • 온도가 하한 임계값 이하로 떨어지면, 아두이노는 난방 요소를 켭니다
  • 온도가 상한 임계값 이상으로 상승하면, 아두이노는 난방 요소를 끕니다

위의 과정은 루프에서 무한히 반복됩니다.

DS18B20 센서가 있는 냉각 시스템을 위한 아두이노 코드

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 2 // 아두이노 핀으로 DS18B20 센서의 DQ 핀에 연결됨 #define RELAY_PIN A5 // 아두이노 핀으로 릴레이에 연결되고, 그 릴레이는 난방 요소에 연결됨 const int TEMP_THRESHOLD_UPPER = 20; // 온도의 상한 임계값, 원하는 값으로 변경 const int TEMP_THRESHOLD_LOWER = 15; // 온도의 하한 임계값, 원하는 값으로 변경 OneWire oneWire(SENSOR_PIN); // oneWire 인스턴스 설정 DallasTemperature sensors(&oneWire); // oneWire를 DallasTemperature 라이브러리에 전달 float temperature; // 섭씨 온도 void setup() { Serial.begin(9600); // 시리얼 초기화 sensors.begin(); // 센서 초기화 pinMode(RELAY_PIN, OUTPUT); // 디지털 핀을 출력으로 초기화 } void loop() { sensors.requestTemperatures(); // 온도를 얻기 위한 명령어 전송 temperature = sensors.getTempCByIndex(0); // 섭씨 온도 읽기 if(temperature > TEMP_THRESHOLD_UPPER) { Serial.println("난방 요소가 꺼졌습니다"); digitalWrite(RELAY_PIN, LOW); // 끄기 } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("난방 요소가 켜졌습니다"); digitalWrite(RELAY_PIN, HIGH); // 켜기 } delay(500); }

위의 코드에서는 온도가 15°C 아래로 떨어지면 Arduino가 발열 요소를 켜고 온도가 20°C를 넘을 때까지 발열 요소를 계속 켜둡니다.

사용 방법

  • 아두이노를 USB 케이블을 통해 PC에 연결하세요.
  • 아두이노 IDE를 열고, 올바른 보드와 포트를 선택하세요.
  • 아두이노 IDE 왼쪽 바의 Libraries 아이콘으로 이동하세요.
  • “DallasTemperature”을 검색한 후, 마일스 버튼이 만든 DallasTemperature 라이브러리를 찾으세요.
  • DallasTemperature 라이브러리를 설치하려면 Install 버튼을 클릭하세요.
Arduino Dallas Temperature library
  • 라이브러리 의존성을 설치하라는 요청을 받게 될 것입니다.
  • OneWire 라이브러리를 설치하려면 Install All 버튼을 클릭하세요.
Arduino onewire library
  • 위의 코드를 복사하고 Arduino IDE로 엽니다
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino에 업로드합니다
  • 센서 주변 환경을 더 뜨겁게 하거나 차갑게 합니다
  • 발열체와 방의 온도를 확인합니다

고급 지식

위의 제어 방법은 온-오프 컨트롤러로, 시그널러 또는 "뱅뱅" 컨트롤러라고도 불립니다. 이 방법은 실행하기가 매우 간단합니다.

PID 컨트롤러라고 하는 대체 방법이 있습니다. 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!