ประเภท: วงจรไมโครคอนโทรลเลอร์
จำนวนการดู: 9996
ความเห็นเกี่ยวกับบทความ: 0

การวัดอุณหภูมิและความชื้นบน Arduino - การเลือกวิธีการ

 

ในการสร้างสถานีตรวจอากาศหรือเครื่องวัดอุณหภูมิในบ้านคุณต้องเรียนรู้วิธีจับคู่บอร์ด Arduino กับอุปกรณ์สำหรับวัดอุณหภูมิและความชื้น การวัดอุณหภูมิสามารถทำได้โดยใช้เทอร์มิสเตอร์หรือเซ็นเซอร์ดิจิตอล DS18B20 แต่ สำหรับวัดความชื้น ใช้อุปกรณ์ที่ซับซ้อนมากขึ้น - เซ็นเซอร์ DHT11 หรือ DHT22 ในบทความนี้เราจะแสดงวิธีการวัดอุณหภูมิและความชื้นโดยใช้ Arduino และเซ็นเซอร์เหล่านี้

การวัดอุณหภูมิและความชื้นบน Arduino - การเลือกวิธีการ

การวัดเทอร์มิสเตอร์

วิธีที่ง่ายที่สุดในการกำหนดอุณหภูมิคือการใช้ เทอร์มิสเตอร์. นี่คือประเภทของตัวต้านทานที่มีความต้านทานขึ้นอยู่กับอุณหภูมิโดยรอบ มีเทอร์มิสเตอร์ที่มีค่าสัมประสิทธิ์อุณหภูมิเป็นบวกและลบของความต้านทาน - PTC (เรียกอีกอย่างว่าโพรบ) และเทอร์มิสเตอร์ NTC ตามลำดับ

ในกราฟด้านล่างคุณจะเห็นการขึ้นกับอุณหภูมิของความต้านทาน เส้นประแสดงการพึ่งพาเทอร์มิสเตอร์ TCS เชิงลบ (NTC) และเส้นทึบสำหรับเทอร์มิสเตอร์ TCS เชิงบวก (PTC)

อุณหภูมิขึ้นอยู่กับความต้านทาน

เราเห็นอะไรที่นี่ สิ่งแรกที่ดึงดูดสายตาของคุณก็คือตารางเวลาสำหรับเทอร์มิสเตอร์ PTC นั้นแตกหักและมันจะยากหรือเป็นไปไม่ได้ที่จะวัดค่าอุณหภูมิจำนวนหนึ่ง แต่ตารางสำหรับเทอร์มิสเตอร์ NTC นั้นมากหรือน้อยกว่ากัน สิ่งนี้หมายความว่าอย่างไร การใช้เทอร์มิสเตอร์ NTC นั้นง่ายต่อการวัดอุณหภูมิเพราะมันจะง่ายต่อการค้นหาฟังก์ชั่นที่ค่าของมันเปลี่ยนไป

ในการแปลงอุณหภูมิเป็นความต้านทานคุณสามารถลบค่าได้ด้วยตนเอง แต่การทำที่บ้านทำได้ยากและคุณต้องใช้เทอร์โมมิเตอร์เพื่อกำหนดค่าจริงของอุณหภูมิของสื่อ ในเอกสารข้อมูลของส่วนประกอบบางตัวจะมีตารางดังกล่าวยกตัวอย่างเช่นเทอร์มิสเตอร์ NTC จาก Vishay

Datashit Vishay TC เทอร์มิสเตอร์

จากนั้นคุณสามารถจัดระเบียบการแปลผ่านสาขาโดยใช้ฟังก์ชันถ้า ... else หรือ switchcase อย่างไรก็ตามหากไม่มีตารางดังกล่าวในเอกสารข้อมูลคุณต้องคำนวณฟังก์ชันที่ความต้านทานเปลี่ยนตามอุณหภูมิที่เพิ่มขึ้น

เพื่ออธิบายการเปลี่ยนแปลงนี้มีสมการ Steinhart-Hart อยู่

สมการ Steinhart-hart

โดยที่ A, B และ C เป็นค่าคงที่เทอร์มิสเตอร์ที่กำหนดโดยการวัดอุณหภูมิสามอุณหภูมิโดยมีความแตกต่างอย่างน้อย 10 องศาเซลเซียส ในเวลาเดียวกันแหล่งต่าง ๆ บ่งชี้ว่าสำหรับเทอร์มิสเตอร์ 10 kΩ NTC ทั่วไปพวกมันจะเท่ากับ:

ค่าคงที่เทอร์มิสเตอร์

