דלגו לתוכן המרכזי
KitLab
שיעור קודם
חיישן טמפרטורה ולחות DHT11· 15 / 41
חיישן טמפרטורה ולחות DHT11
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

חיישן טמפרטורה ולחות DHT11

מה בשיעור?

  • מדידת לחות בשיטה קיבולית
  • מדידת טמפרטורה בתרמיסטור NTC
  • מה הופך חיישן ל"דיגיטלי"
  • מגבלות הדיוק והמהירות
  • isnan ו-return — לטפל בקריאה שנכשלה

מה נלמד כאן

  • איך מודדים טמפרטורה ולחות
  • חיישן DHT11 ושתי שיטות המדידה שבתוכו
  • לקרוא שני ערכים ולהציג אותם
  • לטפל בקריאה שנכשלה

למה זה חשוב

טמפרטורה ולחות משפיעות עלינו כל הזמן: לחות גבוהה בקיץ מביאה עובש, אוויר יבש בחורף מייבש את העור. בחממות חקלאיות, במחסני מזון ובמעבדות — אלה הגורמים הקריטיים לגידול, לשימור ולדיוק.

ניטור סביבתי

כדי שמערכת חכמה "תחוש" את הסביבה, היא צריכה חיישן טמפרטורה ולחות — העיניים והאף שלה.


הידע שצריך

1. חיישן DHT11

DHT11 הוא חיישן דיגיטלי שמשלב שתי מדידות בגוף אחד: טמפרטורה ולחות.

חיישן ה-DHT11

ומה שמעניין בו הוא ששתי המדידות עובדות בשיטות שונות לגמרי.

מדידת לחות — קיבול

בתוך החיישן יש רכיב קיבולי עם חומר סופג מים. כשהלחות באוויר משתנה, הקיבול החשמלי של החומר משתנה איתה. השבב הפנימי ממיר את השינוי הזה למספר.

היחידה: %RH — לחות יחסית באחוזים.

מדידת טמפרטורה — תרמיסטור

עקרון המדידה

לטמפרטורה משתמשים בתרמיסטור NTC — נגד שההתנגדות שלו משתנה עם החום:

  • טמפרטורה עולההתנגדות יורדת
  • טמפרטורה יורדתהתנגדות עולה

מזכיר את הפוטו-רזיסטור משיעור 6? אותו רעיון בדיוק — נגד שמשתנה לפי תנאי הסביבה. שם זה היה אור, כאן זה חום.

וההבדל החשוב: בשיעור 6 היינו צריכים לבנות מחלק מתח ולקרוא ADC בעצמנו. כאן השבב עושה את זה בפנים ומוציא מספר מוכן. זה מה שהופך את החיישן ל"דיגיטלי".

2. המפרט — וגבולות הדיוק

פרמטר ערך
מתח עבודה 3.3-5.5V
טווח טמפרטורה ‎-20°C עד 60°C
טווח לחות 5% עד 95% RH
דיוק טמפרטורה ±2°C
דיוק לחות ±5% RH
יציבות ±1°C, ±1%RH לשנה

⚠️ שימו לב לדיוק. ±2 מעלות זה לא מדחום רפואי. ה-DHT11 מצוין לניטור סביבתי ולפרויקטים לימודיים, אבל אל תבנו עליו מערכת שדורשת מדידה מדויקת.

⚠️ והוא איטי. קריאה אחת לוקחת כ-250 מילי-שניות, והערך שמוחזר יכול להיות "ישן" בעד 2 שניות. לכן בקוד יש delay(2000)לא בגלל שרצינו, אלא בגלל שהחיישן דורש את זה.


הניסוי

המטרה: להציג טמפרטורה ולחות ב-Serial Monitor בזמן אמת.

רשימת רכיבים

הרכיב כמות
לוח ESP32 1
לוח ניסוי 400 נקודות 1
חיישן DHT11 1

התרשים החשמלי

התרשים החשמלי

החיבור

חיבור הרכיבים


הקוד

#include <DHT.h>

#define DHTPIN 5          // הפין שאליו מחובר החיישן
#define DHTTYPE DHT11     // דגם החיישן

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  Serial.println("DHT11 test!");
  dht.begin();
}

void loop() {
  delay(2000);            // החיישן איטי — חייבים להמתין בין מדידות

  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // בדיקה שהקריאה הצליחה
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" °C");
}

הקטע החשוב ביותר בקוד

if (isnan(humidity) || isnan(temperature)) {
  Serial.println("Failed to read from DHT sensor!");
  return;
}

isnan בודקת אם הערך הוא "לא מספר" (Not a Number) — כלומר הקריאה נכשלה. זה קורה: חוט רופף, תזמון לא מוצלח, רעש.

return יוצאת מהפונקציה מיד ומדלגת על שאר הקוד. בלי הבדיקה הזו, כישלון קריאה היה מדפיס nan או מספר שטותי — ואם היה מחובר לזה מנגנון החלטה, הוא היה מקבל החלטה על סמך זבל.

זה הרגל שכדאי לאמץ מעכשיו: כל קריאה מחיישן יכולה להיכשל. תבדקו. זו ההבדל בין קוד הדגמה לקוד שעובד באמת.

מה אמור לקרות

הפלט ב-Serial Monitor


הפקודות שלמדנו

הפקודה מה היא עושה
#include <DHT.h> מייבאת את הספרייה
DHT dht(pin, type) יוצרת אובייקט חיישן
dht.begin() מאתחלת אותו
dht.readHumidity() לחות ב-%RH
dht.readTemperature() טמפרטורה ב-°C (או true לפרנהייט)
isnan(value) בודקת אם הקריאה נכשלה

נסו בעצמכם

  • נשפו על החיישן. מה קורה ללחות, וכמה זמן לוקח לה לחזור?
  • השוו למדחום אמיתי. כמה הפער, והאם הוא בתוך ±2 המעלות?
  • הורידו את ה-delay(2000) ל-100. כמה קריאות נכשלות עכשיו?
  • שלבו עם שיעור 8: אזעקה כשהטמפרטורה חורגת.
  • הוסיפו dht.readTemperature(true) והדפיסו גם בפרנהייט.

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

נשלח למייל את קובצי הקוד, החומרים ועדכונים על שיעורים חדשים. בלי ספאם.