דלגו לתוכן המרכזי
KitLab

חיישן טמפרטורה ולחות DHT11 לארדואינו: מדריך מקיף ליישום ופיתוח

חיישן טמפרטורה ולחות DHT11 לארדואינו: מדריך מקיף ליישום ופיתוח

בעולם האלקטרוניקה המודרנית ובתחום האינטרנט של הדברים (IoT), היכולת למדוד ולנטר נתוני סביבה מהווה אבן יסוד לפרויקטים רבים. בין הרכיבים הנפוצים והנגישים ביותר למשימה זו נמצא חיישן טמפרטורה ולחות DHT11 לארדואינו. חיישן זה, בשילוב עם בקר הארדואינו הפופולרי, מאפשר למפתחים וחובבים כאחד לבנות מערכות ניטור סביבתיות בקלות וביעילות. מאמר זה יספק מדריך מעמיק ומפורט לשימוש בחיישן ה-DHT11, החל מהבנת עקרונות פעולתו, דרך חיבורו הפיזי ותכנותו, ועד ליישומים מעשיים.

הבנת חיישן ה-DHT11: עקרונות פעולה ונתונים טכניים

ה-DHT11 הוא חיישן דיגיטלי ללחות וטמפרטורה, המשלב בתוכו חיישן לחות התנגדותי (resistive humidity sensor) ותרמיסטור (NTC thermistor) למדידת טמפרטורה. רכיבים אלו פועלים בשילוב עם מיקרו-בקר פנימי הממיר את המדידות האנלוגיות לפורמט דיגיטלי, ומאפשר תקשורת פשוטה עם בקר חיצוני כמו הארדואינו באמצעות פרוטוקול תקשורת טורי ייחודי, המשתמש בקו נתונים יחיד.

מהו חיישן DHT11?

ה-DHT11 הוא רכיב המיועד למדידת תנאי סביבה בסיסיים. הוא פופולרי בזכות מחירו הנמוך, קלות השימוש שלו, והעובדה שהוא דורש רק פין נתונים אחד לתקשורת. הוא מגיע בדרך כלל במארז בעל 4 פינים, כאשר גרסאות מסוימות מגיעות עם 3 פינים כאשר נגד משיכה (pull-up resistor) מובנה על המודול. חיישן זה מתאים במיוחד לפרויקטים שאינם דורשים דיוק אבסולוטי או קצב דגימה גבוה במיוחד, אך כן זקוקים לנתוני טמפרטורה ולחות כלליים.

מפרט טכני מרכזי

על מנת להבין את יכולותיו ומגבלותיו של ה-DHT11, חשוב להכיר את מפרטיו הטכניים:

  • מתח עבודה: 3.3V עד 5.5V. (בדרך כלל 5V עם ארדואינו).
  • צריכת זרם: 0.5mA במצב המתנה, 2.5mA בזמן המדידה.
  • טווח מדידת לחות: 20% עד 90% RH (לחות יחסית).
  • דיוק מדידת לחות: ±5% RH.
  • טווח מדידת טמפרטורה: 0°C עד 50°C.
  • דיוק מדידת טמפרטורה: ±2°C.
  • קצב דגימה: מדידה אחת לשנייה (1Hz) לכל היותר.
  • פינים: VCC (מתח), Data (נתונים), GND (הארקה). לעיתים קרובות יש פין נוסף שאינו בשימוש.

חשוב לציין כי קיימים חיישנים מדויקים יותר, כגון ה-DHT22 (המכונה גם AM2302), המציעים טווחי מדידה רחבים יותר ודיוק גבוה יותר, אך גם בעלות גבוהה יותר. עבור רוב היישומים הכלליים, ה-DHT11 מספק נתונים מספקים.

חיווט וחיבור ה-DHT11 לארדואינו

חיבור ה-DHT11 לארדואינו הוא תהליך פשוט יחסית. יש להקפיד על חיבור נכון של הפינים כדי להבטיח תקשורת תקינה ופעולה יציבה של החיישן.

רכיבים נדרשים

