สารบัญ:

การทดสอบเซ็นเซอร์อุณหภูมิ - อันไหนสำหรับฉัน: 15 ขั้นตอน (พร้อมรูปภาพ)
การทดสอบเซ็นเซอร์อุณหภูมิ - อันไหนสำหรับฉัน: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การทดสอบเซ็นเซอร์อุณหภูมิ - อันไหนสำหรับฉัน: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การทดสอบเซ็นเซอร์อุณหภูมิ - อันไหนสำหรับฉัน: 15 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: งานประเมินสอบสมรรถนะ บริการตรวจสอบตัวตรวจจับอุณหภูมิ Temp.sensor 2024, พฤศจิกายน
Anonim
การทดสอบเซ็นเซอร์อุณหภูมิ - อันไหนสำหรับฉัน
การทดสอบเซ็นเซอร์อุณหภูมิ - อันไหนสำหรับฉัน

เซ็นเซอร์ตัวแรกที่ผู้ใช้ใหม่ด้านการคำนวณทางกายภาพต้องการทดลองใช้คือสิ่งที่วัดอุณหภูมิ เซ็นเซอร์ยอดนิยมสี่ตัวคือ TMP36 ซึ่งมีเอาต์พุตแบบอะนาล็อกและต้องการตัวแปลงอนาล็อกเป็นดิจิตอล DS18B20 ซึ่งใช้การเชื่อมต่อแบบสายเดียว DHT22 หรือ DHT11 ที่ถูกกว่าเล็กน้อยซึ่งต้องการเพียงแค่พินดิจิตอล แต่ยัง ให้การอ่านค่าความชื้น และสุดท้าย BME680 ซึ่งใช้ I2C (พร้อม SPI และบอร์ดฝ่าวงล้อมบางรุ่น) และให้อุณหภูมิ ความชื้น ก๊าซ (VOC) และความดันบรรยากาศ แต่มีราคาสูงกว่าเล็กน้อย

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

ฉันจะใช้ CircuitPython และบอร์ดพัฒนา Adafruit Itsybitsy M4 สำหรับการทดสอบเหล่านี้ มีไดรเวอร์ที่เหมาะสมสำหรับอุปกรณ์ทั้งหมด

เสบียง

รายการเริ่มต้นของฉัน:

  • ไมโครคอนโทรลเลอร์ Itsybitsy M4 Express
  • สาย micro USB - สำหรับตั้งโปรแกรม
  • TMP36
  • DS18B20
  • ตัวต้านทาน 4.7K โอห์ม
  • DHT22
  • BME680
  • มัลติมิเตอร์
  • เขียงหั่นขนมหรือกระดานแถบ
  • สายต่อ

ขั้นตอนที่ 1: วงจร

วงจร
วงจร

สายไฟสีส้ม 3.3 V

สายไฟสีดำคือ GND

ที่ด้านล่างของกระดานเป็นจุดทดสอบสำหรับวัดแรงดันไฟฟ้า (เอาต์พุตอะนาล็อก 3.3v, GND และ TMP36)

เต้ารับกลางคือ ซ้ายไปขวา:

  • TMP36: 3.3v, สัญญาณอนาล็อกออก, GND
  • DS18B20: GND, สัญญาณดิจิตอลออก, 3.3v
  • DHT22: 3.3v, สัญญาณออก, ว่างเปล่า, GND
  • BME680: 3.3v, SDA, SCL, ว่างเปล่า, GND

ขั้วต่อด้านหลังสำหรับเชื่อมต่อกับบอร์ด IB M4E จากซ้ายไปขวา

  • 3.3v
  • TMP36 - อนาล็อกเพื่อพิน A2
  • GND
  • DS18B20 ดิจิตอลเอาท์พุต D3 - สีเขียว
  • DHT22 ดิจิตอลเอาท์พุต D2 - สีเหลือง
  • SDA - สีขาว
  • SCL - สีชมพู

ตัวต้านทาน 4.7K Ohm เป็น pullup จากสัญญาณเป็น 3.3v สำหรับการเชื่อมต่อแบบ 0ne-wire บน DS18B20

มี 2 แทร็กตัดที่ด้านหลังของกระดาน:

ด้านล่างซ้ายสุดของสายทั้งสีชมพูและสีขาว (ใต้สายเหลือง)

ขั้นตอนที่ 2: วิธี

วิธี
วิธี

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

