جدول المحتويات:

اختبار مجسات درجة الحرارة - أيهما مناسب لي ؟: 15 خطوة (بالصور)
اختبار مجسات درجة الحرارة - أيهما مناسب لي ؟: 15 خطوة (بالصور)

فيديو: اختبار مجسات درجة الحرارة - أيهما مناسب لي ؟: 15 خطوة (بالصور)

فيديو: اختبار مجسات درجة الحرارة - أيهما مناسب لي ؟: 15 خطوة (بالصور)
فيديو: REVAN - THE COMPLETE STORY 2024, شهر نوفمبر
Anonim
اختبار مجسات درجة الحرارة - أيهما مناسب لي؟
اختبار مجسات درجة الحرارة - أيهما مناسب لي؟

أحد المستشعرات الأولى التي يرغب القادمون الجدد إلى الحوسبة الفيزيائية في تجربتها هو شيء لقياس درجة الحرارة. أربعة من أكثر المستشعرات شيوعًا هي TMP36 ، والتي لها خرج تناظري وتحتاج إلى محول تناظري رقمي ، DS18B20 ، الذي يستخدم اتصال سلك واحد ، DHT22 ، أو DHT11 الأرخص قليلاً ، والذي يحتاج فقط إلى دبوس رقمي ، ولكن أيضًا يوفر قراءة للرطوبة ، وأخيرًا BME680 الذي يستخدم I2C (مع SPI أيضًا على بعض ألواح الانكسار) ويعطي درجة الحرارة والرطوبة والغاز (VOC) والضغط الجوي ولكنه يكلف أكثر قليلاً.

أريد أن أرى مدى دقتها واكتشاف أي مزايا أو عيوب. لدي بالفعل مقياس حرارة زئبقي دقيق ، متبقي من طباعة الصور الفوتوغرافية الملونة في أيام المعالجة الكيميائية ، لمقارنتها. (لا تتخلص أبدًا من أي شيء - ستحتاج إليه لاحقًا!)

سأستخدم CircuitPython ولوحة تطوير Adafruit Itsybitsy M4 لهذه الاختبارات. تتوفر برامج تشغيل مناسبة لجميع الأجهزة.

اللوازم

قائمتي الأولية:

  • متحكم Itsybitsy M4 Express
  • كابل micro USB - للبرمجة
  • تمب 36
  • DS18B20
  • 4.7 كيلو أوم المقاوم
  • دهت 22
  • BME680
  • المقياس المتعدد
  • اللوح أو لوح الشريط
  • توصيل الأسلاك

الخطوة 1: الدوائر

الدوائر
الدوائر

الأسلاك البرتقالية - 3.3 فولت

الأسلاك السوداء هي GND

في الجزء السفلي من اللوحة توجد نقاط اختبار لقياس الفولتية. (خرج تناظري 3.3 فولت و GND و TMP36)

مآخذ المركز من اليسار إلى اليمين:

  • TMP36: 3.3 فولت ، خرج إشارة تناظرية ، GND
  • DS18B20: GND ، خرج إشارة رقمية ، 3.3 فولت
  • DHT22: 3.3 فولت ، خرج إشارة ، فارغ ، GND
  • BME680: 3.3 فولت ، SDA ، SCL ، فارغ ، GND

الموصل الخلفي ، للتوصيل بلوحة IB M4E ، من اليسار إلى اليمين

  • 3.3 فولت
  • TMP36 - خرج تناظري إلى طرف A2
  • GND
  • DS18B20 خرج رقمي إلى دبوس D3 - أخضر
  • خرج رقمي DHT22 إلى رقم التعريف الشخصي D2 - أصفر
  • SDA - أبيض
  • SCL - وردي

المقاوم 4.7K أوم هو سحب من الإشارة إلى 3.3 فولت لاتصال سلك واحد على DS18B20.

يوجد مساران مقطوعان في الجزء الخلفي من اللوحة:

أسفل الطرف الأيسر لكل من الأسلاك الوردية والبيضاء. (تحت السلك الأصفر)

الخطوة 2: الطريقة

طريقة
طريقة