לצורך חיבור ה-DHT11, אלו הרכיבים שיידרשו:

  1. בקר ארדואינו: מכל סוג (Uno, Nano, Mega וכו').
  2. חיישן DHT11: רצוי מודול עם נגד משיכה מובנה לנוחות מרבית.
  3. חוטי גישור (Jumper Wires): לחיבור הרכיבים.
  4. נגד 10K אוהם (אופציונלי): אם החיישן אינו מגיע עם נגד משיכה מובנה.

תרשים חיבורים מפורט

החיישן DHT11 כולל שלושה פינים עיקריים לחיבור (או ארבעה, כאשר אחד מהם אינו בשימוש). הבה נבחן את תהליך החיווט:

  1. פין VCC (מתח): חברו פין זה לפין 5V בארדואינו.
  2. פין Data (נתונים): חברו פין זה לאחד מהפינים הדיגיטליים בארדואינו. לדוגמה, פין 2.
    • נגד משיכה (Pull-up Resistor): אם החיישן שלכם אינו מודול עם נגד משיכה מובנה, יש לחבר נגד 10K אוהם בין פין ה-Data לפין ה-VCC (5V). נגד זה מבטיח שהאות בקו הנתונים יהיה יציב וברור כאשר החיישן אינו משדר.
  3. פין GND (הארקה): חברו פין זה לפין GND בארדואינו.

דוגמה לחיבור (פין Data לפין דיגיטלי 2 בארדואינו):

  • DHT11 VCC -> Arduino 5V
  • DHT11 Data -> Arduino Digital Pin 2
  • DHT11 GND -> Arduino GND
  • (אופציונלי) נגד 10K -> בין DHT11 Data ל-DHT11 VCC

תכנות הארדואינו לקריאת נתונים מה-DHT11

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

התקנת ספריית DHT

הדרך הקלה ביותר לעבוד עם ה-DHT11 היא באמצעות ספריית "DHT sensor library by Adafruit".

  1. פתיחת Arduino IDE: פתחו את סביבת הפיתוח של הארדואינו.
  2. מנהל ספריות: לכו לתפריט Sketch -> Include Library -> Manage Libraries....
  3. חיפוש והתקנה: בחלון "Library Manager", חפשו "DHT sensor library". מצאו את הספרייה של Adafruit והתקינו אותה.
  4. התקנת ספריית חיישן: ספריית ה-DHT של Adafruit מסתמכת על ספריית Adafruit Unified Sensor. אם עדיין לא מותקנת, חפשו והתקינו גם אותה באותו אופן.

קוד לדוגמה לקריאת טמפרטורה ולחות

להלן קוד לדוגמה המדגים כיצד לקרוא נתונים מחיישן טמפרטורה ארדואינו וחיישן לחות ארדואינו מסוג DHT11 ולהציג אותם ב-Serial Monitor.

#include "DHT.h" // כולל את ספריית ה-DHT

#define DHTPIN 2     // פין דיגיטלי שאליו מחובר ה-DHT11
#define DHTTYPE DHT11 // סוג החיישן: DHT11

DHT dht(DHTPIN, DHTTYPE); // יצירת אובייקט DHT

void setup() {
  Serial.begin(9600); // אתחול התקשורת הטורית
  Serial.println(F("DHT11 Test!")); // הדפסת הודעת התחלה

  dht.begin(); // אתחול החיישן
}

void loop() {
  // קריאת נתונים מהחיישן דורשת זמן, אין לקרוא בתדירות גבוהה מדי.
  // ה-DHT11 יכול לקרוא רק פעם בשנייה.
  delay(2000); // המתן 2 שניות בין קריאות

  // קריאת לחות
  float h = dht.readHumidity();
  // קריאת טמפרטורה בצלזיוס
  float t = dht.readTemperature();
  // קריאת טמפרטורה בפרנהייט (לא חובה)
  float f = dht.readTemperature(true);

  // בדיקה אם הקריאות נכשלו, יש לחזור ללולאה
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  // חישוב מדד חום (Heat Index) בפרנהייט וצלזיוס
  float hif = dht.computeHeatIndex(f, h);
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));
}

