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