سأكتب نصًا قصيرًا لكل مستشعر لقراءة درجة الحرارة (وعناصر أخرى إذا كانت متوفرة) عدة مرات والتحقق من درجة الحرارة مقابل مقياس الحرارة الزئبقي (Hg). سوف أتطلع لمعرفة مدى قرب مقارنة درجة الحرارة بقراءة الزئبق وما إذا كانت القراءات ثابتة / متسقة.

سأنظر أيضًا في الوثائق لمعرفة ما إذا كانت القراءات تتناسب مع الدقة المتوقعة وما إذا كان هناك أي شيء يمكن القيام به لإجراء تحسينات.

الخطوة 3: TMP36 - محاكمة أولية

TMP36 - محاكمة أولية
TMP36 - محاكمة أولية
TMP36 - محاكمة أولية
TMP36 - محاكمة أولية

الساق اليسرى هي 3.3 فولت ، والساق اليمنى هي GND والساق المركزية هي جهد تناظري يمثل درجة الحرارة باستخدام الصيغة التالية. درجة الحرارة = (ملي فولت - 500) / 10

إذن ، 750 مللي فولت تعطي درجة حرارة 25 درجة مئوية

يبدو أن هناك مشكلتين هنا. درجة الحرارة من مقياس الحرارة الزئبقي "العادي" أقل بكثير من TMP36 والقراءات ليست متسقة للغاية - هناك بعض "الارتعاش" أو الضوضاء.

يرسل مستشعر TMP36 جهدًا يتناسب مع درجة الحرارة. يجب قراءة هذا بواسطة محول A / D قبل حساب درجة الحرارة. دعنا نقرأ الجهد مباشرة من ساق المستشعر الوسطى بمقياس متعدد ونقارنه بالنتيجة من A / D. القراءة من الساق المركزية مع جهاز القياس المتعدد الخاص بي هي 722 مللي فولت ، وهي قراءة أقل بكثير وثابتة جدًا.

هناك شيئان يمكننا تجربتهما. استبدل مقياس الجهد بـ TMP36 واضبط الجهد في الحساب على الجهد الفعلي للمتحكم الدقيق. سنرى بعد ذلك ما إذا كان الجهد المحسوب أقرب وما إذا تم تقليل الضوضاء / الارتعاش.

دعنا نقيس الجهد الفعلي المستخدم في المتحكم الدقيق و A / D. تم افتراض أن هذا هو 3.3v ولكنه في الواقع هو 3.275v فقط.

الخطوة 4: نتائج استبدال مقياس الجهد

نتائج استبدال مقياس الجهد
نتائج استبدال مقياس الجهد

هذا هو أفضل بكثير. القراءات في حدود بضع ملي فولت مع ضوضاء أقل بكثير. يشير هذا إلى أن الضوضاء من TMP36 بدلاً من A / D. القراءة على العداد ثابتة دائمًا - لا تزعج. (قد يعمل المقياس على "تمهيد" الإخراج المتقلب.)

قد تكون إحدى طرق تحسين الوضع هي أخذ قراءة متوسطة. خذ عشر قراءات بسرعة واستخدم المتوسط. سأحسب أيضًا الانحراف المعياري أثناء تغيير البرنامج ، لإعطاء إشارة إلى انتشار النتائج. سأحسب أيضًا عدد القراءات ضمن انحراف معياري واحد للمتوسط - كلما كان ذلك أعلى كان ذلك أفضل.

الخطوة 5: متوسط القراءات والنتيجة

متوسط القراءات والنتيجة
متوسط القراءات والنتيجة

لا يزال هناك قدر كبير من الضوضاء ولا تزال القراءة من TMP36 أعلى من مقياس الحرارة الزئبقي. لتقليل الضوضاء ، قمت بتضمين مكثف 100NF بين الإشارة و GND

ثم بحثت عن حلول أخرى على الإنترنت ووجدت هذه: https://www.doctormonk.com/2015/02/accurate-and-re… يقترح الدكتور مونك تضمين مقاومة 47 كيلو أوم بين الإشارة و GND.

www.desert-home.com/2015/03/battery-operate… بينما يقترح هذا الرجل فرز 15 قراءة بالترتيب وتحديد متوسط المركز 5.

لقد قمت بتعديل البرنامج النصي والدائرة لتضمين هذه الاقتراحات وتضمنت قراءة من مقياس الحرارة الزئبقي.

