תוכן עניינים:

מדידת לחות וטמפרטורה באמצעות HTS221 ו- Raspberry Pi: 4 שלבים
מדידת לחות וטמפרטורה באמצעות HTS221 ו- Raspberry Pi: 4 שלבים

וִידֵאוֹ: מדידת לחות וטמפרטורה באמצעות HTS221 ו- Raspberry Pi: 4 שלבים

וִידֵאוֹ: מדידת לחות וטמפרטורה באמצעות HTS221 ו- Raspberry Pi: 4 שלבים
וִידֵאוֹ: איך מודדים לחות עם מד טמפרטורה 2024, נוֹבֶמבֶּר
Anonim
Image
Image

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

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

שלב 1: חומרה נדרשת:

חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת

החומרים הדרושים לנו להגשמת מטרתנו כוללים את רכיבי החומרה הבאים:

1. HTS221

2. פטל פטל

3. כבל I2C

4. מגן I2C לפאי פטל

5. כבל אתרנט

שלב 2: חיבור חומרה:

חיבור חומרה
חיבור חומרה
חיבור חומרה
חיבור חומרה

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

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

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

כל מה שאתה צריך זה ארבעה חוטים! רק ארבעה חיבורים נדרשים סיכות Vcc, Gnd, SCL ו- SDA ואלו מחוברים בעזרת כבל I2C.

קשרים אלה מודגמים בתמונות למעלה.

שלב 3: קוד לחות ומדידת טמפרטורה:

קוד לחות ומדידת טמפרטורה
קוד לחות ומדידת טמפרטורה

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

בנוסף לנוחות המשתמשים, אנו מסבירים את הקוד גם כאן:

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

pypi.python.org/pypi/smbus-cffi/0.5.1

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

יבוא smbus

זמן יבוא

# קבל אוטובוס I2C

אוטובוס = smbus. SMBus (1)

כתובת HTS221, 0x5F (95)

# בחר רשם תצורה ממוצע, 0x10 (16)

# 0x1B (27) דגימות ממוצעות טמפרטורה = 256, דגימות ממוצעות לחות = 512

bus.write_byte_data (0x5F, 0x10, 0x1B)

כתובת HTS221, 0x5F (95)

# בחר רשום בקרה 1, 0x20 (32)

# 0x85 (133) הפעלה, עדכון רציף, קצב פלט נתונים = 1 הרץ

bus.write_byte_data (0x5F, 0x20, 0x85)

time.sleep (0.5)

כתובת HTS221, 0x5F (95)

# קרא את ערכי הכיול מהזיכרון הלא נדיף של המכשיר

# ערכי כיול לחות

# קרא נתונים בחזרה מ 0x30 (48), 1 בתים

val = bus.read_byte_data (0x5F, 0x30)

H0 = val / 2

# קרא את הנתונים בחזרה מ 0x31 (49), 1 בתים

val = bus.read_byte_data (0x5F, 0x31)

H1 = val /2

# קרא את הנתונים בחזרה מ 0x36 (54), 2 בתים

val0 = bus.read_byte_data (0x5F, 0x36)

val1 = bus.read_byte_data (0x5F, 0x37)

H2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# קרא נתונים בחזרה מ 0x3A (58), 2 בתים

val0 = bus.read_byte_data (0x5F, 0x3A)

val1 = bus.read_byte_data (0x5F, 0x3B)

H3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# ערכי כיול טמפרטורה

# קרא את הנתונים בחזרה מ 0x32 (50), 1 בתים

T0 = bus.read_byte_data (0x5F, 0x32)

T0 = (T0 & 0xFF)

# קרא את הנתונים בחזרה מ 0x32 (51), 1 בתים

T1 = bus.read_byte_data (0x5F, 0x33)

T1 = (T1 & 0xFF)

# קרא את הנתונים בחזרה מ 0x35 (53), 1 בתים

raw = bus.read_byte_data (0x5F, 0x35)

raw = (raw & 0x0F)

# המר את ערכי כיול הטמפרטורה ל -10 סיביות

T0 = ((raw & 0x03) * 256) + T0

T1 = ((raw & 0x0C) * 64) + T1

# קרא נתונים בחזרה מ 0x3C (60), 2 בתים

val0 = bus.read_byte_data (0x5F, 0x3C)

val1 = bus.read_byte_data (0x5F, 0x3D)

T2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# קרא נתונים בחזרה מ 0x3E (62), 2 בתים

val0 = bus.read_byte_data (0x5F, 0x3E)

val1 = bus.read_byte_data (0x5F, 0x3F)

T3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# קרא נתונים בחזרה מ 0x28 (40) עם פקודת פקודה 0x80 (128), 4 בתים

# msb לחות, lsb לחות, msb temp, lsb temp

data = bus.read_i2c_block_data (0x5F, 0x28 | 0x80, 4)

# המרת הנתונים

לחות = (נתונים [1] * 256) + נתונים [0]

לחות = ((1.0 * H1) - (1.0 * H0)) * (1.0 * לחות - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)

temp = (נתונים [3] * 256) + נתונים [2]

אם הטמפ '> 32767:

טמפ ' -= 65536

cTemp = ((T1 - T0) / 8.0) * (טמפ ' - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

# פלט נתונים למסך

- רטיבות "לחות יחסית: %.2f %%" %לחות - 23.6.1 מ"מ

- טמפרטורה ב צלזיוס: %.2f C %cTemp

- טמפרטורה בפרנהייט: %.2f F %fTemp

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

יבוא smbus

זמן יבוא

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

$> python HTS221.py

פלט החיישן מוצג גם בתמונה למעלה לעיון המשתמש.

שלב 4: יישומים:

יישומים
יישומים

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

מוּמלָץ: