תוכן עניינים:
וִידֵאוֹ: Arduino Nano - HTS221 לחות יחסית וטמפרטורת חיישן טמפרטורה: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
HTS221 הוא חיישן דיגיטלי קיבולי אולטרה קומפקטי ללחות וטמפרטורה יחסית. הוא כולל רכיב חישה ומעגל משולב ספציפי ליישום אות מעורב (ASIC) המספק את מידע המדידה באמצעות ממשקים סדרתיים דיגיטליים. משולב עם כל כך הרבה תכונות זהו אחד החיישנים המתאימים ביותר למדידות לחות וטמפרטורה קריטיות. הנה ההפגנה עם ננו ארדואינו.
שלב 1: מה שאתה צריך..
1. ארדואינו ננו
2. HTS221
3. כבל I²C
4. מגן I²C עבור Arduino Nano
שלב 2: חיבורים:
קח מגן I2C עבור Arduino Nano ודחוף אותו בעדינות מעל סיכות הננו.
לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן HTS221 והקצה השני למגן I2C.
חיבורים מוצגים בתמונה למעלה.
שלב 3: קוד:
ניתן להוריד את קוד הארדואינו ל- HTS221 מהמאגר של github- קהילת DCUBE.
להלן הקישור לאותו דבר:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
אנו כוללים את ספריית Wire.h כדי להקל על תקשורת I2c של החיישן עם לוח Arduino.
אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:
// מופץ ברישיון רצון חופשי.
// השתמש בו בכל דרך שתרצה, ברווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות הקשורות בו.
// HTS221
// קוד זה נועד לעבודה עם מודול מיני HTS221_I2CS I2C
#לִכלוֹל
// כתובת I2C HTS221 היא 0x5F
#define Addr 0x5F
הגדרת חלל ()
{
// אתחל תקשורת I2C כ- MASTER
Wire.begin ();
// אתחל תקשורת טורית, הגדר קצב שידור = 9600
Serial.begin (9600);
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר מרשם תצורות ממוצע
Wire.write (0x10);
// דגימות ממוצעות טמפרטורה = 256, דגימות ממוצעות לחות = 512
Wire.write (0x1B);
// עצור את שידור I2C
Wire.endTransmission ();
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר פנקס בקרה 1
Wire.write (0x20);
// הפעלה, עדכון רציף, קצב פלט נתונים = 1 הרץ
Wire.write (0x85);
// עצור את שידור I2C
Wire.endTransmission ();
עיכוב (300);
}
לולאת חלל ()
{
נתוני int ללא חתום [2];
int val ללא חתום [4];
int חתום H0, H1, H2, H3, T0, T1, T2, T3, raw;
// ערכי קליברציה של לחות
עבור (int i = 0; i <2; i ++)
{
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write ((48 + i));
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
data = Wire.read ();
}
}
// המרת נתוני לחות
H0 = נתונים [0] / 2;
H1 = נתונים [1] / 2;
עבור (int i = 0; i <2; i ++)
{
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write ((54 + i));
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
data = Wire.read ();
}
}
// המרת נתוני לחות
H2 = (נתונים [1] * 256.0) + נתונים [0];
עבור (int i = 0; i <2; i ++)
{
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write ((58 + i));
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
data = Wire.read ();
}
}
// המרת נתוני לחות
H3 = (נתונים [1] * 256.0) + נתונים [0];
// ערכי שיחות טמפרטורה
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write (0x32);
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
T0 = Wire.read ();
}
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write (0x33);
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
T1 = Wire.read ();
}
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write (0x35);
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
raw = Wire.read ();
}
raw = raw & 0x0F;
// המר את ערכי ההתקשרות לטמפרטורה ל -10 סיביות
T0 = ((raw & 0x03) * 256) + T0;
T1 = ((raw & 0x0C) * 64) + T1;
עבור (int i = 0; i <2; i ++)
{
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write ((60 + i));
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
data = Wire.read ();
}
}
// המר את הנתונים
T2 = (נתונים [1] * 256.0) + נתונים [0];
עבור (int i = 0; i <2; i ++)
{
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write ((62 + i));
// עצור את שידור I2C
Wire.endTransmission ();
// בקש בתים של נתונים
Wire.requestFrom (Addr, 1);
// קרא 1 בייט של נתונים
אם (Wire.available () == 1)
{
data = Wire.read ();
}
}
// המר את הנתונים
T3 = (נתונים [1] * 256.0) + נתונים [0];
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח רישום נתונים
Wire.write (0x28 | 0x80);
// עצור את שידור I2C
Wire.endTransmission ();
// בקש 4 בתים של נתונים
Wire.requestFrom (אדר, 4);
// קרא 4 בתים של נתונים
// לחות msb, לחות lsb, temp msb, temp lsb
אם (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// המר את הנתונים
לחות צפה = (val [1] * 256.0) + val [0];
לחות = ((1.0 * H1) - (1.0 * H0)) * (1.0 * לחות - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (val [3] * 256) + val [2];
צף cTemp = (((T1 - T0) / 8.0) * (טמפ ' - T2)) / (T3 - T2) + (T0 / 8.0);
צף fTemp = (cTemp * 1.8) + 32;
// נתוני פלט לצג הסדרתי
Serial.print ("לחות יחסית:");
Serial.print (לחות);
Serial.println (" % RH");
Serial.print ("טמפרטורה בצלזיוס:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("טמפרטורה בפרנהייט:");
Serial.print (fTemp);
Serial.println ("F");
עיכוב (500);
}
שלב 4: יישומים:
ניתן להשתמש ב- HTS221 במוצרי צריכה שונים כמו מכשירי אדים ומקררים וכו '. חיישן זה מוצא את יישומו גם בזירה רחבה יותר, לרבות אוטומציה ביתית חכמה, אוטומציה תעשייתית, ציוד נשימתי, מעקב אחר נכסים וסחורות.
מוּמלָץ:
אוטומציה של חממה עם LoRa! (חלק 1) -- חיישנים (טמפרטורה, לחות, לחות קרקע): 5 שלבים
אוטומציה של חממה עם LoRa! (חלק 1) || חיישנים (טמפרטורה, לחות, לחות קרקע): בפרויקט זה אראה לכם כיצד הפכתי את החממה לאוטומטית. זה אומר שאני אראה לך איך בניתי את החממה וכיצד חיברתי את החשמל והאלקטרוניקה האוטומטית. כמו כן, אראה לך כיצד לתכנת לוח Arduino המשתמש ב- L
פטל פאי - HIH6130 I2C חיישן לחות וטמפרטורה חיישן פייתון הדרכה: 4 שלבים
Raspberry Pi - HIH6130 I2C חיישן לחות וטמפרטורה Python הדרכה: HIH6130 הוא חיישן לחות וטמפרטורה עם פלט דיגיטלי. חיישנים אלה מספקים רמת דיוק של ± 4% לחות יחסית. עם יציבות ארוכת טווח מובילה בתעשייה, I2C דיגיטלי פיצוי טמפרטורה אמיתי, אמינות מובילה בתעשייה, יעילות אנרגטית
קריאת טמפרטורה באמצעות חיישן טמפרטורה LM35 עם Arduino Uno: 4 שלבים
קריאת טמפרטורה באמצעות חיישן טמפרטורה LM35 עם Arduino Uno: היי חברים במדריך זה נלמד כיצד להשתמש ב- LM35 עם Arduino. Lm35 הוא חיישן טמפרטורה שיכול לקרוא ערכי טמפרטורה מ -55 ° C עד 150 ° C. זהו מכשיר בעל 3 מסופים המספק מתח אנלוגי ביחס לטמפרטורה. היג
צג לחות אלחוטי (ESP8266 + חיישן לחות): 5 שלבים
צג לחות אלחוטי (ESP8266 + חיישן לחות): אני קונה פטרוזיליה בסיר, ורוב היום האדמה הייתה יבשה. אז אני מחליט לעשות את הפרויקט הזה, בנושא חישה של לחות של אדמה בסיר עם פטרוזיליה, לבדוק מתי אני צריך לשפוך אדמה עם מים. אני חושב שהחיישן הזה (חיישן לחות קיבולית v1.2) הוא טוב
טמפרטורה, לחות יחסית, לוגר לחץ אטמוספרי באמצעות פטל פי וקישוריות TE MS8607-02BA01: 22 שלבים (עם תמונות)
טמפרטורה, לחות יחסית, לוגר לחץ אטמוספרי באמצעות קישוריות Raspberry Pi ו- TE MS8607-02BA01: מבוא: בפרויקט זה אראה לך כיצד לבנות מערכת התקנה שלב אחר לחות טמפרטורה ולחץ אטמוספרי. פרויקט זה מבוסס על שבב חיישן הסביבה Raspberry Pi 3 דגם B ו- TE Connectivity MS8607-02BA