ค่าสัมประสิทธิ์ B - เบต้าจะคำนวณตามการวัดความต้านทานสำหรับอุณหภูมิที่แตกต่างกันสองแบบ มันถูกระบุไว้ในแผ่นข้อมูล (ตามที่แสดงด้านล่าง) หรือคำนวณอย่างอิสระ

B - ค่าสัมประสิทธิ์เบต้าจากแผ่นข้อมูล

ในกรณีนี้ B จะถูกระบุในแบบฟอร์ม:

อัตราส่วนเบต้า

ซึ่งหมายความว่าค่าสัมประสิทธิ์ถูกคำนวณบนพื้นฐานของข้อมูลที่ได้จากการวัดความต้านทานที่อุณหภูมิ 25 และ 100 องศาเซลเซียสและนี่เป็นตัวแปรที่พบบ่อยที่สุด จากนั้นคำนวณโดยสูตร:

B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)

แผนภาพการเชื่อมต่อทั่วไปของเทอร์มิสเตอร์กับไมโครคอนโทรลเลอร์แสดงไว้ด้านล่าง

แผนภาพการเชื่อมต่อของเทอร์มิสเตอร์กับไมโครคอนโทรลเลอร์

ที่นี่ R1 เป็นตัวต้านทานคงที่เทอร์มิสเตอร์เชื่อมต่อกับแหล่งพลังงานและข้อมูลถูกนำมาจากจุดกึ่งกลางระหว่างพวกเขาแผนภาพแสดงเงื่อนไขตามเงื่อนไขว่าสัญญาณถูกส่งไปยังขา A0 - นี่คือ อนาล็อกอินพุต Arduino.

แผนภาพการเชื่อมต่อของเทอร์มิสเตอร์กับไมโครคอนโทรลเลอร์

ในการคำนวณความต้านทานของเทอร์มิสเตอร์คุณสามารถใช้สูตรต่อไปนี้:

R of thermistor = R1istor ((Vcc / Voutput) −1)

ในการแปลเป็นภาษาที่เข้าใจได้สำหรับอาร์ดิโนคุณต้องจำไว้ว่าอาร์ดิโนนั้นมี ADC 10 บิตดังนั้นค่าดิจิตอลสูงสุดของสัญญาณอินพุต (แรงดัน 5V) จะเท่ากับ 1,023 ดังนั้นเงื่อนไข:

  • Dmax = 1023;

  • D คือมูลค่าที่แท้จริงของสัญญาณ

แล้ว:

R ของเทอร์มิสเตอร์ = R1⋅ ((Dmax / D) −1)

ตอนนี้เราใช้สิ่งนี้เพื่อคำนวณความต้านทานแล้วคำนวณอุณหภูมิของเทอร์มิสเตอร์โดยใช้สมการเบต้า ในภาษาการเขียนโปรแกรมสำหรับ Arduino. ร่างจะเป็นดังนี้:

ร่าง

DS18B20

ยิ่งนิยมวัดอุณหภูมิด้วยArduino พบเซ็นเซอร์ดิจิตอล DS18B20 มันสื่อสารกับไมโครคอนโทรลเลอร์ผ่านอินเตอร์เฟซ 1 สายคุณสามารถเชื่อมต่อเซ็นเซอร์หลายตัว (สูงถึง 127) กับสายเดียวและเพื่อเข้าถึงพวกเขาคุณจะต้องค้นหา ID ของเซ็นเซอร์แต่ละตัว

หมายเหตุ: คุณควรทราบ ID แม้ว่าคุณจะใช้เซ็นเซอร์เพียง 1 ตัวเท่านั้น

เซ็นเซอร์ดิจิตอล DS18B20

แผนภาพการเชื่อมต่อของเซ็นเซอร์ ds18b20 ไปยัง Arduino มีลักษณะดังนี้:

แผนภาพการเชื่อมต่อของเซ็นเซอร์ ds18b20 กับ Arduino
แผนภาพการเชื่อมต่อของเซ็นเซอร์ ds18b20 กับ Arduino

นอกจากนี้ยังมีโหมดกาฝาก - แผนภาพการเชื่อมต่อมีลักษณะเช่นนี้ (คุณต้องใช้สายสองเส้นแทนสามสาย):

แผนภาพการเชื่อมต่อเซนเซอร์ Arduino

ในโหมดนี้ไม่รับประกันการใช้งานที่ถูกต้องเมื่อทำการวัดอุณหภูมิที่สูงกว่า 100 องศาเซลเซียส

เซ็นเซอร์อุณหภูมิดิจิตอล DS18B20 ประกอบด้วยโหนดทั้งหมดเช่น SIMS อื่น ๆ คุณสามารถดูอุปกรณ์ภายในของมันด้านล่าง:

