กลับไปหน้ารวมไฟล์
water-temperature-sensor-for-water-heater-boilers-606fe2.md

ในกรณีที่เครื่องทำน้ำอุ่นพลังงานแสงอาทิตย์อยู่ไกลมาก (เช่น อยู่บนหลังคาตึกแถว) แล้วเราอยากรู้ว่าน้ำข้างในมันร้อนเท่าไหร่ โดยเฉพาะในวันที่ฟ้าครึ้ม แนวทางที่เจ๋งๆ ก็คือใช้เซ็นเซอร์วัดอุณหภูมิอย่าง LM35 (ที่มากับชุด Arduino พื้นฐาน) หรือตัวที่ทนทานกว่าแบบ DS18B20

อย่างแรก ที่ต้องทำคือหาช่องในตัวเครื่องทำน้ำอุ่นสำหรับใส่เซ็นเซอร์ เครื่องทำน้ำอุ่นทุกตัวจะมีปลอกสำหรับใส่เทอร์โมสตัทของมันอยู่ ปลอกนี้มักจะยาวกว่าสายวัดของเทอร์โมสตัทนิดหน่อย ดังนั้นดูเหมือนว่าข้างในปลอกจะยังมีที่ว่างเล็กๆ ให้เราใส่เซ็นเซอร์ลงไปได้

อยากรู้ว่าจริงมั้ย ลองดึงสายวัดของเทอร์โมสตัทออกมาตามรูปด้านล่าง แล้ววัดความยาวทั้งของสายวัดและของปลอกมันดูเลย

อย่างที่สอง คือเตรียมการต่อสายให้เซ็นเซอร์ อุณหภูมิน้ำอาจพุ่งไปถึง 100°C และปลอกที่เราใส่เซ็นเซอร์ก็ร้อนได้ขนาดนั้น ดังนั้นต้องใช้สายซิลิโคนที่ทนความร้อนสูงได้

อย่างที่สาม คือต่อเซ็นเซอร์เข้ากับ Arduino ตามที่รูปด้านล่างแสดงไว้เลยจ้า

รายละเอียดทางเทคนิคแบบจัดเต็ม

ถ้าอยากได้โซลูชันระดับอุตสาหกรรมหน่อย ลองใช้ DS18B20 1-Wire waterproof temperature probe ดูครับ ต่างจากเซ็นเซอร์อนาล็อกอย่าง LM35 ที่สัญญาณอาจจะเพี้ยนได้ถ้าลากสายยาวๆ เพราะ DS18B20 มันคำนวณอุณหภูมิเป็นองศาเซลเซียสภายในตัวเลย แล้วส่งข้อมูลออกมาเป็นดิจิทัล

The 1-Wire Digital Protocol (DS18B20)

  1. ตัวเรือนสแตนเลส: ตัวเซ็นเซอร์ซิลิกอนจิ๋วถูกอัดแน่นด้วยอีพอกซีนำความร้อนอยู่ข้างในท่อสแตนเลสกันน้ำ ทำให้มันสามารถจุ่มอยู่ในถังหม้อต้มความดันสูงได้อย่างปลอดภัย
  2. บัส 1-Wire: เซ็นเซอร์ตัวนี้สื่อสารผ่านบัสดิจิทัล 1-Wire ต้องมี ตัวต้านทานดึงขึ้น (Pull-Up Resistor) 4.7k โอห์ม ระหว่างสาย Data กับไฟ 5V เสมอ ไม่งั้นบัสไม่ทำงานนะตัวนี้
  3. ต่อเซ็นเซอร์หลายตัวได้: สามารถต่อ DS18B20 หลายๆ ตัวเข้าพินดิจิทัลเดียวกันของ Arduino ได้เลย เพราะแต่ละตัวมีที่อยู่ 64-bit เป็นของตัวเอง โค้ดสามารถเรียกถามค่าแต่ละตัวแยกกันได้

ระบบตัดความปลอดภัยแบบฮิสเทอรีซิส (Hysteresis Safety Cut-Off) เครื่องทำน้ำอุ่นอาจอันตรายได้ถ้าร้อนเกินไป Arduino ของเราสามารถทำหน้าที่เป็นระบบตัดสำรองได้ โดยสั่งงาน Contactor Relay เพื่อควบคุมวงจรหลักของฮีตเตอร์

  • ตรรกะในโค้ด:
sensors.requestTemperatures();
float boilerTemp = sensors.getTempCByIndex(0);

if (boilerTemp >= 85.0) { // ถึงขีดอันตรายแล้ว!
  digitalWrite(SafetyRelay, HIGH); // ตัดไฟ 240V
  TriggerAlarmSiren();
}

ฮาร์ดแวร์สำหรับวัดอุณหภูมิ

  • Arduino Uno หรือ Nano
  • หัววัดอุณหภูมิกันน้ำ DS18B20 (พร้อมตัวต้านทานดึงขึ้น 4.7k โอห์ม)
  • จอแสดงผล LCD 16x2 หรือ I2C OLED สำหรับดูค่าตรงๆ
  • (ตัวเลือกเสริม: ใช้ ESP8266 เพื่อส่งข้อมูลอุณหภูมิไปยังแดชบอร์ด MQTT/Node-RED)

ขั้นตอนสุดท้าย: เขียนโปรแกรมลง Arduino ด้วยโค้ดที่เหมาะสมกับเซ็นเซอร์ที่เราเลือก (LM35 หรือ DS18B20) ไปเลยวัยรุ่น สู้งานนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "SirSour"
category: "Sensors & Environment"
components:
  - "1x LM35 Temperature sensing module"
  - "1x Arduino Uno Case - Blue"
description: "โครงการนี้คือการดึงค่าอุณหภูมิน้ำร้อนจากบอยเลอร์ที่ตั้งอยู่ไกลๆ ผ่านสายเซนเซอร์ แบบไม่ต้องเดินไปดูเองให้เมื่อย ใช้เซนเซอร์วัดอุณหภูมิส่งค่ามายัง Arduino ผ่าน Interrupt ได้เลย ตึงๆ ไปอีกแบบ!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/e4527338-e7aa-449b-9b80-34f8e5101ff9.ino"
encryptedPayload: "U2FsdGVkX18M3icpH10lgn2u+rRx8ujIxKgwKFKpAA3pz00BAyytw+h3Uzo3rPU7On3Vxynu2xXJtIUrsFOfmFU+T1t+D6EL7g86Orb138M="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/water-temperature-sensor-for-water-heater-boilers-606fe2_cover.jpg"
lang: "en"
likes: 0
passwordHash: "b6fab08681087349da350acf8705d5088e925c0fffc2a3ed68274d8755b7bf12"
price: 699
seoDescription: "Monitor water temperature in distant water heater boilers via cable using a sensor for remote reading."
tags:
  - "Energy Efficiency"
  - "Home Automation"
  - "Monitoring"
  - "Smart appliances"
title: "วัดอุณหภูมิน้ำในบอยเลอร์แบบเรียลไทม์ งานง่ายแต่หล่อ!"
tools: []
videoLinks: []
views: 2537