Мазмуну:
Video: Arduino Nano - HTS221 Салыштырмалуу нымдуулук жана температура сенсорунун үйрөткүчү: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
HTS221 салыштырмалуу нымдуулук жана температура үчүн өтө компакт сыйымдуу санарип сенсор. Бул санариптик сериялык интерфейстер аркылуу өлчөө маалыматын берүү үчүн сезгич элементти жана аралаш сигналга тиешелүү интегралдык микросхеманы (ASIC) камтыйт. Бул көптөгөн өзгөчөлүктөр менен интеграцияланган, бул нымдуулукту жана температураны өлчөө үчүн эң ылайыктуу сенсорлордун бири. Бул жерде arduino nano менен болгон демонстрация.
1 -кадам: Сизге эмне керек..
1. Ардуино Нано
2. HTS221
3. I²C кабели
4. Arduino Nano үчүн I²C Shield
2 -кадам: Байланыштар:
Arduino Nano үчүн I2C калканчын алыңыз жана аны акырындык менен Нанонун казыктарына түртүңүз.
Андан кийин I2C кабелинин бир учун HTS221 сенсоруна, экинчи учун I2C калканчына туташтырыңыз.
Байланыштар жогорудагы сүрөттө көрсөтүлгөн.
3 -кадам: Код:
HTS221 үчүн arduino кодун биздин github репозиторийинен жүктөп алсаңыз болот- DCUBE Community.
Мына ушуга шилтеме:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Биз сенсордун Arduino тактасы менен I2c байланышын жеңилдетүү үчүн Wire.h китепканасын камтыйбыз.
Сиз бул жерден кодду көчүрүп алсаңыз болот, ал төмөнкүчө берилген:
// Эркин лицензия менен таратылган.
// Аны каалагандай колдон, пайда же бекер, эгер ал ага байланыштуу чыгармаларынын лицензиясына туура келсе.
// HTS221
// Бул код HTS221_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан
#кошуу
// HTS221 I2C дареги 0x5F
#define 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);
// Power ON, Үзгүлтүксүз жаңыртуу, Маалымат чыгаруу ылдамдыгы = 1 Гц
Wire.write (0x85);
// I2C берүүнү токтотуу
Wire.endTransmission ();
кечигүү (300);
}
боштук цикл ()
{
кол коюлбаган int маалыматтары [2];
unsigned 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 ();
}
}
// Нымдуулук маалыматын Convert
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 ();
}
}
// Нымдуулук маалыматын Convert
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 ();
}
}
// Нымдуулук маалыматын Convert
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)
{
raw = 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 ();
}
// Маалыматты конвертациялоо
калкыма нымдуулук = (вал [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];
float cTemp = ((((T1 - T0) / 8.0) * (темп - T2)) / (T3 - T2) + (T0 / 8.0);
float 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 абаны нымдагычтар жана муздаткычтар сыяктуу ар кандай керектөөчү продуктыларда колдонулушу мүмкүн. Бул сенсор ошондой эле акылдуу үйдү автоматташтыруу, өнөр жайлык автоматташтыруу, дем алуу жабдуулары, активдерди жана товарларды көзөмөлдөө сыяктуу кеңири аренада колдонулат.
Сунушталууда:
Зымсыз температура жана нымдуулук сенсорунун маалыматтарын Excelге жөнөтүү: 34 кадам
Зымсыз Температура жана Нымдуулук Сенсорунун Берилиштерин Excelге Жөнөтүү: Биз бул жерде NCDдин Температура жана Нымдуулук сенсорун колдонуп жатабыз, бирок кадамдар ncd продуктусу үчүн бирдей болуп калат, андыктан башка ncd зымсыз сенсорлоруңуз болсо, жанында байкоо жүргүзүңүз. Бул текстти токтотуу аркылуу сиз
Raspberry Pi - HIH6130 I2C нымдуулук жана температура сенсорунун Java үйрөткүчү: 4 кадам
Raspberry Pi - HIH6130 I2C нымдуулук жана температура сенсорунун Java үйрөткүчү: HIH6130 - бул санариптик чыгуусу бар нымдуулук жана температура сенсору. Бул сенсорлор ± 4% RH тактыгын камсыз кылат. Өнөр жайдын алдыңкы узак мөөнөттүү туруктуулугу, чыныгы температуранын ордун толтуруучу санариптик I2C, индустриянын алдыңкы ишенимдүүлүгү, энергияны үнөмдөө
IoT Long Range Зымсыз Температура жана Нымдуулук Сенсорунун маалыматтарын Google Баракка жөнөтүү: 39 кадам
IoT Long Range Wireless Temperature and Humidity Sensor маалыматтарын Google Sheetке жөнөтүү: Биз бул жерде NCDдин температурасы жана нымдуулугу сенсорун колдонобуз, бирок кадамдар ncd продуктусу үчүн бирдей, ошондуктан сизде башка ncd зымсыз сенсорлору болсо, байкап көрүңүз жанында. Бул текстти токтотуу аркылуу сиз
NCD Wireless Температура жана Нымдуулук Сенсорунун Электрондук Түшүндүрүүчүнү Түзөтүү-Колдонуу: 22 кадам
NCD зымсыз температурасы жана нымдуулук сенсорунун электрондук почта билдирүүлөрүн түзүү Node-Red: Биз бул жерде NCDдин температурасы жана нымдуулугу сенсорун колдонобуз, бирок кадамдар ncd продуктусу үчүн бирдей, ошондуктан сизде башка ncd зымсыз сенсорлору бар болсо жанында караңыз. Бул текстти токтотуу аркылуу сиз
Температура, Салыштырмалуу Нымдуулук, Raspberry Pi жана TE Connection MS8607-02BA01ди колдонуп атмосфералык басымды жазуучу: 22 кадам (Сүрөттөр менен)
Температура, салыштырмалуу нымдуулук, Raspberry Pi жана TE туташуусун колдонуу менен атмосфералык басымдын каттоосу MS8607-02BA01: Киришүү: Бул долбоордо мен температураны нымдуулукка жана атмосфералык басымга орнотуу системасын этап менен орнотууну көрсөтөм. Бул долбоор Raspberry Pi 3 Model B жана TE Connectivity экологиялык сенсор MS8607-02BA чипине негизделген