📘 ซีรีส์ออกแบบ IoT Product · EP.13/70 · บทที่ 2: พื้นฐานฮาร์ดแวร์และการเลือกชิ้นส่วน
ตอนนี้ตอบคำถามว่า อ่านสเปกเซนเซอร์อย่างไรไม่ให้หลงตัวเลข และอะไรทำให้ค่าที่วัดได้ไม่ตรงความจริง ต่อจาก EP.12 ที่เราเลือกโมดูล ESP32 เป็นสมองของเครื่องแล้ว
สามคำที่คนมักใช้ปนกัน
ลองนึกถึงเซนเซอร์ความชื้นที่แสดงค่า 95.37 %RH ตัวเลขนี้บอกเราได้แค่ว่ามัน ละเอียด ยังไม่ได้บอกว่ามัน แม่น
| คำ | ความหมาย | ตัวอย่าง |
|---|---|---|
| ความแม่นยำ (accuracy) | ค่าที่อ่านได้ห่างจากค่าจริงแค่ไหน | ±1.8 %RH = ค่าจริง 90% อาจอ่านได้ราว 88.2–91.8% |
| ความละเอียด (resolution) | ขยับได้ทีละเท่าไร | 0.01 %RH = แสดงทศนิยม 2 ตำแหน่ง |
| ความเที่ยง (precision) | วัดซ้ำในสภาพเดิมแล้วได้ค่าเกาะกลุ่มแค่ไหน | อ่านซ้ำ 10 ครั้งได้ 90.1–90.2 แต่ค่าจริงคือ 92 = เที่ยงแต่ไม่แม่น |
ความละเอียดสูงกว่าความแม่นยำเป็นร้อยเท่าเป็นเรื่องปกติ ทศนิยมสองตำแหน่งจึงมีประโยชน์แค่ดูแนวโน้มขึ้นลง ไม่ใช่บอกค่าจริง ส่วนความเที่ยงสำคัญกับการตั้งเกณฑ์แจ้งเตือน ถ้าค่าแกว่งไปมา ระบบจะเตือนแล้วหายสลับกันจนคนรำคาญ
ดิจิทัลหรืออนาล็อก และตัวแปรที่ต้องดูต่อ
เซนเซอร์อนาล็อก ส่งแรงดันออกมาให้ ADC ของ MCU แปลงเอง ความคลาดเคลื่อนจึงรวมทั้งตัวเซนเซอร์ แรงดันอ้างอิง ADC และสัญญาณรบกวนบนสาย ส่วน เซนเซอร์ดิจิทัล แปลงค่าในตัวแล้วส่งเป็นตัวเลขผ่านบัสอย่าง I2C ผู้ผลิตรับประกันความแม่นยำมาจากชิปเลย แต่ I2C ออกแบบมาสำหรับระยะสั้นบนบอร์ด สายยาวต้องระวัง (เทียบตัวเลือกเซนเซอร์ลงลึก EP.14)
ตัวแปรที่ต้องดูต่อในสเปก
- เวลาตอบสนอง ค่าอ่านใช้เวลากี่วินาทีจึงตามสภาพจริงได้ 63% ตามเอกสารภาพรวมผลิตภัณฑ์ของ Sensirion ตระกูล SHT4x ฝั่งความชื้นราว 4 วินาที ฝั่งอุณหภูมิราว 2 วินาที แต่ในกล่องหรือฝาครอบจริงจะช้ากว่านี้มาก
- ดริฟต์ (drift) ค่าที่เลื่อนไปตามอายุใช้งาน เอกสารเดียวกันระบุความชื้นเลื่อนน้อยกว่า 0.25 %RH ต่อปี อุณหภูมิน้อยกว่า 0.03°C ต่อปี ในสภาพปกติ
- เงื่อนไขของตัวเลข ความแม่นยำ typical มักกำหนดในช่วงหนึ่งเท่านั้น เช่นเอกสารของ Sensirion ระบุ SHT40 ±1.8 %RH ที่ช่วง 30–70 %RH
ศัตรูของค่าที่วัดได้: ความร้อนของบอร์ดเองและตำแหน่งติดตั้ง
ความชื้นสัมพัทธ์ขึ้นกับอุณหภูมิ ถ้าเซนเซอร์ร้อนกว่าอากาศรอบตัว มันจะอ่านความชื้นต่ำกว่าจริง ตัวอย่างคำนวณจากความดันไอน้ำอิ่มตัว ที่อากาศ 25°C ความชื้นจริง 95% ถ้าตัวเซนเซอร์อุ่นขึ้นแค่ 1°C จะอ่านได้ราว 89–90% ความร้อนแค่ 1°C ทำให้ความชื้นเพี้ยนราว 5 เปอร์เซ็นต์ มากกว่าสเปกความแม่นยำหลายเท่า
ความร้อนนี้มาจากใกล้ตัวกว่าที่คิด ทั้งตัวควบคุมแรงดัน โมดูล Wi-Fi ตอนส่งข้อมูล และ MCU เอง การวางเซนเซอร์ไว้ในกล่องเดียวกับบอร์ดหลักจึงเป็นสาเหตุอันดับต้น ๆ ของค่าที่ "ต่ำผิดปกติแต่สม่ำเสมอ"
ทดสอบง่าย ๆ ให้เครื่องส่ง Wi-Fi ถี่ ๆ 30 นาที เทียบกับตอนส่งห่าง ๆ ถ้าค่าอุณหภูมิขยับตาม แปลว่าเซนเซอร์ได้ความร้อนจากบอร์ด
ลองใช้กับโปรเจกต์ตัวอย่าง: ตัวเฝ้าโรงเห็ด
โรงเห็ดอยู่ช่วงความชื้นสูงเกือบตลอดเวลา (ช่วงที่เห็ดแต่ละชนิดต้องการให้ดูจากคู่มือเพาะเห็ดของหน่วยงานเกษตร) ซึ่งเป็น ช่วงที่สเปกเซนเซอร์อ่อนที่สุด สิ่งที่ยืนยันได้จากเอกสารของ Sensirion มีดังนี้
- ตัวเลข typical ±1.8 %RH ของ SHT40 กำหนดที่ 30–70 %RH ส่วนความคลาดเคลื่อนสูงสุดในช่วง 80–100 %RH ต้องเปิดกราฟ tolerance ใน datasheet ฉบับล่าสุดของผู้ผลิตตรวจเอง เรายังไม่ได้ยืนยันตัวเลขช่วงนี้
- ตามเอกสาร Application Note เรื่อง creep ของ SHT4x การอยู่นอกช่วงแนะนำ (5–60°C, 20–80 %RH) นาน ๆ โดยเฉพาะเกิน 90 %RH ทำให้ค่าเลื่อนขึ้น (creep) แบบชั่วคราว กลับมาเองเมื่อสภาพปกติ
- ผู้ผลิตแนะนำใช้ ฮีตเตอร์ในตัว ไล่ความชื้นออกจากชั้นเซนเซอร์ ในการทดสอบของผู้ผลิตที่ 90 %RH การเปิดฮีตเตอร์ 200mW นาน 1 วินาที ทุก 1 นาที แล้วรอ 1 นาทีก่อนอ่าน ชดเชย creep ได้เกือบทั้งหมด แต่ค่าความชื้นระหว่างเปิดฮีตเตอร์ใช้ไม่ได้ และกินไฟเพิ่ม
การตัดสินใจ: ใช้เซนเซอร์ดิจิทัลที่ มีฮีตเตอร์ในตัว วางไว้ ในหัววัดแยกที่ต่อสายเข้าโรงเรือน ห่างจากบอร์ดหลัก เฟิร์มแวร์เปิดฮีตเตอร์เป็นรอบและทิ้งค่าที่อ่านช่วงนั้น ตำแหน่งติดตั้งกำหนดในคู่มือว่า
- สูงจากพื้นระดับชั้นวางก้อนเห็ด ไม่ติดพื้นแฉะ ที่ไอน้ำขึ้นตลอด
- ไม่อยู่ใต้หัวพ่นหมอก ละอองน้ำโดนตรงจะอ่านค่าใกล้ 100% จนกว่าจะแห้ง
- ไม่ชิดหลังคาหรือผนังที่โดนแดด อากาศตรงนั้นร้อนกว่าระดับก้อนเห็ด
- หัวหันลงหรือมีฝาครอบกันหยดน้ำ แต่ยังให้อากาศไหลผ่าน
กับดักที่เจอบ่อย: เอาค่าความชื้นจากเครื่องไปเทียบกับไฮโกรมิเตอร์ราคาถูกตัวเดียวแล้วสรุปว่าเซนเซอร์เสีย ทั้งที่เครื่องอ้างอิงเองก็คลาดได้หลายเปอร์เซ็นต์ในช่วงความชื้นสูง การเทียบต้องใช้ตัวอ้างอิงที่รู้ความแม่นยำ และวางจุดเดียวกันจนค่านิ่ง
เช็กลิสต์ก่อนไปตอนถัดไป
- จดความแม่นยำของเซนเซอร์ที่เลือก ในช่วงที่งานคุณใช้จริง จากกราฟใน datasheet ไม่ใช่ตัวเลขหน้าแรก
- ตั้งเกณฑ์แจ้งเตือนให้ห่างจากขอบมากกว่าความคลาดเคลื่อนของเซนเซอร์ และมีช่วงกันแกว่ง
- แยกเซนเซอร์ออกจากแหล่งความร้อนบนบอร์ด แล้วทดสอบด้วยการส่ง Wi-Fi ถี่ ๆ
- เขียนตำแหน่งติดตั้งที่ห้ามลงในคู่มือผู้ใช้ตั้งแต่ตอนนี้
ทศนิยมเยอะไม่ได้แปลว่าแม่น และค่าที่เพี้ยนส่วนใหญ่มาจากความร้อนของเครื่องเองกับตำแหน่งติดตั้ง มากกว่าตัวชิปเซนเซอร์
ตอนต่อไป — EP.14: เลือกเซนเซอร์ให้ถูกงาน (2): เทียบเซนเซอร์อุณหภูมิ วิธีคาลิเบรต และเซนเซอร์ประตู
อยากได้คนช่วยเลือกเซนเซอร์และออกแบบหัววัดให้ทนงานจริง ดูบริการออกแบบอุปกรณ์ IoT เฉพาะงานที่ /iot หรือปรึกษาฟรีที่ /consult · ทัก LINE @spvtech
