- סקירה כללית של חיישן DHT11:
- דרישות מקדימות:
- התקנת ספריית LCD Adafruit ב- Raspberry Pi:
- התקנת ספריית Adafruit DHT11 ב- Raspberry Pi:
- תרשים מעגל:
- תכנות פיתון לחיישן DHT11:
- מדידת לחות וטמפרטורה באמצעות פטל פי:
טמפרטורה ולחות הם הפרמטרים הנפוצים ביותר שעוקבים אחר כל סביבה. יש טונות של חיישנים לבחירתם למדידת טמפרטורה ולחות, אך השימוש הנפוץ ביותר הוא ה- DHT11 בשל טווח המדידה והדיוק הגון שלו. זה עובד גם עם תקשורת עם סיכה אחת ולכן קל מאוד להתממשק עם מיקרו-בקרים או מיקרו-מעבדים. במדריך זה אנו הולכים ללמוד כיצד לממשק את חיישן DHT11 הפופולרי עם Raspberry Pi ולהציג את ערך הטמפרטורה והלחות על גבי מסך LCD בגודל 16x2. כבר השתמשנו בו לבניית תחנת מזג האוויר של IoT Raspberry Pi.
סקירה כללית של חיישן DHT11:
חיישן DHT11 יכול למדוד לחות יחסית וטמפרטורה במפרט הבא
טווח טמפרטורה: 0-50 ° C דיוק טמפרטורה: ± 2 ° C טווח לחות: 20-90% לחות יחסית דיוק לחות: ± 5%
חיישן DHT11 זמין בצורה של מודול או בצורה של חיישן. במדריך זה אנו משתמשים בצורת המודול של החיישן, ההבדל היחיד בין שניהם הוא שבצורת מודול יש לחיישן קבלים סינון ונגד משיכה המחובר לסיכת הפלט של החיישן. אז אם אתה משתמש בחיישן בלבד, הקפד להוסיף את שני המרכיבים האלה. למד גם ממשק DHT11 עם Arduino.
כיצד עובד חיישן DHT11:
חיישן DHT11 מגיע עם מעטפת צבע כחול או לבן. בתוך מעטפת זו יש לנו שני מרכיבים חשובים המסייעים לנו לחוש את הלחות והטמפרטורה היחסית. המרכיב הראשון הוא זוג אלקטרודות; ההתנגדות החשמלית בין שתי האלקטרודות הזו נקבעת על ידי מצע מחזיק לחות. כך שההתנגדות הנמדדת היא ביחס הפוך ללחות היחסית של הסביבה. לחות יחסית נמוכה יותר תהיה ערך ההתנגדות ולהיפך. שימו לב גם כי לחות יחסית שונה מלחות ממשית. לחות יחסית מודדת את תכולת המים באוויר ביחס לטמפרטורה באוויר.
הרכיב הנוסף הוא תרמיסטור NTC צמוד על פני השטח. המונח NTC מייצג מקדם טמפרטורה שלילי, לעליית הטמפרטורה ערך ההתנגדות יקטן
דרישות מקדימות:
ההנחה היא כי ה- Raspberry Pi שלך כבר מהבהב עם מערכת הפעלה ומסוגל להתחבר לאינטרנט. אם לא, עקוב אחר ההדרכה תחילת העבודה עם פטל פי לפני שתמשיך.
ההנחה היא כי יש לך גישה ל- pi שלך דרך חלונות מסוף או דרך יישום אחר שדרכו תוכל לכתוב ולהפעיל תוכניות פיתון ולהשתמש בחלון המסוף.
התקנת ספריית LCD Adafruit ב- Raspberry Pi:
ערך הטמפרטורה והלחות יוצג בתצוגת LCD * 16 * 2. Adafruit מספקת לנו ספרייה להפעלת LCD זה בקלות במצב 4 סיביות, אז בואו נוסיף אותו ל- Raspberry Pi שלנו על ידי פתיחת חלון המסוף Pi וביצוע השלבים הבאים.
שלב 1: התקן git ב- Raspberry Pi שלך באמצעות השורה הבאה. Git מאפשר לך לשכפל כל קובץ פרוייקט ב- Github ולהשתמש בו ב- Pi Raspberry. הספרייה שלנו נמצאת ב- Github ולכן עלינו להתקין git כדי להוריד את הספרייה ל- pi.
apt-get להתקין git
שלב 2: השורה הבאה מקשרת לדף GitHub שבו נמצאת הספרייה פשוט בצע את השורה כדי לשכפל את קובץ הפרויקט בספריית הבית של Pi
git clone git: //github.com/adafruit/Adafruit_Python_CharLCD
שלב 3: השתמש בפקודה שלמטה כדי לשנות את שורת הספריות, כדי להיכנס לקובץ הפרויקט שהורדנו זה עתה. שורת הפקודה מוצגת להלן
cd Adafruit_Python_CharLCD
שלב 4: בתוך הספריה יהיה קובץ בשם setup.py , עלינו להתקין אותו, כדי להתקין את הספרייה. השתמש בקוד הבא כדי להתקין את הספרייה
sudo python setup.py להתקין
זהו שהספריה הייתה צריכה להיות מותקנת בהצלחה. עכשיו באופן דומה בואו נמשיך בהתקנת ספריית DHT שהיא גם מ- Adafruit.
התקנת ספריית Adafruit DHT11 ב- Raspberry Pi:
חיישן DHT11 עובד עם העיקרון של מערכת חד חוטית. ערך הטמפרטורה והלחות מורגש על ידי החיישן ואז מועבר דרך סיכת הפלט כנתונים סדרתיים. לאחר מכן נוכל לקרוא נתונים אלה באמצעות סיכת קלט / פלט ב- MCU / MPU. כדי להבין כיצד קוראים את הערכים האלה תצטרך לקרוא את גליון הנתונים של חיישן DHT11, אך לעת עתה, כדי לשמור על דברים פשוטים נשתמש בספרייה כדי לדבר עם חיישן DHT11.
הספרייה DHT11 שמספקת Adafruit יכול לשמש DHT11, DHT22 וחיישני טמפרטורה חוט השני גם כן. הליך ההתקנה של ספריית DHT11 דומה גם לזה שנוהג להתקנת ספריית LCD. השורה היחידה שתשתנה היא הקישור של דף GitHub עליו נשמרת ספריית DHT.
הזן את ארבע שורות הפקודה אחת אחת במסוף כדי להתקין את ספריית DHT
שיבוט git
cd Adafruit_Python_DHT sudo apt-get install-build חיוני python-dev sudo python setup.py להתקין
לאחר שתסיים יהיו לך שתי הספריות מותקנות בהצלחה ב- Raspberry Pi שלנו. כעת נוכל להמשיך בחיבור החומרה.
תרשים מעגל:
תרשים המעגל השלם ממשק DH11 עם פטל פאי מוצג להלן, הוא נבנה באמצעות פריצינג. עקוב אחר החיבורים ובצע את המעגל
גם חיישן ה- LCD וגם ה- DHT11 עובדים עם אספקת + 5V ולכן אנו משתמשים בסיכות 5V ב- Raspberry Pi להפעלת שניהם. נגד משיכה בערך 1k משמש על סיכת הפלט של חיישן DHT11, אם אתה משתמש במודול אתה יכול להימנע מנגד זה.
סיר גוזם של 10k מתווסף סיכת Vee של LCD כדי לשלוט ברמת הניגודיות של מסך ה- LCD. מלבד זאת כל הקשרים די ישרים. אבל רשום אילו סיכות GPIO אתה משתמש כדי לחבר את הפינים מכיוון שנצטרך בתוכנית שלנו. התרשים שלהלן אמור לאפשר לך להבין את מספרי הסיכה של GPIO.
השתמש בתרשים וצור את החיבורים על פי תרשים המעגל. השתמשתי בקרש לחם וחוטי מגשר כדי ליצור את החיבורים שלי. מכיוון שהשתמשתי במודול DHT11 חיברתי אותו ישירות ל- Raspberry Pi. החומרה שלי נראתה כך למטה
תכנות פיתון לחיישן DHT11:
עלינו לכתוב תוכנית לקריאת ערך הטמפרטורה והלחות מחיישן DHT11 ואז להציג אותה על גבי LCD. מכיוון שהורדנו ספריות הן לחיישן LCD והן לחיישן DHT11, הקוד צריך להיות די פשוט קדימה. את התוכנית המלאה של פיתון תוכלו למצוא בסוף עמוד זה, אך תוכלו לקרוא בהמשך בכדי להבין כיצד פועלת התוכנית.
עלינו לייבא את ספריית LCD וספריית DHT11 לתוכנית שלנו כדי להשתמש בפונקציות הקשורות אליה. מכיוון שכבר הורדנו והתקנו אותם על ה- Pi שלנו נוכל פשוט להשתמש בשורות הבאות כדי לייבא אותם. אנו מייבאים גם את ספריית הזמן לשימוש בפונקציית ההשהיה.
זמן ייבוא זמן יבוא ליצירת עיכוב יבוא Adafruit_CharLCD כ- LCD # ספריית LCD ייבוא ייבוא Adafruit_DHT # ייבוא ספריית DHT לחיישן
בשלב הבא עלינו לציין לאילו סיכות החיישן מחובר ולאיזה סוג חיישן טמפרטורה משתמשים. המשתנה sensor_name מוקצה ל- Adafruit_DHT.DHT11 מכיוון שאנו משתמשים כאן בחיישן DHT11. סיכת הפלט של החיישן מחוברת ל- GPIO 17 של ה- Raspberry Pi ולכן אנו מקצים 17 למשתנה sensor_pin כפי שמוצג להלן.
sensor_name = Adafruit_DHT.DHT11 # אנו משתמשים בחיישן DHT11 sensor_pin = 17 # החיישן מחובר ל- GPIO17 ב- Pi
באופן דומה, עלינו גם להגדיר לאילו סיכות GPIO מחובר ה- LCD. כאן אנו משתמשים ב- LCD במצב 4 סיביות ולכן יהיו לנו ארבעה סיכות נתונים ושתי סיכות בקרה כדי להתחבר לסיכות ה- GPIO של ה- pi. כמו כן, תוכל לחבר את סיכת התאורה האחורית לסיכת GPIO אם אנו רוצים לשלוט גם בתאורה האחורית. אבל בינתיים אני לא משתמש בזה ולכן הקצתי לזה 0.
lcd_rs = 7 #RS של LCD מחובר ל- GPIO 7 ב- PI lcd_en = 8 # EN של LCD מחובר ל- GPIO 8 ב- PI lcd_d4 = 25 # D4 של LCD מחובר ל- GPIO 25 ב- PI lcd_d5 = 24 # D5 של LCD מחובר ל- GPIO 24 ב- PI lcd_d6 = 23 # D6 של LCD מחובר ל- GPIO 23 ב- PI lcd_d7 = 18 # D7 של LCD מחובר ל- GPIO 18 ב- PI lcd_backlight = 0 # LED אינו מחובר ולכן אנו מקצים ל 0
אתה יכול גם לחבר LCD במצב 8 סיביות עם Raspberry pi אבל אז פינים חופשיים יופחתו.
ספריית ה- LCD מבית Adafruit שהורדנו יכולה לשמש לכל סוגי תצוגות LCD האופייניות. כאן בפרויקט שלנו אנו משתמשים בתצוגת LCD בגודל 16 * 2 ולכן אנו מזכירים את מספר השורות והעמודות למשתנה כמוצג להלן.
lcd_column = 16 # עבור 16 * 2 LCD lcd_rows = 2 # for 16 * 2 LCD
כעת, לאחר שהכרזנו על סיכות ה- LCD ומספר השורות והעמודות עבור ה- LCD אנו יכולים לאתחל את תצוגת ה- LCD באמצעות השורה הבאה אשר שולחת את כל המידע הנדרש לספריה.
lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) # שלח את כל פרטי הסיכה לספריה
כדי להפעיל את התוכנית, אנו מציגים הודעת מבוא קטנה באמצעות פונקציית lcd.message () ואז נותנים עיכוב של 2 שניות כדי להפוך את ההודעה לקריאה. להדפסה בשורה השנייה ניתן להשתמש בפקודה \ n כפי שמוצג להלן
lcd .message ('DHT11 עם Pi \ n -CircuitDigest') # תן זמן להודעת מבוא. שינה (2) # המתן 2 שניות
לבסוף, בתוך לולאת הזמן שלנו עלינו לקרוא את ערך הטמפרטורה והלחות מהחיישן ולהציג אותו על גבי מסך ה- LCD במשך כל 2 שניות. התוכנית המלאה בתוך לולאת בזמן מוצגת למטה
בעוד 1: לולאה # סופית
לחות, טמפרטורה = Adafruit_DHT.read_retry (שם חיישן, חיישן_סיכה) # קראו מהחיישן ושמרו ערכים בהתאמה במגוון טמפרטורות ולחות
lcd.clear () # נקה את מסך ה- LCD lcd.message ('Temp =%.1f C'% temperature) # הצג את ערך הטמפרטורה lcd.message ('\ nHum =%.1f %%'% לחות) # תצוגה הערך של זמן הלחות. שינה (2) # המתן 2 שניות ואז עדכן את הערכים
אנו יכולים בקלות להשיג את ערך הטמפרטורה והלחות מהחיישן באמצעות שורה אחת זו למטה. כפי שאתה יכול לראות זה מחזיר שני ערכים המאוחסנים בלחות ובטמפרטורה המשתנים. פרטי שם החיישן ו חיישן הסיכה מועברים כפרמטרים; ערכים אלה עודכנו בתחילת התוכנית
לחות, טמפרטורה = Adafruit_DHT.read_retry (חיישן_שם, חיישן_סיכה)
כדי להציג שם משתנה על גבי מסך LCD נוכל להשתמש במזהים כמו & d,% c וכו 'מכיוון שאנחנו מציגים מספר נקודה צפה עם ספרה אחת בלבד אחרי הנקודה העשרונית אנו משתמשים במזהה%.1f להצגת הערך ב- הטמפרטורה והלחות המשתנים
הודעה lcd ('Temp =%.1f C'% טמפרטורה) lcd . הודעה ('\ nHum =%.1f %%'% לחות)
מדידת לחות וטמפרטורה באמצעות פטל פי:
בצע את החיבורים בהתאם לתרשים המעגל והתקן את הספריות הנדרשות. ואז הפעל את תוכנית הפיתון שניתנה בסוף עמוד זה. על ה- LCD להציג הודעת מבוא ואז להציג את ערך הטמפרטורה והלחות הנוכחי כפי שמוצג בתמונה למטה.
אם אינך מוצא שום דבר שמוצג ב- LCD, בדוק אם חלון מעטפת הפיתון מציג שגיאות כלשהן, אם לא מוצגת שום שגיאה, בדוק את החיבורים שלך פעם נוספת והתאם את הפוטנציומטר כדי לשנות את רמת הניגודיות של ה- LCD ובדוק אם יש לך משהו המסך.
מקווה שהבנתם את הפרויקט ונהניתם לבנות אותו, אם נתקלתם בבעיה כלשהי בביצוע זה דווח על כך בסעיף ההערות או השתמשו בפורום לעזרה טכנית. אשתדל כמיטב יכולתי להשיב לכל התגובות.
אתה יכול גם לבדוק את הפרויקטים האחרים שלנו באמצעות DHT11 עם מיקרו-בקר אחר.