विषयसूची:

Arduino नैनो - HTS221 सापेक्षिक आर्द्रता और तापमान सेंसर ट्यूटोरियल: 4 चरण
Arduino नैनो - HTS221 सापेक्षिक आर्द्रता और तापमान सेंसर ट्यूटोरियल: 4 चरण

वीडियो: Arduino नैनो - HTS221 सापेक्षिक आर्द्रता और तापमान सेंसर ट्यूटोरियल: 4 चरण

वीडियो: Arduino नैनो - HTS221 सापेक्षिक आर्द्रता और तापमान सेंसर ट्यूटोरियल: 4 चरण
वीडियो: Arduino Nano - HTS221 Relative Humidity and Temperature Sensor Tutorial 2024, नवंबर
Anonim
Image
Image

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

चरण 1: आपको क्या चाहिए..

जिसकी आपको जरूरत है..!!
जिसकी आपको जरूरत है..!!

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

2. एचटीएस221

3. आई²सी केबल

4. Arduino नैनो के लिए I²C शील्ड

चरण 2: कनेक्शन:

सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध
सम्बन्ध

Arduino Nano के लिए एक I2C शील्ड लें और इसे धीरे से नैनो के पिनों पर धकेलें।

फिर I2C केबल के एक सिरे को HTS221 सेंसर से और दूसरे सिरे को I2C शील्ड से कनेक्ट करें।

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

चरण 3: कोड:

कोड
कोड

HTS221 के लिए Arduino कोड हमारे github रिपॉजिटरी- DCUBE कम्युनिटी से डाउनलोड किया जा सकता है।

यहाँ उसी के लिए लिंक है:

github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino

हम Arduino बोर्ड के साथ सेंसर के I2c संचार की सुविधा के लिए लाइब्रेरी Wire.h शामिल करते हैं।

आप यहां से भी कोड कॉपी कर सकते हैं, यह इस प्रकार दिया गया है:

// एक फ्री-विल लाइसेंस के साथ वितरित किया गया।

// इसे किसी भी तरह से उपयोग करें, लाभ या मुफ्त, बशर्ते यह इसके संबंधित कार्यों के लाइसेंस में फिट बैठता है।

// एचटीएस२२१

// यह कोड HTS221_I2CS I2C मिनी मॉड्यूल के साथ काम करने के लिए डिज़ाइन किया गया है

#शामिल

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

के लिए (int i = 0; i <2; i++)

{

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

}

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

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

सिफारिश की: