Arduino Uno R4 WiFi에서 DS18B20 방수형 온도센서 모듈 테스트

webnautes
By -
0

 오늘은 온도센서 모듈을 제어해보려고 합니다. 디바이스마트에서 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 


댓글 쓰기

0 댓글

댓글 쓰기 (0)