فى الاخير! الآن لدينا قراءات ثابتة في نطاق دقة وصف الجهاز.

كان هذا مجهودًا كبيرًا جدًا لتشغيل المستشعر الذي لا يحتوي إلا على دقة الشركة المصنعة لـ:

الدقة - الأعلى (الأدنى): ± 3 درجات مئوية (± 4 درجات مئوية) تكلفتها فقط حوالي 1.50 دولار (2 جنيه إسترليني)

الخطوة 6: DS18B20 - الاختبار الأولي

DS18B20 - الاختبار الأولي
DS18B20 - الاختبار الأولي

كن حذرا جدا. تبدو هذه الحزمة مشابهة جدًا لـ TMP36 لكن الأرجل في الاتجاه المعاكس مع 3.3 فولت على اليمين و GND على اليسار. إشارة الخروج في المركز. لكي يعمل هذا الجهاز ، نحتاج إلى مقاوم 4.7 كيلو أوم بين الإشارة و 3.3 فولت. يستخدم هذا الجهاز بروتوكول السلك الواحد ونحتاج إلى تنزيل اثنين من برامج التشغيل في مجلد lib الخاص بـ Itsybitsy M4 Express.

هذا يكلف حوالي 4 دولارات / 4 جنيهات إسترلينية المواصفات الفنية:

  • نطاق درجة الحرارة القابلة للاستخدام: -55 إلى 125 درجة مئوية (-67 درجة فهرنهايت إلى + 257 درجة فهرنهايت)
  • دقة اختيارية من 9 إلى 12 بت
  • يستخدم واجهة بسلك واحد - لا يتطلب سوى دبوسًا رقميًا واحدًا للاتصال
  • معرف 64 بت فريد تم حرقه في شريحة
  • يمكن لأجهزة الاستشعار المتعددة أن تشترك في دبوس واحد
  • دقة ± 0.5 درجة مئوية من -10 درجة مئوية إلى +85 درجة مئوية
  • نظام إنذار حد درجة الحرارة
  • وقت الاستعلام أقل من 750 مللي ثانية
  • يمكن استخدامه بقوة 3.0 فولت إلى 5.5 فولت

تكمن المشكلة الرئيسية في هذا المستشعر في أنه يستخدم واجهة Dallas 1-Wire ولا تحتوي كل وحدات التحكم الدقيقة على برنامج تشغيل مناسب. نحن محظوظون ، هناك سائق لـ Itsybitsy M4 Express.

الخطوة 7: DS18B20 يعمل بشكل جيد

DS18B20 يعمل بشكل جيد
DS18B20 يعمل بشكل جيد

هذا يظهر نتيجة رائعة.

مجموعة ثابتة من القراءات بدون أي عمل إضافي ونفقات حسابية. تقع القراءات ضمن نطاق الدقة المتوقع وهو ± 0.5 درجة مئوية عند مقارنتها بميزان الحرارة الزئبقي.

هناك أيضًا نسخة مقاومة للماء بحوالي 10 دولارات استخدمتها في الماضي بنجاح مماثل.

الخطوة 8: DHT22 و DHT11

DHT22 و DHT11
DHT22 و DHT11

يستخدم DHT22 مقاومًا حراريًا للحصول على درجة الحرارة ويكلف حوالي 10 دولارات / 10 جنيهات إسترلينية وهو الأخ الأكثر دقة والأكثر تكلفة من DHT11 الأصغر. كما أنه يستخدم واجهة من سلك واحد ولكنه غير متوافق مع بروتوكول دالاس المستخدم مع DS18B20. يستشعر الرطوبة وكذلك درجة الحرارة. تحتاج هذه الأجهزة أحيانًا إلى مقاومة سحب بين 3.3 فولت ودبوس الإشارة. هذه الحزمة بها واحدة مثبتة بالفعل.

  • منخفض الكلفة
  • من 3 إلى 5 فولت و I / O
  • 2.5mA أقصى استخدام حالي أثناء التحويل (أثناء طلب البيانات)
  • جيد لقراءات الرطوبة 0-100٪ بدقة 2-5٪
  • جيد لقراءات درجة حرارة -40 إلى 80 درجة مئوية دقة ± 0.5 درجة مئوية
  • معدل أخذ العينات لا يزيد عن 0.5 هرتز (مرة كل ثانيتين)
  • حجم الجسم 27 مم × 59 مم × 13.5 مم (1.05 بوصة × 2.32 بوصة × 0.53 بوصة)
  • 4 دبابيس ، تباعد 0.1 بوصة
  • الوزن (فقط DHT22): 2.4 جرام

