Isi kandungan:
- Langkah 1: Perkakasan Diperlukan:
- Langkah 2: Penyambungan Perkakasan:
- Langkah 3: Kod untuk Pengukuran Kelembapan dan Suhu:
- Langkah 4: Aplikasi:
Video: Pengukuran Kelembapan dan Suhu Menggunakan HTS221 dan Foton Zarah: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
HTS221 adalah sensor digital kapasitif ultra kompak untuk kelembapan dan suhu relatif. Ini merangkumi elemen penginderaan dan litar bersepadu khusus aplikasi isyarat campuran (ASIC) untuk memberikan maklumat pengukuran melalui antara muka siri digital. Bersepadu dengan begitu banyak ciri ini adalah salah satu sensor yang paling sesuai untuk pengukuran kelembapan dan suhu kritikal.
Dalam tutorial ini antara muka modul sensor HTS221 dengan foton zarah telah digambarkan. Untuk membaca nilai kelembapan dan suhu, kami telah menggunakan zarah dengan penyesuai I2c. Penyesuai I2C ini menjadikan sambungan ke modul sensor mudah dan lebih dipercayai.
Langkah 1: Perkakasan Diperlukan:
Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:
1. HTS221
2. Foton Zarah
3. Kabel I2C
4. Perisai I2C untuk foton zarah
Langkah 2: 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:
HTS221 akan berfungsi di atas 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 untuk Pengukuran Kelembapan dan Suhu:
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 HTS221 I2C ialah 0x5F
#tentukan Addr 0x5F
kelembapan berganda = 0.0;
cTemp berganda = 0.0;
double fTemp = 0.0;
int temp = 0;
persediaan tidak sah ()
{
// Tetapkan pemboleh ubah
Particle.variable ("i2cdevice", "HTS221");
Particle.variable ("Kelembapan", kelembapan);
Particle.variable ("cTemp", cTemp);
// Memulakan komunikasi I2C sebagai MASTER
Wire.begin ();
// Mulakan komunikasi bersiri, tetapkan kadar baud = 9600
Serial.begin (9600);
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar konfigurasi purata
Wire.write (0x10);
// Sampel purata suhu = 256, Sampel purata kelembapan = 512
Wire.write (0x1B);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar kawalan1
Wire.write (0x20);
// Power ON, Kemas kini berterusan, Kadar output data = 1 Hz
Wire.write (0x85);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
kelewatan (300);
}
gelung kosong ()
{
data int yang tidak ditandatangani [2];
int tidak bertanda tangan [4];
int H0, H1, H2, H3, T0, T1, T2, T3, mentah;
// Nilai kaliberasi kelembapan
untuk (int i = 0; i <2; i ++)
{
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write ((48 + i));
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Tukar data Kelembapan
H0 = data [0] / 2;
H1 = data [1] / 2;
untuk (int i = 0; i <2; i ++)
{
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write ((54 + i));
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Tukar data Kelembapan
H2 = (data [1] * 256.0) + data [0];
untuk (int i = 0; i <2; i ++)
{
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write ((58 + i));
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Tukar data Kelembapan
H3 = (data [1] * 256.0) + data [0];
// Nilai kaliberasi suhu
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write (0x32);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write (0x33);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write (0x35);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
mentah = Wire.read ();
}
mentah = mentah & 0x0F;
// Tukarkan nilai kaliberasi suhu menjadi 10-bit
T0 = ((mentah & 0x03) * 256) + T0;
T1 = ((mentah & 0x0C) * 64) + T1;
untuk (int i = 0; i <2; i ++)
{
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write ((60 + i));
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Tukarkan data
T2 = (data [1] * 256.0) + data [0];
untuk (int i = 0; i <2; i ++)
{
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write ((62 + i));
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 1 bait data
Wire.requestFrom (Addr, 1);
// Baca 1 bait data
jika (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Tukarkan data
T3 = (data [1] * 256.0) + data [0];
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Hantar daftar data
Wire.write (0x28 | 0x80);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 4 bait data
Wire.requestFrom (Addr, 4);
// Baca 4 bait data
// kelembapan msb, kelembapan lsb, temp msb, temp lsb
jika (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Tukarkan data
kelembapan = (val [1] * 256.0) + val [0];
kelembapan = ((1.0 * H1) - (1.0 * H0)) * (1.0 * kelembapan - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
temp = (val [3] * 256) + val [2]; cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
fTemp = (cTemp * 1.8) + 32;
// 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:
HTS221 dapat digunakan dalam pelbagai produk pengguna seperti pelembap udara dan peti sejuk dll. Sensor ini juga dapat digunakan dalam arena yang lebih luas termasuk automasi rumah pintar, automasi industri, peralatan pernafasan, penjejakan aset dan barang.
Disyorkan:
Pengukuran Kelembapan Menggunakan HYT939 dan Foton Zarah: 4 Langkah
Pengukuran Kelembapan Menggunakan HYT939 dan Foton Partikel: HYT939 adalah sensor kelembapan digital yang berfungsi pada protokol komunikasi I2C. Kelembapan adalah parameter penting dalam sistem perubatan dan makmal. Oleh itu, untuk mencapai tujuan ini, kami berusaha untuk menghubungkan HYT939 dengan raspberry pi. Saya
Pengukuran Suhu Menggunakan MCP9803 dan Foton Zarah: 4 Langkah
Pengukuran Suhu Menggunakan MCP9803 dan Foton Partikel: MCP9803 adalah sensor suhu ketepatan tinggi 2-wayar. Mereka dilengkapi dengan daftar yang dapat diprogram pengguna yang memudahkan aplikasi penginderaan suhu. Sensor ini sesuai untuk sistem pemantauan suhu multi-zon yang sangat canggih. Di
Pengukuran Suhu Menggunakan STS21 dan Foton Zarah: 4 Langkah
Pengukuran Suhu Menggunakan STS21 dan Partikel Photon: Sensor Suhu Digital STS21 menawarkan prestasi yang unggul dan jejak penjimatan ruang. Ia memberikan isyarat yang dikalibrasi, linear dalam format digital, I2C. Fabrikasi sensor ini didasarkan pada teknologi CMOSens, yang mengaitkan kepada
Pemantauan Suhu dan Kelembapan Menggunakan SHT25 dan Foton Zarah: 5 Langkah
Pemantauan Suhu dan Kelembapan Menggunakan SHT25 dan Foton Partikel: Baru-baru ini kami telah mengerjakan pelbagai projek yang memerlukan pemantauan suhu dan kelembapan dan kemudian kami menyedari bahawa kedua-dua parameter ini sebenarnya memainkan peranan penting dalam membuat anggaran kecekapan kerja sistem. Kedua-duanya di indus
Pengukuran Kelembapan dan Suhu Menggunakan HIH6130 dan Foton Zarah: 4 Langkah
Pengukuran Kelembapan dan Suhu Menggunakan HIH6130 dan Foton Partikel: HIH6130 adalah sensor kelembapan dan suhu dengan output digital. Sensor ini memberikan tahap ketepatan ± 4% RH. Dengan kestabilan jangka panjang yang terkemuka di industri, I2C digital yang diberi pampasan suhu sebenar, kebolehpercayaan terkemuka di industri, kecekapan tenaga