דלגו לתוכן המרכזי
KitLab
שיעור קודם
חיישן תנועה — הלוח מרגיש שנכנסתם· 8 / 41
חיישן תנועה — הלוח מרגיש שנכנסתם
🎬

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

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

חיישן תנועה — הלוח מרגיש שנכנסתם

מה בשיעור?

  • להסביר מה זו קרינת אינפרה־אדום ולמה אי אפשר לראות אותה
  • להבין איך חיישן PIR מזהה בן אדם בלי מצלמה
  • לזהות את שלוש הרגליים של החיישן ולחבר אותן נכון
  • לכוונן את שני הברגים הכתומים — השהייה ומרחק
  • לקרוא את החיישן עם הבלוק read digital pin ולהדפיס עם serial print
  • להסביר למה החיישן מפספס מישהו שעומד לגמרי בלי לזוז

מה נלמד כאן

  • מה זו קרינת אינפרה־אדום ולמה העין שלנו לא רואה אותה
  • איך חיישן PIR יודע שנכנס בן אדם — בלי מצלמה ובלי מיקרופון
  • איך מחברים חיישן עם שלוש רגליים
  • מה עושים שני הברגים הכתומים שעל גב החיישן
  • לקרוא את החיישן עם read digital pin ולהדפיס עם serial print

האור שנדלק לבד

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

לובי של מלון שבו האור נדלק לבד כשאורח נכנס עם מזוודה

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

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


הרכיבים

אינפרה־אדום — האור שלא רואים

כל דבר בעולם שיש לו חום — פולט קרינה. לא אור שאנחנו רואים, אלא סוג אחר של קרינה שנקרא אינפרה־אדום (בקיצור IR).

ציור צבעוני של קשת הצבעים עם הסבר שהאינפרה־אדום נמצא מעבר לאדום

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

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

ציור של דמות אדם שממנה יוצאים גלי קרינת חום

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

חיישן PIR

PIR הוא קיצור של Passive Infrared — אינפרה־אדום פסיבי. המילה ״פסיבי״ חשובה: החיישן לא שולח שום דבר החוצה. הוא רק יושב ומקשיב לקרינה שמגיעה אליו.

וכאן הנקודה החכמה: הוא לא מודד כמה חום יש בחדר. הוא מודד שינוי.

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

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

שני הברגים הכתומים

תהפכו את החיישן ותראו שני ברגים כתומים קטנים (״פוטנציומטרים״). כל אחד מכוונן משהו אחר:

גב חיישן ה-PIR עם שני ברגים כתומים — כוונון השהייה וכוונון מרחק

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

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

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


החיבור

מה צריך: לוח ESP32 וחיישן PIR אחד. בשיעור הזה לא צריך לוח ניסוי ולא צריך נגד — החיישן מתחבר ישירות בשלושה חוטים.

תרשים חשמלי של חיישן PIR: רגל מינוס ל-GND, רגל S לפין IO5, רגל פלוס ל-5V

לחיישן שלוש רגליים, ועל הלוח שלו כתוב ליד כל אחת מה היא:

הרגל לאן מחברים
(מינוס) GND בלוח ה-ESP32
S (אות) פין IO5
+ (פלוס) 5V

והנה זה בפועל:

חיישן PIR מחובר בשלושה חוטים ללוח ה-ESP32

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


הבלוקים

הדבר היפה בשיעור הזה: אתם כבר יודעים את כל הבלוקים.

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

הבלוק read digital pin

הבלוק הכחול read digital pin עם תפריט 5

read digital pin [5] נמצא במגירה Robots. התפריט בוחר את מספר הפין — אצלנו 5, כי שם חיברנו את רגל ה-S.

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

התשובה תמיד אחת משתיים:

  • 1 — החיישן מרגיש תנועה. יש כאן מישהו.
  • 0 — החיישן לא מרגיש כלום. אין אף אחד.

💡 שימו לב שזה הפוך מהלחצן. בלחצן לחוץ היה 0 ומשוחרר היה 1. כאן תנועה נותנת 1. כל רכיב וההיגיון שלו — ולכן תמיד כדאי להדפיס לקונסולה לפני שבונים משהו גדול.

התוכנית המלאה

תוכנית ACECode: start the program, forever, ובתוכו serial print 115200 עם read digital pin 5 בתוך התיבה

התוכנית קצרה מאוד — שלושה בלוקים בסך הכול:

  1. start the program — נקודת ההתחלה.
  2. forever — הזרוע שעוטפת ומחזירה להתחלה בלי סוף.
  3. serial print [115200] [read digital pin [5]] — קורא את החיישן ומדפיס את התשובה לקונסולה.

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


מריצים

⬇ להורדת הקובץ PIR_sensor.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.

עוברים ל-Upload mode, בוחרים ESP32, בוחרים את הפורט הנכון ולוחצים Upload. מחכים שהמונה יגיע ל-100%.

ההסבר המלא על צריבה נמצא בשיעור ההתקנה.

לוח ESP32 עם חיישן PIR מחובר אליו בחוטים

מה אמור לקרות

תסתכלו בקונסולה. כשמישהו זז מול החיישן, השורות מתמלאות ב-1:

חלון קונסולה שחור עם שורות של הספרה 1 — החיישן מזהה תנועה

עכשיו תתרחקו, או תעמדו בצד ותפסיקו לזוז. אחרי כמה שניות המספר יתחלף ל-0:

חלון קונסולה שחור עם שורות של הספרה 0 — החיישן לא מזהה אף אחד

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

לא עובד?

  • תמיד 1, גם כשאף אחד לא בסביבה — בורג ההשהייה מסובב גבוה מדי. סובבו אותו נגד כיוון השעון.
  • תמיד 0, גם כשזזים מולו — בדקו שרגל ה-S באמת בפין IO5, ושהתפריט בבלוק על 5.
  • המספרים משתנים אקראית — ודאו שהחיישן לא מכוון לחלון, למזגן או לתנור. שינויי חום בסביבה מבלבלים אותו.
  • לוקח כמה שניות לחזור ל-0 — זה תקין ומכוון. ככה גם האור במסדרון לא נכבה עליכם ברגע שעצרתם.

💡 החיישן צריך בערך חצי דקה להתייצב אחרי שמחברים אותו לחשמל. אם בהתחלה המספרים קופצים — חכו קצת.


מה קרה כאן

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

וזה הרעיון הגדול של השיעור: הבלוק לא משתנה — רק הרכיב. בשיעור 4 קראנו לחצן, היום קראנו חיישן תנועה, ובשניהם השתמשנו באותו read digital pin בדיוק. כל רכיב שעונה ״כן או לא״ נקרא באותה דרך.

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


תרגילים

  1. להאט את הקצב. הוסיפו בלוק wait [0.5] seconds בתוך ה-forever, אחרי ההדפסה. השורות יופיעו לאט ותוכלו לעקוב בנוחות.
  2. כוונון מרחק. סובבו את בורג כוונון המרחק חצי סיבוב עם כיוון השעון. תבדקו מאיזה מרחק החיישן מתחיל להגיב עכשיו, ומאיזה מרחק הגיב קודם.
  3. כוונון השהייה. סובבו את בורג ההשהייה עם כיוון השעון וספרו כמה שניות לוקח למספר לחזור ל-0 אחרי שהפסקתם לזוז.
  4. אתגר: המבחן של הפסל. תעמדו מול החיישן ותנסו לא לזוז בכלל — אפילו לא לנשום חזק. תראו כמה זמן לוקח עד שהוא מכריז שאין אף אחד. איך הייתם פותרים את הבעיה הזאת במנורה אמיתית?

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

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

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