6.9 KiB
מדידת טמפרטורה - Raspberry Pi
בחלק זה של השיעור, תוסיפו חיישן טמפרטורה ל-Raspberry Pi שלכם.
חומרה
החיישן שבו תשתמשו הוא חיישן לחות וטמפרטורה DHT11, שמשלב שני חיישנים באריזה אחת. זהו חיישן פופולרי למדי, וישנם חיישנים מסחריים רבים שמשלבים מדידת טמפרטורה, לחות ולעיתים גם לחץ אטמוספרי. רכיב חיישן הטמפרטורה הוא תרמיסטור מסוג NTC (מקדם טמפרטורה שלילי), שבו ההתנגדות יורדת ככל שהטמפרטורה עולה.
זהו חיישן דיגיטלי, כך שהוא כולל ממיר ADC מובנה שיוצר אות דיגיטלי המכיל את נתוני הטמפרטורה והלחות שהמיקרו-בקר יכול לקרוא.
חיבור חיישן הטמפרטורה
ניתן לחבר את חיישן הטמפרטורה Grove ל-Raspberry Pi.
משימה
חברו את חיישן הטמפרטורה
-
הכניסו קצה אחד של כבל Grove לשקע שעל חיישן הלחות והטמפרטורה. הכבל ייכנס רק בכיוון אחד.
-
כאשר ה-Raspberry Pi כבוי, חברו את הקצה השני של כבל ה-Grove לשקע הדיגיטלי המסומן D5 על כובע הבסיס של Grove המחובר ל-Pi. שקע זה הוא השני משמאל, בשורת השקעים הסמוכה לפינים של GPIO.
תכנות חיישן הטמפרטורה
כעת ניתן לתכנת את המכשיר לשימוש בחיישן הטמפרטורה המחובר.
משימה
תכנתו את המכשיר.
-
הפעילו את ה-Pi והמתינו עד שיסיים את תהליך האתחול.
-
הפעילו את VS Code, או ישירות על ה-Pi או באמצעות הרחבת Remote SSH.
⚠️ ניתן לעיין בהוראות להגדרת והפעלת VS Code בשיעור 1 במידת הצורך.
-
מהטרמינל, צרו תיקייה חדשה בספריית הבית של המשתמש
pi
בשםtemperature-sensor
. צרו קובץ בתיקייה זו בשםapp.py
:mkdir temperature-sensor cd temperature-sensor touch app.py
-
פתחו את התיקייה הזו ב-VS Code.
-
כדי להשתמש בחיישן הטמפרטורה והלחות, יש להתקין חבילת Pip נוספת. מהטרמינל ב-VS Code, הריצו את הפקודה הבאה כדי להתקין את חבילת ה-Pip על ה-Pi:
pip3 install seeed-python-dht
-
הוסיפו את הקוד הבא לקובץ
app.py
כדי לייבא את הספריות הנדרשות:import time from seeed_dht import DHT
הפקודה
from seeed_dht import DHT
מייבאת את מחלקת החיישןDHT
כדי לתקשר עם חיישן הטמפרטורה Grove מתוך המודולseeed_dht
. -
הוסיפו את הקוד הבא אחרי הקוד לעיל כדי ליצור מופע של המחלקה שמנהלת את חיישן הטמפרטורה:
sensor = DHT("11", 5)
כאן מוגדר מופע של מחלקת
DHT
שמנהלת את חיישן ה-Digital Humidity and Temperature. הפרמטר הראשון מציין שהחיישן שבו משתמשים הוא DHT11 - הספרייה שבה אתם משתמשים תומכת גם בגרסאות אחרות של החיישן. הפרמטר השני מציין שהחיישן מחובר לשקע הדיגיטליD5
על כובע הבסיס של Grove.✅ זכרו, לכל השקעי Grove יש מספרי פינים ייחודיים. פינים 0, 2, 4, ו-6 הם פינים אנלוגיים, ופינים 5, 16, 18, 22, 24, ו-26 הם פינים דיגיטליים.
-
הוסיפו לולאה אינסופית אחרי הקוד לעיל כדי לדגום את ערך חיישן הטמפרטורה ולהדפיס אותו לקונסולה:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
הקריאה ל-
sensor.read()
מחזירה זוג ערכים (tuple) של לחות וטמפרטורה. אתם זקוקים רק לערך הטמפרטורה, ולכן ערך הלחות מתעלם. ערך הטמפרטורה מודפס לאחר מכן לקונסולה. -
הוסיפו השהייה קצרה של עשר שניות בסוף ה-
loop
, מכיוון שאין צורך לבדוק את רמות הטמפרטורה באופן רציף. השהייה מפחיתה את צריכת החשמל של המכשיר.time.sleep(10)
-
מהטרמינל של VS Code, הריצו את הפקודה הבאה כדי להפעיל את אפליקציית ה-Python שלכם:
python3 app.py
אתם אמורים לראות ערכי טמפרטורה מודפסים לקונסולה. השתמשו במשהו כדי לחמם את החיישן, כמו לחיצה עם האגודל עליו או שימוש במאוורר, כדי לראות את הערכים משתנים:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 ניתן למצוא את הקוד הזה בתיקייה code-temperature/pi.
😀 תוכנית חיישן הטמפרטורה שלכם הצליחה!
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.