Агуулгын хүснэгт:
- Алхам 1: Шаардлагатай тоног төхөөрөмж:
- Алхам 2: Тоног төхөөрөмжийн холболт:
- Алхам 3: Чийглэг ба температур хэмжих код:
- Алхам 4: Өргөдөл:
Видео: HTS221 ба ширхэгийн фотон ашиглан чийгшил ба температурын хэмжилт: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
HTS221 бол харьцангуй чийгшил, температурын хэт авсаархан багтаамжтай дижитал мэдрэгч юм. Энэ нь дижитал цуваа интерфэйсээр хэмжилтийн мэдээллийг өгөх мэдрэгч элемент ба холимог дохионы хэрэглээний тусгай нэгдсэн хэлхээг (ASIC) агуулдаг. Олон тооны онцлог шинж чанар бүхий энэ нь чийгшил, температурыг хэмжих хамгийн тохиромжтой мэдрэгч юм.
Энэхүү гарын авлагад бөөмийн фотонтой HTS221 мэдрэгч модулийн интерфэйсийг харуулав. Агаарын чийгшил ба температурын утгыг уншихын тулд I2c адаптер бүхий бөөмийг ашигласан бөгөөд энэхүү I2C адаптер нь мэдрэгчийн модульд холбогдоход хялбар, илүү найдвартай болгодог.
Алхам 1: Шаардлагатай тоног төхөөрөмж:
Зорилгодоо хүрэхийн тулд бидэнд шаардлагатай материалууд нь дараахь тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүдийг агуулдаг.
1. HTS221
2. Бөөмийн фотон
3. I2C кабель
4. Бөөмийн фотоны I2C бамбай
Алхам 2: Тоног төхөөрөмжийн холболт:
Тоног төхөөрөмжийн холболтын хэсэг нь үндсэндээ мэдрэгч ба бөөмийн фотоны хооронд шаардлагатай утас холболтыг тайлбарладаг. Аливаа систем дээр ажиллахад шаардлагатай гаралтын хувьд зөв холболтыг хангах нь хамгийн чухал зүйл юм. Тиймээс шаардлагатай холболтууд дараах байдалтай байна.
HTS221 нь I2C дээр ажиллах болно. Мэдрэгчийн интерфэйс бүрийг хэрхэн яаж холбохыг харуулсан утасны диаграмын жишээ энд байна.
Хайрцагнаас гадуурх самбар нь I2C интерфэйс дээр тохируулагдсан байдаг тул хэрэв та өөр ойлголтгүй бол энэ холболтыг ашиглахыг зөвлөж байна.
Танд ердөө дөрвөн утас л хангалттай! Vcc, Gnd, SCL, SDA зүүг зөвхөн дөрвөн холболт шаарддаг бөгөөд эдгээр нь I2C кабелийн тусламжтайгаар холбогддог.
Эдгээр холболтыг дээрх зурган дээр харуулав.
Алхам 3: Чийглэг ба температур хэмжих код:
Одоо бөөмийн кодоос эхэлье.
Мэдрэгч модулийг бөөмстэй хамт ашиглахдаа application.h болон spark_wiring_i2c.h номын санг оруулна. "application.h" болон spark_wiring_i2c.h номын сан нь мэдрэгч ба бөөмийн хооронд i2c холболтыг хөнгөвчлөх функцуудыг агуулдаг.
Хэрэглэгчийн тав тухыг хангах үүднээс бөөмийн кодыг бүхэлд нь доор харуулав.
#оруулах
#оруулах
// HTS221 I2C хаяг нь 0x5F байна
#тодорхойлох Addr 0x5F
давхар чийгшил = 0.0;
давхар cTemp = 0.0;
давхар fTemp = 0.0;
int temp = 0;
хүчингүй тохиргоо ()
{
// Хувьсагчийг тохируулах
Particle.variable ("i2cdevice", "HTS221");
Бөөм.хувьсагч ("Чийгшил", чийгшил);
Particle.variable ("cTemp", cTemp);
// I2C холболтыг MASTER болгон эхлүүлэх
Wire.begin ();
// Цуваа холболтыг эхлүүлж, дамжуулах хурд = 9600
Цуваа эхлэх (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, түүхий;
// Чийгийг тооцоолох утга
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((48 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Чийглэгийн өгөгдлийг хөрвүүлэх
H0 = өгөгдөл [0] / 2;
H1 = өгөгдөл [1] / 2;
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((54 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Чийглэгийн өгөгдлийг хөрвүүлэх
H2 = (өгөгдөл [1] * 256.0) + өгөгдөл [0];
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((58 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Чийглэгийн өгөгдлийг хөрвүүлэх
H3 = (өгөгдөл [1] * 256.0) + өгөгдөл [0];
// Температурын тохируулгын утга
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Wire.write (0x32);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
T0 = Wire.read ();
}
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Wire.write (0x33);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
T1 = Wire.read ();
}
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Wire.write (0x35);
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
түүхий = Wire.read ();
}
түүхий = түүхий & 0x0F;
// Температурын тохируулгын утгыг 10 бит болгон хөрвүүлэх
T0 = ((түүхий & 0x03) * 256) + T0;
T1 = ((түүхий & 0x0C) * 64) + T1;
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((60 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 1)
{
өгөгдөл = Wire.read ();
}
}
// Өгөгдлийг хөрвүүлэх
T2 = (өгөгдөл [1] * 256.0) + өгөгдөл [0];
for (int i = 0; i <2; i ++)
{
// I2C дамжуулалтыг эхлүүлэх
Wire.beginTransmission (Addr);
// Мэдээллийн бүртгэл илгээх
Утас. бичих ((62 + i));
// I2C дамжуулалтыг зогсоох
Wire.endTransmission ();
// 1 байтын өгөгдөл хүсэх
Wire.requestFrom (Addr, 1);
// 1 байтын өгөгдлийг уншина уу
хэрэв (Утас. боломжтой () == 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
хэрэв (Утас. боломжтой () == 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 * Н2) / (1.0 * Н3 - 1.0 * Н2) + (1.0 * Н0);
temp = (val [3] * 256) + val [2]; cTemp = (((T1 - T0) / 8.0) * (температур - T2)) / (T3 - T2) + (T0 / 8.0);
fTemp = (cTemp * 1.8) + 32;
// Мэдээллийг хяналтын самбарт гаргах
Particle.publish ("Харьцангуй чийгшил:", Мөр (чийгшил));
саатал (1000);
Particle.publish ("Цельсийн температур:", String (cTemp));
саатал (1000);
Particle.publish ("Фаренгейт дэх температур:", String (fTemp));
саатал (1000);
}
Particle.variable () функц нь мэдрэгчийн гаралтыг хадгалах хувьсагчдыг үүсгэдэг ба Particle.publish () функц нь сайтын хяналтын самбарт гаралтыг харуулдаг.
Мэдээллийн хувьд мэдрэгчийн гаралтыг дээрх зурагт үзүүлэв.
Алхам 4: Өргөдөл:
HTS221 -ийг агаарын чийгшүүлэгч, хөргөгч гэх мэт өргөн хэрэглээний бүтээгдэхүүнүүдэд ашиглаж болно. Энэхүү мэдрэгч нь ухаалаг гэрийн автоматжуулалт, үйлдвэрлэлийн автоматжуулалт, амьсгалын төхөөрөмж, эд хөрөнгө, бараа бүтээгдэхүүний хяналт зэрэг өргөн хүрээнд хэрэглэгддэг.
Зөвлөмж болгож буй:
HYT939 ба ширхэгийн фотон ашиглан чийгшил хэмжих: 4 алхам
HYT939 ба ширхэгийн фотон ашиглан чийгшил хэмжих: HYT939 бол I2C холбооны протокол дээр ажилладаг дижитал чийгшлийн мэдрэгч юм. Эмнэлгийн систем, лабораторийн хувьд чийгшил нь чухал үзүүлэлт болдог тул эдгээр зорилгод хүрэхийн тулд бид HYT939 -ийг бөөрөлзгөнө pi -тэй холбохыг хичээсэн. Би
HTS221 ба Arduino Nano ашиглан чийгшил ба температурын хэмжилт: 4 алхам
HTS221 ба Arduino Nano ашиглан чийгшил ба температурыг хэмжих: HTS221 бол харьцангуй чийгшил, температурыг хэмжих хэт авсаархан багтаамжтай дижитал мэдрэгч юм. Үүнд хэмжих мэдээллийг дижитал цувралаар хангах мэдрэгч элемент ба холимог дохионы хэрэглээний тусгай нэгдсэн хэлхээ (ASIC) орно
CPS120 ба ширхэгийн фотон ашиглан даралтын хэмжилт: 4 алхам
CPS120 ба Particle Photon ашиглан даралтыг хэмжих: CPS120 нь өндөр чанартай, хямд өртөгтэй багтаамж бүхий үнэмлэхүй даралт мэдрэгч бөгөөд бүрэн нөхөн олгосон гаралттай. Энэ нь маш бага цахилгаан зарцуулдаг бөгөөд даралтыг хэмжих зориулалттай хэт жижиг бичил цахилгаан механик механик мэдрэгч (MEMS) -ээс бүрдэнэ. Сигма дельта дээр суурилсан
HTS221 ба Raspberry Pi ашиглан чийгшил ба температурын хэмжилт: 4 алхам
HTS221 ба Raspberry Pi ашиглан чийгшил ба температурын хэмжилт: HTS221 бол харьцангуй чийгшил, температурыг хэмжих хэт авсаархан багтаамжтай дижитал мэдрэгч юм. Үүнд хэмжих мэдээллийг дижитал цувралаар хангах мэдрэгч элемент ба холимог дохионы хэрэглээний тусгай нэгдсэн хэлхээ (ASIC) орно
HIH6130 ба ширхэгийн фотон ашиглан чийгшил ба температурын хэмжилт: 4 алхам
HIH6130 ба ширхэгийн фотон ашиглан чийгшил ба температурын хэмжилт: HIH6130 нь дижитал гаралттай чийгшил, температур мэдрэгч юм. Эдгээр мэдрэгч нь ± 4% RH нарийвчлалын түвшинг хангадаг. Салбартаа тэргүүлэгч урт хугацааны тогтвортой байдал, жинхэнэ температурын нөхөн төлбөртэй дижитал I2C, салбартаа тэргүүлэгч найдвартай байдал, эрчим хүчний хэмнэлттэй