การวัดอุณหภูมิในสภาพแวดล้อมที่ยากลําบาก เช่น การกักเก็บสารเคมี ดินลึก และเหมืองไม่ใช่เรื่องง่าย และเซ็นเซอร์อุณหภูมิส่วนใหญ่ไม่สามารถทนต่อความร้อนและสภาพแวดล้อมที่รุนแรงได้ ดังนั้นจึงใช้เซ็นเซอร์อุณหภูมิกันน้ํา DS18B20 ซึ่งกันน้ําและกันความชื้น และเหมาะสําหรับสภาพแวดล้อมที่รุนแรงและเป็นอันตราย
สามารถวัดอุณหภูมิได้หลากหลายตั้งแต่ -55 °C ถึง 125 °C บทความนี้ให้คําอธิบายสั้น ๆ เกี่ยวกับเซ็นเซอร์ DS18B20 ทางเลือกของเซ็นเซอร์อุณหภูมิกันน้ํา DS18B20 ได้แก่ เทอร์โมคัปเปิล, LM75, LM35DZ, TMP100, DHT11, TPA81, SHT15, D6T และ DS18S20 (เทียบเท่า)
เซ็นเซอร์อุณหภูมิกันน้ํา DS18B20 เป็นโพรบเซ็นเซอร์อุณหภูมิแบบดิจิตอลแบบกันน้ําแบบมีสายยาวหนึ่งเมตรปิดผนึกและผลิตโดย Dallas semiconductor และ maxim integrated corporations ในรุ่นกันน้ํา ใช้งานง่ายออกแบบมาอย่างดีและสะดวกในการวัดอุณหภูมิในทุกสภาพแวดล้อม
เป็นเซ็นเซอร์อุณหภูมิดิจิตอล 1 สายที่มีความแม่นยํา 12 บิตจากตัวแปลงดิจิตอลเป็นอนาล็อกออนบอร์ด หลักการทํางานขึ้นอยู่กับการแปลงอุณหภูมิเป็นรูปแบบดิจิทัลโดยตรงและทํางานในโหมดพลังงานปรสิต การทํางานของเซ็นเซอร์นี้ใช้โปรโตคอลการสื่อสารแบบอนุกรม 1 สายและจัดเก็บรหัสซีเรียลที่ไม่ซ้ํากัน 64 บิต
เนื่องจากเป็นเซ็นเซอร์อุณหภูมิดิจิตอลแบบ 1 สาย จึงต้องการเพียงพินข้อมูลและพิน GND เพื่อเชื่อมต่อกับ Arduino หรือไมโครคอนโทรลเลอร์ การตรวจจับอุณหภูมิของเซ็นเซอร์มีตั้งแต่ -55°C ถึง +125°C ด้วยความแม่นยํา ±5°C เป็นเซ็นเซอร์อุณหภูมิที่ดีที่สุดในการวัดค่าอุณหภูมิที่หลายจุด และต้องใช้พินข้อมูล/ดิจิทัลเพียงพินเดียวของ Arduino หรือหน่วยไมโครคอนโทรลเลอร์เพื่อถ่ายโอนข้อมูล
ทํางานด้วยแหล่งจ่ายไฟบวก 3V ถึง 5.5V และใช้กระแสไฟสูงสุด 1mA ข้อได้เปรียบหลักของ DS18B20 คือฟังก์ชั่นปลุก สัญญาณเอาต์พุตสามารถกําหนดค่าได้เมื่อค่าของอุณหภูมิถึงค่าเกณฑ์สูงหรือต่ําที่กําหนดโดยผู้ใช้
DS18B20 เป็นเซ็นเซอร์อุณหภูมิดิจิตอลกันน้ํา 3 ขาหรือ 3 สาย การกําหนดค่าพินเซ็นเซอร์อุณหภูมิกันน้ํา DS18B20/ไดอะแกรมพินแสดงไว้ด้านล่าง

