📘 ซีรีส์ออกแบบ IoT Product · EP.14/70 · บทที่ 2: พื้นฐานฮาร์ดแวร์และการเลือกชิ้นส่วน
ตอนนี้ตอบคำถามว่า เซนเซอร์อุณหภูมิแบบไหนเหมาะกับงานไหน และจะเช็กหรือแก้ค่าให้ตรงได้อย่างไรก่อนส่งของถึงมือลูกค้า ต่อจาก EP.13 ที่เราแยกความแม่นยำ ความละเอียด และสาเหตุที่ค่าเพี้ยนไว้แล้ว
เทียบเซนเซอร์อุณหภูมิ 4 แบบ
| แบบ | จุดเด่น | ข้อควรรู้ | เหมาะกับ |
|---|---|---|---|
| ดิจิทัลหัวโพรบสายยาว | ต่อสายยาวได้ ได้ค่าเป็นตัวเลขเลย | วัดอุณหภูมิอย่างเดียว | ตู้แช่ ถังน้ำ ห้องที่ไกลจากบอร์ด |
| เทอร์มิสเตอร์ NTC | ถูก เล็ก ตอบสนองเร็ว | ค่าความต้านทานไม่เป็นเส้นตรง ความแม่นยำขึ้นกับตัวต้านทานคู่และ ADC | สินค้าราคาประหยัดที่ช่วงใช้งานแคบ |
| RTD (PT100/PT1000) | เสถียร ช่วงกว้าง มีมาตรฐานกลาง | ต้องมีวงจรวัดเฉพาะ แพงกว่า | งานอุตสาหกรรม อาหาร ห้องเย็น |
| อุณหภูมิ+ความชื้น ในชิปเดียว | ได้ 2 ค่าจากจุดเดียว | ต้องให้อากาศผ่านถึงตัวชิป ระวังน้ำ | โรงเรือน ห้องเก็บของ |
ตัวเลขที่ยืนยันจากผู้ผลิต: ตามหน้าผลิตภัณฑ์และ datasheet ของ Analog Devices เซนเซอร์ดิจิทัลยอดนิยม DS18B20 แม่น ±0.5°C ในช่วง -10 ถึง +85°C และกว้างขึ้นเป็น ±1°C และ ±2°C เมื่อออกนอกช่วงนั้น ส่วน RTD ใช้ มาตรฐาน IEC 60751 ที่แบ่งเกรดเป็นคลาส เช่น คลาส A คลาดได้ ±(0.15 + 0.002 × |t|) °C และคลาส B ±(0.3 + 0.005 × |t|) °C ที่ 0°C คลาส B คลาดได้ ±0.3°C ส่วนที่ 100°C กว้างขึ้นเป็น ±0.8°C
NTC ไม่มีตัวเลขกลางให้ยก ความแม่นยำขึ้นกับรุ่นและวงจรที่ต่อ ต้องดู datasheet ของรุ่นที่ซื้อจริง
คาลิเบรตแบบง่าย: 1 จุด หรือ 2 จุด
คาลิเบรต (calibration) คือเทียบค่าที่เซนเซอร์อ่านกับค่าอ้างอิงที่เชื่อถือได้ แล้วเก็บค่าแก้ไว้ในเครื่อง มี 2 ระดับ
- 1 จุด วัดที่อุณหภูมิเดียว หาส่วนต่าง (offset) แล้วบวกลบทุกค่า ใช้ได้ดีเมื่อเครื่องทำงานใกล้จุดที่เทียบ
- 2 จุด วัด 2 อุณหภูมิที่ห่างกัน ได้ทั้งส่วนต่างและความชัน แก้ได้ทั้งช่วง ถ้าเซนเซอร์ตอบสนองใกล้เส้นตรง
// 2-point linear correction
float correct(float raw, float rawLow, float rawHigh,
float refLow, float refHigh) {
float gain = (refHigh - refLow) / (rawHigh - rawLow);
return refLow + (raw - rawLow) * gain;
}
จุดอ้างอิงที่ทำเองง่ายที่สุดคือ น้ำผสมน้ำแข็งบด ซึ่งอยู่ที่ประมาณ 0°C แต่มีข้อจำกัดที่ต้องรู้
- ต้องใช้ น้ำแข็งบดละเอียดอัดแน่น เติมน้ำแค่พอท่วมช่องว่าง แล้วคนและรอให้นิ่ง ถ้าน้ำเยอะเกิน น้ำส่วนบนจะอุ่นกว่า 0°C
- น้ำที่ไม่บริสุทธิ์ทำให้จุดหลอมเหลวขยับ จึงเป็น "ประมาณ 0°C" ไม่ใช่ค่าที่ใช้อ้างอิงทางมาตรวิทยา
- จุ่มได้เฉพาะโพรบกันน้ำ เซนเซอร์ความชื้นห้ามจุ่ม และ 0°C ห่างจากช่วงใช้งานจริงของโรงเห็ดมาก
ทางที่ใช้กับสินค้าได้จริงคือ เทียบกับเครื่องอ้างอิงที่มีใบรับรองการสอบเทียบ วางคู่กันในจุดเดียวกันจนค่านิ่ง ที่อุณหภูมิใกล้ช่วงใช้งาน
เซนเซอร์ประตู: ตัวช่วยลดการแจ้งเตือนผิด
เวลาคนงานเปิดประตูเก็บเห็ด ความชื้นจะร่วงชั่วคราว ถ้าระบบไม่รู้ว่าประตูเปิด ก็จะส่ง LINE เตือนทั้งที่ไม่มีอะไรผิดปกติ
ตัวช่วยราคาไม่แพงคือ เซนเซอร์ประตูแม่เหล็ก มี 2 แบบ
- รีดสวิตช์ (reed switch) หน้าสัมผัสในหลอดแก้วที่ปิดเมื่อแม่เหล็กเข้าใกล้ ไม่ต้องใช้ไฟเลี้ยง แต่ระวังแรงกระแทก
- ฮอลล์เซนเซอร์ (hall sensor) วัดสนามแม่เหล็กแบบไม่มีหน้าสัมผัส ทนกว่า แต่ต้องใช้ไฟเลี้ยง
ใช้งานแบบ ประตูเปิดอยู่ = พักการเตือนความชื้นชั่วคราว และถ้าเปิดค้างนานเกินที่ตั้งไว้ค่อยเตือนว่า "ประตูเปิดค้าง" แทน (นโยบายแจ้งเตือนบนคลาวด์ลงลึก EP.36)
ลองใช้กับโปรเจกต์ตัวอย่าง: ตัวเฝ้าโรงเห็ด
การตัดสินใจ: ใช้เซนเซอร์อุณหภูมิ+ความชื้นในชิปเดียว ที่ มีฮีตเตอร์ในตัว บรรจุในหัววัดที่มี ฝาครอบกันหยดน้ำและแผ่นกรอง ต่อสายเข้าโรงเรือน เหตุผลจาก datasheet ของ Sensirion ตระกูล SHT4x
- รุ่นเกรดสูง SHT45 ระบุความแม่นยำ typical ±1.0 %RH และ ±0.1°C (ค่าความชื้นกำหนดที่ 25°C, 50 %RH ส่วนค่าสูงสุดดูกราฟใน datasheet)
- ช่วงใช้งานแนะนำคือ 5–60°C และ 20–80 %RH ผู้ผลิตเตือนว่าอยู่ความชื้นเกิน 80% นาน ๆ ค่าอาจเลื่อนชั่วคราว เช่น +3 %RH หลังอยู่เกิน 80 %RH นาน 60 ชั่วโมง และกลับเข้าสเปกเมื่อสภาพกลับปกติ
- เมื่อมีน้ำควบแน่นเกาะผิวเซนเซอร์ ชิปจะ ไม่ตอบสนองต่อความชื้นในอากาศ จนกว่าน้ำแห้ง ฮีตเตอร์ในตัว (ปรับได้ 20, 110, 200mW นาน 0.1 หรือ 1 วินาที) มีไว้ไล่น้ำนี้ แต่ ระหว่างเปิดฮีตเตอร์สเปกใช้ไม่ได้ และต้องเปิดไม่เกิน 10% ของเวลา
แผ่นกรองทำให้ตอบสนองช้าลง แต่รับได้เพราะอากาศในโรงเห็ดเปลี่ยนเป็นนาที
วิธีทดสอบก่อนใช้จริง วางหัววัดทุกตัวคู่กับเครื่องอ้างอิงที่มีใบรับรองในห้องปิดลมจนค่านิ่ง จดส่วนต่างทั้งสองค่า ตัวที่เกินเกณฑ์ให้คัดออก ไม่แก้ค่าเอง เพราะอาจเป็นตัวเสีย
ประตูโรงเรือน ใช้ รีดสวิตช์ ต่อสายเส้นเดียวกับหัววัด เพราะไม่ต้องใช้ไฟและเฟิร์มแวร์อ่านเป็นขา GPIO ธรรมดา
กับดักที่เจอบ่อย: คาลิเบรตเซนเซอร์ความชื้นโดยแก้ส่วนต่างจากการเทียบจุดเดียวกับไฮโกรมิเตอร์ที่ไม่รู้ความแม่นยำ ผลคือ "แก้" เซนเซอร์ที่ดีกว่าให้เพี้ยนตามเครื่องอ้างอิงที่แย่กว่า
เช็กลิสต์ก่อนไปตอนถัดไป
- เลือกแบบเซนเซอร์จากตาราง แล้วจดความแม่นยำ ในช่วงอุณหภูมิที่งานคุณใช้ จาก datasheet
- ตัดสินใจว่าจะคาลิเบรต 1 จุด 2 จุด หรือแค่คัดกรอง และเก็บค่าแก้ไว้ในหน่วยความจำของเครื่อง
- หาเครื่องอ้างอิงที่มีใบรับรองการสอบเทียบ ก่อนทดสอบล็อตแรก
- ลิสต์เหตุการณ์ที่ทำให้ค่ากระโดดแบบไม่ผิดปกติ เช่น เปิดประตู แล้วหาเซนเซอร์เสริมมาบอกระบบ
เลือกเซนเซอร์จากช่วงใช้งานจริงและสภาพแวดล้อม ไม่ใช่ตัวเลขหน้าแรก และการคาลิเบรตจะดีได้ไม่เกินเครื่องอ้างอิงที่ใช้เทียบ
ตอนต่อไป — EP.15: ให้ IoT สั่งงานได้อย่างปลอดภัย: รีเลย์ MOSFET มอเตอร์ และ Fail-safe
อยากได้คนช่วยเลือกเซนเซอร์และวางขั้นตอนทดสอบก่อนผลิต ดูบริการออกแบบอุปกรณ์ IoT เฉพาะงานที่ /iot หรือปรึกษาฟรีที่ /consult · ทัก LINE @spvtech
