Proto Knowledge
Sensor ปกรณ ลิ้มพรจิตรวิไล
SHT11 โมดูลวัดความชื้นและอุณหภูมิ ตัวตรวจจับสมัยใหมที่ชวยลดภาระในการวัด ความชื้นสัมพัทธ มารูจักกันมากขึ้นอีกนิด เพื่อจะได ใชงานไดอยางเต็มประสิทธิภาพ
คุณสมบัติทางเทคนิคของZX-SHT11 � ติดตั้งโมดูล SHT11 บนแผ่นวงจร พร้อมใช้งาน � สามารถวัดความชื้นสัมพัทธ์และอุณหภูมิได้ � ก�าหนดความละเอียดของการวัดได้ โดยมาตรฐาน ก�าหนดให้วัดความชื้นด้วยความละเอียด 12 บิต และ วัดอุณหภูมิ 14 บิต หรือปรับลดเป็นวัดความชื้น 8 บิต วัดอุณหภูมิ 12 บิต มีเสถียรภาพสูง � ค่าความผิดพลาดในการวัดอุณหภูมิ 0.4% ส่วน การวัดค่าความชื้นสัมพัทธ์มีความผิดพลาด 4% � มีขนาดเล็กและกินพลังงานต�่า ท�างานย่านแรงดัน ไฟเลี้ยง +2.4 ถึง +5.5V � มีจุดต่อแบบ JST และแบบ IDC เพื่อรองรับการ เชื่อมต่อกับบอร์ดไมโครคอนโทรลเลอร์ได้หลากหลาย
The Prototype Electronics
47
SENSOR : Humidity Sensor
1. เริ่มตนดวยการรีเซตการเชื่อมตอ (Connection reset sequence) เมื่ อ ต้ อ งการเริ่ ม ต้ น การเชื่ อ มต่ อ ระหว่ า ง ไมโครคอนโทรลเลอร์กับโมดูล SHT11 ต้อง สร้างสัญญาณรีเซตขึ้นก่อน โดยท�าให้ขา DATA มีสถานะลอจิก “1” นานเท่ากับช่วงเวลาที่ปอน สัญญาณนาฬิกาที่ขา SCK 9 ลูกติดต่อกัน แล้ว ตามด้วยการสร้างสถานะเริ่มต้นการส่งสัญญาณ
2. สรางสถานะเริ่มตนการสงสัญญาณ ก่อน จะ ท�าการ ส่ง ข้อมูล ค�า สั่ง จาก ไมโคร คอนโทรลเลอร์ ไ ป ยั ง SHT11 จ� า เป็ น จ ะ ต ้ อ ง สร้าง รูปแบบ สัญญาณ กระตุ้น ผ่าน ขา สัญญาณ หลั ก การท� า งานและการอ า นค า จาก CLK และ DATA เพื่อให้ ตรง กับ เงื่อนไข ที่ เรียก SHT11 ว่า Transmission start หรือ สถานะ เริ่มต้น การ การติดต่อกับ SHT11 ใช้สายสัญญาณสอง ส่งสัญญาณ นั่น คือ ขา DATA ต้อง ถูก ท�าให้ เป็น เส้นคือ CLK (หรือ SCK) และ DATA โดยสาย ลอจิก “0” นาน อย่าง น้อย 1 ไซเกิล ของ สัญญาณ CLK เป็นสัญญาณนาฬิกาก�าหนดจังหวะในการ นาฬิกา หลังจากนี้ SHT11 จะ ทราบ ได้ ทันที ว่า สื่อสารข้อมูล ส่วนสาย DATA เป็นสายข้อมูล 2 ข้อมูล ต่อจากนี้ คือ ค�า สั่ง ทิศทาง
รูปที่ 1 การจัดขาและไดอะแกรมการทํางานของ SHT11
รูปที่ 2 แสดงวงจรสมบูรณ์ของบอร์ด ZX-SHT11 ความชื้นสัมพัทธ์เป็นอีกหนึ่งปริมาณทาง ฟิสิกส์ที่มีบทบาทอย่างยิ่งต่อการพัฒนาระบบ ควบคุ ม อั ต โนมั ติ ใ นอุ ต สาหกรรม โดยเฉพาะ อย่างยิ่งในอุตสาหกรรมการเกษตร การตรวจวัด จึงเป็นเรื่องที่น่าสนใจและน่ารู้ต่อไปอีกว่า ตัว ตรวจจับความชื้นมีหลักการท�างานอย่างไร
SHT11 เป็นตัวตรวจจับความชื้นสัมพัทธ์แ บบให้ผลการท�างานเป็นข้อมูลดิจิตอล จึงช่วยให้ ลดภาระในการปรับแต่งลงไปได้ยากมาก ส่งผล ให้ขนาดโดยรวมของระบบเล็กลง การออกแบบ สร้างระบบตรวจสอบและสภาพแวดล้อมจึงท�าได้ ง่ายขึ้น SHT11 เป็นโมดูลวัดความชื้นสัมพัทธ์และ อุณหภูมิจาก Sensirion (www.sensirion.com) มี ก ารจั ด ขาและไดอะแกรมการท� า งานภายใน แสดงในรูปที่ 1 ปกติแล้ว SHT11 มีตัวถังเป็น แบบ SMD ซึ่งท�าให้การติดต่อกับบอร์ดไมโคร คอนโทรลเลอร์จ�าเป็นต้องพึ่งพาแผงวงจรเชื่อม ต่อ ดังนั้นจึงได้ท�าการติดตั้ง SHT11 ลงบนแผ่น วงจรพิมพ์ และต่อวงจรกับอุปกรณ์ที่จ�าเป็นเพื่อ ให้สามารถใช้งาน SHT11 ได้ อ ย่ า งสะดวกขึ้ น จึงได้เป็นโมดูล ZX-SHT11 ออกมาให้ใช้งานใน ที่สุด ในรูปที่ 2 แสดงวงจรสมบูรณ์ของบอร์ด ZXSHT11
48
The Prototype Electronics
รูปที่ 3 ไดอะแกรมเวลาแสดงการทํางานของ SHT11 ตัวตรวจจับความชื้นสัมพัทธ์และอุณหภูมิ
3. การอานอุณหภูมิและความชื้นสัมพัทธ์ การอ่ า นข้ อ มู ล ดิ บ ของอุ ณ หภู มิ ห รื อ ความชื้ น สั ม พั ท ธ์ นั้ น ท�าได้ภายหลังจากสร้างสภาวะเริ่มต้นที่เรียกว่า Transmission start แล้ว ตามด้วยการส่งข้อมูลค�าสั่งอ่านอุณหภูมิหรือความชื้น สัมพัทธ์อย่างใดอย่างหนึง่ ไปยัง SHT11 ในตารางที ่ 1 แสดงข้อมูล ค�าสัง่ ของโมดูล SHT11 หลังจากได้รับค�าสั่ง SHT11 ต้องใช้เวลาในการประมวลผล เพื่อให้ได้ผลลัพธ์ที่ต้องการซึ่งจะใช้เวลามากหรือน้อยขึ้นอยู่กับ ความละเอียดของข้อมูลที่ต้องการดังแสดงในตารางที่ 2 ในรูปที่ 3 แสดงไดอะแกรมเวลาของการอ่านข้อมูลจากโมดูล SHT11 โดยข้อมูลที่ส่งออกมาจากโมดูล SHT11 ประกอบด้วย ข้อมูล 2 ไบต์และไบต์ส�าหรับตรวจสอบข้อผิดพลาดอีก 1 ไบต์ หรือ CRC Check โดยไมโครคอนโทรลเลอร์เมื่อรับข้อมูล 1 ไบต์จะต้อง ส่งสัญญาณรับรู้หรือ Acknowledge ออกมา 1 ลูก (ก�าหนดให้ขา DATA มีลอจิก “0”) บิตนัยส�าคัญสูงสุดของข้อมูลจะถูกส่งออกมา ก่อน กรณีอ่านค่าแบบ 8 บิต ไบต์แรกจะไม่ถูกใช้งาน การยกเลิกการสื่อสารข้อมูลเกิดขึ้นเมื่อไมโครคอนโทรลเลอร์ ส่งสัญญาณรับรู้ หลังจากได้รับข้อมูลบิตสุดท้ายของ CRC แล้ว ส�าหรับกรณีที่ไม่ต้องการตรวจสอบ CRC การยกเลิกการเชื่อมต่อ ท�าได้โดยการไม่ส่ง Acknowledge หลังจากรับข้อมูลในไบต์ที่ 2 แล้ว หลังจากนั้นเพื่อเป็นการประหยัดพลังงาน SHT11 จะเข้าสู่ โหมดสลีปโดยอัตโนมัติ
ตารางที่ 1 ข้อมูลคําสั่งของโมดูล SHT11
ตารางที่ 2 แสดงข้อมูลของเวลาที่ SHT11 ใช้ในการประมวลผลที่ความละเอียด ของผลลัพธ์ตางๆ กัน
ข้อมูลที ่ SHT11 ส่งกลับมาเป็นข้อมูล 2 ไบต์ ตามด้วยไบต์ตรวจ สอบความผิดพลาดแบบ CRC อีก 1 ไบต์ เมือ่ ไมโครคอนโทรลเลอร์ รับข้อมูล 1 ไบต์แล้วจะต้องส่งสัญญาณรับรู ้ (Acknowledge : ACK) ออกมา 1 ลูก (ก�าหนดให้ขา DATA มีลอจิกเป็น LOW) การส่งข้อมูล จะส่งบิตส�าคัญสูงสุดก่อน (MSB) กรณีทใี่ ช้ขอ้ มูลขนาด 8 บิต ข้อมูล ไบต์แรกจะไม่ใช้งาน เมื่อ SHT11 ได้รับสัญญาณรับรู้หลังจากส่งข้อมูลบิตสุดท้าย ของ CRC check เรียบร้อยแล้วจะเข้าสู่โหมดสลีปอัตโนมัติเพื่อ ประหยัดพลังงาน
การค� า นวณค่ า อุ ณ หภู มิ แ ละความชื้ น สั ม พั ท ธ์ จ าก ข้อมูลดิบที่อ่านได้จาก SHT11 หลังจากที่สั่งให้อ่านค่าจาก SHT11 มันจะส่งข้อมูลดิบมา ให้ จะต้องน�ามาค�านวณเพื่อหาค่าอุณหภูมิและความชื้นสัมพัทธ์ ที่แท้จริง โดยอุณหภูมิที่ค�านวณได้จะขึ้นกับแรงดันไฟเลี้ยงที่ป้อน ให้ SHT11 และความละเอียดของการวัด โดยมีสมการค�านวณค่า อุณหภูมิดังนี้
Temperature = d1 + (d2 x SOT)
โดยที่ d1 คือค่าคงที่ ขึ้นอยู่กับไฟเลี้ยงที่ป้อนให้ขา VDD ของ SHT11 มีค่าตามตารางที่ 3
ตารางที่ 3 แสดงคาคงที่ d1 และ d2 ที่ใช้ในการคํานวณคาอุณหภูมิของ SHT11
d2 คือค่าคงที่ ขึ้นกับความละเอียดของการวัด มีค่าตาม ตารางที่ 3
SOT คือค่าอุณหภูมิดิบที่อ่านได้จาก SHT11
The Prototype Electronics
49
SENSOR : Humidity Sensor ตัวอยางการคํานวณ #1 อ่านข้อมูลดิบของค่าอุณหภูมิจากโมดูล SHT11 ได้เท่ากับ 7000 ใช้ ไฟเลี้ยง 5V อ่านข้อมูลแบบ 14 บิต ค่าอุณหภูมิในหน่วยองศาเซลเซียสที่ อ่านได้ มีค่าเท่ากับ
ค่าอุณหภูมิ = -40 + (0.01 x 7000) = 30 องศา
ด้ า นค่ า ความชื้ น สั ม พั ท ธ์ จะต้ อ งน� า ข้ อ มู ล ดิ บ มาค� า นวณเป็ น ค่ า ความชื้นสัมพัทธ์จริง ซึ่งท�าได้โดยใช้สมการ RH25C = c1 + (c2 x SORH) + [c3 x (SORH)2]
เมื่อ RH25C คือค่าความชื้นสัมพัทธ์ที่อุณหภูมิ 25๐C
c1,c2 และ c3 คือค่าคงที่ ขึ้นอยู่กับความละเอียดในการวัด ความชื้นสัมพัทธ์ของ SHT11 มีค่าตามตารางที่ 4 SORH คือข้อมูลดิบของค่าความชื้นสัมพัทธ์ที่อ่านได้จาก SHT11
ตารางที่ 4 แสดงคาคงที่เพิ่มเติมที่ใช้ในการคํานวณหาคา ความชื้นสัมพัทธ์ของ SHT11
ตัวอยางการคํานวณ #2 ถ้าอ่านค่าข้อมูลดิบของความชื้นสัมพัทธ์จากโมดูล SHT11 ออกมา ได้เท่ากับ 2353 โดยการอ่านค่าข้อมูลเป็นการอ่านค่าแบบ 12 บิต ดังนั้น เมื่อแทนค่าลงไปในสมการ RHlinear= -4 + (0.0405 x 2353) + (-0.0000028 x 23532 ) = 75.79%17.4 กรณีที่อุณหภูมิขณะที่วัดมีค่าไม่เท่ากับ 25๐C จะมีค่าชดเชยซึ่งต้อง น�ามารวมกับค่าความชื้นสัมพัทธ์ที่ค�านวณได้ก่อนหน้านี้ โดยเขียนเป็น สมการได้ดังนี้ RHtrue = RH25C + (T-25) x [t1 + (t2 x SORH)]
เมื่อ RHtrue คือค่าความชื้นสัมพัทธ์ที่อุณหภูมิต่างๆ
t1 และ t2 คือค่าคงที่ ขึ้นอยู่กับความละเอียดในการวัดค่าความ ชื้นสัมพัทธ์ของ SHT11 มีค่าตามตารางที่ 4
SORH คือข้อมูลดิบของค่าความชืน้ สัมพัทธ์ทอี่ า่ นได้จาก SHT11
รีจิสเตอร์แสดงสถานะ (STATUS)
1. ความละเอียดในการวัดคาความชื้นและอุณหภูมิ ค่าตั้งต้น ก่อนการตั้งค่าความละเอียดในการวัดความชื้นจะมีความละเอียด 12 บิต ส่วนความละเอียดในการวัดอุณหภูมิจะเป็น 14 บิต ถ้ามีการก�าหนดบิต 0 ของรีจิสเตอร์ STATUS เป็น “1” ค่าความละเอียดของการวัดค่าความชื้น จะเหลือเท่ากับ 8 บิต ส่วนการวัดค่าอุณหภูมิจะเหลือ 8 บิต ซึ่งเป็นผลให้ ความเร็วในการอ่านค่ามีมากขึ้น และกินก�าลังงานต�่าลง 2. ตรวจสอบระดับไฟเลี้ยง เป็นฟังก์ชั่นตรวจสอบแรงดันไฟเลี้ยงว่า ต�่ากว่า2.47V หรือไม่ โดยมีความแม่นย�า 0.05V 3. ตัวทําความรอน ตัวท�าความร้อนภายในโมดูล SHT11 จะท�าให้ อุณหภูมิของตัวตรวจจับเพิ่มขึ้นประมาณ 5 องศาเซลเซียส และโมดูล SHT11 ใช้กระแสไฟฟ้าเพิ่มขึ้นประมาณ 8mA ที่ ไฟเลี้ยง +5V ตัวท�าความ ร้อนจะถูกใช้งานเพื่อขจัดไอน�้าที่ติดอยู่ที่ตัวตรวจจับ เมื่อค่าความชื้นสูงกว่า 95% ซึ่งท�าให้ความแม่นย�าในการอ่านค่าจากตัวตรวจจับมีมากขึ้น โดย ตรวจสอบด้วยการเปรียบเทียบค่าอุณหภูมิและความชื้นก่อนและหลังการ เปดตัวท�าความร้อน ขอควรระวัง การเปดตัวท�าความร้อนท�าให้โมดูล SHT11 อ่านค่า อุณหภูมิได้สูงกว่าความเป็นจริง ส่วนค่าความชื้นก็ได้น้อยกว่าค่าที่เป็นจริง
ACK
ท�าได้ง่ายมากเพียงต่อสายสัญญาณนาฬกา CLK (หรือบางครั้ง เรียก SCK) เข้าที่ขาพอร์ตของไมโครคอนโทรลเลอร์ที่ก�าหนดให้เป็นขา สัญญาณนาฬกา และต่อสายสัญญาณข้อมูล DATA เข้าที่ขาพอร์ตของ ไมโครคอนโทรลเลอร์ที่ก�าหนดให้เป็นขาข้อมูล จากนั้นจึงต่อสายไฟเลี้ยง +5V และกราวด์ .ในรูปที่ 4 แสดงวงจรตัวอย่างการเชื่อมต่อกับไมโคร คอนโทรลเลอร์ ATmega128 เพื่ออ่านค่าจาก SHT11 มาแสดงที่โมดูล LCD 16 ตัวอักษร 2 บรรทัด (โค้ดตัวอย่างพัฒนาด้วยโปรแกรมภาษา C/C++ แบบโอเพ่นซอร์สโดยใช้ซอฟต์แวร์ Wiring สามารถดาวน์โหลดได้ที่ www. tpemagazine.com)
0 0 0 0 0 1 1 0
การติดต่อ ZX-SHT11 กับไมโครคอนโทรลเลอร์
ACK
The Prototype Electronics
ACK
ACK
0 0 0 0 0 1 1 1
ACK
50
โดยค่าที่ปรับแต่งได้ประกอบด้วย
ส�าหรับฟังก์ชันที่ต้องมีการปรับแต่พิเศษ จะต้องมีการก�าหนดผ่าน รีจิสเตอร์ STATUS โดยรายละเอียดบิตต่างๆ ของรีจิสเตอร์ STATUS แสดงในตารางที่ 5 รูปแบบการเขียนข้อมูลและอ่านข้อมูลไปยังรีจิสเตอร์ STATUS เป็นดังนี้
รูปที่ 4 วงจรเชื่อมตอโมดูล ZX-SHT11 กับไมโครคอนโทรลเลอร์ ATmega128 ผานทางฮาร์ดแวร์ของ Wiring I/O board (www.wiriing.org.co)
ตารางที่ 5 แสดงรายละเอียดของบิตควบคุมตางๆ ในรีจิสเตอร์ STATUS ที่ใช้แสดงสถานะการ ทํางานของ SHT11 จะเห็นได้ว่า การติดต่อกับ ZX-SHT11 เป็นการติดต่อกับอุปกรณ์บัส 2 สายแบบหนึ่ง แต่ SHT11 ไม่ได้มีรูปแบบการถ่ายทอดข้อมูลตรงตามมาตรฐานของบัส I2C ดังนั้นผู้ใช้งานจึงสามารถเลือกต่อขา พอร์ตใดๆ ของไมโครคอนโทรลเลอร์เข้ากับขา CLK และ DATA ของ SHT11 ก็ได้ เพียงแต่ต้องก�าหนด ให้ขาพอร์ตที่ใช้เชื่อมต่อกับขา CLK ท�างานเป็นขาเอาต์พุตดิจิตอล และท�างานสลับเป็นได้ทั้งขาอินพุต และเอาต์พุตดิจิตอลส�าหรับขาพอร์ตที่ต่อกับขา DATA ของ SHT11 ใครที่กําลังมองหาตัวตรวจจับความชื้นที่ใชงานไมยากและมีความแมนยําในการทํางานสูง ไม ควรมองขาม SHT11 ตัวนี้…..นี่เอง
www.tpemagazine.com The Prototype Electronics
51