DS18B20 - เซ็นเซอร์วัดอุณหภูมิแบบกันน้ำ

📋 ภาพรวม
DS18B20 เป็นเซ็นเซอร์วัดอุณหภูมิระบบดิจิทัลที่ใช้การสื่อสารแบบ 1-Wire จุดเด่นคือสามารถต่อเซ็นเซอร์หลายตัวขนานกันในสายไฟเพียง ชุดเดียวได้ และมีรูปแบบที่เป็นโพรบสแตนเลสกันน้ำ (Waterproof)
ข้อมูลทางเทคนิค
- ช่วงการวัด: -55°C ถึง +125°C
- ความแม่นยำ: ±0.5°C (ในช่วง -10°C ถึง +85°C)
- แรงดันไฟ: 3.0V ถึง 5.5V
- ความละเอียด: ปรับได้ตั้งแต่ 9 ถึง 12 bit
🔌 การต่อสาย
DS18B20 มี 3 สาย (สำหรับแบบกันน้ำ): - สายสีแดง: VCC - สายสีดำ: GND - สายสีเหลือง/น้ำเงิน: DATA
ต้องใช้ Pull-up Resistor
จำเป็นต้องต่อ Resistor 4.7kΩ ระหว่างสาย DATA และสาย VCC เสมอ เพื่อให้การสื่อสาร 1-Wire ทำงานได้
💻 โค้ดตัวอย่าง
ต้องติดตั้ง Library: OneWire และ DallasTemperature
Arduino / ESP32
#include <OneWire.h>
#include <DallasTemperature.h>
// ขาที่ต่อสาย DATA
const int oneWireBus = 4;
OneWire oneWire(oneWireBus);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println("°C");
delay(1000);
}
🛠️ โปรเจค DIY
1. ระบบควบคุมอุณหภูมิตู้ปลา
ใช้ DS18B20 วัดอุณหภูมิน้ำในตู้ปลา และสั่งงานฮีตเตอร์หรือพัดลมผ่านรีเลย์เมื่ออุณหภูมิไม่ได้ตามเกณฑ์
2. เครื่องทำน้ำอุ่นอัจฉริยะ
ฝังโพรบไว้ที่ท่อทางออกเพื่อตรวจวัดอุณหภูมิน้ำที่ใช้งานจริง
3. ตรวจสอบอุณหภูมิหลายจุด (Multiple Sensors)
ต่อเซ็นเซอร์ DS18B20 หลายตัวในสายเส้นเดียวเพื่อวัดอุณหภูมิตามห้องต่างๆ ในบ้าน
⚠️ ข้อควรระวัง
สายไฟสีสลับกัน
ในบางผู้ผลิต สาย DATA อาจเป็นสีน้ำเงินแทนสีเหลือง และสาย GND อาจเปนสีขาวแทนสีดำ ควรตรวจสอบจากคู่มือของผู้ขายหรือทดสอบด้วยมัลติมิเตอร์
การหาที่อยู่ (Address)
เซ็นเซอร์แต่ละตัวมี Unique ID 64-bit หากต้องการใช้หลายตัวในสายเดียว ควรใช้โค้ดตัวอย่าง "Tester" ใน Library DallasTemperature เพื่ออ่าน Address ของแต่ละตัวเก็บไว้ก่อน