Product Page

Waterproof DS18B20 Temperature Sensor In Pakistan | microsoloution.com.pk

 500

[yith_wcwl_add_to_wishlist]

Need some help?

Contact Us

Product Ships in

2-3-business Days

Payment Methods:

Waterproof DS18B20 Temperature Sensor In Pakistan | microsoloution.com.pk

 

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);
  }
}