ዝርዝር ሁኔታ:

አርዱዲኖ ናኖ - HTS221 አንጻራዊ እርጥበት እና የሙቀት ዳሳሽ አጋዥ ስልጠና 4 ደረጃዎች
አርዱዲኖ ናኖ - HTS221 አንጻራዊ እርጥበት እና የሙቀት ዳሳሽ አጋዥ ስልጠና 4 ደረጃዎች

ቪዲዮ: አርዱዲኖ ናኖ - HTS221 አንጻራዊ እርጥበት እና የሙቀት ዳሳሽ አጋዥ ስልጠና 4 ደረጃዎች

ቪዲዮ: አርዱዲኖ ናኖ - HTS221 አንጻራዊ እርጥበት እና የሙቀት ዳሳሽ አጋዥ ስልጠና 4 ደረጃዎች
ቪዲዮ: VOLTMETER with DIY RELHARGEABLE BATTERY - አርዱinoኖንን በባትሪ እንዴት ኃይል መስጠት እንደሚቻል 2024, ሀምሌ
Anonim
Image
Image

HTS221 አንፃራዊ እርጥበት እና የሙቀት መጠን እጅግ በጣም የታመቀ አቅም ያለው ዲጂታል ዳሳሽ ነው። የመለኪያ መረጃን በዲጂታል ተከታታይ በይነገጾች በኩል ለማቅረብ የስሜት ሕዋስ እና የተቀላቀለ የምልክት ትግበራ የተወሰነ የተቀናጀ ወረዳ (ASIC) ያካትታል። ከብዙ ባህሪዎች ጋር የተዋሃደ ይህ ለአስፈላጊ እርጥበት እና የሙቀት መለኪያዎች በጣም ተገቢ ከሆኑ ዳሳሾች አንዱ ነው። ከአርዱዲኖ ናኖ ጋር ሰልፉ እዚህ አለ።

ደረጃ 1: እርስዎ የሚፈልጉት..

ምንድን ነው የሚፈልጉት..!!
ምንድን ነው የሚፈልጉት..!!

1. አርዱዲኖ ናኖ

2. HTS221

3. I²C ኬብል

4. I²C ጋሻ ለአርዱዲኖ ናኖ

ደረጃ 2: ግንኙነቶች

ግንኙነቶች ፦
ግንኙነቶች ፦
ግንኙነቶች ፦
ግንኙነቶች ፦
ግንኙነቶች ፦
ግንኙነቶች ፦
ግንኙነቶች ፦
ግንኙነቶች ፦

ለአርዱዲኖ ናኖ የ I2C ጋሻ ይውሰዱ እና በናኖ ፒኖች ላይ በቀስታ ይግፉት።

ከዚያ የ I2C ገመድ አንዱን ጫፍ ከ HTS221 ዳሳሽ እና ሌላውን ከ I2C ጋሻ ጋር ያገናኙ።

ግንኙነቶች ከላይ በስዕሉ ላይ ይታያሉ።

ደረጃ 3 ኮድ

ኮድ ፦
ኮድ ፦

የ HTS221 አርዱinoኖ ኮድ ከ github ማከማቻችን- DCUBE ማህበረሰብ ማውረድ ይችላል።

ለተመሳሳይ አገናኝ እዚህ አለ

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

ከአርዲኖ ቦርድ ጋር የአነፍናፊውን I2c ግንኙነት ለማመቻቸት ቤተመጽሐፍት Wire.h ን እናካትታለን።

እንዲሁም ኮዱን ከዚህ መገልበጥ ይችላሉ ፣ እሱ እንደሚከተለው ተሰጥቷል

// በነፃ ፈቃድ ፈቃድ ተሰራጭቷል።

// በተጓዳኝ ሥራዎቹ ፈቃዶች ውስጥ የሚስማማ ከሆነ በፈለጉት ፣ በትርፍም ሆነ በነጻ ይጠቀሙበት።

// HTS221

// ይህ ኮድ ከ HTS221_I2CS I2C ሚኒ ሞዱል ጋር ለመስራት የተነደፈ ነው

#ያካትቱ

// HTS221 I2C አድራሻ 0x5F ነው

#መግለፅ Addr 0x5F

ባዶነት ማዋቀር ()

{

// የ I2C ግንኙነትን እንደ ማስተር ማስጀመር

Wire.begin ();

// ተከታታይ ግንኙነቶችን ያስጀምሩ ፣ የባውድ መጠን = 9600 ያዘጋጁ

Serial.begin (9600);

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// አማካይ የውቅረት መመዝገቢያ ይምረጡ

Wire.write (0x10);

// የሙቀት አማካይ ናሙናዎች = 256 ፣ የእርጥበት አማካይ ናሙናዎች = 512

Wire.write (0x1B);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የቁጥጥር መመዝገቢያ ይምረጡ 1

Wire.write (0x20);

// ኃይል በርቷል ፣ ቀጣይነት ያለው ዝመና ፣ የውሂብ ውፅዓት መጠን = 1 Hz

Wire.write (0x85);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

መዘግየት (300);

}

ባዶነት loop ()

{

ያልተፈረመ int ውሂብ [2];

ያልተፈረመ int val [4];

ያልተፈረመ int H0 ፣ H1 ፣ H2 ፣ H3 ፣ T0 ፣ T1 ፣ T2 ፣ T3 ፣ ጥሬ;

// የእርጥበት መለወጫ እሴቶች

ለ (int i = 0; i <2; i ++)

{

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write ((48 + i));

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

ውሂብ = Wire.read ();

}

}

// የእርጥበት መረጃን ይለውጡ

H0 = ውሂብ [0] / 2;

H1 = ውሂብ [1] / 2;

ለ (int i = 0; i <2; i ++)

{

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write ((54 + i));

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

ውሂብ = Wire.read ();

}

}

// የእርጥበት መረጃን ይለውጡ

H2 = (ውሂብ [1] * 256.0) + ውሂብ [0];

ለ (int i = 0; i <2; i ++)

{

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write ((58 + i));

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

ውሂብ = Wire.read ();

}

}

// የእርጥበት መረጃን ይለውጡ

H3 = (ውሂብ [1] * 256.0) + ውሂብ [0];

// የሙቀት መጠቆሚያ እሴቶች

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write (0x32);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

T0 = Wire.read ();

}

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write (0x33);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

T1 = Wire.read ();

}

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write (0x35);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

ጥሬ = Wire.read ();

}

ጥሬ = ጥሬ & 0x0F;

// የሙቀት መጠኑን እሴቶችን ወደ 10-ቢት ይለውጡ

T0 = ((ጥሬ & 0x03) * 256) + T0;

T1 = ((ጥሬ & 0x0C) * 64) + T1;

ለ (int i = 0; i <2; i ++)

{

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write ((60 + i));

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

ውሂብ = Wire.read ();

}

}

// ውሂቡን ይለውጡ

T2 = (ውሂብ [1] * 256.0) + ውሂብ [0];

ለ (int i = 0; i <2; i ++)

{

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write ((62 + i));

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// የውሂብ 1 ባይት ይጠይቁ

Wire.requestFrom (Addr, 1);

// 1 ባይት ውሂብ ያንብቡ

ከሆነ (Wire.available () == 1)

{

ውሂብ = Wire.read ();

}

}

// ውሂቡን ይለውጡ

T3 = (ውሂብ [1] * 256.0) + ውሂብ [0];

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይላኩ

Wire.write (0x28 | 0x80);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// 4 ባይት ውሂብን ይጠይቁ

Wire.requestFrom (Addr, 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 ();

}

// ውሂቡን ይለውጡ

ተንሳፋፊ እርጥበት = (ቫል [1] * 256.0) + ቫል [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) * (temp - 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 እንደ አየር እርጥበት እና ማቀዝቀዣዎች ባሉ የተለያዩ የሸማቾች ምርቶች ውስጥ ሊሠራ ይችላል። ይህ አነፍናፊ ስማርት የቤት አውቶማቲክን ፣ የኢንዱስትሪ አውቶማቲክን ፣ የመተንፈሻ መሣሪያዎችን ፣ የንብረት እና የእቃዎችን መከታተያ ጨምሮ በሰፊው ሜዳ ውስጥ መተግበሪያውን ያገኛል።

የሚመከር: