저번 글에서 끝낼 때는 물의 온도를 보다 정확히 측정할 수 있는 센서 (DS18B20)를 기다린다고 말씀드렸었습니다
한참 기다리니 잘 도착했습니다.
같이 주문한 Esp32도 잘 와서 이어 새로 전부 맞게 회로를 쫘봤습니다.
맨처음에는 아래같은 사진을 보고 4.7k옴 저항이 필요한 줄 알고 있었는데, 자체적인 중간 터미널이 있으면 이것이 포함되어 있음을 나중에 알게 되어 회로를 수정해줬습니다.
이렇게 온도에 따라서 잘 따라노는 것을 볼 수 있습니다.
코드는 아까 DS센서를 참고한 사이트에서 따왔고 여기에 추가 Blynk 사이트에 활용가능하게 다시 수정해주면서 만들었습니다.
#include <OneWire.h>
#include <DallasTemperature.h>
#define SENSOR_PIN 17 // ESP32 pin GPIO17 connected to DS18B20 sensor's DATA pin
OneWire oneWire(SENSOR_PIN);
DallasTemperature DS18B20(&oneWire);
float tempC; // temperature in Celsius
float tempF; // temperature in Fahrenheit
void setup() {
Serial.begin(9600); // initialize serial
DS18B20.begin(); // initialize the DS18B20 sensor
}
void loop() {
DS18B20.requestTemperatures(); // send the command to get temperatures
tempC = DS18B20.getTempCByIndex(0); // read temperature in °C
tempF = tempC * 9 / 5 + 32; // convert °C to °F
Serial.print("Temperature: ");
Serial.print(tempC); // print the temperature in °C
Serial.print("°C");
Serial.print(" ~ "); // separator between °C and °F
Serial.print(tempF); // print the temperature in °F
Serial.println("°F");
delay(500);
}
이제 수정을 통해 히터에 수동으로 파워를 줄 수도 있고, TEMP라는 버튼을 통해 조건으로 측정한 물온도가 20도 이하일때 히터가 켜지며 20도 이상까지 올라가게 코딩해놨습니다