विषयसूची:

HTS221 और कण फोटॉन का उपयोग करके आर्द्रता और तापमान मापन: 4 कदम
HTS221 और कण फोटॉन का उपयोग करके आर्द्रता और तापमान मापन: 4 कदम

वीडियो: HTS221 और कण फोटॉन का उपयोग करके आर्द्रता और तापमान मापन: 4 कदम

वीडियो: HTS221 और कण फोटॉन का उपयोग करके आर्द्रता और तापमान मापन: 4 कदम
वीडियो: HIS-221 | आधुनिक भारताचा इतिहास: भाग 2 | औदयोगिक क्रांती , यूरोपीय राष्ट्रवाद आणि साम्राज्यवाद 2024, जून
Anonim
Image
Image

HTS221 सापेक्षिक आर्द्रता और तापमान के लिए एक अल्ट्रा कॉम्पैक्ट कैपेसिटिव डिजिटल सेंसर है। इसमें डिजिटल सीरियल इंटरफेस के माध्यम से माप की जानकारी प्रदान करने के लिए एक सेंसिंग तत्व और एक मिश्रित सिग्नल एप्लिकेशन विशिष्ट एकीकृत सर्किट (एएसआईसी) शामिल है। इतनी सारी विशेषताओं के साथ एकीकृत यह महत्वपूर्ण आर्द्रता और तापमान माप के लिए सबसे उपयुक्त सेंसरों में से एक है।

इस ट्यूटोरियल में कण फोटॉन के साथ HTS221 सेंसर मॉड्यूल की इंटरफेसिंग का चित्रण किया गया है। आर्द्रता और तापमान मूल्यों को पढ़ने के लिए, हमने I2c एडाप्टर के साथ कण का उपयोग किया है। यह I2C एडाप्टर सेंसर मॉड्यूल से कनेक्शन को आसान और अधिक विश्वसनीय बनाता है।

चरण 1: हार्डवेयर की आवश्यकता:

हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता
हार्डवेयर की आवश्यकता

अपने लक्ष्य को पूरा करने के लिए हमें जिन सामग्रियों की आवश्यकता होती है, उनमें निम्नलिखित हार्डवेयर घटक शामिल हैं:

1. एचटीएस221

2. कण फोटॉन

3. I2C केबल

4. कण फोटॉन के लिए I2C शील्ड

चरण 2: हार्डवेयर हुकअप:

हार्डवेयर हुकअप
हार्डवेयर हुकअप
हार्डवेयर हुकअप
हार्डवेयर हुकअप

हार्डवेयर हुकअप अनुभाग मूल रूप से सेंसर और कण फोटॉन के बीच आवश्यक वायरिंग कनेक्शन की व्याख्या करता है। वांछित आउटपुट के लिए किसी भी सिस्टम पर काम करते समय सही कनेक्शन सुनिश्चित करना मूलभूत आवश्यकता है। तो, अपेक्षित कनेक्शन इस प्रकार हैं:

HTS221 I2C पर काम करेगा। यहाँ उदाहरण वायरिंग आरेख है, जिसमें दिखाया गया है कि सेंसर के प्रत्येक इंटरफ़ेस को कैसे वायर किया जाए।

आउट-ऑफ-द-बॉक्स, बोर्ड को I2C इंटरफ़ेस के लिए कॉन्फ़िगर किया गया है, जैसे कि यदि आप अन्यथा अज्ञेयवादी हैं तो हम इस हुकअप का उपयोग करने की सलाह देते हैं।

आपको बस चार तार चाहिए! केवल चार कनेक्शन की आवश्यकता होती है Vcc, Gnd, SCL और SDA पिन और ये I2C केबल की मदद से जुड़े होते हैं।

इन कनेक्शनों को ऊपर की तस्वीरों में दिखाया गया है।

चरण 3: आर्द्रता और तापमान मापन के लिए कोड:

आर्द्रता और तापमान मापन के लिए कोड
आर्द्रता और तापमान मापन के लिए कोड

आइए अब कण कोड से शुरू करते हैं।

कण के साथ सेंसर मॉड्यूल का उपयोग करते समय, हम application.h और Spark_wiring_i2c.h लाइब्रेरी को शामिल करते हैं। "application.h" और Spark_wiring_i2c.h लाइब्रेरी में ऐसे कार्य हैं जो सेंसर और कण के बीच i2c संचार की सुविधा प्रदान करते हैं।

उपयोगकर्ता की सुविधा के लिए संपूर्ण कण कोड नीचे दिया गया है:

#शामिल

#शामिल

// HTS221 I2C पता 0x5F है

# परिभाषित करें Addr 0x5F

दोहरी आर्द्रता = ०.०;

डबल cTemp = ०.०;

डबल fTemp = ०.०;

इंट अस्थायी = 0;

व्यर्थ व्यवस्था()

{

// चर सेट करें

Particle.variable("i2cdevice", "HTS221");

कण। चर ("आर्द्रता", आर्द्रता);

पार्टिकल.वेरिएबल ("cTemp", cTemp);

// I2C संचार को मास्टर के रूप में प्रारंभ करें

वायर.बेगिन ();

// सीरियल कम्युनिकेशन शुरू करें, बॉड रेट सेट करें = 9600

सीरियल.बेगिन (९६००);

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// औसत कॉन्फ़िगरेशन रजिस्टर चुनें

वायर.राइट (0x10);

// तापमान औसत नमूने = 256, आर्द्रता औसत नमूने = 512

वायर.राइट (0x1B);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// नियंत्रण रजिस्टर का चयन करें1

वायर.राइट (0x20);

// पावर ऑन, निरंतर अपडेट, डेटा आउटपुट दर = 1 हर्ट्ज

वायर.राइट (0x85);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

देरी (300);

}

