KS0329 Keyestudio 18B20 Waterproof Temperature Sensor + 4.7K Resistor (3PCS)

From Keyestudio Wiki
Jump to navigation Jump to search
Keyestudio 18B20 Waterproof Temperature Sensor + 4.7K Resistor(3PCS)


This kit includes three DS18b20 temperature detector sensor and three 4.7 K resistors.
Keyestudio DS18b20 temperature detector probe adopts the brand-new and original DS18B20 temperature sensor chip.

Each pin of chip is separated by heat shrinking tube to prevent the short circuit, and sealed inside for waterproof and damp-proof. Its direct "One line Bus" digital transmission greatly improves the anti-jamming capability of system, suitable for field temperature measurement in harsh environments.

At the same time, it is sealed with a high thermal conductivity of sealing rubber strip, to ensure the temperature sensor’s high sensitivity, with a very tiny temperature delay. Its measured temperature range is from -55℃ to +125℃, in the range of -10℃~ +85℃, its accuracy is±0.5℃.

When testing it, need to connect the signal end (yellow line) of sensor to the Digital port of microcontroller, meanwhile, need to add a pull-up resistor on the Signal end, or else the test will fail. This kit we provide three 4.7 K resistors to used as pull-up resistor.


  • 1.Each pin of chip is separated by heat shrinking tube to prevent the short-circuit
  • 2.Sealed with premium stainless steel tube for waterproof, damp-proof and rustproof.
  • 3.Total length of 1m
  • 4.3.3-5V power supply
  • 5.9~12 bit adjustable resolution
  • 6.Temperature sensing range: -55℃~+125℃(lead wire can bear the temperature up to 85℃)



Connection Diagram


Test Code

// http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip
#include <OneWire.h>
 int DS18S20_Pin = 2; //DS18S20 Signal pin on digital pin 2
 //Temperature chip i/o
OneWire ds(DS18S20_Pin);  // on digital pin 2
 void setup(void) {
 void loop(void) {
  float temperature = getTemp();
  delay(100); //to slow down the output so it is easier to read   
float getTemp(){
  //returns the temperature from one DS18S20 in DEG Celsius 
  byte data[12];
  byte addr[8];
  if ( !ds.search(addr)) {
      //no more sensors on chain, reset search
      return -1000;
  if ( OneWire::crc8( addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return -1000;
  if ( addr[0] != 0x10 && addr[0] != 0x28) {
      Serial.print("Device is not recognized");
      return -1000;
  ds.write(0x44,1); // start conversion, with parasite power on at the end
  byte present = ds.reset();
  ds.write(0xBE); // Read Scratchpad   
  for (int i = 0; i < 9; i++) { // we need 9 bytes
    data[i] = ds.read();
  byte MSB = data[1];
  byte LSB = data[0];
  float tempRead = ((MSB << 8) | LSB); //using two's compliment
  float TemperatureSum = tempRead / 16;
  return TemperatureSum;  

Example Result

After wiring, powered up, upload the above code to the board, then open the serial monitor and set the baud rate as 9600.
Eventually, you should see the temperature value in current ambient. Shown below.

Package Included

  • keyestudio 18B20 Waterproof Temperature Sensor x 3pcs
  • 4.7K Resistor x 3pcs



Get One Now