Daftar Isi:
Video: Arduino Nano - HTS221 Kelembaban Relatif dan Tutorial Sensor Suhu: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
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. Berikut adalah demonstrasi dengan arduino nano.
Langkah 1: Yang Anda Butuhkan.
1. Arduino Nano
2. HTS221
3. Kabel I²C
4. Perisai I²C untuk Arduino Nano
Langkah 2: Koneksi:
Ambil pelindung I2C untuk Arduino Nano dan dorong perlahan ke pin Nano.
Kemudian sambungkan salah satu ujung kabel I2C ke sensor HTS221 dan ujung lainnya ke pelindung I2C.
Koneksi ditunjukkan pada gambar di atas.
Langkah 3: Kode:
Kode arduino untuk HTS221 dapat diunduh dari repositori github kami - Komunitas DCUBE.
Berikut ini tautan untuk hal yang sama:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Kami menyertakan library Wire.h untuk memfasilitasi komunikasi I2c dari sensor dengan board Arduino.
Anda juga dapat menyalin kode dari sini, diberikan sebagai berikut:
// Didistribusikan dengan lisensi kehendak bebas.
// Gunakan sesuka Anda, untung atau gratis, asalkan sesuai dengan lisensi karya terkait.
// HTS221
// Kode ini dirancang untuk bekerja dengan Modul Mini HTS221_I2CS I2C
#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);
}
Langkah 4: 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:
Mengotomatiskan Rumah Kaca Dengan LoRa! (Bagian 1) -- Sensor (Suhu, Kelembaban, Kelembaban Tanah): 5 Langkah
Mengotomatiskan Rumah Kaca Dengan LoRa! (Bagian 1) || Sensor (Suhu, Kelembaban, Kelembaban Tanah): Dalam proyek ini saya akan menunjukkan kepada Anda bagaimana saya mengotomatiskan rumah kaca. Itu berarti saya akan menunjukkan kepada Anda bagaimana saya membangun rumah kaca dan bagaimana saya menghubungkan listrik dan elektronik otomatisasi. Saya juga akan menunjukkan cara memprogram papan Arduino yang menggunakan L
ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembaban di Browser: 5 Langkah
ESP8266 NodeMCU Access Point (AP) untuk Web Server Dengan Sensor Suhu DT11 dan Pencetakan Suhu & Kelembaban di Browser: Hai guys di sebagian besar proyek kami menggunakan ESP8266 dan di sebagian besar proyek kami menggunakan ESP8266 sebagai server web sehingga data dapat diakses di perangkat apa pun melalui wifi dengan mengakses server Web yang dihosting oleh ESP8266 tetapi satu-satunya masalah adalah kita membutuhkan router yang berfungsi untuk
Cara Menggunakan Sensor Suhu DHT11 Dengan Arduino dan Mencetak Suhu Panas dan Kelembaban: 5 Langkah
Cara Menggunakan Sensor Suhu DHT11 Dengan Arduino dan Mencetak Suhu Panas dan Kelembaban: Sensor DHT11 digunakan untuk mengukur suhu dan kelembaban. Mereka adalah penggemar elektronik yang sangat populer. Sensor kelembaban dan suhu DHT11 membuatnya sangat mudah untuk menambahkan data kelembaban dan suhu ke proyek elektronik DIY Anda. Ini per
Termometer Dengan Warna Relatif Suhu pada Layar TFT 2" dan Beberapa Sensor: 5 Langkah
Termometer Dengan Warna Relatif Suhu pada Layar TFT 2" dan Beberapa Sensor: Saya telah membuat tampilan yang menunjukkan pengukuran beberapa sensor suhu. Yang keren adalah warna nilainya berubah dengan suhu:> 75 derajat Celcius = MERAH> 60 > 75 = ORANGE> 40 < 60 = KUNING> 30 < 40
Temperatur, Kelembaban Relatif, Logger Tekanan Atmosfer Menggunakan Konektivitas Raspberry Pi dan TE MS8607-02BA01: 22 Langkah (dengan Gambar)
Temperatur, Kelembaban Relatif, Pencatat Tekanan Atmosfer Menggunakan Raspberry Pi dan Konektivitas TE MS8607-02BA01: Pendahuluan:Dalam proyek ini saya akan menunjukkan kepada Anda bagaimana membangun pengaturan demi langkah sistem pencatatan untuk kelembaban suhu dan tekanan atmosfer. Proyek ini didasarkan pada chip sensor lingkungan Raspberry Pi 3 Model B dan TE Connectivity MS8607-02BA