תוכן עניינים:
- אספקה
- שלב 1: מעגלים
- שלב 2: שיטה
- שלב 3: TMP36 - ניסיון ראשוני
- שלב 4: תוצאות החלפת פוטנציומטר
- שלב 5: ממוצע קריאות ותוצאה
- שלב 6: DS18B20 - בדיקה ראשונית
- שלב 7: DS18B20 עובד היטב
- שלב 8: DHT22 ו- DHT11
- שלב 9: תוצאות DHT22
- שלב 10: מבחן DTH11
- שלב 11: BME680
- שלב 12: באיזה מהם עלי להשתמש?
- שלב 13: מחשבות והתנסות נוספות
- שלב 14: גרף מלא
- שלב 15: מסקנות
וִידֵאוֹ: בדיקת חיישני טמפרטורה - איזה מהם בשבילי ?: 15 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
אחד החיישנים הראשונים שחדשים למחשוב פיזי רוצים לנסות הוא משהו למדידת הטמפרטורה. ארבעה מהחיישנים הפופולריים ביותר הם ה- TMP36, בעל הפלט אנלוגי וזקוק לממיר אנלוגי לדיגיטלי, DS18B20, המשתמש בקישוריות חד-חוטית, ה- DHT22 או ה- DHT11 הזול מעט, שזקוק רק לסיכה דיגיטלית, אך גם מספק קריאת לחות, ולבסוף BME680 המשתמש ב- I2C (עם SPI גם בכמה לוחות פריצה) ונותן טמפרטורה, לחות, גז (VOC) ולחץ אטמוספרי אך עולה קצת יותר.
אני רוצה לראות עד כמה הם מדויקים ולגלות יתרונות או חסרונות. ברשותי כבר מד חום כספית מדויק, שנותר מהדפסה הצילומית בצבע עוד בימי העיבוד הכימי, להשוות ביניהם. (לעולם אל תזרוק שום דבר - תצטרך את זה מאוחר יותר!)
אני הולך להשתמש ב- CircuitPython ולוח פיתוח של Adafruit Itsybitsy M4 עבור בדיקות אלה. מנהלי התקנים מתאימים זמינים לכל המכשירים.
אספקה
הרשימה הראשונית שלי:
- מיקרו -בקר Itsybitsy M4 Express
- כבל מיקרו USB - לתכנות
- TMP36
- DS18B20
- נגד 4.7K אוהם
- DHT22
- BME680
- רב מטר
- לוח לחם או לוח רצועות
- חיבור חוט
שלב 1: מעגלים
החוטים הכתומים הם 3.3 וולט
החוטים השחורים הם 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 אוהם הוא pullup של אות ל 3.3v לחיבור 0-חוט על DS18B20.
בחלק האחורי של הלוח יש 2 מסלולים חתוכים:
מתחת לקצה השמאלי של החוטים הוורודים והלבנים. (מתחת לחוט הצהוב.)
שלב 2: שיטה
עבור כל חיישן אכתוב סקריפט קצר לקריאת הטמפרטורה (ופריטים אחרים אם קיימים) מספר פעמים ובודק את הטמפרטורה מול מדחום הכספית (Hg) שלי. אני אחפש לראות עד כמה הטמפרטורה משתווה לקריאת הכספית ואם הקריאות יציבות/עקביות.
אני אסתכל גם בתיעוד כדי לראות אם הקריאות מתאימות לדיוק הצפוי ואם יש משהו שניתן לעשות כדי לבצע שיפורים.
שלב 3: TMP36 - ניסיון ראשוני
רגל שמאל היא 3.3v, רגל ימין היא GND והרגל המרכזית היא מתח אנלוגי המייצג את הטמפרטורה באמצעות הנוסחה הבאה. TempC = (מיליוולט - 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 k Ohm בין אות ל- GND.
www.desert-home.com/2015/03/battery-operate… בעוד שהבחור הזה מציע למיין 15 קריאות לפי סדר וממוצע המרכז 5.
שיניתי את התסריט ואת המעגל כך שיכללו את ההצעות האלה וכלל קריאה ממדחום הכספית.
לבסוף! כעת יש לנו קריאות קבועות בטווח הדיוק של תיאור המכשיר.
זה היה די הרבה מאמץ לגרום לחיישן לפעול שיש לו רק דיוק של היצרן של:
דיוק - הגבוה ביותר (הנמוך ביותר): ± 3 ° C (± 4 ° C) הם עולים רק כ $ 1.50 (£ 2)
שלב 6: DS18B20 - בדיקה ראשונית
תהיה מאוד זהיר. חבילה זו נראית מאוד דומה ל- TMP36 אך הרגליים הפוכות עם 3.3v מימין ו- GND משמאל. האות החוצה נמצא במרכז. על מנת לגרום למכשיר זה לפעול אנו זקוקים לנגד 4.7 קילו -אוהם בין האות ל -3.3 וולט. מכשיר זה משתמש בפרוטוקול חד-חוטי ואנו צריכים להוריד כמה מנהלי התקנים לתיקיית lib של ה- Itsybitsy M4 Express.
זה עולה בערך $ 4 / £ 4 מפרט טכני:
- טווח טמפרטורות שמיש: -55 עד 125 ° C (-67 ° F עד +257 ° F)
- רזולוציה לבחירה של 9 עד 12 ביט
- משתמש בממשק 1 -Wire - דורש רק סיכה דיגיטלית אחת לתקשורת
- מזהה ייחודי של 64 סיביות שנצרב בשבב
- חיישנים מרובים יכולים לחלוק סיכה אחת
- ± 0.5 ° C דיוק מ -10 ° C עד +85 ° C.
- מערכת אזעקה מוגבלת טמפרטורה
- זמן השאילתה הוא פחות מ- 750ms
- ניתן לשימוש עם הספק של 3.0V עד 5.5V
הבעיה העיקרית בחיישן זה היא שהוא משתמש בממשק 1-Wire של דאלאס ולא לכל בקרי המיקרו יש מנהל התקן מתאים. יש לנו מזל, יש נהג ל- Itsybitsy M4 Express.
שלב 7: DS18B20 עובד היטב
זה מראה תוצאה נהדרת.
מערך קריאות קבוע ללא תקורות עבודה וחישוב נוספות. הקריאות נמצאות בטווח הדיוק הצפוי של ± 0.5 מעלות צלזיוס בהשוואה למדחום הכספית שלי.
יש גם גרסה עמידה למים בסביבות 10 $ בה השתמשתי בעבר בהצלחה שווה.
שלב 8: DHT22 ו- DHT11
ה- DHT22 משתמש בטרמיסטור כדי להשיג את הטמפרטורה ועולה כ- $ 10 / £ והוא האח המדויק והיקר יותר של ה- DHT11 הקטן יותר. הוא משתמש גם בממשק בעל חוט אחד אך אינו תואם את פרוטוקול דאלאס המשמש את DS18B20. הוא מרגיש לחות כמו גם טמפרטורה. התקנים אלה זקוקים לפעמים לנגד משיכה בין 3.3 וולט לבין סיכת האות. חבילה זו כבר מותקנת.
- זול
- הספק של 3 עד 5V וקלט/פלט
- שימוש מקסימלי 2.5mA בזמן ההמרה (תוך בקשת נתונים)
- טוב לקריאות לחות של 0-100% עם דיוק של 2-5%
- טוב לקריאות טמפרטורה של -40 עד 80 מעלות צלזיוס ± 0.5 מעלות צלזיוס דיוק
- קצב דגימה לא יותר מ 0.5 הרץ (אחת לשתי שניות)
- גודל גוף 27mm x 59mm x 13.5mm (1.05 "x 2.32" x 0.53 ")
- 4 סיכות, מרווח של 0.1 אינץ '
- משקל (רק DHT22): 2.4 גרם
בהשוואה ל- DHT11, חיישן זה מדויק יותר, מדויק יותר ועובד בטווח טמפרטורות/לחות גדול יותר, אך הוא גדול ויקר יותר.
שלב 9: תוצאות DHT22
אלו תוצאות מצוינות עם מעט מאוד מאמץ. הקריאות די יציבות ובתוך הסובלנות הצפויה. קריאת הלחות היא בונוס.
אתה יכול לבצע קריאות רק כל שנייה.
שלב 10: מבחן DTH11
מדחום הכספית שלי הראה 21.9 מעלות צלזיוס. זהו DHT11 די ישן שחזרתי מפרוייקט ישן וערך הלחות שונה מאוד מקריאות DHT22 מלפני מספר דקות. זה עולה בערך 5 $ / 5 £.
התיאור שלה כולל:
- טוב לקריאות לחות של 20-80% עם דיוק של 5%
- טוב לקריאות טמפרטורה 0-50 ° C ± 2 ° C דיוק - פחות מה- DTH22
נראה שהטמפרטורה עדיין נמצאת בטווח הדיוק אך אינני סומך על קריאת הלחות מהמכשיר הישן הזה.
שלב 11: BME680
חיישן זה מכיל טמפרטורה, לחות, לחץ ברומטרי ויכולות חישת גז VOC באריזה אחת אך הוא היקר ביותר מבין החיישנים הנבדקים כאן. זה עולה בערך 18.50 פאונד / 22 $. יש מוצר דומה ללא חיישן הגז שהוא קצת יותר זול.
זהו חיישן סטנדרטי מזהב של החמישה. חיישן הטמפרטורה מדויק, ועם מנהלי התקנים מתאימים, קל מאוד לשימוש. גרסה זו משתמשת ב- I2C אך לוח הפריצה של Adafruit יכול להשתמש גם ב- SPI.
בדומה ל- BME280 & BMP280, חיישן דיוק זה של בוש יכול למדוד לחות עם ± 3% דיוק, לחץ ברומטרי עם דיוק מוחלט של 1 hPa וטמפרטורה עם דיוק של ± 1.0 ° C. מכיוון שהלחץ משתנה עם הגובה, ומדידות הלחץ כל כך טובות, אתה יכול להשתמש בו גם כמד גובה עם ± 1 מטר או דיוק טוב יותר!
התיעוד אומר שהוא צריך קצת זמן צריבה לחיישן הגז.
שלב 12: באיזה מהם עלי להשתמש?
- ה- TMP36 זול מאוד, קטן ופופולרי אך די קשה לשימוש ועשוי להיות לא מדויק.
- ה- DS18B20 קטן, מדויק, זול, קל מאוד לשימוש ובעל גרסה עמידה במים.
- ה- DTH22 מציין גם לחות, מחירו בינוני וקל לשימוש אך עשוי להיות איטי מדי.
- ה- BME680 עושה הרבה יותר מהאחרים אך הוא יקר.
אם אני רק רוצה טמפרטורה הייתי משתמש ב- DS18B20 עם דיוק של ± 0.5 ° C אבל המועדף עלי הוא BME680 מכיוון שהוא עושה הרבה יותר וניתן להשתמש בו במספר רב של פרויקטים שונים.
מחשבה אחת אחרונה. הקפד להרחיק את חיישן הטמפרטורה שלך מהמיקרו -מעבד. כמה כובעי Raspberry Pi מאפשרים לחום מהלוח הראשי לחמם את החיישן, מה שמקנה קריאת שווא.
שלב 13: מחשבות והתנסות נוספות
תודה gulliverrr, ChristianC231 ו- pgagen על ההערות שלך על מה שעשיתי עד כה. אני מצטער על העיכוב אבל הייתי בחופשה באירלנד, ללא גישה לערכת האלקטרוניקה שלי במשך כמה שבועות.
להלן ניסיון ראשון להראות את החיישנים העובדים יחד.
כתבתי תסריט לקרוא את החיישנים בתורו ולהדפיס את ערכי הטמפרטורה כל 20 שניות בערך.
הכנסתי את הערכה למקרר למשך שעה, כדי לצנן הכל. חיברתי אותו למחשב האישי וגרמתי למו להדפיס את התוצאות. הפלט הועתק לאחר מכן והפך לקובץ.csv (משתנים המופרדים בפסיקים) וגרפים מציירים מהתוצאות ב- Excel.
עברו כשלוש דקות מהוצאת הערכה מהמקרר עד שנרשמו תוצאות, כך שחלה עלייה מסוימת בטמפרטורה במרווח זה. אני חושד שלארבעת החיישנים יש יכולות תרמיות שונות ולכן הם יתחממו בקצב שונה. קצב ההתחממות צפוי לרדת כאשר החיישנים מתקרבים לטמפרטורת החדר. רשמתי את זה כ- 24.4 מעלות צלזיוס בעזרת מדחום הכספית שלי.
ההבדלים הרחבים בטמפרטורה בתחילת הקימורים עשויים לנבוע מהיכולות התרמיות השונות של החיישנים. אני שמח לראות שהקווים מתכנסים לקראת הסוף כשהם מתקרבים לטמפרטורת החדר. אני מודאג מכך שה- TMP36 תמיד גבוה בהרבה מהחיישנים האחרים.
חיפשתי את גליונות הנתונים כדי לבדוק שוב את הדיוק המתואר של מכשירים אלה
TMP36
- ± 2 ° C דיוק מעל הטמפרטורה (הקלדה)
- לינאריות ± 0.5 ° C (טיפוס)
DS18B20
± 0.5 ° C דיוק מ -10 ° C עד +85 ° C
DHT22
טמפרטורה ± 0.5 מעלות צלזיוס
BME680
טמפרטורה עם ± 1.0 ° C דיוק
שלב 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, in
הקובץ "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: מסקנות
עקומה זו מראה בבירור שהקיבולת התרמית הגבוהה יותר של חלק מהחיישנים מגדילה את זמן התגובה שלהם.
כל החיישנים רושמים טמפרטורות שעולות ויורדות.
הם לא ממהרים להסתפק בטמפרטורה חדשה.
הם לא מדויקים במיוחד. (האם הם מספיק טובים לתחנת מזג אוויר?)
ייתכן שיהיה עליך לכייל את החיישן מול מדחום מהימן.
מוּמלָץ:
תחילת העבודה עם חיישני טמפרטורה ורטט אלחוטיים לטווח ארוך: 7 שלבים
תחילת העבודה עם חיישני טמפרטורה ורטט אלחוטיים לטווח ארוך: לפעמים רעידות הן הגורם לבעיות חמורות ביישומים רבים. החל מפירים וממסבים ועד לביצועי הדיסק הקשיח, רעידות גורמות לנזק למכונה, החלפה מוקדמת, ביצועים נמוכים וגורמת לפגיעה משמעותית בדיוק. מעקב
TouchFree: בדיקת טמפרטורה אוטומטית וקיוסק זיהוי מסכות: 5 שלבים
TouchFree: בדיקת טמפרטורה אוטומטית וקיוסק גילוי מסכות: ככל שמדינות ברחבי העולם נפתחות מחדש, החיים עם וירוס הקורונה הופכים לדרך חיים חדשה. אך כדי לעצור את התפשטות הנגיף עלינו להפריד בין אנשים הסובלים מנגיף הקורונה מהשאר. על פי ה- CDC, חום הוא ה
רשת חיישני טמפרטורה: 6 שלבים
רשת חיישני טמפרטורה: טמפרטורה ולחות הם נתונים חיוניים במעבדה, במטבח, בקו הייצור, במשרד, ברובוטים הרוצחים ואפילו בבית שלך. אם אתה צריך לפקח על מספר מיקומים או חדרים או חללים אתה צריך משהו אמין, קומפקטי, מדויק ותוך
מדחום בישול טמפרטורת בדיקת טמפרטורה ESP32 NTP עם תיקון Steinhart-Hart והתראת טמפרטורה .: 7 שלבים (עם תמונות)
מדחום בישול טמפרטורת בדיקת טמפרטורה ESP32 NTP עם תיקון Steinhart-Hart והתראת טמפרטורה .: עדיין במסע להשלמת " פרויקט הקרוב ", " ESP32 NTP טמפרטורת בדיקת טמפרטורה מד חום עם תיקון Steinhart-Hart והתראת טמפרטורה " הוא מדריך המראה כיצד אני מוסיף בדיקת טמפרטורה של NTP, piezo b
Arduino Nano ושני חיישני טמפרטורה DS18B20 עם I2C LCD: 5 שלבים
Arduino Nano ושני חיישני טמפרטורה DS18B20 עם I2C LCD: היום אני רוצה להראות לך כיצד להכין שני חיישני טמפרטורה DS18B20 עם Arduino Nano Clone ו- I2C LCD. // Dnes bych vam chtel ukazat, jak zprovoznit dve teplotni cidla DS18B20 s Arduino Nano klonem אני משתמש ב- Arduino IDE 1.8.8 // Pouziv