พิน 1: GND (กราวด์): พินหรือสายไฟนี้หมายถึงการเชื่อมต่อกราวด์ของการทํางานของโหมดปรสิตวงจร สายสีดําของ DS18B20 แสดงถึงหมุดกราวด์
พิน 2: VCC: พินนี้หมายถึงแหล่งจ่ายไฟบวก voltage ของ 3V ถึง 5.5V เพื่อเปิดเครื่องเซ็นเซอร์ สายสีแดงของ DS18B20 แสดงถึงพิน VCC
พิน 3: DQ หรือ DATA: พินนี้หมายถึงพินเอาต์พุตที่สามารถสร้างค่าอุณหภูมิดิจิตอลที่สามารถอ่านได้โดยใช้โปรโตคอลอินเทอร์เฟซแบบ 1 สาย เชื่อมต่อกับพินดิจิตอลของ Arduino หรือไมโครคอนโทรลเลอร์ขณะเชื่อมต่อ ให้พลังงานแก่เซ็นเซอร์เมื่อทํางานในโหมดพลังงานปรสิต สายสีเหลืองของ DS18B20 แสดงถึงพินข้อมูล
ข้อมูลจําเพาะทางเทคนิคและคุณสมบัติอุณหภูมิกันน้ํา DS18B20แสดงไว้ด้านล่าง
DS18B20 มีวงจรเตือนภัยในตัวพร้อมเสียงกริ่งและไฟ LED สองสีที่แตกต่างกัน (สีแดงและสีน้ําเงิน) ใช้เสียงที่รับประกันสองครั้งและวิธีการเตือนสัญญาณไฟ อุณหภูมิที่ตรวจพบจะถูกเปรียบเทียบกับอุณหภูมิเกณฑ์ที่ตั้งไว้อย่างต่อเนื่อง
เมื่ออุณหภูมิเกินขีดจํากัดบนของเกณฑ์ เสียงกริ่งจะส่งสัญญาณเตือนด้วยความถี่สูง และไฟ LED สีแดงจะสว่างขึ้นพร้อมกันและส่งสัญญาณเตือนอุณหภูมิสูง เมื่ออุณหภูมิต่ํากว่าขีดจํากัดล่างของเกณฑ์ เสียงกริ่งจะส่งสัญญาณเตือนความถี่ต่ํา และในขณะเดียวกัน ไฟ LED สีน้ําเงินจะสว่างขึ้นเพื่อส่งสัญญาณเตือนอุณหภูมิต่ํา
วิธีที่ดีที่สุดและง่ายที่สุดในการตรวจจับอุณหภูมิคือการใช้เซ็นเซอร์อุณหภูมิกันน้ํา DS18B20 เนื่องจากไม่ต้องใช้ส่วนประกอบภายนอกใด ๆ และทํางานด้วยโปรโตคอลการสื่อสารแบบอนุกรม 1 สาย ตอนนี้เรามารู้วิธีเชื่อมต่ออุณหภูมิกันน้ํา DS18B20 กับ Arduino เพื่อทราบค่าของอุณหภูมิ แผนภาพวงจรของเซ็นเซอร์ DS18B20 พร้อม Arduino แสดงในรูปด้านล่าง ส่วนประกอบที่จําเป็นคือ;
ทําการเชื่อมต่อตามที่แสดงในแผนภาพวงจรด้านบน เซ็นเซอร์ DS18B20 สามารถทํางานได้สองโหมด พวกเขาคือ
ต้องใช้การเชื่อมต่อแบบ 3 พินหรือ 3 สายเพื่อใช้งานเซ็นเซอร์ในโหมดปกติ และพิน VCC ของ DS18B20 เชื่อมต่อกับแหล่งจ่ายไฟ 5V แผนภาพวงจรของเซ็นเซอร์ DS18B20 ที่เชื่อมต่อกับ Arduino ในโหมดปกติแสดงในรูปด้านล่าง

ต้องใช้พินข้อมูลและพินกราวด์ เซ็นเซอร์ DS18B20 ได้รับแรงดันไฟฟ้าจากสายข้อมูลหรือพินข้อมูล

จากวงจรด้านบนพิน GND ของเซ็นเซอร์จะเชื่อมต่อกับพิน GND ของ Arduino UNO พิน DQ/DATA ของเซ็นเซอร์เชื่อมต่อกับพินดิจิตอล 2 ของ Arduino UNO เพื่อสร้างบัสสื่อสารแบบสายเดียว ตัวต้านทานแบบดึงขึ้นขนาด 4.7 กิโลโอห์มเชื่อมต่อจากเส้นทาง DQ/DATA ไปยังเส้นทาง VCC ของเซ็นเซอร์ DS18B20 และ Arduino เพื่อให้สามารถถ่ายโอนข้อมูลได้ สุดท้ายในการรับแหล่งจ่ายไฟพิน VCC ของเซ็นเซอร์จะเชื่อมต่อกับกราวด์ เนื่องจากทํางานในโหมดพลังงานปรสิต มันใช้อุปทานจากบรรทัดข้อมูล
สําหรับ DS18B20 เชื่อมต่อกับไมโครคอนโทรลเลอร์ตัวอย่างเช่นช่วยให้เราใช้อุณหภูมิ Arduino, 1-wire และดัลลัส ต้องติดตั้งฟังก์ชันไลบรารี H เพื่อรับการอ่านค่าอุณหภูมิเอาต์พุตจากเซ็นเซอร์ DS18B20 ด้วยคําสั่งง่ายๆ หลังจากติดตั้งฟังก์ชันไลบรารีแล้ว จะต้องอัปโหลดรหัสที่จําเป็นไปยังบอร์ด Arduino UNO ดังที่แสดงด้านล่าง
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into digital pin 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a one-wire instance to communicate with any OneWire device
OneWire oneWire(ONE_WIRE_BUS);
// Pass oneWire reference to DallasTemperature library
DallasTemperature sensors(&oneWire);
void setup(void)
{
sensors.begin(); // Start up the library
Serial.begin(9600);
}
void loop(void)
{
// Send the command to get temperature
sensors.requestTemperatures();
//print the temperature in Celsius
Serial.print(“Temperature: “);
Serial.print(sensors.getTempCByIndex(0));
Serial.print((char)176);//shows degrees of character
Serial.print(“C | “);
//print the temperature in Fahrenheit
Serial.print((sensors.getTempCByIndex(0) * 9.0) / 5.0 + 32.0);
Serial.print((char)176);//shows degrees of character
Serial.println(“F”);
delay(500);
}การใช้งานเซ็นเซอร์อุณหภูมิกันน้ํา DS18B20 แสดงไว้ด้านล่าง
โปรดดูลิงค์นี้สําหรับเอกสารข้อมูลเซ็นเซอร์อุณหภูมิกันน้ํา DS18B20
ดังนั้นนี่คือทั้งหมดที่เกี่ยวกับภาพรวมของเซ็นเซอร์อุณหภูมิกันน้ํา DS18B20 มีเซ็นเซอร์อุณหภูมิดิจิตอลหลายตัวในท้องตลาด ตรวจสอบเอกสารข้อมูลและเลือกเซ็นเซอร์อุณหภูมิที่ดีที่สุดที่ตรงกับความต้องการของโครงการของคุณ