הסבר על הקוד:

  • #include "DHT.h": מייבא את ספריית ה-DHT.
  • #define DHTPIN 2: מגדיר את הפין הדיגיטלי שאליו החיישן מחובר.
  • #define DHTTYPE DHT11: מגדיר את סוג החיישן.
  • DHT dht(DHTPIN, DHTTYPE);: יוצר אובייקט של החיישן, איתו נתקשר.
  • setup(): מאתחל את התקשורת הטורית ואת החיישן.
  • loop(): זו הלולאה הראשית.
    • delay(2000);: ממתין 2 שניות בין קריאה לקריאה. חשוב לציית למגבלת קצב הדגימה של ה-DHT11.
    • dht.readHumidity(); ו-dht.readTemperature();: פונקציות אלו קוראות את נתוני הלחות והטמפרטורה בהתאמה.
    • isnan(): פונקציה זו בודקת אם הקריאה נכשלה (לדוגמה, עקב בעיות תקשורת). במקרה כזה, היא מדפיסה הודעת שגיאה.
    • הדפסת הנתונים: הנתונים המעודכנים מודפסים ל-Serial Monitor.

הבנת נתוני החיישן וכיצד לפרש אותם

לאחר שהצלחנו לקרוא נתונים מה-DHT11, חשוב להבין את המשמעות שלהם ואת המגבלות של החיישן.

דיוק ומגבלות ה-DHT11

ה-DHT11 הוא חיישן ברמת כניסה, ובהתאם לכך, הדיוק שלו מוגבל. טווח הדיוק של הטמפרטורה הוא ±2°C ושל הלחות הוא ±5% RH. משמעות הדבר היא שקריאה של 25°C יכולה בפועל להיות בין 23°C ל-27°C, וקריאה של 60% לחות יכולה להיות בין 55% ל-65%. עבור יישומים כמו ניטור סביבה כללי בבית או בגינה, דיוק זה מספק בהחלט. עם זאת, עבור יישומים תעשייתיים, רפואיים או מדעיים הדורשים דיוק גבוה יותר, יהיה צורך לשקול חיישנים מתקדמים יותר כמו DHT22, BME280 או SHT31.

נקודה נוספת היא קצב הדגימה, העומד על 1Hz (קריאה אחת לשנייה). ניסיון לדגום מהר יותר יוביל לקריאות שגויות או לא יציבות.

טיפים לכיול וייצוב קריאות

למרות מגבלות הדיוק, ניתן לשפר את איכות הנתונים המתקבלים מה-DHT11:

  1. מיקום החיישן: ודאו שהחיישן ממוקם באזור המייצג את הסביבה אותה אתם רוצים למדוד. הימנעו ממקומות עם זרימת אוויר חזקה, קרינת שמש ישירה, או קרבה למקורות חום/קור קיצוניים.
  2. ממוצע קריאות: במקום להסתמך על קריאה בודדת, קחו מספר קריאות עוקבות (לדוגמה, 5-10 קריאות) וחשבו את הממוצע שלהן. זה יכול להפחית רעשים בקריאות ולספק נתון יציב יותר.
  3. המתנה בין קריאות: הקפידו על השהייה מספקת (לפחות 2 שניות) בין קריאה לקריאה כדי לאפשר לחיישן להתייצב ולבצע מדידה מדויקת.

יישומים מעשיים של חיישן DHT11 עם ארדואינו

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

דוגמאות לפרויקטים

  1. תחנת מזג אוויר ביתית: פרויקט קלאסי המשתמש ב-DHT11 למדידת טמפרטורה ולחות, בשילוב עם חיישני לחץ ברומטרי (כמו BMP180) וחיישני גשם. הנתונים יכולים להיות מוצגים על מסך LCD או נשלחים לענן. לדוגמה, חובבים רבים מדווחים על בניית תחנות מזג אוויר ביתיות בעלות של כ-150-200 ש"ח, המספקות נתונים אמינים למטרות אישיות.
  2. מערכת ניטור חממה: חקלאים קטנים וחובבי גינון יכולים להשתמש ב-DHT11 לניטור מתמיד של התנאים בתוך חממה. ניתן לתכנת את הארדואינו להפעיל מאווררים כאשר הטמפרטורה עולה מעל סף מסוים (לדוגמה, 30°C) או מערכות השקיה כאשר הלחות יורדת מתחת לסף (לדוגמה, 50% RH), ובכך לייעל את הגידולים ולחסוך במשאבים.
  3. מד לחות וטמפרטורה לחדר תינוק/מבוגר: יצירת צג פשוט המציג את תנאי האקלים בחדר, עם התראות קוליות או ויזואליות במקרה של חריגה מטמפרטורה או לחות רצויים. פרויקט כזה יכול לספק שקט נפשי להורים או למטפלים.
  4. מערכת בקרה למערכות HVAC פשוטות: עבור יישומים שאינם דורשים דיוק גבוה במיוחד, ניתן להשתמש ב-DHT11 לבקרת מערכות חימום, אוורור ומיזוג אוויר פשוטות, לדוגמה, הפעלה אוטומטית של מזגן קטן או מפזר חום על בסיס טמפרטורה מוגדרת.

סיכום

ה-DHT11 הוא חיישן טמפרטורה ולחות פופולרי ונגיש, המהווה נקודת התחלה מצוינת לכל מי שמעוניין להיכנס לעולם האלקטרוניקה וה-IoT עם ארדואינו. על אף מגבלות הדיוק וקצב הדגימה שלו, קלות השימוש והעלות הנמוכה הופכות אותו לבחירה אידיאלית למגוון רחב של פרויקטים חינוכיים, תחביביים ואף יישומים ביתיים. עם ההבנה הנכונה של עקרונות פעולתו, שיטות החיבור והתכנות, כל אחד יכול לרתום את יכולותיו של ה-DHT11 לבניית מערכות ניטור ובקרה חכמות.

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

קיטלאב הינה מומחית במוצרי ארדואינו, מיקרוביט ו esp32 , לתיאום הזמנות או הדרכות ניתן ליצור קשר בטלפון 052-2586973.

המידע במאמר זה הינו כללי בלבד ואינו מהווה תחליף לייעוץ רפואי מקצועי ואישי.

שאלות נפוצות

מהו חיישן DHT11 ומהם יתרונותיו העיקריים?

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

מהם המפרטים הטכניים המרכזיים של חיישן DHT11?

ה-DHT11 פועל במתח של 3.3V עד 5.5V, וצורך 0.5mA במצב המתנה ו-2.5mA בזמן מדידה. טווח מדידת הלחות שלו הוא 20% עד 90% RH בדיוק של ±5% RH, וטווח מדידת הטמפרטורה הוא 0°C עד 50°C בדיוק של ±2°C. קצב הדגימה המרבי שלו הוא מדידה אחת לשנייה (1Hz).

כיצד מחברים את חיישן ה-DHT11 לבקר ארדואינו?

חיבור ה-DHT11 לארדואינו פשוט: פין VCC מתחבר ל-5V בארדואינו, פין GND מתחבר ל-GND בארדואינו, ופין ה-Data מתחבר לפין דיגיטלי בארדואינו (לדוגמה, פין 2). אם החיישן אינו מודול עם נגד משיכה מובנה, יש לחבר נגד 10K אוהם בין פין ה-Data לפין ה-VCC כדי לייצב את האות.

איזו ספרייה נדרשת לתכנות הארדואינו לקריאת נתונים מה-DHT11 וכיצד מתקינים אותה?

כדי לתקשר עם ה-DHT11, יש להשתמש בספריית "DHT sensor library by Adafruit". ניתן להתקין אותה דרך מנהל הספריות ב-Arduino IDE (Sketch -> Include Library -> Manage Libraries...). בנוסף, יש להתקין גם את ספריית Adafruit Unified Sensor, עליה ספריית ה-DHT מסתמכת.

אילו יישומים מעשיים ניתן לבנות באמצעות חיישן DHT11 ובקר ארדואינו?

השילוב של DHT11 וארדואינו מאפשר מגוון פרויקטים, כגון בניית תחנת מזג אוויר ביתית למדידת טמפרטורה ולחות, מערכת ניטור ובקרה לחממות (להפעלת מאווררים או השקיה), מד לחות וטמפרטורה לחדר תינוק עם התראות, ואף מערכות בקרה פשוטות למערכות HVAC שאינן דורשות דיוק גבוה במיוחד.