Waterproof DS18B20 Temperature Sensor

Availability
In stock
SKU
B376,krt56,krt57,IMP500,Th250,A
PKR 290.00
Buy Now
Nationwide delivery · Shipping policy
Secure checkout

Waterproof DS18B20 Temperature Sensor is 1 meter long, sealed and pre-wired Waterproof DS18B20 temperature sensor probe based on the DS18B20 sensor. It is very handy for when you need to measure something far away.

Description

Accurately measure temperature in challenging environments with our waterproof DS18B20 temperature sensor. This reliable sensor offers precise readings and a durable design.

Key Features:

  • Waterproof and moisture proof construction
  • Stainless steel housing
  • 1-meter long cable
  • Accurate temperature measurement (±0.5°C)
  • 12-bit resolution
  • Compatible with various microcontrollers
  • Easy to install and use

Specifications:

  • Usable temperature range: -55°C to 125°C
  • Resolution: 9 to 12 bits selectable
  • 1-Wire interface
  • Unique 64-bit ID
  • Power supply: 3.0V to 5.5V

Applications:

  • Outdoor temperature monitoring
  • Industrial process control
  • Environmental monitoring
  • Scientific research
  • HVAC systems

 

Waterproof Ds18b20 Temperature Sensor

Example code

#include <OneWire.h>
#include <DallasTemperature.h>

const int ONE_WIRE_BUS = 2;
const int GND_PIN = 8;
const int VCC_PIN = 7;
const int LED_PIN = LED_BUILTIN; // Pin 13 on Uno/Nano

const int REQUIRED_SAMPLES = 2;

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

DeviceAddress deviceAddress;

// Result status
bool testPassed = false;

void powerDownSocket() {
  pinMode(ONE_WIRE_BUS, OUTPUT);
  digitalWrite(ONE_WIRE_BUS, LOW);
 
  digitalWrite(VCC_PIN, LOW);
  digitalWrite(GND_PIN, LOW);
  pinMode(VCC_PIN, OUTPUT);
  pinMode(GND_PIN, OUTPUT);
}

void powerUpSocket() {
  pinMode(GND_PIN, OUTPUT);
  digitalWrite(GND_PIN, LOW);
 
  pinMode(VCC_PIN, OUTPUT);
  digitalWrite(VCC_PIN, HIGH);
 
  pinMode(ONE_WIRE_BUS, INPUT);
  delay(150); // Power-on stabilization delay
}

void printAddress(DeviceAddress addr) {
  for (uint8_t i = 0; i < 8; i++) {
    if (addr[i] < 16) Serial.print("0");
    Serial.print(addr[i], HEX);
    if (i < 7) Serial.print(":");
  }
}

void setup() {
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);

  Serial.begin(115200);
  delay(100);

  Serial.println("\n----------------------------------------");
  Serial.println("Starting Test...");

  powerUpSocket();
  sensors.begin();
  sensors.setWaitForConversion(true);

  uint8_t count = sensors.getDeviceCount();

  if (count == 0) {
    Serial.println("[FAIL] -> No sensor detected. Check wiring/pull-up/orientation.");
    powerDownSocket();
    testPassed = false;
    return;
  }

  if (!sensors.getAddress(deviceAddress, 0)) {
    Serial.println("[FAIL] -> Address / CRC Error.");
    powerDownSocket();
    testPassed = false;
    return;
  }

  Serial.print("ROM ID: ");
  printAddress(deviceAddress);
  Serial.println("\nTaking Samples:");

  bool allSamplesValid = true;
  float samples[REQUIRED_SAMPLES];

  for (int i = 0; i < REQUIRED_SAMPLES; i++) {
    sensors.requestTemperatures();
    float tempC = sensors.getTempC(deviceAddress);

    samples[i] = tempC;
    Serial.print("  Sample ");
    Serial.print(i + 1);
    Serial.print("/");
    Serial.print(REQUIRED_SAMPLES);
    Serial.print(": ");
    Serial.print(tempC, 2);
    Serial.println(" °C");

    if (tempC == DEVICE_DISCONNECTED_C || tempC == 85.0 || tempC < -50.0 || tempC > 120.0) {
      allSamplesValid = false;
    }

    delay(100);
  }

  Serial.println("----------------------------------------");
  if (allSamplesValid) {
    Serial.println("RESULT: [OK] Sensor is Healthy.");
    testPassed = true;
  } else {
    Serial.println("RESULT: [FAIL] Inconsistent or invalid temperature readings.");
    testPassed = false;
  }
  Serial.println("----------------------------------------");

  powerDownSocket();
}

void loop() {
  if (testPassed) {
    // FAST BLINK (OK): Rapid flash (80ms ON / 80ms OFF)
    digitalWrite(LED_PIN, HIGH);
    delay(80);
    digitalWrite(LED_PIN, LOW);
    delay(80);
  } else {
    // SOLID ON (FAULTY): Continuous solid light
    digitalWrite(LED_PIN, HIGH);
  }
}