शून्य लूप ()

{

अहस्ताक्षरित इंट डेटा [2];

अहस्ताक्षरित इंट वैल [4];

अहस्ताक्षरित int H0, H1, H2, H3, T0, T1, T2, T3, रॉ;

// आर्द्रता कैलिब्रेशन मान

के लिए (इंट मैं = 0; मैं < 2; मैं ++)

{

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट ((48 + i));

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

डेटा = वायर.रीड ();

}

}

// आर्द्रता डेटा कनवर्ट करें

एच0 = डेटा [0] / 2;

एच1 = डेटा [1] / 2;

के लिए (इंट मैं = 0; मैं < 2; मैं ++)

{

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट ((५४ + i));

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

डेटा = वायर.रीड ();

}

}

// आर्द्रता डेटा कनवर्ट करें

H2 = (डेटा [1] * 256.0) + डेटा [0];

के लिए (इंट मैं = 0; मैं < 2; मैं ++)

{

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट ((58 + i));

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

डेटा = वायर.रीड ();

}

}

// आर्द्रता डेटा कनवर्ट करें

H3 = (डेटा [1] * 256.0) + डेटा [0];

// तापमान कैलिब्रेशन मान

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट (0x32);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

T0 = वायर.रीड ();

}

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट (0x33);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

T1 = वायर.रीड ();

}

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट (0x35);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

कच्चा = वायर.रीड ();

}

कच्चा = कच्चा और 0x0F;

// तापमान कैलिब्रेशन मानों को 10-बिट्स में बदलें

T0 = ((कच्चा और 0x03) * 256) + T0;

T1 = ((कच्चा और 0x0C) * 64) + T1;

के लिए (इंट मैं = 0; मैं < 2; मैं ++)

{

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट ((60 + i));

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

डेटा = वायर.रीड ();

}

}

// डेटा कनवर्ट करें

T2 = (डेटा [1] * 256.0) + डेटा [0];

के लिए (इंट मैं = 0; मैं < 2; मैं ++)

{

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट ((62 + i));

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 1 बाइट का अनुरोध करें

Wire.requestFrom (Addr, 1);

// डेटा का 1 बाइट पढ़ें

अगर (वायर.उपलब्ध () == 1)

{

डेटा = वायर.रीड ();

}

}

// डेटा कनवर्ट करें

T3 = (डेटा [1] * 256.0) + डेटा [0];

// I2C ट्रांसमिशन शुरू करें

Wire.beginTransmission (Addr);

// डेटा रजिस्टर भेजें

वायर.राइट (0x28 | 0x80);

// I2C ट्रांसमिशन बंद करो

वायर.एंडट्रांसमिशन ();

// डेटा के 4 बाइट्स का अनुरोध करें

Wire.requestFrom (Addr, 4);

// डेटा के 4 बाइट्स पढ़ें

// आर्द्रता एमएसबी, आर्द्रता एलएसबी, अस्थायी एमएसबी, अस्थायी एलएसबी

अगर (वायर.उपलब्ध () == 4)

{

वैल [0] = वायर.रीड ();

वैल [1] = वायर.रीड ();

वैल [2] = वायर.रीड ();

वैल [3] = वायर.रीड ();

}

// डेटा कनवर्ट करें

आर्द्रता = (वैल [1] * 256.0) + वैल [0];

आर्द्रता = ((1.0 * H1) - (1.0 * H0)) * (1.0 * आर्द्रता - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

अस्थायी = (वैल [3] * 256) + वैल [2]; cTemp = (((T1 - T0) / 8.0) * (अस्थायी - T2)) / (T3 - T2) + (T0 / 8.0);

fTemp = (cTemp * १.८) + ३२;

// डैशबोर्ड पर आउटपुट डेटा

Particle.publish ("सापेक्ष आर्द्रता:", स्ट्रिंग (आर्द्रता));

देरी (1000);

Particle.publish ("सेल्सियस में तापमान:", स्ट्रिंग (cTemp));

देरी (1000);

Particle.publish ("फ़ारेनहाइट में तापमान:", स्ट्रिंग (fTemp));

देरी (1000);

}

Particle.variable() फ़ंक्शन सेंसर के आउटपुट को स्टोर करने के लिए वेरिएबल बनाता है और Particle.publish() फ़ंक्शन साइट के डैशबोर्ड पर आउटपुट प्रदर्शित करता है।

सेंसर आउटपुट आपके संदर्भ के लिए ऊपर चित्र में दिखाया गया है।

चरण 4: अनुप्रयोग:

अनुप्रयोग
अनुप्रयोग

HTS221 को विभिन्न उपभोक्ता उत्पादों जैसे एयर ह्यूमिडिफ़ायर और रेफ्रिजरेटर आदि में नियोजित किया जा सकता है। यह सेंसर स्मार्ट होम ऑटोमेशन, औद्योगिक स्वचालन, श्वसन उपकरण, संपत्ति और सामान ट्रैकिंग सहित व्यापक क्षेत्र में भी अपना आवेदन पाता है।

सिफारिश की: