Мазмуну:

HDC1000 жана Particle Photon аркылуу температура менен нымдуулукту өлчөө: 4 кадам
HDC1000 жана Particle Photon аркылуу температура менен нымдуулукту өлчөө: 4 кадам

Video: HDC1000 жана Particle Photon аркылуу температура менен нымдуулукту өлчөө: 4 кадам

Video: HDC1000 жана Particle Photon аркылуу температура менен нымдуулукту өлчөө: 4 кадам
Video: HUARONG HDC1000 Двухкомпонентное литье стекла заднего фонаря 2024, Ноябрь
Anonim
Image
Image

HDC1000 - бул санариптик нымдуулук сенсору, ал өтө аз кубаттуулукта мыкты өлчөө тактыгын камсыз кылган интегралдык температура сенсору менен. Аппарат нымдуулукту жаңы сыйымдуу сенсордун негизинде өлчөйт. Нымдуулук жана температура сенсорлору заводдо калибрленген. Бул толук -40 ° Cдан +125 ° Cга чейинки температура диапазонунда иштейт.

Бул окуу куралында HDC1000 сенсор модулунун бөлүкчө фотону менен интерфейси сүрөттөлгөн. Температура жана нымдуулук баалуулуктарын окуу үчүн I2c adapter. This I2C адаптер менен бөлүкчөнү колдонгонбуз, сенсор модулуна туташууну жеңил жана ишенимдүү кылат.

1 -кадам: Аппараттык камсыздоо талап кылынат:

Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат
Аппараттык камсыздоо талап кылынат

Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:

1. HDC1000

2. Бөлүкчөлөрдүн фотону

3. I2C кабели

4. Бөлүкчө фотону үчүн I2C калканы

2 -кадам: Аппараттык туташуу:

Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу
Аппараттык туташуу

Аппараттык туташуу бөлүмү негизинен сенсор менен фотон бөлүкчөсүнүн ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:

HDC1000 I2Cде иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.

Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз.

Сизге болгону төрт зым керек! Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.

Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.

3 -кадам: Температура жана нымдуулукту өлчөө коду:

Температура жана нымдуулукту өлчөө коду
Температура жана нымдуулукту өлчөө коду

Эми бөлүкчө коду менен баштайлы.

Бөлүкчө менен сенсор модулун колдонуп жатканда, биз application.h жана spark_wiring_i2c.h китепканасын камтыйт. "application.h" жана spark_wiring_i2c.h китепканасы сенсор менен бөлүкчөнүн ортосундагы i2c байланышын жеңилдетүүчү функцияларды камтыйт.

Колдонуучунун ыңгайлуулугу үчүн бүт бөлүкчө коду төмөндө келтирилген:

#кошуу

#кошуу

// HDC1000 I2C дареги 0x40 (64)

#define Addr 0x40

кош cTemp = 0.0, fTemp = 0.0, нымдуулук = 0.0;

int temp = 0, hum = 0;

жараксыз орнотуу ()

{

// Өзгөрмөнү коюу

Particle.variable ("i2cdevice", "HDC1000");

Particle.variable ("нымдуулук", нымдуулук);

Particle.variable ("cTemp", cTemp);

// I2C байланышын баштоо

Wire.begin ();

// Сериялык байланышты баштоо, байдын ылдамдыгын орнотуу = 9600

Serial.begin (9600);

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Конфигурация реестрин тандоо

Wire.write (0x02);

// Температура, нымдуулук иштетилген, ажыратуу = 14 бит, жылыткыч күйгүзүлгөн

Wire.write (0x30);

// I2C берүүнү токтотуу

Wire.endTransmission ();

кечигүү (300);

}

боштук цикл ()

{

кол коюлбаган int маалыматтары [2];

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Температураны өлчөө буйругун жөнөтүү

Wire.write (0x00);

// I2C берүүнү токтотуу

Wire.endTransmission ();

кечигүү (500);

// 2 байт маалымат сураңыз

Wire.requestFrom (Addr, 2);

// 2 байт маалыматтарды окуңуз

// темп msb, temp lsb

эгер (Wire.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Маалыматты конвертациялоо

темп = ((маалымат [0] * 256) + маалымат [1]);

cTemp = (темп / 65536.0) * 165.0 - 40;

fTemp = cTemp * 1.8 + 32;

// I2C берүүнү баштоо

Wire.beginTransmission (Addr);

// Нымдуулукту өлчөө буйругун жөнөтүү

Wire.write (0x01);

// I2C берүүнү токтотуу

Wire.endTransmission ();

кечигүү (500);

// 2 байт маалымат сураңыз

Wire.requestFrom (Addr, 2);

// 2 байт маалыматтарды окуңуз

// темп msb, temp lsb

эгер (Wire.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Маалыматты конвертациялоо

hum = ((маалымат [0] * 256) + маалымат [1]);

нымдуулук = (хум / 65536,0) * 100,0;

// Маалыматтарды тактасына чыгаруу

Particle.publish ("Салыштырмалуу нымдуулук:", String (нымдуулук));

кечигүү (1000);

Particle.publish ("Цельсий боюнча температура:", String (cTemp));

кечигүү (1000);

Particle.publish ("Фаренгейттеги температура:", String (fTemp));

кечигүү (1000);

}

Particle.

Сенсор чыгаруу үчүн жогорудагы сүрөттө көрсөтүлгөн.

4 -кадам: Тиркемелер:

Колдонмолор
Колдонмолор

HDC1000 жылытуу, вентиляция жана кондиционерлөө (HVAC), Smart Thermostats жана Room Monitorдо колдонулушу мүмкүн. Бул сенсор ошондой эле Принтерлерде, Колдогу эсептегичтерде, Медициналык приборлордо, Жүк ташууда, ошондой эле Автомобиль айнектерин тазалоодо колдонмосун табат.

Сунушталууда: