Мазмуну:

Particle Photon - HDC1000 Температура сенсорунун үйрөткүчү: 4 кадам
Particle Photon - HDC1000 Температура сенсорунун үйрөткүчү: 4 кадам

Video: Particle Photon - HDC1000 Температура сенсорунун үйрөткүчү: 4 кадам

Video: Particle Photon - HDC1000 Температура сенсорунун үйрөткүчү: 4 кадам
Video: How to interface with HDC1080 humidity and temperature sensor with Arduino using I2C 2024, Ноябрь
Anonim
Image
Image

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

1 -кадам: Сизге эмне керек..

Сизге эмне керек.. !!
Сизге эмне керек.. !!

1. Фотоникалык бөлүкчөлөр

2. HDC1000

3. I²C кабели

4. I²C калканч фотон үчүн

2 -кадам: Байланыш:

Туташуу
Туташуу
Туташуу
Туташуу
Туташуу
Туташуу
Туташуу
Туташуу

Бөлүкчө фотону үчүн I2C калканчын алыңыз жана аны акырын бөлүкчө фотонунун казыктарынын үстүнө түртүңүз.

Андан кийин I2C кабелинин бир учун HDC1000 сенсоруна, экинчи учун I2C калканчына туташтырыңыз.

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

3 -кадам: Код:

Код
Код

HDC1000 үчүн бөлүкчө кодун биздин GitHub репозиторийинен жүктөп алса болот- Dcube дүкөнү.

Мына ушуга шилтеме:

github.com/DcubeTechVentures/HDC1000…

HDC1000 маалымат барагын бул жерден тапса болот:

www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf

Биз бөлүкчө коду үчүн эки китепкананы колдондук, алар application.h жана spark_wiring_i2c.h. Сенсор менен I2C байланышын жеңилдетүү үчүн Spark_wiring_i2c китепканасы талап кылынат.

Сиз бул жерден кодду көчүрүп алсаңыз болот, ал төмөнкүчө берилген:

// Эркин лицензия менен таратылган.

// Аны каалагандай колдон, пайда же бекер, эгер ал ага байланыштуу чыгармаларынын лицензиясына туура келсе.

// HDC1000

// Бул код Dcube Storeдо бар HDC1000_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан.

#кошуу

#кошуу

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

#define Addr 0x40

float 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 (нымдуулук));

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

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

кечигүү (1000);

}

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

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

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