विषयसूची:

HTS221 और Arduino Nano का उपयोग करके आर्द्रता और तापमान मापन: 4 चरण
HTS221 और Arduino Nano का उपयोग करके आर्द्रता और तापमान मापन: 4 चरण

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

वीडियो: HTS221 और Arduino Nano का उपयोग करके आर्द्रता और तापमान मापन: 4 चरण
वीडियो: Chip Shortage: ST HTS221 Capacitive Humidity/Temperature sensor #ChipShortage @Adafruit 2024, जुलाई
Anonim
Image
Image

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

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

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

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

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

1. एचटीएस221

2. अरुडिनो नैनो

3. I2C केबल

4. Arduino नैनो के लिए I2C शील्ड

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

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

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

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

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

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

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

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

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

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

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

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

#शामिल

// HTS221 I2C पता 0x5F है

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

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

{

// 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);

इंट टेम्प = (वैल [३] * २५६) + वैल [२];

फ्लोट cTemp = (((T1 - T0) / 8.0) * (अस्थायी - T2)) / (T3 - T2) + (T0 / 8.0);

फ्लोट fTemp = (cTemp * १.८) + ३२;

// सीरियल मॉनिटर को आउटपुट डेटा

सीरियल.प्रिंट ("सापेक्ष आर्द्रता:");

सीरियल.प्रिंट (आर्द्रता);

Serial.println ("% RH");

सीरियल.प्रिंट ("सेल्सियस में तापमान:");

सीरियल.प्रिंट (cTemp); सीरियल.प्रिंट्लन ("सी");

Serial.print ("फ़ारेनहाइट में तापमान:");

सीरियल.प्रिंट (fTemp);

सीरियल.प्रिंट्लन ("एफ");

देरी (500);

}

वायर लाइब्रेरी में वायर.राइट () और वायर.रीड () का उपयोग कमांड लिखने और सेंसर आउटपुट को पढ़ने के लिए किया जाता है।

Serial.print() और Serial.println() का उपयोग Arduino IDE के सीरियल मॉनीटर पर सेंसर के आउटपुट को प्रदर्शित करने के लिए किया जाता है।

सेंसर का आउटपुट ऊपर की तस्वीर में दिखाया गया है।

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

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

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

सिफारिश की: