CAT LoRa Starter Kit ตอนที่ 11 ทำไมเซ็นเซอร์วัดอุณหภูมิที่ Build in มามันวัดค่าได้ไม่ตรงเลย

Image for post
Image for post

ในบทความนี้จะเป็นการทดสอบว่า ทำไมเราควรต้องเพิ่มเซ็นเซอร์วัดอุณหภูมิและความชื้นให้กับ 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

Image for post
Image for post
ตัวอย่างเซ็นเซอร์วัดอุณหภูมิและความชื้นในอากาศ

เพื่อพิสูจน์ว่า HTS221 มันให้ค่าไม่ตรง ผมจึงเขียนโปรแกรมขึ้นมาทดสอบดู โดยใช้ Library ที่ทาง CAT แนะนำในคู่มือคือ SmartEverything HTS221โดยนำมาเปรียบเทียบกับเซ็นเซอร์ยอดนิยมอย่าง DHT22 และอีกตัวคือ BMP180 ( BMP180 เป็นรุ่นก่อนหน้า BME280 และ BMP180 จะไม่สามารถวัดค่าความชื้นได้)

Library ที่จำเป็น

  1. SmartEverything HTS221 : https://github.com/ameltech/sme-hts221-library
  2. DHT Sensor: https://github.com/adafruit/DHT-sensor-library
  3. Adafruit BMP180 : https://github.com/adafruit/Adafruit-BMP085-Library
  4. Adafruit_SSD1306 : https://github.com/adafruit/Adafruit_SSD1306
  5. 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 แต่วัดค่าความชื้นไม่ได้
Image for post
Image for post

จะสังเกตุได้่าค่าอุณหภูมิที่ได้จาก HTS221 จะมีค่าที่สูงกว่า DHT22 และ BMP180 พอสมควร ผมได้ลองตรวจสอบอุณหภูมิโดยใช้เครื่องฟอกอากาศยี่ห้อ Xiaomi Air Purifier 2S พบว่าค่าอุณหภูมิที่ได้จาก DHT22 และ BMP180 มีความใกล้เคียงกับเครื่องนี้มากกว่า HTS221 และในส่วนของค่าความชื้น DHT22 ก็แสดงค่าที่ใกล้เคียงกว่ามาก

Image for post
Image for post

แล้ว HTS221 มันวัดค่าอุณหภูมิอะไรมาให้เราละ จากที่ได้ลองใช้เครื่องวัดอุณหภูมิแบบอินฟราเรดวัดตัวบอร์ดดู เครื่องวัดจะแสดงอุณหภูมิที่ใกล้เคียงกับ HTS221 (ทดสอบจากบทความนี้)

Image for post
Image for post
วัดอุณหภูมิของบอร์ดด้วยเครื่องวัดอินฟราเรด

ผมก็ขอจบบทความนี้ไว้แต่เพียงเท่านี้ ในบทความหน้าจะเป็นการเพิ่ม DHT22 Sensor ให้กับโปรเจคปลั๊กไฟลอร่าของเรากันครับ สวัสดีครับ

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store