ฉันจะดูเอกสารประกอบเพื่อดูว่าค่าที่อ่านได้นั้นตรงกับความแม่นยำที่คาดหวังหรือไม่ และหากมีสิ่งใดที่สามารถทำได้เพื่อปรับปรุง

ขั้นตอนที่ 3: TMP36 - การทดลองใช้งานเบื้องต้น

TMP36 - การทดลองครั้งแรก
TMP36 - การทดลองครั้งแรก
TMP36 - การทดลองครั้งแรก
TMP36 - การทดลองครั้งแรก

ขาซ้ายคือ 3.3v ขาขวาคือ GND และขากลางคือแรงดันอนาล็อกแสดงอุณหภูมิโดยใช้สูตรต่อไปนี้ TempC = (มิลลิโวลต์ - 500) / 10

ดังนั้น 750 มิลลิโวลต์ให้อุณหภูมิ 25 C

ดูเหมือนจะมีปัญหาสองสามข้อที่นี่ อุณหภูมิจากเทอร์โมมิเตอร์ปรอท 'ปกติ' นั้นต่ำกว่าจาก TMP36 มากและการอ่านไม่สอดคล้องกันมาก - มี 'กระวนกระวายใจ' หรือเสียงรบกวนอยู่บ้าง

เซ็นเซอร์ TMP36 จะส่งแรงดันไฟฟ้าออกมาเป็นสัดส่วนกับอุณหภูมิ สิ่งนี้จะต้องอ่านโดยตัวแปลง A/D ก่อนที่จะคำนวณอุณหภูมิ ลองอ่านค่าแรงดันโดยตรงจากขากลางของเซนเซอร์ด้วยมัลติมิเตอร์ แล้วเปรียบเทียบกับผลลัพธ์จาก A/D ค่าที่อ่านได้จากขากลางด้วยมัลติมิเตอร์ของฉันคือ 722 มิลลิโวลต์ ซึ่งต่ำกว่ามากและค่าที่อ่านได้คงที่มาก

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

มาวัดแรงดันไฟฟ้าที่ใช้ไมโครคอนโทรลเลอร์และ A/D ของฉันกันเถอะ นี่ถือว่า 3.3v แต่จริงๆ แล้วเป็นเพียง 3.275v

ขั้นตอนที่ 4: ผลการทดแทนโพเทนชิออมิเตอร์

ผลการทดแทนโพเทนชิออมิเตอร์
ผลการทดแทนโพเทนชิออมิเตอร์

นี้จะดีกว่ามาก ค่าที่อ่านได้อยู่ภายในสองสามมิลลิโวลต์โดยมีสัญญาณรบกวนน้อยกว่ามาก นี่แสดงให้เห็นว่าเสียงรบกวนมาจาก TMP36 มากกว่า A/D การอ่านบนมิเตอร์จะคงที่เสมอ - ไม่มีกระวนกระวายใจ (มิเตอร์อาจ 'เรียบ' เอาต์พุตที่กระวนกระวายใจ)

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

ขั้นตอนที่ 5: ค่าเฉลี่ยการอ่านและผลลัพธ์

ค่าเฉลี่ยการอ่านและผลลัพธ์
ค่าเฉลี่ยการอ่านและผลลัพธ์

ยังมีเสียงรบกวนมากและการอ่านจาก TMP36 ก็ยังสูงกว่าจากเทอร์โมมิเตอร์แบบปรอท เพื่อลดสัญญาณรบกวน ฉันได้รวมตัวเก็บประจุ 100NF ระหว่างสัญญาณและ GND

จากนั้นฉันก็ค้นหาวิธีแก้ปัญหาอื่นๆ บนอินเทอร์เน็ตและพบสิ่งเหล่านี้: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk แนะนำให้รวมตัวต้านทาน 47 k Ohm ระหว่างสัญญาณกับ GND

www.desert-home.com/2015/03/battery-operate… ในขณะที่ผู้ชายคนนี้แนะนำให้เรียงลำดับการอ่าน 15 รายการตามลำดับและเฉลี่ยศูนย์ 5

ฉันแก้ไขสคริปต์และวงจรเพื่อรวมคำแนะนำเหล่านี้และรวมการอ่านจากเทอร์โมมิเตอร์แบบปรอท

ในที่สุด! ตอนนี้เรามีการอ่านค่าคงที่ในช่วงความแม่นยำของคำอธิบายอุปกรณ์