เซ็นเซอร์อุณหภูมิดิจิตอล DS18B20

ในการทำงานกับมันคุณต้องดาวน์โหลดไลบรารี Onewire สำหรับ Arduino และสำหรับตัวเซ็นเซอร์เองเราแนะนำให้ใช้ไลบรารี DallasTemperature

ร่าง

ตัวอย่างรหัสนี้แสดงให้เห็นถึงพื้นฐานของการทำงานกับเซ็นเซอร์อุณหภูมิ 1 ผลในองศาเซลเซียสจะถูกส่งออกผ่านพอร์ตอนุกรมหลังจากการอ่านแต่ละครั้ง


DHT11 และ DHT22 - เซ็นเซอร์ความชื้นและอุณหภูมิ

DHT11 และ DHT22 - เซ็นเซอร์ความชื้นและอุณหภูมิ

เซ็นเซอร์เหล่านี้เป็นที่นิยมและมักใช้เพื่อวัดความชื้นและอุณหภูมิโดยรอบ ในตารางด้านล่างเราระบุความแตกต่างหลักของพวกเขา

 
DHT11
DHT22
การหาค่าความชื้นในช่วง
20-80%
0-100%
ความแม่นยำในการวัด
5%
2-5%
การหาอุณหภูมิ
0 ° C ถึง + 50 ° C
-40 ° C ถึง + 125 ° c
ความแม่นยำในการวัด
2,5%
บวกหรือลบ 0.5 องศาเซลเซียส
ความถี่ในการสำรวจ
1 ครั้งต่อวินาที
1 ครั้งใน 2 วินาที
แผนภาพการเชื่อมต่อสำหรับเซ็นเซอร์ความชื้นถึง Arduino

แผนภาพการเชื่อมต่อค่อนข้างง่าย:

  • 1 ข้อสรุป - โภชนาการ

  • 2 ข้อสรุป - ข้อมูล;

  • 3 ข้อสรุป - ไม่ได้ใช้;

  • 4 ข้อสรุป - ลวดทั่วไป

หากคุณมีเซ็นเซอร์ในรูปแบบของโมดูลมันจะมีสามเอาต์พุต แต่คุณไม่จำเป็นต้องมีตัวต้านทาน - มันถูกบัดกรีไปยังบอร์ดแล้ว

แผนภาพการเชื่อมต่อของเซ็นเซอร์ความชื้นในรูปแบบของโมดูลเพื่อ arduino

สำหรับการทำงานเราต้องการไลบรารี dht.h ซึ่งไม่อยู่ในชุดมาตรฐานดังนั้นจึงจำเป็นต้องดาวน์โหลดและติดตั้งในโฟลเดอร์ไลบรารีในโฟลเดอร์ที่มี arduino IDE รองรับเซ็นเซอร์ทั้งหมดในตระกูลนี้:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321)

ตัวอย่างการใช้ห้องสมุด:

ตัวอย่างการใช้ห้องสมุด

ข้อสรุป

ทุกวันนี้การสร้างสถานีของคุณเองเพื่อวัดอุณหภูมิและความชื้นนั้นง่ายมากด้วยแพลตฟอร์ม Arduino ค่าใช้จ่ายของโครงการดังกล่าวคือ 3-4 ร้อยรูเบิล สำหรับอายุการใช้งานแบตเตอรี่และไม่สามารถส่งออกไปยังเครื่องคอมพิวเตอร์ได้ แสดงตัวอักษร (เราอธิบายไว้ในบทความล่าสุด) จากนั้นคุณสามารถสร้างอุปกรณ์พกพาสำหรับใช้ทั้งที่บ้านและในรถ เขียนในความคิดเห็นอะไรที่คุณต้องการเรียนรู้เกี่ยวกับงานฝีมือโฮมเมดง่ายๆใน arduino!

ดูเพิ่มเติมที่หัวข้อนี้:เซ็นเซอร์ยอดนิยมสำหรับ Arduino - การเชื่อมต่อไดอะแกรมภาพร่าง

ดูได้ที่ bgv.electricianexp.com:

  • เซ็นเซอร์ยอดนิยมสำหรับ Arduino
  • การเชื่อมต่อเซ็นเซอร์อะนาล็อกกับ Arduino อ่านเซ็นเซอร์
  • การใช้สะพานวีตสโตนสำหรับการวัดปริมาณที่ไม่ใช้ไฟฟ้า
  • เซ็นเซอร์อุณหภูมิ ส่วนที่สอง เทอร์มิสเตอร์
  • เซ็นเซอร์ความชื้น - วิธีจัดเรียงและทำงาน

  •