מדריך חיבור חיישן טמפרטורה ולחות DHT22 ל-Arduino ו-ESP32:
במדריך זה נלמד כיצד לחבר מודול חיישן טמפרטורה ולחות DHT22 לבקר Arduino UNO ולבקר ESP32.
נראה איך לקרוא את הטמפרטורה והלחות דרך יציאה דיגיטלית אחת, ולהציג את הנתונים ב-Serial Monitor.
מהו חיישן DHT22?
DHT22, הידוע גם בשם AM2302, הוא חיישן דיגיטלי למדידת טמפרטורה ולחות יחסית באוויר.
החיישן כולל רכיב למדידת לחות ורכיב למדידת טמפרטורה, ומוציא את הנתונים כאות דיגיטלי.
החיישן מתאים לפרויקטים של תחנת מזג אוויר, ניטור חדרים, חממה חכמה, בקרת לחות,
מערכות התראה וניסויים עם Arduino ו-ESP32.
איך החיישן עובד?
DHT22 מודד את הלחות והטמפרטורה בתוך החיישן, ולאחר מכן שולח את הנתונים לבקר דרך פין DATA אחד.
בניגוד לחיישנים אנלוגיים, אין צורך לקרוא מתח משתנה בעזרת ADC.
התקשורת מתבצעת בעזרת פרוטוקול דיגיטלי ייעודי של החיישן. לכן בדרך כלל משתמשים בספרייה מוכנה,
לדוגמה ספריית DHT של Adafruit, כדי לקרוא את הנתונים בצורה פשוטה.
- Temperature — טמפרטורה במעלות Celsius.
- Humidity — לחות יחסית באחוזים.
- DATA — קו דיגיטלי יחיד להעברת הנתונים לבקר.
חשוב לדעת: אין לקרוא את DHT22 מהר מדי. מומלץ להמתין לפחות כשתי שניות בין קריאות,
כדי לקבל מדידה יציבה ולמנוע שגיאות קריאה.
פינים במודול DHT22
| פין | תפקיד |
|---|---|
| VCC | מתח הזנה לחיישן |
| DATA / OUT | יציאה דיגיטלית להעברת נתוני טמפרטורה ולחות |
| GND | אדמה |
ברוב מודולי DHT22 יש נגד Pull-Up מובנה על קו DATA.
אם משתמשים בחיישן DHT22 ללא לוח מודול, ייתכן שיהיה צורך להוסיף נגד Pull-Up חיצוני בין DATA ל-VCC.
רכיבים נדרשים
- מודול חיישן טמפרטורה ולחות DHT22
- Arduino UNO או ESP32
- Breadboard
- חוטי Dupont
- כבל USB
- Arduino IDE
- ספריית DHT sensor library
חיבור DHT22 ל-Arduino UNO

| DHT22 | Arduino UNO |
| VCC | 5V |
| DATA / OUT | D2 |
| GND | GND |
הסבר חיבור
ב-Arduino UNO מחברים את פין DATA של החיישן לפין דיגיטלי, לדוגמה D2.
החיישן מקבל מתח הזנה של 5V, והנתונים נקראים דרך ספריית DHT.
אם החיישן אינו מחזיר נתונים או שמתקבלת שגיאה, יש לבדוק את סדר הפינים,
את ספריית התוכנה ואת קיום נגד Pull-Up על קו DATA.
קוד Arduino בסיסי לקריאת החיישן
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperatureC = dht.readTemperature();
if (isnan(humidity) || isnan(temperatureC)) {
Serial.println("Failed to read from DHT22 sensor");
delay(2000);
return;
}
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Serial.println("-------------------");
delay(2000);
}הסבר הקוד
הקוד מפעיל את ספריית DHT וקורא את הטמפרטורה והלחות מהחיישן.
אם הקריאה נכשלת, הקוד מציג הודעת שגיאה במקום להציג ערכים לא תקינים.
בסוף כל קריאה יש השהיה של שתי שניות, מכיוון שחיישן DHT22 אינו מיועד לקריאה מהירה.
חיבור DHT22 ל-ESP32

הערה חשובה לפני החיבור
ESP32 עובד ברמת לוגיקה של 3.3V. DHT22 יכול לעבוד בדרך כלל גם עם 3.3V,
ולכן בחיבור ל-ESP32 מומלץ להזין את המודול מ-3V3.
אם מזינים את החיישן מ-5V, יש לוודא שקו DATA אינו נמשך ל-5V,
משום שכניסות ESP32 אינן מיועדות לרמת לוגיקה של 5V.
| DHT22 | ESP32 |
| VCC | 3V3 |
| DATA / OUT | GPIO27 |
| GND | GND |
הסבר חיבור
ב-ESP32 ניתן להשתמש בפין דיגיטלי רגיל, לדוגמה GPIO27.
אין צורך להשתמש בכניסת ADC, מכיוון שהחיישן שולח נתונים דיגיטליים.
אם יש בעיות קריאה, מומלץ לבדוק את מתח ההזנה, את קו DATA,
ואת ההמתנה בין הקריאות.
קוד ESP32 בסיסי לקריאת החיישן
#include <DHT.h>
#define DHTPIN 27
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperatureC = dht.readTemperature();
if (isnan(humidity) || isnan(temperatureC)) {
Serial.println("Failed to read from DHT22 sensor");
delay(2000);
return;
}
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Serial.println("-------------------");
delay(2000);
}הסבר הקוד
הקוד עבור ESP32 דומה לקוד Arduino, אך משתמש בפין GPIO27 ובמהירות Serial של 115200.
הקריאה מתבצעת דרך ספריית DHT, והנתונים מוצגים ב-Serial Monitor.
גם כאן יש להמתין כשתי שניות בין קריאות, כדי לאפשר לחיישן להחזיר נתונים יציבים.
פרויקט לדוגמה
תחנת ניטור טמפרטורה ולחות עם DHT22 ו-OLED

בפרויקט זה משתמשים בחיישן DHT22 יחד עם Arduino ומסך OLED כדי להציג טמפרטורה ולחות בזמן אמת.
מעבר לקריאת החיישן, הפרויקט כולל תצוגת OLED, ולכן הוא מתאים ללמידה על חיישני סביבה,
הצגת נתונים ויצירת תחנת מזג אוויר בסיסית.
סיכום
חיישן DHT22 הוא חיישן נוח למדידת טמפרטורה ולחות בפרויקטים עם Arduino ו-ESP32.
בעזרת פין DATA אחד וספריית DHT ניתן לקרוא ממנו ערכים דיגיטליים ולהשתמש בהם בתחנות מזג אוויר,
חממות חכמות, ניטור חדרים ומערכות התראה.
חשוב להקפיד על חיבור נכון, מתח מתאים, Pull-Up במידת הצורך והמתנה של כשתי שניות בין קריאות.