CAT LoRa Starter Kit ตอนที่ 11 ทำไมเซ็นเซอร์วัดอุณหภูมิที่ Build in มามันวัดค่าได้ไม่ตรงเลย
ในบทความนี้จะเป็นการทดสอบว่า ทำไมเราควรต้องเพิ่มเซ็นเซอร์วัดอุณหภูมิและความชื้นให้กับ CAT LoRa Starter Kit ของเราอีกละ ในคู่มือก็บอกแล้วว่ามีการใส่เซ็นเซอร์ HTS221 ซึ่งใช้สำหรับวัดอุณหภูมิและความชื้นมาเรียบร้อยแล้ว นั้นก็เพราะว่าจากที่ได้ลองใช้งานดูพบว่ามันวัดค่าได้ไม่ตรงกับอุณหภูมิอากาศภายนอกเลยนะสิครับ มันให้ค่าที่สูงกว่าค่าที่ควรจะเป็นมาก เรามาพิสูจน์กันดีกว่า
เซ็นเซอร์วัดอุณหภูมิและความชื้น
เซ็นเซอร์วัดอุณหภูมิและความชื้นมีมากมายหลายชนิด เซ็นเซอร์ที่เห็นคนส่วนใหญ่เอามาใช้กับบอร์ด Arduino ก็จะเป็น DHT22 (AM2302)
DHT22 Sensor — เป็นเซ็นเซอร์วัดอุณหภูมิและความชื้น ที่มีราคถูกมาก และให้ค่าที่แม่นยำพอควร แต่ข้อเสียคือมันมีขนาดใหญ่ และต้องเสีย 1 Digital Pin ให้กับเซ็นเซอร์ตัวนี้
ถ้า Digital Pin เราเหลือก็ไม่มีปัญหาอะไร แต่ถ้าเราไม่อยากเสียละจะทำยังไงดี ?
BME280 Sensor — เซ็นเซอร์ตตัวนี้ไม่เพียงแต่จะวัดอุณหภูมิ ความชื้นได้เท่านั้น มันยังวัดแรงกดอากาศ (Pressure) ได้อีกด้วย มีความแม่นยำสูงและใช้การเชื่อมต่อแบบ Inter Integrate Circuit (IIC) หรือเรียกว่า I²C ทำให้เราไม่เสียช่อง Digital Pin นั้นเอง
(อุปกรณ์ที่ใช้ I²C ในบทความที่ผ่านมาเราได้ใช้กับ RTC Module (DS3231) และ 0.96 IIC Display)
บทความการเปรียบเทียบเซ็นเซอร์วัดอุณหภูมิและความชื้น
http://www.kandrsmith.org/RJS/Misc/Hygrometers/calib_many.html
เพื่อพิสูจน์ว่า HTS221 มันให้ค่าไม่ตรง ผมจึงเขียนโปรแกรมขึ้นมาทดสอบดู โดยใช้ Library ที่ทาง CAT แนะนำในคู่มือคือ SmartEverything HTS221โดยนำมาเปรียบเทียบกับเซ็นเซอร์ยอดนิยมอย่าง DHT22 และอีกตัวคือ BMP180 ( BMP180 เป็นรุ่นก่อนหน้า BME280 และ BMP180 จะไม่สามารถวัดค่าความชื้นได้)
Library ที่จำเป็น
- SmartEverything HTS221 : https://github.com/ameltech/sme-hts221-library
- DHT Sensor: https://github.com/adafruit/DHT-sensor-library
- Adafruit BMP180 : https://github.com/adafruit/Adafruit-BMP085-Library
- Adafruit_SSD1306 : https://github.com/adafruit/Adafruit_SSD1306
- Adafruit-GFX : https://github.com/adafruit/Adafruit-GFX-Library
เขียนโปรแกรมเพื่อเปรียบเทียบเซ็นเซอร์
ผลการทดสอบ
เมื่อนำไปทดสอบวัดอุณหภูมิและความชื้นแล้วพบว่าอุณหภูมิที่ได้จาก
- HTS221 → อุณหภูมิ 31.09 *C และความชื้น 80.00%
- DHT22 → อุณหภูมิ 28.80 *C และความชื้น 58.20%
- BMP180 → อุณหภูมิ 29.30 *C แต่วัดค่าความชื้นไม่ได้
จะสังเกตุได้ว่าค่าอุณหภูมิที่ได้จาก HTS221 จะมีค่าที่สูงกว่า DHT22 และ BMP180 พอสมควร ผมได้ลองตรวจสอบอุณหภูมิโดยใช้เครื่องฟอกอากาศยี่ห้อ Xiaomi Air Purifier 2S พบว่าค่าอุณหภูมิที่ได้จาก DHT22 และ BMP180 มีความใกล้เคียงกับเครื่องนี้มากกว่า HTS221 และในส่วนของค่าความชื้น DHT22 ก็แสดงค่าที่ใกล้เคียงกว่ามาก
แล้ว HTS221 มันวัดค่าอุณหภูมิอะไรมาให้เราละ จากที่ได้ลองใช้เครื่องวัดอุณหภูมิแบบอินฟราเรดวัดตัวบอร์ดดู เครื่องวัดจะแสดงอุณหภูมิที่ใกล้เคียงกับ HTS221 (ทดสอบจากบทความนี้)
ผมก็ขอจบบทความนี้ไว้แต่เพียงเท่านี้ ในบทความหน้าจะเป็นการเพิ่ม DHT22 Sensor ให้กับโปรเจคปลั๊กไฟลอร่าของเรากันครับ สวัสดีครับ