นี่เป็นความพยายามอย่างมากในการทำให้เซ็นเซอร์ทำงานซึ่งมีความแม่นยำจากผู้ผลิตเท่านั้น:

ความแม่นยำ - สูงสุด (ต่ำสุด): ±3°C (±4°C) ราคาเพียง 1.50 เหรียญ (2 ปอนด์)

ขั้นตอนที่ 6: DS18B20 - การทดสอบเบื้องต้น

DS18B20 - การทดสอบเบื้องต้น
DS18B20 - การทดสอบเบื้องต้น

ระวังให้มาก แพ็คเกจนี้ดูคล้ายกับ TMP36 มาก แต่ขากลับตรงกันข้ามกับ 3.3v ทางด้านขวาและ GND ทางด้านซ้าย สัญญาณออกอยู่ตรงกลาง เพื่อให้อุปกรณ์นี้ทำงานได้ เราจำเป็นต้องมีตัวต้านทาน 4.7 k Ohm ระหว่างสัญญาณและ 3.3v อุปกรณ์นี้ใช้โปรโตคอลแบบสายเดียวและเราจำเป็นต้องดาวน์โหลดไดรเวอร์สองสามตัวลงในโฟลเดอร์ lib ของ Itsybitsy M4 Express

ค่าใช้จ่ายนี้ประมาณ $4 / £4ข้อกำหนดทางเทคนิค:

  • ช่วงอุณหภูมิที่ใช้งานได้: -55 ถึง 125°C (-67°F ถึง +257°F)
  • ความละเอียดที่เลือกได้ 9 ถึง 12 บิต
  • ใช้อินเทอร์เฟซ 1-Wire - ต้องการเพียงหนึ่งพินดิจิทัลสำหรับการสื่อสาร
  • ID 64 บิตที่ไม่ซ้ำกันถูกเบิร์นลงในชิป
  • เซ็นเซอร์หลายตัวสามารถแชร์พินเดียวได้
  • ความแม่นยำ ±0.5°C ตั้งแต่ -10°C ถึง +85°C
  • ระบบเตือนขีดจำกัดอุณหภูมิ
  • เวลาสืบค้นน้อยกว่า 750ms
  • ใช้ได้กับกำลังไฟ 3.0V ถึง 5.5V

ปัญหาหลักของเซ็นเซอร์นี้คือใช้อินเทอร์เฟซ Dallas 1-Wire และไมโครคอนโทรลเลอร์บางตัวไม่มีไดรเวอร์ที่เหมาะสม เราโชคดีที่มีไดรเวอร์สำหรับ Itsybitsy M4 Express

ขั้นตอนที่ 7: DS18B20 ทำงานได้ดี

DS18B20 ทำงานได้ดี
DS18B20 ทำงานได้ดี

นี้แสดงให้เห็นผลลัพธ์ที่ดี

ชุดการอ่านที่สม่ำเสมอโดยไม่มีงานพิเศษและค่าโสหุ้ยในการคำนวณ ค่าที่อ่านได้อยู่ในช่วงความแม่นยำที่คาดไว้ ±0.5°C เมื่อเปรียบเทียบกับเทอร์โมมิเตอร์แบบปรอทของฉัน

นอกจากนี้ยังมีรุ่นกันน้ำราคาประมาณ 10 เหรียญซึ่งฉันเคยใช้มาแล้วและประสบความสำเร็จอย่างเท่าเทียมกัน

ขั้นตอนที่ 8: DHT22 และ DHT11

DHT22 และ DHT11
DHT22 และ DHT11