مقارنةً بـ DHT11 ، يعد هذا المستشعر أكثر دقة وأكثر دقة ويعمل في نطاق أكبر من درجات الحرارة / الرطوبة ، ولكنه أكبر وأكثر تكلفة.

الخطوة 9: نتائج DHT22

نتائج DHT22
نتائج DHT22

هذه نتائج ممتازة مع القليل من الجهد. القراءات ثابتة جدًا وضمن التسامح المتوقع. قراءة الرطوبة مكافأة.

يمكنك فقط أن تأخذ قراءات كل ثانية.

الخطوة 10: اختبار DTH11

اختبار DTH11
اختبار DTH11

أظهر مقياس الحرارة الزئبقي الخاص بي 21.9 درجة مئوية. هذا هو DHT11 القديم جدًا الذي استرجعته من مشروع قديم وقيمة الرطوبة مختلفة تمامًا عن قراءات DHT22 منذ بضع دقائق. يكلف حوالي 5 دولارات / 5 جنيهات إسترلينية.

وصفه يشمل:

  • جيد لقراءات الرطوبة 20-80٪ بدقة 5٪
  • جيد لقراءات درجة الحرارة من 0-50 درجة مئوية بدقة ± 2 درجة مئوية - أقل من DTH22

يبدو أن درجة الحرارة لا تزال في نطاق الدقة ولكني لا أثق في قراءة الرطوبة من هذا الجهاز القديم.

الخطوة 11: BME680

BME680
BME680

يحتوي هذا المستشعر على إمكانيات استشعار درجة الحرارة والرطوبة والضغط الجوي واستشعار غاز المركبات العضوية المتطايرة في عبوة واحدة ولكنه أغلى أجهزة الاستشعار في الاختبار هنا. يكلف حوالي 18.50 جنيهًا إسترلينيًا / 22 دولارًا. يوجد منتج مشابه بدون مستشعر الغاز وهو أرخص قليلاً.

هذا هو مستشعر قياسي ذهبي للخمسة. مستشعر درجة الحرارة دقيق ، مع برامج تشغيل مناسبة ، سهل الاستخدام للغاية. يستخدم هذا الإصدار I2C ولكن يمكن أيضًا استخدام لوحة اندلاع Adafruit SPI.

مثل BME280 & BMP280 ، يمكن لمستشعر الدقة هذا من Bosch قياس الرطوبة بدقة ± 3٪ ، والضغط الجوي بدقة مطلقة ± 1 hPa ، ودرجة الحرارة بدقة ± 1.0 درجة مئوية. نظرًا لأن الضغط يتغير مع الارتفاع ، وقياسات الضغط جيدة جدًا ، يمكنك أيضًا استخدامه كمقياس ارتفاع يبلغ ± 1 متر أو دقة أفضل!

تشير الوثائق إلى أنها تحتاج إلى بعض "وقت الاحتراق" لمستشعر الغاز.

الخطوة 12: أيهما يجب أن أستخدمه؟

أي واحد يجب أن أستخدم؟
أي واحد يجب أن أستخدم؟
  • TMP36 رخيص جدًا وصغير وشائع ولكنه صعب الاستخدام وقد يكون غير دقيق.
  • DS18B20 صغير ودقيق ورخيص وسهل الاستخدام للغاية وله نسخة مقاومة للماء.
  • يشير DTH22 أيضًا إلى الرطوبة وسعره معتدل وسهل الاستخدام ولكنه قد يكون بطيئًا جدًا.
  • يقوم BME680 بعمل أكثر بكثير من الآخرين ولكنه غالي الثمن.

إذا كنت أريد درجة الحرارة فقط ، فسأستخدم DS18B20 بدقة ± 0.5 درجة مئوية ولكن المفضل لدي هو BME680 لأنه يفعل أكثر من ذلك بكثير ويمكن استخدامه في عدد كبير من المشاريع المختلفة.

