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

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

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

รายละเอียดทางเทคนิคแบบจัดเต็ม
ถ้าอยากได้โซลูชันระดับอุตสาหกรรมหน่อย ลองใช้ DS18B20 1-Wire waterproof temperature probe ดูครับ ต่างจากเซ็นเซอร์อนาล็อกอย่าง LM35 ที่สัญญาณอาจจะเพี้ยนได้ถ้าลากสายยาวๆ เพราะ DS18B20 มันคำนวณอุณหภูมิเป็นองศาเซลเซียสภายในตัวเลย แล้วส่งข้อมูลออกมาเป็นดิจิทัล
The 1-Wire Digital Protocol (DS18B20)
- ตัวเรือนสแตนเลส: ตัวเซ็นเซอร์ซิลิกอนจิ๋วถูกอัดแน่นด้วยอีพอกซีนำความร้อนอยู่ข้างในท่อสแตนเลสกันน้ำ ทำให้มันสามารถจุ่มอยู่ในถังหม้อต้มความดันสูงได้อย่างปลอดภัย
- บัส 1-Wire: เซ็นเซอร์ตัวนี้สื่อสารผ่านบัสดิจิทัล 1-Wire ต้องมี ตัวต้านทานดึงขึ้น (Pull-Up Resistor) 4.7k โอห์ม ระหว่างสาย Data กับไฟ 5V เสมอ ไม่งั้นบัสไม่ทำงานนะตัวนี้
- ต่อเซ็นเซอร์หลายตัวได้: สามารถต่อ 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) ไปเลยวัยรุ่น สู้งานนะน้อง!