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

Raspberry Pi HTS221 לחות יחסית וטמפרטורת חיישן Java הדרכה: 4 שלבים
Raspberry Pi HTS221 לחות יחסית וטמפרטורת חיישן Java הדרכה: 4 שלבים

וִידֵאוֹ: Raspberry Pi HTS221 לחות יחסית וטמפרטורת חיישן Java הדרכה: 4 שלבים

וִידֵאוֹ: Raspberry Pi HTS221 לחות יחסית וטמפרטורת חיישן Java הדרכה: 4 שלבים
וִידֵאוֹ: Часы с температурой, давлением и влажностью на Raspberry pi 2024, דֵצֶמבֶּר
Anonim
Image
Image

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

שלב 1: מה שאתה צריך..

מה אתה צריך..!!
מה אתה צריך..!!

1. פטל פטל

2. HTS221

3. כבל I²C

4. מגן I²C עבור פטל פטל

5. כבל אתרנט

שלב 2: חיבורים:

חיבורים
חיבורים
חיבורים
חיבורים
חיבורים
חיבורים
חיבורים
חיבורים

קח מגן I2C לפאי פטל ודחוף אותו בעדינות מעל סיכות ה- gpio של פטל פאי.

לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן HTS221 והקצה השני למגן I2C.

חבר גם את כבל ה- Ethernet ל- pi או שאתה יכול להשתמש במודול WiFi.

חיבורים מוצגים בתמונה למעלה.

שלב 3: קוד:

קוד
קוד

ניתן להוריד את קוד ה- Python עבור HTS221 מחנות ה- Github-Dcube שלנו

להלן הקישור לאותו דבר:

github.com/DcubeTechVentures/HTS221/blob/master/Java/HTS221.java

השתמשנו בספריית pi4j עבור קוד java, השלבים להתקנת pi4j על פטל pi מתוארים כאן:

pi4j.com/install.html

אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:

// מופץ ברישיון רצון חופשי.

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

// HTS221

// קוד זה נועד לעבוד עם מודול מיני HTS221_I2CS I2C.

ייבא com.pi4j.io.i2c. I2CBus;

ייבא com.pi4j.io.i2c. I2CDevice;

יבוא com.pi4j.io.i2c. I2CFactory;

יבוא java.io. IOException;

מחלקה ציבורית HTS221 {main static void main (מחרוזת טענות ) זורק חריגה

{

// צור I2CBus

אוטובוס I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);

// קבל מכשיר I2C, כתובת I2C HTS221 היא 0x5F (95)

מכשיר I2CDevice = bus.getDevice (0x5F);

// בחר מרשם תצורות ממוצע

// דגימות ממוצעות טמפרטורה = 16, דגימות ממוצעות לחות = 32

device.write (0x10, (בייט) 0x1B);

// בחר פנקס בקרה 1

// הפעלה, עדכון נתוני חסימה, קצב הנתונים o/p = 1 הרץ

device.write (0x20, (בייט) 0x85);

Thread.sleep (500);

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

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

בייט val = בייט חדש [2];

// קרא 1 בייט של נתונים מהכתובת 0x30 (48)

val [0] = (בייט) device.read (0x30);

// קרא 1 בייט של נתונים מהכתובת 0x31 (49)

val [1] = (בייט) device.read (0x31);

int H0 = (val [0] & 0xFF) / 2;

int H1 = (val [1] & 0xFF) / 2;

// קרא 1 בייט של נתונים מהכתובת 0x36 (54)

val [0] = (בייט) device.read (0x36);

// קרא 1 בייט של נתונים מהכתובת 0x37 (55)

val [1] = (בייט) device.read (0x37);

int H2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// קרא 1 בייט של נתונים מהכתובת 0x3A (58)

val [0] = (בייט) device.read (0x3A);

// קרא 1 בייט של נתונים מהכתובת 0x3B (59)

val [1] = (בייט) device.read (0x3B);

int H3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

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

// קרא 1 בייט של נתונים מהכתובת 0x32 (50)

int T0 = ((בייט) device.read (0x32) & 0xFF);

// קרא 1 בייט של נתונים מהכתובת 0x33 (51)

int T1 = ((בייט) device.read (0x33) & 0xFF);

// קרא 1 בייט של נתונים מהכתובת 0x35 (53)

int raw = ((בייט) device.read (0x35) & 0x0F);

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

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

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

// קרא 1 בייט של נתונים מהכתובת 0x3C (60)

val [0] = (בייט) device.read (0x3C);

// קרא 1 בייט של נתונים מהכתובת 0x3D (61)

val [1] = (בייט) device.read (0x3D);

int T2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// קרא 1 בייט של נתונים מהכתובת 0x3E (62)

val [0] = (בייט) device.read (0x3E);

// קרא 1 בייט של נתונים מהכתובת 0x3F (63)

val [1] = (בייט) device.read (0x3F);

int T3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// קרא 4 בתים של נתונים

// מזמזם msb, מזמזם lsb, temp msb, temp lsb

בייט נתונים = בייט חדש [4]; device.read (0x28 | 0x80, data, 0, 4);

// המר את הנתונים

int hum = ((data [1] & 0xFF) * 256) + (data [0] & 0xFF);

int temp = ((data [3] & 0xFF) * 256) + (data [2] & 0xFF);

אם (טמפ '> 32767)

{

טמפ ' -= 65536;

}

לחות כפולה = ((1.0 * H1) - (1.0 * H0)) * (1.0 * זמזום - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

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

כפול fTemp = (cTemp * 1.8) + 32;

// נתוני פלט למסך

System.out.printf ("לחות יחסית: %.2f %% RH %n", לחות);

System.out.printf ("טמפרטורה בצלזיוס: %.2f C %n", cTemp);

System.out.printf ("טמפרטורה בפרנהייט: %.2f F %n", fTemp);

}

}

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

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

מוּמלָץ: