בעולם האלקטרוניקה המודרנית ובתחום האינטרנט של הדברים (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, אלו הרכיבים שיידרשו:
- בקר ארדואינו: מכל סוג (Uno, Nano, Mega וכו').
- חיישן DHT11: רצוי מודול עם נגד משיכה מובנה לנוחות מרבית.
- חוטי גישור (Jumper Wires): לחיבור הרכיבים.
- נגד 10K אוהם (אופציונלי): אם החיישן אינו מגיע עם נגד משיכה מובנה.
תרשים חיבורים מפורט
החיישן DHT11 כולל שלושה פינים עיקריים לחיבור (או ארבעה, כאשר אחד מהם אינו בשימוש). הבה נבחן את תהליך החיווט:
- פין VCC (מתח): חברו פין זה לפין 5V בארדואינו.
- פין Data (נתונים): חברו פין זה לאחד מהפינים הדיגיטליים בארדואינו. לדוגמה, פין 2.
- נגד משיכה (Pull-up Resistor): אם החיישן שלכם אינו מודול עם נגד משיכה מובנה, יש לחבר נגד 10K אוהם בין פין ה-Data לפין ה-VCC (5V). נגד זה מבטיח שהאות בקו הנתונים יהיה יציב וברור כאשר החיישן אינו משדר.
- פין 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".
- פתיחת Arduino IDE: פתחו את סביבת הפיתוח של הארדואינו.
- מנהל ספריות: לכו לתפריט
Sketch->Include Library->Manage Libraries.... - חיפוש והתקנה: בחלון "Library Manager", חפשו "DHT sensor library". מצאו את הספרייה של Adafruit והתקינו אותה.
- התקנת ספריית חיישן: ספריית ה-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:
- מיקום החיישן: ודאו שהחיישן ממוקם באזור המייצג את הסביבה אותה אתם רוצים למדוד. הימנעו ממקומות עם זרימת אוויר חזקה, קרינת שמש ישירה, או קרבה למקורות חום/קור קיצוניים.
- ממוצע קריאות: במקום להסתמך על קריאה בודדת, קחו מספר קריאות עוקבות (לדוגמה, 5-10 קריאות) וחשבו את הממוצע שלהן. זה יכול להפחית רעשים בקריאות ולספק נתון יציב יותר.
- המתנה בין קריאות: הקפידו על השהייה מספקת (לפחות 2 שניות) בין קריאה לקריאה כדי לאפשר לחיישן להתייצב ולבצע מדידה מדויקת.
יישומים מעשיים של חיישן DHT11 עם ארדואינו
השילוב של DHT11 ובקר ארדואינו פותח מגוון רחב של אפשרויות לפיתוח פרויקטים מעשיים ושימושיים.
דוגמאות לפרויקטים
- תחנת מזג אוויר ביתית: פרויקט קלאסי המשתמש ב-DHT11 למדידת טמפרטורה ולחות, בשילוב עם חיישני לחץ ברומטרי (כמו BMP180) וחיישני גשם. הנתונים יכולים להיות מוצגים על מסך LCD או נשלחים לענן. לדוגמה, חובבים רבים מדווחים על בניית תחנות מזג אוויר ביתיות בעלות של כ-150-200 ש"ח, המספקות נתונים אמינים למטרות אישיות.
- מערכת ניטור חממה: חקלאים קטנים וחובבי גינון יכולים להשתמש ב-DHT11 לניטור מתמיד של התנאים בתוך חממה. ניתן לתכנת את הארדואינו להפעיל מאווררים כאשר הטמפרטורה עולה מעל סף מסוים (לדוגמה, 30°C) או מערכות השקיה כאשר הלחות יורדת מתחת לסף (לדוגמה, 50% RH), ובכך לייעל את הגידולים ולחסוך במשאבים.
- מד לחות וטמפרטורה לחדר תינוק/מבוגר: יצירת צג פשוט המציג את תנאי האקלים בחדר, עם התראות קוליות או ויזואליות במקרה של חריגה מטמפרטורה או לחות רצויים. פרויקט כזה יכול לספק שקט נפשי להורים או למטפלים.
- מערכת בקרה למערכות HVAC פשוטות: עבור יישומים שאינם דורשים דיוק גבוה במיוחד, ניתן להשתמש ב-DHT11 לבקרת מערכות חימום, אוורור ומיזוג אוויר פשוטות, לדוגמה, הפעלה אוטומטית של מזגן קטן או מפזר חום על בסיס טמפרטורה מוגדרת.
סיכום
ה-DHT11 הוא חיישן טמפרטורה ולחות פופולרי ונגיש, המהווה נקודת התחלה מצוינת לכל מי שמעוניין להיכנס לעולם האלקטרוניקה וה-IoT עם ארדואינו. על אף מגבלות הדיוק וקצב הדגימה שלו, קלות השימוש והעלות הנמוכה הופכות אותו לבחירה אידיאלית למגוון רחב של פרויקטים חינוכיים, תחביביים ואף יישומים ביתיים. עם ההבנה הנכונה של עקרונות פעולתו, שיטות החיבור והתכנות, כל אחד יכול לרתום את יכולותיו של ה-DHT11 לבניית מערכות ניטור ובקרה חכמות.
לרכישת חיישן DHT11 ורכיבי ארדואינו נוספים לפרויקט הבא שלכם, בקרו באתר Kitlab – המקור המקצועי שלכם לרכיבי אלקטרוניקה איכותיים.
קיטלאב הינה מומחית במוצרי ארדואינו, מיקרוביט ו esp32 , לתיאום הזמנות או הדרכות ניתן ליצור קשר בטלפון 052-2586973.
המידע במאמר זה הינו כללי בלבד ואינו מהווה תחליף לייעוץ רפואי מקצועי ואישי.

