תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
HDC1000 הוא חיישן לחות דיגיטלי עם חיישן טמפרטורה משולב המספק דיוק מדידה מעולה בהספק נמוך מאוד. המכשיר מודד לחות על בסיס חיישן קיבולי חדש. חיישני הלחות והטמפרטורה מכוילים במפעל. הוא מתפקד בטווח הטמפרטורות המלא של -40 ° C עד +125 ° C. הנה ההדגמה שלו עם פוטון חלקיקים.
שלב 1: מה שאתה צריך..
1. פוטון חלקיקים
2. HDC1000
3. כבל I²C
4. מגן I²C לפוטון חלקיקים
שלב 2: חיבור:
קח מגן I2C עבור פוטון חלקיקים ודחוף אותו בעדינות על סיכות פוטון החלקיקים.
לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן HDC1000 והקצה השני למגן I2C.
חיבורים מוצגים בתמונה למעלה.
שלב 3: קוד:
ניתן להוריד את קוד החלקיקים ל- HDC1000 ממאגר GitHub שלנו- חנות Dcube.
להלן הקישור לאותו דבר:
github.com/DcubeTechVentures/HDC1000…
את גליון הנתונים של HDC1000 ניתן למצוא כאן:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
השתמשנו בשתי ספריות לקוד חלקיקים, שהם application.h ו- spark_wiring_i2c.h. ספריית Spark_wiring_i2c נדרשת על מנת להקל על תקשורת I2C עם החיישן.
אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:
// מופץ ברישיון רצון חופשי.
// השתמש בו בכל דרך שתרצה, ברווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות הקשורות בו.
// HDC1000
// קוד זה נועד לעבוד עם מודול מיני HDC1000_I2CS I2C הזמין בחנות Dcube.
#לִכלוֹל
#לִכלוֹל
// כתובת HDC1000 I2C היא 0x40 (64)
#define Addr 0x40
צף cTemp = 0.0, fTemp = 0.0, לחות = 0.0;
int temp = 0, hum = 0;
הגדרת חלל ()
{
// הגדר משתנה
Particle.variable ("i2cdevice", "HDC1000");
Particle.variable ("לחות", לחות);
Particle.variable ("cTemp", cTemp);
// אתחול תקשורת I2C
Wire.begin ();
// אתחל תקשורת סדרתית, הגדר קצב שידור = 9600
Serial.begin (9600);
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר רשם תצורה
Wire.write (0x02);
// טמפרטורה, לחות מופעלת, רזולוציה = 14 סיביות, חימום דולק
Wire.write (0x30);
// עצור את שידור I2C
Wire.endTransmission ();
עיכוב (300);
}
לולאת חלל ()
{
נתוני int ללא חתום [2];
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח פקודת מדידת טמפ '
Wire.write (0x00);
// עצור את שידור I2C
Wire.endTransmission ();
עיכוב (500);
// בקש 2 בתים של נתונים
Wire.requestFrom (Addr, 2);
// קרא 2 בתים של נתונים
// זמני msb, temp lsb
אם (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// המר את הנתונים
temp = ((data [0] * 256) + data [1]);
cTemp = (טמפ ' / 65536.0) * 165.0 - 40;
fTemp = cTemp * 1.8 + 32;
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// שלח פקודת מדידת לחות
Wire.write (0x01);
// עצור את שידור I2C
Wire.endTransmission ();
עיכוב (500);
// בקש 2 בתים של נתונים
Wire.requestFrom (Addr, 2);
// קרא 2 בתים של נתונים
// זמני msb, temp lsb
אם (Wire.available () == 2)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
}
// המר את הנתונים
זמזום = ((נתונים [0] * 256) + נתונים [1]);
לחות = (זמזום / 65536.0) * 100.0;
// נתוני פלט ללוח המחוונים
הוצאה לאור Particle.publish ("לחות יחסית:", מחרוזת (לחות));
Particle.publish ("טמפרטורה בסלסיוס:", מחרוזת (cTemp));
Particle.publish ("טמפרטורה בפרנהייט:", מחרוזת (fTemp));
עיכוב (1000);
}
שלב 4: יישומים:
ניתן להשתמש ב- HDC1000 בחימום, אוורור ומיזוג אוויר (HVAC), תרמוסטטים חכמים וצגי חדרים. חיישן זה מוצא את יישומו גם במדפסות, מדידות כף יד, התקנים רפואיים, הובלות מטענים וכן ערפול בשמשה.