오늘은 온도센서 모듈을 제어해보려고 합니다. 디바이스마트에서 DS18B20 방수형 온도센서 모듈을 구입해서 사용했습니다.
테스트에 Arduino Uno R4 WiFi를 사용했지만 다른 버전의 Arduino Uno에서도 동일하게 동작하는 코드입니다.
2025. 11.2 최초작성
[YwRobot] DS18B20 방수형 온도센서 모듈 (연결용 터미널블럭모듈 포함) [SEN050007]
Temperature range: -50 ℃ - + 125 ℃ Applicable sensors: Waterproof DS18B20 temperature sensor Port: DAT (18B20 data) VCC (18B20 positive) GND (18B20 negative ) Platform: Arduino Raspberry Pi
https://www.devicemart.co.kr/goods/view?no=1287129&srsltid=AfmBOorB1kgT9Q6oXQZ-b2VQ9H2lwZPIy1wDwpzykN1UgN3HNXFiVMFu
구글링해봐도 인터넷상에는 정보가 없고 구입한 페이지에 rar 파일로 압축된 게 있더라구요. 하지만 마땅한 코드는 안보여서 DS18B20을 동작시키는 방법을 적용해보기로 했습니다.
센서 케이블을 다음처럼 보드에 연결합니다.


본 글에서는 Arduino Uno R4 WiFi를 사용하고 있습니다.
기본적인 사용방법은 아래 포스트를 참고하세요.
Arduino Uno R4 WiFi 개봉 및 소켓 예제 테스트
https://webnautes00.blogspot.com/2025/12/arduino-uno-r4-wifi.html
암-수 점퍼 케이블을 사용하여 센서보드와 Arduino Uno R4 WiFi를 다음처럼 연결합니다.
센서보드 GND - Arduino Uno R4 WiFi GND
센서보드 VCC - Arduino Uno R4 WiFi 5V
센서보드 DAT - Arduino Uno R4 WiFi 4


Arduino IDE 메뉴에서 Sketch > Include Library > Manage Libraries를 선택합니다.

DallasTemperature를 검색하여 설치합니다.

OneWire를 검색하여 설치합니다.

다음 코드를 업로드합니다.

/* * This Arduino UNO R4 code was developed by newbiely.com * * This Arduino UNO R4 code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-temperature-sensor */
#include <OneWire.h> #include <DallasTemperature.h>
#define SENSOR_PIN 4 // The Arduino UNO R4 pin connected to DS18B20 sensor's DQ pin
OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library
void setup() { Serial.begin(9600); // initialize serial DS18B20.begin(); // initialize the sensor }
void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature_C = DS18B20.getTempCByIndex(0); // read temperature in Celsius float temperature_F = temperature_C * 9 / 5 + 32; // convert Celsius to Fahrenheit
Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // print the temperature in Fahrenheit Serial.println("°F");
delay(500); } |
메뉴에서 Tools > Serial Monitor를 선택합니다.
시리얼 모니터에 온도가 출력됩니다.

온도 센싱하는 부분이 금속입니다. 이 부분이 방수가 된다는 의미 같습니다. 손으로 만지면 온도가 천천히 올라가고 손을 떼면 천천히 온도가 낮아집니다.
실시간으로 현재 온도가 바로 출력되지 않고 좀 시간이 걸리네요.

참고
https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-temperature-sensor