DHT22 ใช้เทอร์มิสเตอร์เพื่อให้ได้อุณหภูมิและมีราคาประมาณ 10 เหรียญ / 10 ปอนด์ และเป็นพี่ชายที่ถูกต้องและมีราคาแพงกว่าของ DHT11 ที่มีขนาดเล็กกว่า นอกจากนี้ยังใช้อินเทอร์เฟซแบบสายเดียวแต่เข้ากันไม่ได้กับโปรโตคอล Dallas ที่ใช้กับ DS18B20 สัมผัสความชื้นและอุณหภูมิได้ อุปกรณ์เหล่านี้บางครั้งต้องการตัวต้านทานแบบดึงขึ้นระหว่าง 3.3 v และขาสัญญาณ แพ็คเกจนี้มีการติดตั้งไว้แล้ว

  • ราคาถูก
  • กำลังไฟ 3 ถึง 5V และ I/O
  • การใช้กระแสไฟสูงสุด 2.5mA ระหว่างการแปลง (ขณะขอข้อมูล)
  • เหมาะสำหรับการอ่านค่าความชื้น 0-100% ด้วยความแม่นยำ 2-5%
  • เหมาะสำหรับการอ่านค่าอุณหภูมิ -40 ถึง 80°C ความแม่นยำ ±0.5°C
  • ไม่เกิน 0.5 Hz อัตราการสุ่มตัวอย่าง (ทุกๆ 2 วินาที)
  • ขนาดตัวเครื่อง 27 มม. x 59 มม. x 13.5 มม. (1.05" x 2.32" x 0.53")
  • 4 พิน ระยะห่าง 0.1"
  • น้ำหนัก (เฉพาะ DHT22): 2.4g

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

ขั้นตอนที่ 9: ผลลัพธ์ DHT22

ผลลัพธ์ DHT22
ผลลัพธ์ DHT22

นี่เป็นผลลัพธ์ที่ยอดเยี่ยมโดยใช้ความพยายามเพียงเล็กน้อย ค่าที่อ่านได้ค่อนข้างคงที่และอยู่ในเกณฑ์ความเผื่อที่คาดไว้ การอ่านค่าความชื้นเป็นโบนัส

คุณสามารถอ่านได้ทุกวินาทีเท่านั้น

ขั้นตอนที่ 10: การทดสอบ DTH11

การทดสอบ DTH11
การทดสอบ DTH11

เทอร์โมมิเตอร์แบบปรอทของฉันแสดงอุณหภูมิ 21.9 องศาเซลเซียส นี่คือ DHT11 ที่ค่อนข้างเก่าซึ่งฉันดึงมาจากโปรเจ็กต์เก่า และค่าความชื้นนั้นแตกต่างอย่างมากจากการอ่านค่า DHT22 เมื่อไม่กี่นาทีที่ผ่านมา มีค่าใช้จ่ายประมาณ $5 / £5

คำอธิบายประกอบด้วย:

  • เหมาะสำหรับการอ่านค่าความชื้น 20-80% พร้อมความแม่นยำ 5%
  • เหมาะสำหรับการอ่านค่าอุณหภูมิ 0-50 °C ความแม่นยำ ±2°C - น้อยกว่า DTH22

อุณหภูมิดูเหมือนจะยังอยู่ในช่วงความแม่นยำ แต่ฉันไม่เชื่อถือการอ่านค่าความชื้นจากอุปกรณ์เครื่องเก่านี้

ขั้นตอนที่ 11: BME680

BME680
BME680

เซ็นเซอร์นี้ประกอบด้วยอุณหภูมิ ความชื้น ความกดอากาศ และความสามารถในการตรวจจับก๊าซ VOC ในแพ็คเกจเดียว แต่เป็นเซ็นเซอร์ที่แพงที่สุดในการทดสอบที่นี่ มีค่าใช้จ่ายประมาณ 18.50 ปอนด์ / 22 ดอลลาร์ มีผลิตภัณฑ์ที่คล้ายกันที่ไม่มีเซ็นเซอร์ก๊าซซึ่งมีราคาถูกกว่าเล็กน้อย

นี่คือเซ็นเซอร์มาตรฐานทองคำของทั้งห้า เซ็นเซอร์อุณหภูมิมีความแม่นยำ และมีไดรเวอร์ที่เหมาะสม ใช้งานง่ายมาก เวอร์ชันนี้ใช้ I2C แต่บอร์ดฝ่าวงล้อม Adafruit ก็สามารถใช้ SPI ได้เช่นกัน

เช่นเดียวกับ BME280 และ BMP280 เซ็นเซอร์ความเที่ยงตรงจาก Bosch สามารถวัดความชื้นได้อย่างแม่นยำ ±3% ความดันบรรยากาศด้วยความแม่นยำ ±1 hPa และอุณหภูมิที่มีความแม่นยำ ±1.0°C เนื่องจากความดันเปลี่ยนแปลงไปตามระดับความสูง และการวัดความดันนั้นดีมาก คุณจึงสามารถใช้เป็นเครื่องวัดระยะสูงที่มีความแม่นยำ ±1 เมตรหรือดีกว่าได้!

เอกสารระบุว่าจำเป็นต้องมี 'เวลาเผาไหม้' สำหรับเซ็นเซอร์ก๊าซ

ขั้นตอนที่ 12: ฉันควรใช้อันไหน

ฉันควรใช้อันไหน?
ฉันควรใช้อันไหน?
  • TMP36 มีราคาถูกมาก เล็กและเป็นที่นิยม แต่ค่อนข้างใช้งานยากและอาจคลาดเคลื่อน
  • DS18B20 มีขนาดเล็ก แม่นยำ ราคาถูก ใช้งานง่ายมาก และมีรุ่นกันน้ำ
  • DTH22 ยังระบุถึงความชื้น ราคาปานกลางและใช้งานง่าย แต่อาจช้าเกินไป
  • BME680 ทำได้ดีกว่ารุ่นอื่นๆ แต่มีราคาแพง

ถ้าฉันต้องการแค่อุณหภูมิ ฉันจะใช้ DS18B20 ที่มีความแม่นยำ ±0.5°C แต่ที่ฉันชอบคือ BME680 เพราะมันทำอะไรได้มากกว่า และสามารถนำไปใช้ในโครงการต่างๆ ได้มากมาย

ความคิดสุดท้ายอย่างหนึ่ง ตรวจสอบให้แน่ใจว่าคุณเก็บเซ็นเซอร์อุณหภูมิของคุณให้ห่างจากไมโครโปรเซสเซอร์ Raspberry Pi HAT บางตัวยอมให้ความร้อนจากเมนบอร์ดทำให้เซ็นเซอร์อุ่นขึ้น ทำให้อ่านค่าผิดพลาดได้

ขั้นตอนที่ 13: ความคิดและการทดลองเพิ่มเติม

ความคิดและการทดลองเพิ่มเติม
ความคิดและการทดลองเพิ่มเติม

ขอบคุณ gulliverrr, ChristianC231 และ pgagen สำหรับความคิดเห็นของคุณเกี่ยวกับสิ่งที่ฉันได้ทำไปแล้ว ฉันขอโทษที่ล่าช้า แต่ฉันได้ไปเที่ยวพักผ่อนในไอร์แลนด์ โดยไม่ได้ซื้ออุปกรณ์อิเล็กทรอนิกส์มาสองสามสัปดาห์แล้ว

นี่เป็นความพยายามครั้งแรกในการแสดงเซ็นเซอร์ที่ทำงานร่วมกัน

ฉันเขียนสคริปต์เพื่ออ่านเซ็นเซอร์และพิมพ์ค่าอุณหภูมิทุกๆ 20 วินาทีหรือมากกว่านั้น

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

ใช้เวลาประมาณสามนาทีในการนำชุดออกจากตู้เย็นก่อนที่จะบันทึกผลลัพธ์ ดังนั้นอุณหภูมิบางส่วนจึงสูงขึ้นในช่วงเวลานี้ ฉันสงสัยว่าเซ็นเซอร์ทั้งสี่ตัวมีความจุความร้อนต่างกัน ดังนั้นจะอุ่นขึ้นในอัตราที่ต่างกัน อัตราการอุ่นจะลดลงเมื่อเซ็นเซอร์เข้าใกล้อุณหภูมิห้อง ฉันบันทึกสิ่งนี้ไว้ที่ 24.4°C ด้วยเทอร์โมมิเตอร์แบบปรอทของฉัน

ความแตกต่างอย่างมากของอุณหภูมิที่จุดเริ่มต้นของเส้นโค้งอาจขึ้นอยู่กับความจุความร้อนที่แตกต่างกันของเซ็นเซอร์ ฉันดีใจที่เห็นว่าเส้นเหล่านี้มาบรรจบกันจนสุดเมื่อเข้าใกล้อุณหภูมิห้อง ฉันกังวลว่า TMP36 จะสูงกว่าเซ็นเซอร์อื่นๆ เสมอ

ฉันค้นหาแผ่นข้อมูลเพื่อตรวจสอบความถูกต้องที่อธิบายไว้ของอุปกรณ์เหล่านี้อีกครั้ง

TMP36

  • ±2°C ความแม่นยำเหนืออุณหภูมิ (ทั่วไป)
  • ±0.5°C เชิงเส้น (ทั่วไป)

DS18B20

ความแม่นยำ ±0.5°C ตั้งแต่ -10°C ถึง +85°C

DHT22

อุณหภูมิ ±0.5°C

BME680

อุณหภูมิที่มีความแม่นยำ ±1.0°C

ขั้นตอนที่ 14: กราฟเต็ม

กราฟเต็ม
กราฟเต็ม

ตอนนี้คุณสามารถเห็นได้ว่าในที่สุดเซ็นเซอร์ก็ลดระดับและเห็นด้วยกับอุณหภูมิไม่มากก็น้อยภายในความแม่นยำที่อธิบายไว้ หากนำค่า TMP36 ออก 1.7 องศา (คาดว่า±2°C) แสดงว่าเซ็นเซอร์ทั้งหมดมีความสอดคล้องกันเป็นอย่างดี

ครั้งแรกที่ฉันทำการทดลองนี้ เซ็นเซอร์ DHT22 ทำให้เกิดปัญหา:

เอาต์พุต main.py:

14.9, 13.5, 10.3, 13.7

15.7, 14.6, 10.5, 14.0

16.6, 15.6, 12.0, 14.4

18.2, 16.7, 13.0, 15.0

18.8, 17.6, 14.0, 15.6

19.8, 18.4, 14.8, 16.2

21.1, 18.7, 15.5, 16.9

21.7, 19.6, 16.0, 17.5

22.4, 20.2, 16.5, 18.1

23.0, 20.7, 17.1, 18.7

ข้อผิดพลาดในการอ่าน DHT: ('ไม่พบเซ็นเซอร์ DHT ตรวจสอบการเดินสาย',)

Traceback (การโทรล่าสุดล่าสุด):

ไฟล์ "main.py" บรรทัดที่ 64 ใน

ไฟล์ "main.py" บรรทัดที่ 59 ใน get_dht22

NameError: ตัวแปรโลคัลอ้างอิงก่อนกำหนด

ดังนั้นฉันจึงแก้ไขสคริปต์เพื่อจัดการกับปัญหานี้และเริ่มการบันทึกใหม่:

ข้อผิดพลาดในการอ่าน DHT: ('ไม่พบเซ็นเซอร์ DHT ตรวจสอบการเดินสาย',)

25.9, 22.6, -999.0, 22.6

ข้อผิดพลาดในการอ่าน DHT: ('ไม่พบเซ็นเซอร์ DHT ตรวจสอบการเดินสาย',)

25.9, 22.8, -999.0, 22.7

25.9, 22.9, 22.1, 22.8

25.9, 22.9, 22.2, 22.9

ข้อผิดพลาดในการอ่าน DHT: ('ไม่พบเซ็นเซอร์ DHT ตรวจสอบการเดินสาย',)

27.1, 23.0, -999.0, 23.0

ข้อผิดพลาดในการอ่าน DHT: ('ไม่พบเซ็นเซอร์ DHT ตรวจสอบการเดินสาย',)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

ข้อผิดพลาดในการอ่าน DHT: ('ไม่พบเซ็นเซอร์ DHT ตรวจสอบการเดินสาย',)

28.4, 23.2, -999.0, 23.3

ข้อผิดพลาดในการอ่าน DHT: ('ไม่พบเซ็นเซอร์ DHT ตรวจสอบการเดินสาย',)

26.8, 23.1, -999.0, 23.3

26.5, 23.2, 23.0, 23.4

26.4, 23.3, 23.0, 23.5

26.4, 23.4, 23.1, 23.5

26.2, 23.3, 23.1, 23.6

ฉันไม่มีปัญหากับการวิ่งครั้งที่สอง เอกสารของ Adafruit เตือนว่าบางครั้งเซ็นเซอร์ DHT จะอ่านพลาด

ขั้นตอนที่ 15: บทสรุป

บทสรุป
บทสรุป

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

เซ็นเซอร์ทั้งหมดบันทึกอุณหภูมิที่เพิ่มขึ้นและลดลง

พวกเขาไม่สามารถปรับตัวให้เข้ากับอุณหภูมิใหม่ได้อย่างรวดเร็ว

พวกเขาไม่ถูกต้องมาก (ดีพอสำหรับสถานีตรวจอากาศหรือไม่)

คุณอาจต้องสอบเทียบเซ็นเซอร์ของคุณกับเทอร์โมมิเตอร์ที่เชื่อถือได้

แนะนำ: