Isi kandungan:

Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Partikel Photon: 4 Langkah
Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Partikel Photon: 4 Langkah

Video: Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Partikel Photon: 4 Langkah

Video: Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Partikel Photon: 4 Langkah
Video: Raspberry Pi Project: Smart Plant Pi 2024, Julai
Anonim
Image
Image

HDC1000 adalah sensor kelembapan digital dengan sensor suhu bersepadu yang memberikan ketepatan pengukuran yang sangat baik pada kuasa yang sangat rendah. Peranti mengukur kelembapan berdasarkan sensor kapasitif baru. Sensor kelembapan dan suhu dikalibrasi kilang. Ia berfungsi dalam lingkungan suhu -40 ° C hingga + 125 ° C penuh.

Dalam tutorial ini, antara muka modul sensor HDC1000 dengan foton zarah telah digambarkan. Untuk membaca nilai suhu dan kelembapan, kami telah menggunakan zarah dengan penyesuai I2c. Penyesuai I2C ini menjadikan sambungan ke modul sensor mudah dan lebih dipercayai.

Langkah 1: Perkakasan Diperlukan:

Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan

Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:

1. HDC1000

2. Foton Zarah

3. Kabel I2C

4. Perisai I2C untuk foton zarah

Langkah 2: Penyambungan Perkakasan:

Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan

Bahagian penyambungan perkakasan pada dasarnya menerangkan sambungan pendawaian yang diperlukan antara sensor dan foton zarah. Memastikan sambungan yang betul adalah keperluan asas semasa mengerjakan sistem apa pun untuk output yang diinginkan. Jadi, sambungan yang diperlukan adalah seperti berikut:

HDC1000 akan berfungsi menggunakan I2C. Berikut adalah contoh rajah pendawaian, yang menunjukkan cara memasang setiap antara muka sensor.

Di luar kotak, papan dikonfigurasikan untuk antara muka I2C, oleh itu kami mengesyorkan menggunakan penyambungan ini jika anda tidak agnostik.

Yang anda perlukan hanyalah empat wayar! Hanya diperlukan empat sambungan pin Vcc, Gnd, SCL dan SDA dan ini disambungkan dengan bantuan kabel I2C.

Sambungan ini ditunjukkan dalam gambar di atas.

Langkah 3: Kod Pengukuran Suhu dan Kelembapan:

Kod untuk Pengukuran Suhu dan Kelembapan
Kod untuk Pengukuran Suhu dan Kelembapan

Mari mulakan dengan kod zarah sekarang.

Semasa menggunakan modul sensor dengan partikel, kami menyertakan library application.h dan spark_wiring_i2c.h. Perpustakaan "application.h" dan spark_wiring_i2c.h mengandungi fungsi yang memudahkan komunikasi i2c antara sensor dan zarah.

Keseluruhan kod zarah diberikan di bawah untuk kemudahan pengguna:

#sertakan

#sertakan

// Alamat HDC1000 I2C ialah 0x40 (64)

#tentukan Addr 0x40

double cTemp = 0.0, fTemp = 0.0, kelembapan = 0.0;

int temp = 0, hum = 0;

persediaan tidak sah ()

{

// Tetapkan pemboleh ubah

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

Particle.variable ("kelembapan", kelembapan);

Particle.variable ("cTemp", cTemp);

// Memulakan komunikasi I2C

Wire.begin ();

// Inisialisasi Serial Communication, tetapkan baud rate = 9600

Serial.begin (9600);

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar konfigurasi

Wire.write (0x02);

// Suhu, kelembapan diaktifkan, keputusan = 14-bit, pemanas dihidupkan

Wire.write (0x30);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

kelewatan (300);

}

gelung kosong ()

{

data int yang tidak ditandatangani [2];

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Hantar arahan pengukuran temp

Wire.write (0x00);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

kelewatan (500);

// Minta 2 bait data

Wire.requestFrom (Addr, 2);

// Baca 2 bait data

// temp msb, temp lsb

jika (Wire.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Tukarkan data

temp = ((data [0] * 256) + data [1]);

cTemp = (temp / 65536.0) * 165.0 - 40;

fTemp = cTemp * 1.8 + 32;

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Hantar arahan pengukuran kelembapan

Wire.write (0x01);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

kelewatan (500);

// Minta 2 bait data

Wire.requestFrom (Addr, 2);

// Baca 2 bait data

// temp msb, temp lsb

jika (Wire.available () == 2)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

}

// Tukarkan data

hum = ((data [0] * 256) + data [1]);

kelembapan = (hum / 65536.0) * 100.0;

// Keluarkan data ke papan pemuka

Particle.publish ("Kelembapan Relatif:", Rentetan (kelembapan));

kelewatan (1000);

Particle.publish ("Suhu dalam Celsius:", Rentetan (cTemp));

kelewatan (1000);

Particle.publish ("Suhu di Fahrenheit:", String (fTemp));

kelewatan (1000);

}

Fungsi Particle.variable () mencipta pemboleh ubah untuk menyimpan output sensor dan fungsi Particle.publish () memaparkan output di papan pemuka laman web.

Output sensor ditunjukkan dalam gambar di atas untuk rujukan anda.

Langkah 4: Aplikasi:

Permohonan
Permohonan

HDC1000 dapat digunakan dalam pemanasan, pengudaraan dan penyaman udara (HVAC), Termostat Pintar dan Monitor Bilik. Sensor ini juga menemui aplikasinya dalam Pencetak, Meteran Genggam, Alat Perubatan, Penghantaran Kargo dan juga Defog Kaca Depan Automotif.

Disyorkan: