מדריך חיבור מודול חיישן טמפרטורה GY-906 MLX90614 ל-Arduino ו-ESP32:

במדריך זה נלמד כיצד לחבר מודול חיישן טמפרטורה GY-906 MLX90614 לבקר Arduino UNO ולבקר ESP32.
נראה איך לקרוא טמפרטורת אובייקט ללא מגע, איך לקרוא את טמפרטורת הסביבה של החיישן,
ואיך להציג את הערכים ב-Serial Monitor.

מהו חיישן GY-906 MLX90614?

GY-906 הוא מודול המבוסס על חיישן MLX90614.
זהו חיישן טמפרטורה אינפרא-אדום שמאפשר למדוד טמפרטורה של אובייקט ללא מגע פיזי.

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

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

איך החיישן עובד?

כל גוף פולט קרינה אינפרא-אדומה בהתאם לטמפרטורה שלו.
MLX90614 קולט את הקרינה הזו בעזרת גלאי IR פנימי, מעבד את האות בתוך השבב,
ומחזיר לבקר ערך טמפרטורה דיגיטלי דרך תקשורת I2C / SMBus.

החיישן מחזיר בדרך כלל שני ערכים:

  • Ambient Temperature — טמפרטורת הסביבה של החיישן עצמו.
  • Object Temperature — הטמפרטורה של האובייקט שהחיישן מכוון אליו.

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

פינים במודול GY-906

פיןתפקיד
VIN / VCCמתח הזנה למודול
GNDאדמה
SCLקו שעון I2C
SDAקו נתונים I2C

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

  • מודול חיישן טמפרטורה GY-906 MLX90614
  • Arduino UNO או ESP32
  • Breadboard
  • חוטי Dupont
  • כבל USB
  • Arduino IDE
  • ספריית Adafruit MLX90614

חיבור GY-906 MLX90614 ל-Arduino UNO

GY-906Arduino UNO
VIN / VCC3.3V או 5V, לפי גרסת המודול
GNDGND
SDAA4
SCLA5

הסבר חיבור

ב-Arduino UNO קווי I2C נמצאים בדרך כלל בפינים A4 ו-A5.
מחברים את SDA של המודול ל-A4 ואת SCL ל-A5.

במודולי GY-906 שונים ייתכנו הבדלים במתח ההזנה.
אם על המודול כתוב VIN, לעיתים ניתן להזין אותו מ-5V.
אם על המודול כתוב VCC בלבד, מומלץ לבדוק את מפרט המודול לפני חיבור ל-5V.

קוד Arduino בסיסי לקריאת החיישן

#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  Serial.begin(9600);

  if (!mlx.begin()) {
    Serial.println("Error connecting to MLX90614 sensor");
    while (1);
  }

  Serial.println("MLX90614 sensor ready");
}

void loop() {
  float ambientTemp = mlx.readAmbientTempC();
  float objectTemp = mlx.readObjectTempC();

  Serial.print("Ambient temperature: ");
  Serial.print(ambientTemp);
  Serial.println(" C");

  Serial.print("Object temperature: ");
  Serial.print(objectTemp);
  Serial.println(" C");

  Serial.println("-------------------");
  delay(1000);
}

הסבר הקוד

הקוד משתמש בספריית Adafruit MLX90614 כדי לקרוא את החיישן דרך I2C.
הפונקציה readAmbientTempC מחזירה את טמפרטורת הסביבה של החיישן,
והפונקציה readObjectTempC מחזירה את טמפרטורת האובייקט שמול החיישן.

אם החיישן לא נמצא על קו I2C, הקוד מציג הודעת שגיאה ונעצר.
במקרה כזה יש לבדוק חיבורים, מתח הזנה וכתובת I2C.

חיבור GY-906 MLX90614 ל-ESP32

הערה חשובה לפני החיבור

ESP32 עובד ברמת לוגיקה של 3.3V.
לכן בחיבור ל-ESP32 מומלץ להזין את המודול מ-3V3, במיוחד אם לא בטוחים שקווי I2C מוגנים לרמת 5V.

אם משתמשים במודול GY-906 עם כניסת VIN ומייצב מתח מובנה, ייתכן שניתן להזין אותו גם מ-5V.
למרות זאת, יש לוודא שקווי SDA ו-SCL אינם נמשכים ל-5V, משום שכניסות ESP32 אינן מיועדות לרמת 5V.

GY-906ESP32
VIN / VCC3V3
GNDGND
SDAGPIO21
SCLGPIO22

הסבר חיבור

ב-ESP32 מקובל להשתמש ב-GPIO21 עבור SDA וב-GPIO22 עבור SCL.
את GND של החיישן מחברים ל-GND של ESP32, כדי שיהיה ייחוס מתח משותף.

אם החיישן לא מזוהה, מומלץ להריץ I2C Scanner ולבדוק אם מתקבלת הכתובת 0x5A.
זו הכתובת הנפוצה של MLX90614.

קוד ESP32 בסיסי לקריאת החיישן

#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  Serial.begin(115200);

  Wire.begin(21, 22);

  if (!mlx.begin()) {
    Serial.println("Error connecting to MLX90614 sensor");
    while (1);
  }

  Serial.println("MLX90614 sensor ready");
}

void loop() {
  float ambientTemp = mlx.readAmbientTempC();
  float objectTemp = mlx.readObjectTempC();

  Serial.print("Ambient temperature: ");
  Serial.print(ambientTemp);
  Serial.println(" C");

  Serial.print("Object temperature: ");
  Serial.print(objectTemp);
  Serial.println(" C");

  Serial.println("-------------------");
  delay(1000);
}

הסבר הקוד

הקוד עבור ESP32 דומה לקוד Arduino, אך כאן מגדירים במפורש את פיני I2C:
GPIO21 עבור SDA ו-GPIO22 עבור SCL.

החיישן מחזיר שתי מדידות: טמפרטורת החיישן עצמו וטמפרטורת האובייקט מולו.
לצורך מדידה ללא מגע משתמשים בדרך כלל בערך Object temperature.

טיפים לעבודה נכונה

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

פרויקט לדוגמה

מד טמפרטורה ללא מגע עם MLX90614 ומסך OLED

בפרויקט זה משתמשים בחיישן MLX90614 יחד עם Arduino ומסך OLED 128×32.
החיישן מודד טמפרטורת אובייקט ללא מגע, והערכים מוצגים ישירות על המסך.

מעבר לחיישן עצמו, הפרויקט כולל גם תצוגת OLED בתקשורת I2C,
ולכן הוא מתאים ללמידה על חיישני טמפרטורה ללא מגע, תקשורת I2C והצגת נתונים למשתמש.

מעבר לפרויקט לדוגמה

סיכום

מודול GY-906 MLX90614 הוא חיישן נוח למדידת טמפרטורה ללא מגע בפרויקטים עם Arduino ו-ESP32.
בעזרת תקשורת I2C ניתן לקרוא ממנו טמפרטורת אובייקט וטמפרטורת סביבה,
ולהשתמש בו בפרויקטים של ניטור חום, בית חכם, רובוטיקה ומערכות תצוגה.

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

קישור חזרה למוצר

דילוג לתוכן