9.2 KiB
מדידת טמפרטורה - חומרה וירטואלית ל-IoT
בחלק זה של השיעור, תוסיפו חיישן טמפרטורה למכשיר ה-IoT הווירטואלי שלכם.
חומרה וירטואלית
מכשיר ה-IoT הווירטואלי ישתמש בחיישן Grove Digital Humidity and Temperature מדומה. זה שומר על המעבדה זהה לשימוש ב-Raspberry Pi עם חיישן Grove DHT11 פיזי.
החיישן משלב חיישן טמפרטורה עם חיישן לחות, אך במעבדה זו אתם מתמקדים רק ברכיב חיישן הטמפרטורה. במכשיר IoT פיזי, חיישן הטמפרטורה יהיה תרמיסטור שמודד טמפרטורה על ידי זיהוי שינוי בהתנגדות כאשר הטמפרטורה משתנה. חיישני טמפרטורה הם בדרך כלל חיישנים דיגיטליים שממירים את ההתנגדות הנמדדת לטמפרטורה במעלות צלזיוס (או קלווין, או פרנהייט).
הוספת החיישנים ל-CounterFit
כדי להשתמש בחיישן לחות וטמפרטורה וירטואלי, עליכם להוסיף את שני החיישנים לאפליקציית CounterFit.
משימה - הוספת החיישנים ל-CounterFit
הוסיפו את חיישני הלחות והטמפרטורה לאפליקציית CounterFit.
-
צרו אפליקציית Python חדשה במחשב שלכם בתיקייה בשם
temperature-sensor
עם קובץ יחיד בשםapp.py
וסביבת עבודה וירטואלית של Python, והוסיפו את חבילות ה-pip של CounterFit.⚠️ ניתן לעיין בהוראות ליצירת והגדרת פרויקט Python של CounterFit בשיעור 1 במידת הצורך.
-
התקינו חבילת Pip נוספת להתקנת shim של CounterFit עבור חיישן DHT11. ודאו שאתם מתקינים זאת מתוך טרמינל שבו סביבת העבודה הווירטואלית מופעלת.
pip install counterfit-shims-seeed-python-dht
-
ודאו שאפליקציית הווב של CounterFit פועלת.
-
צרו חיישן לחות:
-
בתיבה Create sensor בלשונית Sensors, פתחו את התפריט הנפתח של Sensor type ובחרו Humidity.
-
השאירו את Units על Percentage.
-
ודאו שה-Pin מוגדר ל-5.
-
לחצו על כפתור Add כדי ליצור את חיישן הלחות על Pin 5.
חיישן הלחות ייווצר ויופיע ברשימת החיישנים.
-
-
צרו חיישן טמפרטורה:
-
בתיבה Create sensor בלשונית Sensors, פתחו את התפריט הנפתח של Sensor type ובחרו Temperature.
-
השאירו את Units על Celsius.
-
ודאו שה-Pin מוגדר ל-6.
-
לחצו על כפתור Add כדי ליצור את חיישן הטמפרטורה על Pin 6.
חיישן הטמפרטורה ייווצר ויופיע ברשימת החיישנים.
-
תכנות אפליקציית חיישן הטמפרטורה
כעת ניתן לתכנת את אפליקציית חיישן הטמפרטורה באמצעות החיישנים של CounterFit.
משימה - תכנות אפליקציית חיישן הטמפרטורה
תכנתו את אפליקציית חיישן הטמפרטורה.
-
ודאו שאפליקציית
temperature-sensor
פתוחה ב-VS Code. -
פתחו את הקובץ
app.py
. -
הוסיפו את הקוד הבא לראש הקובץ
app.py
כדי לחבר את האפליקציה ל-CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
הוסיפו את הקוד הבא לקובץ
app.py
כדי לייבא את הספריות הנדרשות:import time from counterfit_shims_seeed_python_dht import DHT
הפקודה
from seeed_dht import DHT
מייבאת את מחלקתDHT
כדי לעבוד עם חיישן Grove טמפרטורה וירטואלי באמצעות shim מהמודולcounterfit_shims_seeed_python_dht
. -
הוסיפו את הקוד הבא אחרי הקוד לעיל כדי ליצור מופע של המחלקה שמנהלת את חיישן הלחות והטמפרטורה הווירטואלי:
sensor = DHT("11", 5)
זה מגדיר מופע של מחלקת
DHT
שמנהלת את חיישן ה-Digital Humidity and Temperature הווירטואלי. הפרמטר הראשון מציין שהחיישן בשימוש הוא חיישן DHT11 וירטואלי. הפרמטר השני מציין שהחיישן מחובר ליציאה5
.💁 CounterFit מדמה את החיישן המשולב של לחות וטמפרטורה על ידי חיבור לשני חיישנים: חיישן לחות על ה-pin שניתן בעת יצירת מחלקת
DHT
, וחיישן טמפרטורה שפועל על ה-pin הבא. אם חיישן הלחות נמצא על pin 5, ה-shim מצפה שחיישן הטמפרטורה יהיה על pin 6. -
הוסיפו לולאה אינסופית אחרי הקוד לעיל כדי לקרוא את ערך חיישן הטמפרטורה ולהדפיס אותו לקונסול:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
הקריאה ל-
sensor.read()
מחזירה זוג ערכים (tuple) של לחות וטמפרטורה. אתם זקוקים רק לערך הטמפרטורה, ולכן מתעלמים מהלחות. ערך הטמפרטורה מודפס לאחר מכן לקונסול. -
הוסיפו השהיה קצרה של עשר שניות בסוף ה-loop, מכיוון שאין צורך לבדוק את רמות הטמפרטורה באופן רציף. השהיה מפחיתה את צריכת האנרגיה של המכשיר.
time.sleep(10)
-
מתוך הטרמינל של VS Code עם סביבת העבודה הווירטואלית מופעלת, הריצו את הפקודה הבאה כדי להפעיל את אפליקציית ה-Python שלכם:
python app.py
-
מתוך אפליקציית CounterFit, שנו את ערך חיישן הטמפרטורה שייקרא על ידי האפליקציה. ניתן לעשות זאת באחת משתי דרכים:
-
הזינו מספר בתיבה Value של חיישן הטמפרטורה, ואז לחצו על כפתור Set. המספר שתזינו יהיה הערך שיוחזר על ידי החיישן.
-
סמנו את תיבת הסימון Random, והזינו ערכי Min ו-Max, ואז לחצו על כפתור Set. בכל פעם שהחיישן יקרא ערך, הוא יקרא מספר אקראי בין Min ל-Max.
אתם אמורים לראות את הערכים שהגדרתם מופיעים בקונסול. שנו את Value או את הגדרות Random כדי לראות את הערך משתנה.
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 ניתן למצוא את הקוד הזה בתיקייה code-temperature/virtual-device.
😀 תוכנית חיישן הטמפרטורה שלכם הצליחה!
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.