فكرة واحدة أخيرة. تأكد من إبقاء مستشعر درجة الحرارة بعيدًا عن المعالج الدقيق. تسمح بعض قبعات Raspberry Pi للحرارة من اللوحة الرئيسية لتسخين المستشعر ، مما يعطي قراءة خاطئة.

الخطوة 13: مزيد من الأفكار والتجارب

مزيد من الأفكار والتجريب
مزيد من الأفكار والتجريب

شكراً لكم جاليفر وكريستيان سي ٢٣١ وباجاجين على تعليقاتكم على ما قمت به حتى الآن. أنا آسف للتأخير ولكني كنت في عطلة في أيرلندا ، دون الوصول إلى مجموعة الإلكترونيات الخاصة بي لبضعة أسابيع.

هذه هي المحاولة الأولى لإظهار عمل المستشعرات معًا.

لقد كتبت نصًا لقراءة المستشعرات بدورها وطباعة قيم درجة الحرارة كل 20 ثانية أو نحو ذلك.

أضع الطقم في الثلاجة لمدة ساعة لتبريد كل شيء. لقد قمت بتوصيله بجهاز الكمبيوتر وحصلت على Mu لطباعة النتائج. تم بعد ذلك نسخ الإخراج وتحويله إلى ملف.csv (متغيرات مفصولة بفواصل) ويتم رسم الرسوم البيانية من النتائج في Excel.

استغرق الأمر حوالي ثلاث دقائق من إخراج المجموعة من الثلاجة قبل تسجيل النتائج ، لذلك حدث بعض الارتفاع في درجة الحرارة في هذه الفترة. أظن أن أجهزة الاستشعار الأربعة لها قدرات حرارية مختلفة وبالتالي ستتم تسخينها بمعدلات مختلفة. من المتوقع أن ينخفض معدل الاحترار مع اقتراب أجهزة الاستشعار من درجة حرارة الغرفة. لقد سجلت هذا على أنه 24.4 درجة مئوية باستخدام مقياس الحرارة الزئبقي.

يمكن أن تكون الاختلافات الكبيرة في درجة الحرارة في بداية المنحنيات بسبب السعات الحرارية المختلفة لأجهزة الاستشعار. يسعدني أن أرى أن الخطوط تتقارب مع النهاية عندما تقترب من درجة حرارة الغرفة. أنا قلق من أن TMP36 دائمًا ما يكون أعلى بكثير من المستشعرات الأخرى.

لقد بحثت عن أوراق البيانات للتحقق مرة أخرى من الدقة الموصوفة لهذه الأجهزة

تمب 36

  • دقة ± 2 درجة مئوية على درجة الحرارة (النوع)
  • ± 0.5 درجة مئوية الخطي (النوع)

DS18B20

دقة ± 0.5 درجة مئوية من -10 درجة مئوية إلى +85 درجة مئوية

دهت 22

درجة الحرارة ± 0.5 درجة مئوية

BME680

درجة حرارة بدقة ± 1.0 درجة مئوية

الخطوة 14: رسم بياني كامل

رسم بياني كامل
رسم بياني كامل

يمكنك الآن أن ترى أن المستشعرات قد استقرت في النهاية واتفقت على درجة الحرارة بدرجة أو بأخرى ضمن دقتها الموصوفة. إذا تم إزالة 1.7 درجة من قيم TMP36 (يتوقع ± 2 درجة مئوية) ، فهناك اتفاق جيد بين جميع المستشعرات.

في المرة الأولى التي أجريت فيها هذه التجربة ، تسبب مستشعر 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: الاستنتاجات

الاستنتاجات
الاستنتاجات

يوضح هذا المنحنى بوضوح أن السعة الحرارية العالية لبعض أجهزة الاستشعار تزيد من وقت رد الفعل.

تسجل جميع المستشعرات درجات حرارة ترتفع وتنخفض.

فهي ليست سريعة جدًا في الاستقرار في درجة حرارة جديدة.

إنها ليست دقيقة للغاية. (هل هي جيدة بما يكفي لمحطة الطقس؟)

قد تحتاج إلى معايرة المستشعر مقابل مقياس حرارة موثوق به.

موصى به: