Daftar Isi:

Pengukuran Kelembaban dan Suhu Menggunakan HTS221 dan Arduino Nano: 4 Langkah
Pengukuran Kelembaban dan Suhu Menggunakan HTS221 dan Arduino Nano: 4 Langkah

Video: Pengukuran Kelembaban dan Suhu Menggunakan HTS221 dan Arduino Nano: 4 Langkah

Video: Pengukuran Kelembaban dan Suhu Menggunakan HTS221 dan Arduino Nano: 4 Langkah
Video: #3 Arduino Nano 33 BLE Sense | Membaca Suhu & Kelembaban 2024, November
Anonim
Image
Image

HTS221 adalah sensor digital kapasitif ultra kompak untuk kelembaban dan suhu relatif. Ini mencakup elemen penginderaan dan sirkuit terintegrasi khusus aplikasi sinyal campuran (ASIC) untuk memberikan informasi pengukuran melalui antarmuka serial digital. Terintegrasi dengan begitu banyak fitur, ini adalah salah satu sensor yang paling tepat untuk pengukuran kelembaban dan suhu kritis.

Dalam tutorial ini antarmuka modul sensor HTS221 dengan arduino nano telah diilustrasikan. Untuk membaca nilai kelembaban dan suhu, kami telah menggunakan arduino dengan adaptor I2c. Adaptor I2C ini membuat koneksi ke modul sensor menjadi mudah dan lebih andal.

Langkah 1: Perangkat Keras Yang Dibutuhkan:

Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan

Bahan yang kami butuhkan untuk mencapai tujuan kami meliputi komponen perangkat keras berikut:

1. HTS221

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C untuk Arduino Nano

Langkah 2: Sambungan Perangkat Keras:

Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras

Bagian hookup perangkat keras pada dasarnya menjelaskan koneksi kabel yang diperlukan antara sensor dan arduino nano. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:

HTS221 akan bekerja melalui I2C. Berikut adalah contoh diagram pengkabelan, yang menunjukkan cara memasang setiap antarmuka sensor.

Out-of-the-box, papan dikonfigurasi untuk antarmuka I2C, karena itu kami sarankan menggunakan hookup ini jika Anda agnostik.

Yang Anda butuhkan hanyalah empat kabel! Hanya empat koneksi yang diperlukan pin Vcc, Gnd, SCL dan SDA dan ini terhubung dengan bantuan kabel I2C.

Koneksi ini ditunjukkan pada gambar di atas.

Langkah 3: Kode untuk Pengukuran Kelembaban dan Suhu:

Kode untuk Pengukuran Kelembaban dan Suhu
Kode untuk Pengukuran Kelembaban dan Suhu

Mari kita mulai dengan kode Arduino sekarang.

Saat menggunakan modul sensor dengan Arduino, kami menyertakan perpustakaan Wire.h. Pustaka "Wire" berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan papan Arduino.

Seluruh kode Arduino diberikan di bawah ini untuk kenyamanan pengguna:

#termasuk

// Alamat HTS221 I2C adalah 0x5F

#define Addr 0x5F

batalkan pengaturan()

{

// Inisialisasi komunikasi I2C sebagai MASTER

Kawat.mulai();

// Inisialisasi komunikasi serial, setel baud rate = 9600

Serial.begin(9600);

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih register konfigurasi rata-rata

Kawat.tulis (0x10);

// Sampel rata-rata suhu = 256, Sampel rata-rata kelembaban = 512

Kawat.tulis (0x1B);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih register kontrol1

Kawat.tulis (0x20);

// Hidupkan, Pembaruan berkelanjutan, Laju keluaran data = 1 Hz

Kawat.tulis (0x85);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

penundaan (300);

}

lingkaran kosong()

{

data int yang tidak ditandatangani [2];

unsigned int val[4];

unsigned int H0, H1, H2, H3, T0, T1, T2, T3, mentah;

// Nilai kalibrasi kelembaban

untuk(int i = 0; i < 2; i++)

{

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Wire.write((48 + i));

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

data = Wire.read();

}

}

// Konversi data Kelembaban

H0 = data[0] / 2;

H1 = data[1] / 2;

untuk(int i = 0; i < 2; i++)

{

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Wire.write((54 + i));

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

data = Wire.read();

}

}

// Konversi data Kelembaban

H2 = (data[1] * 256.0) + data[0];

untuk(int i = 0; i < 2; i++)

{

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Wire.write((58 + i));

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

data = Wire.read();

}

}

// Konversi data Kelembaban

H3 = (data[1] * 256.0) + data[0];

// Nilai kalibrasi suhu

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Kawat.tulis (0x32);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

T0 = Kawat.baca();

}

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Kawat.tulis (0x33);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

T1 = Kawat.baca();

}

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Kawat.tulis (0x35);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

mentah = Wire.read();

}

mentah = mentah & 0x0F;

// Ubah nilai kalibrasi suhu menjadi 10-bit

T0 = ((mentah & 0x03) * 256) + T0;

T1 = ((mentah & 0x0C) * 64) + T1;

untuk(int i = 0; i < 2; i++)

{

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Wire.write((60 + i));

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

data = Wire.read();

}

}

// Konversi data

T2 = (data[1] * 256.0) + data[0];

untuk(int i = 0; i < 2; i++)

{

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Wire.write((62 + i));

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 1 byte data

if(Wire.available() == 1)

{

data = Wire.read();

}

}

// Konversi data

T3 = (data[1] * 256.0) + data[0];

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Kirim data register

Wire.write(0x28 | 0x80);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 4 byte data

Wire.requestFrom(Addr, 4);

// Baca 4 byte data

// kelembaban msb, kelembaban lsb, suhu msb, suhu lsb

if(Wire.available() == 4)

{

val[0] = Wire.read();

val[1] = Wire.read();

val[2] = Wire.read();

val[3] = Wire.read();

}

// Konversi data

kelembaban mengambang = (val[1] * 256.0) + val[0];

kelembaban = ((1.0 * H1) - (1.0 * H0)) * (1.0 * kelembaban - 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) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);

float fTemp = (cTemp * 1.8) + 32;

// Keluarkan data ke monitor serial

Serial.print("Kelembaban relatif: ");

Serial.print(kelembaban);

Serial.println("% RH");

Serial.print("Suhu dalam Celcius: ");

Serial.print(cTemp); Serial.println("C");

Serial.print("Suhu dalam Fahrenheit: ");

Serial.print(fTemp);

Serial.println("F");

penundaan (500);

}

Dalam wire library Wire.write() dan Wire.read() digunakan untuk menulis perintah dan membaca output sensor.

Serial.print() dan Serial.println() digunakan untuk menampilkan output dari sensor pada serial monitor Arduino IDE.

Output dari sensor ditunjukkan pada gambar di atas.

Langkah 4: Aplikasi:

Aplikasi
Aplikasi

HTS221 dapat digunakan di berbagai produk konsumen seperti pelembab udara dan lemari es dll. Sensor ini juga menemukan penerapannya di arena yang lebih luas termasuk otomatisasi rumah pintar, otomatisasi industri, peralatan pernapasan, pelacakan aset dan barang.

Direkomendasikan: