Мазмұны:
Бейне: Arduino Nano - HTS221 салыстырмалы ылғалдылық пен температура сенсорының оқулығы: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
HTS221 - салыстырмалы ылғалдылық пен температураның ультра жинақы сыйымдылықты сандық сенсоры. Ол сандық сериялық интерфейстер арқылы өлшеу ақпаратын беру үшін сенсорлық элементті және аралас сигналдық арнайы интегралды схеманы (ASIC) қамтиды. Бұл көптеген мүмкіндіктермен біріктірілген, бұл ылғалдылық пен температураны өлшеуге арналған ең қолайлы сенсорлардың бірі. Мұнда arduino nano көмегімен демонстрация.
1 -қадам: Сізге не керек..
1. Ардуино Нано
2. HTS221
3. I²C кабелі
4. Arduino Nano үшін 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
// Бұл код HTS221_I2CS I2C шағын модулімен жұмыс жасауға арналған
#қосу
// HTS221 I2C мекенжайы - 0x5F
#Addr 0x5F анықтаңыз
жарамсыз орнату ()
{
// I2C байланысын MASTER ретінде баптаңыз
Wire.begin ();
// Сериялық байланысты орнатыңыз, жіберу жылдамдығы = 9600
Serial.begin (9600);
// I2C берілуін бастау
Wire.beginTransmission (Addr);
// Орташа конфигурация регистрін таңдаңыз
Wire.write (0x10);
// Температураның орташа үлгілері = 256, Ылғалдылықтың орташа үлгілері = 512
Wire.write (0x1B);
// I2C берілуін тоқтату
Wire.endTransmission ();
// I2C берілуін бастау
Wire.beginTransmission (Addr);
// Басқару регистрін таңдаңыз1
Wire.write (0x20);
// Қуат қосу, үздіксіз жаңарту, деректерді шығару жылдамдығы = 1 Гц
Wire.write (0x85);
// I2C берілуін тоқтату
Wire.endTransmission ();
кешіктіру (300);
}
бос цикл ()
{
қол қойылмаған int деректері [2];
белгісіз int val [4];
белгісіз int H0, H1, H2, H3, T0, T1, T2, T3, шикі;
// Ылғалдылықты калибрлеу мәндері
үшін (int i = 0; i <2; i ++)
{
// I2C берілуін бастау
Wire.beginTransmission (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.beginTransmission (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.beginTransmission (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.beginTransmission (Addr);
// Деректер регистрін жіберу
Wire.write (0x32);
// I2C берілуін тоқтату
Wire.endTransmission ();
// 1 байт деректерді сұрау
Wire.requestFrom (Addr, 1);
// 1 байт деректерді оқу
егер (Wire.available () == 1)
{
T0 = Wire.read ();
}
// I2C берілуін бастау
Wire.beginTransmission (Addr);
// Деректер регистрін жіберу
Wire.write (0x33);
// I2C берілуін тоқтату
Wire.endTransmission ();
// 1 байт деректерді сұрау
Wire.requestFrom (Addr, 1);
// 1 байт деректерді оқу
егер (Wire.available () == 1)
{
T1 = Wire.read ();
}
// I2C берілуін бастау
Wire.beginTransmission (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.beginTransmission (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.beginTransmission (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.beginTransmission (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 ();
}
// Деректерді түрлендіру
қалқыма ылғалдылығы = (val [1] * 256.0) + val [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];
float cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Деректерді сериялық мониторға шығару
Serial.print («Салыстырмалы ылғалдылық:»);
Сериялық баспа (ылғалдылық);
Serial.println («RH %»);
Serial.print («Цельсий бойынша температура:»);
Serial.print (cTemp); Serial.println («C»);
Serial.print («Фаренгейт температурасы:»);
Serial.print (fTemp);
Serial.println («F»);
кешіктіру (500);
}
4 -қадам: Өтініштер:
HTS221 ауаны ылғалдандырғыштар мен тоңазытқыштар сияқты әр түрлі тұтыну өнімдерінде қолданыла алады. Бұл сенсор ақылды үйді автоматтандыру, өнеркәсіптік автоматтандыру, тыныс алу құралдары, активтер мен тауарларды бақылау сияқты кең ауқымда қолданылады.
Ұсынылған:
Raspberry Pi SHT25 ылғалдылық пен температура сенсоры Python оқулығы: 4 қадам
Raspberry Pi SHT25 ылғалдылық пен температура сенсоры Python оқулығы: SHT25 I2C ылғалдылық пен температура сенсоры ± 1,8%RH ± 0,2 ° C I2C шағын модулі. SHT25 жоғары дәлдіктегі ылғалдылық пен температура сенсоры калибрленген, сызықты сенсорлық сигнал беретін формалық фактор мен интеллект тұрғысынан өнеркәсіптік стандартқа айналды
Сымсыз температура мен ылғалдылық сенсорының мәліметтерін Excel -ге жіберу: 34 қадам
Excel -ге сымсыз температура мен ылғалдылық сенсорының деректерін жіберу: Біз мұнда NCD температурасы мен ылғалдылығы сенсорын қолданамыз, бірақ кез келген ncd өніміне арналған қадамдар бірдей болады, сондықтан егер сізде басқа ncd сымсыз сенсорлары болса, оларды басқа құрылғылармен бірге бақылаңыз. Бұл мәтінді тоқтату арқылы сізге
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Python оқулығы: 4 қадам
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Python оқулығы: HIH6130 - бұл цифрлық шығысы бар ылғалдылық пен температура сенсоры. Бұл датчиктер ± 4% RH дәлдік деңгейін қамтамасыз етеді. Өнеркәсіптің жетекші ұзақ мерзімді тұрақтылығымен, шынайы температуралық компенсацияланған сандық I2C, өнеркәсіптің сенімділігі, энергия тиімділігі
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Java оқулығы: 4 қадам
Raspberry Pi - HIH6130 I2C ылғалдылық пен температура сенсоры Java оқулығы: HIH6130 - бұл цифрлық шығысы бар ылғалдылық пен температура сенсоры. Бұл датчиктер ± 4% RH дәлдік деңгейін қамтамасыз етеді. Өнеркәсіптің жетекші ұзақ мерзімді тұрақтылығымен, шынайы температуралық компенсацияланған сандық I2C, өнеркәсіптің сенімділігі, энергия тиімділігі
Raspberry Pi мен TE Connectivity MS8607-02BA01 көмегімен температура, салыстырмалы ылғалдылық, атмосфералық қысымды тіркеуші: 22 қадам (суреттермен)
Raspberry Pi мен TE Connectivity MS8607-02BA01 көмегімен температура, салыстырмалы ылғалдылық, атмосфералық қысымды тіркеуші: Кіріспе: Бұл жобада мен сізге температураның ылғалдылығы мен атмосфералық қысымды тіркеу жүйесін кезең-кезеңмен қалай құру керектігін көрсетемін. Бұл жоба Raspberry Pi 3 Model B және TE Connectivity MS8607-02BA экологиялық сенсорлық чипіне негізделген