Tutorial ini adalah bagian dari: Sensor Kelembaban Relatif & Suhu Digital HTU21D
Video-video terkait Sensor Kelembaban Relatif & Suhu Digital HTU21D. Tautan ke video lainnya ada di bawah artikel ini.
Pelajaran 35: Menggunakan Sensor Suhu HTU21D dengan Arduino
Pelajaran 35: Menggunakan Sensor Suhu HTU21D dengan Arduino
Dalam tutorial ini, kita akan mempelajari cara menghubungkan sensor suhu HTU21D dengan Arduino. Sensor ini memungkinkan pengukuran suhu dan kelembapan secara akurat menggunakan komunikasi I2C, yang membuatnya mudah diintegrasikan ke berbagai proyek. Di akhir pelajaran ini, Anda akan dapat membaca nilai suhu dan kelembapan dari sensor dan menampilkannya di Serial Monitor.

Untuk proyek ini, kita akan menggunakan pustaka Adafruit, yang menyediakan cara sederhana untuk berkomunikasi dengan sensor HTU21D. Anda akan belajar cara mengatur kabel, menulis kode, dan memahami pengidentifikasi utama yang digunakan dalam program. Jika Anda memerlukan klarifikasi tentang bagian mana pun dari proses ini, Anda dapat merujuk ke video (di video pada 0:00).
Penjelasan Perangkat Keras
HTU21D adalah sensor kelembapan dan suhu digital. Sensor ini beroperasi pada rentang tegangan 1,5V hingga 3,6V, sehingga cocok untuk sistem 3,3V maupun 5V. Sensor berkomunikasi melalui I2C, hanya memerlukan dua kabel untuk transfer data: Serial Data Line (SDA) dan Serial Clock Line (SCL). Sensor ini memiliki konsumsi daya yang sangat rendah, hanya menarik 0,02 µA saat idle dan hingga 450 µA selama pengukuran.
Selain sensor, Anda akan memerlukan papan Arduino dan beberapa kabel jumper untuk menghubungkan semuanya. Koneksinya sederhana: beri daya pada sensor, hubungkan jalur data, dan Anda siap untuk melanjutkan. Pastikan koneksi Anda aman untuk menghindari masalah komunikasi.
Detail Datasheet
| Produsen | TE Connectivity |
|---|---|
| Nomor bagian | HTU21D-F |
| Tegangan logika/IO | 1,5 - 3,6 V |
| Tegangan suplai | 3,3 V |
| Arus keluaran (khas) | 0,02 µA (idle), 450 µA (aktif) |
| Rentang suhu | -40 hingga +125 °C |
| Rentang kelembapan | 0 hingga 100 % RH |
| Resolusi (suhu) | 0,01 °C |
| Resolusi (kelembapan) | 0,04 % RH |
| Kemasan | DFN-8 |
- Pastikan tegangan suplai yang tepat (1,5 - 3,6 V) untuk menghindari kerusakan.
- Gunakan resistor pull-up pada jalur SDA dan SCL jika diperlukan.
- Jaga kabel tetap pendek untuk meminimalkan noise dalam komunikasi I2C.
- Periksa koneksi dengan hati-hati untuk menghindari input mengambang.
- Gunakan heat sink jika beroperasi mendekati batas suhu maksimum.
Instruksi Pengkabelan

Untuk menghubungkan sensor HTU21D ke Arduino Anda, mulailah dengan menghubungkan pin daya. Hubungkan pin kiri sensor ke output 3,3V pada Arduino. Pin kedua harus dihubungkan ke ground (GND). Selanjutnya, hubungkan pin SDA sensor ke pin A4 Arduino, yang berfungsi sebagai jalur data untuk komunikasi I2C. Terakhir, hubungkan pin SCL sensor ke pin A5 pada Arduino, yang berfungsi sebagai jalur clock. Pastikan semua koneksi aman untuk menjaga komunikasi yang andal.
Jika Anda menggunakan papan yang berbeda, pin SDA dan SCL mungkin berbeda, jadi periksa spesifikasi papan Anda. Dalam video, opsi pengkabelan alternatif dibahas secara singkat (di video pada 1:30).
Contoh Kode & Penjelasan
Kita sekarang akan melihat kode yang berinteraksi dengan sensor HTU21D. Pertama, kita perlu menyertakan pustaka yang diperlukan untuk komunikasi I2C dan sensor HTU21D. Kutipan berikut menunjukkan fungsi setup:
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("Tidak dapat menemukan sensor!");
while (1);
}
}
Di sini, kita menginisialisasi Serial Monitor pada baud rate 9600. Kita kemudian mencoba menginisialisasi sensor dengan htu.begin(). Jika sensor tidak ditemukan, program akan mencetak pesan kesalahan dan berhenti.
Selanjutnya, kita terus membaca nilai suhu dan kelembapan dalam fungsi loop:
void loop() {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
Serial.print("Suhu: "); Serial.print(temp); Serial.println(" C");
Serial.print("Kelembapan: "); Serial.print(rel_hum); Serial.println(" %");
delay(500);
}
Dalam loop ini, kita membaca suhu menggunakan htu.readTemperature() dan menyimpannya dalam variabel temp. Demikian pula, kita membaca kelembapan dengan htu.readHumidity(). Nilai-nilai tersebut kemudian dicetak ke Serial Monitor setiap 500 milidetik.
Untuk pendekatan yang lebih terstruktur, Anda dapat mendefinisikan fungsi untuk menangani pembacaan. Kode lengkap akan dimuat di bawah artikel ini, memberi Anda akses penuh ke semua fungsionalitas yang dibahas.
Demonstrasi / Apa yang Diharapkan
Ketika Anda mengunggah kode ke Arduino dan membuka Serial Monitor, Anda akan melihat pembacaan suhu dan kelembapan secara terus-menerus. Nilai akan diperbarui setiap setengah detik. Jika sensor mendeteksi suhu di atas batas maksimum 125 °C, sensor mungkin menampilkan nol atau nilai yang salah. Ini adalah jebakan umum yang perlu diperhatikan selama pengujian (di video pada 4:30).
Stempel Waktu Video
- [00:00] Pendahuluan
- [00:22] Tinjauan Sensor
- [01:22] Tinjauan Datasheet
- [02:28] Pengkabelan
- [03:03] Instalasi Pustaka
- [04:05] Penjelasan Kode (Bagian 1)
- [08:33] Penjelasan Kode (Bagian 2)
- [07:34] Demonstrasi Langsung
Tutorial ini adalah bagian dari: Sensor Kelembaban Relatif & Suhu Digital HTU21D
- Lesson 35-1: Using the HTU21D Temperature Sensor
- Lesson 35-2: Using the HTU21D Temperature Sensor Custom Code
- Lesson 36: Using the HTU21D Temperature Sensor with an LCD Arduino Step-by-Step Course
- Using Two More HTU21DF Humidity and Temperature Sensors with Arduino
- Displaying Temperature from an HTU21D on an LCD
- Displaying Temperature from an HTU21D as a Bar Graph on an LCD
- How to Use the HTU21DF Humidity and Temperature Sensor with Arduino (Basic Code)
- How to Use the HTU21DF Humidity and Temperature Sensor with Arduino (Custom Code)
++
/***************************************************
This is an example for the HTU21D-F Humidity & Temperature Sensor
Designed specifically to work with the HTU21D-F sensor from Adafruit
----> https://www.adafruit.com/products/1899
These module use I2C to communicate; 2 pins are required to
interface
****************************************************/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)
Adafruit_HTU21DF htu1 = Adafruit_HTU21DF();//create object for first HTU21DF sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF();//create object for second HTU21DF sensor
//Adafruit_HTU21DF htu3 = Adafruit_HTU21DF();//create object for third HTU21DF sensor (disabled, remove // from begging of code)
void setup() {
Serial.begin(9600);
Serial.println("HTU21D-F test for two modules");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
//get value for sensor 1
float temp1 = htu1.readTemperature();
float rel_hum1 = htu1.readHumidity();
//get value for sensor 2
float temp2 = htu2.readTemperature();
float rel_hum2 = htu2.readHumidity();
//get value for sensor 3
float temp3 = htu3.readTemperature();
float rel_hum3 = htu3.readHumidity();
//print values for sensor 1
Serial.print("Sensor 1 Temp : "); Serial.print(temp1); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
//print values for sensor 2
Serial.print("Sensor 2 Temp : "); Serial.print(temp2); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
//print values for sensor 3
//Serial.print("Sensor 3 Temp : "); Serial.print(temp3); Serial.print(" C");
//Serial.print("\t\t");
//Serial.print("Sensor 3 Humidity: "); Serial.print(rel_hum3); Serial.println(" %");
delay(500);
}
Hal-hal yang mungkin Anda butuhkan
-
Amazon
-
eBayPurchase HTU21D from eBayebay.us
-
AliExpressPurchase HTU21D or SHT21 from AliExpresss.click.aliexpress.com
Sumber daya & referensi
-
EksternalAdafruit HTU21D Library (GitHub)github.com
-
EksternalDifference between HTU21DF and HTU21D (image)robojax.com
-
Eksternal
-
EksternalHTU21D Datasheet (PDF)cdn-shop.adafruit.com
Berkas📁
Pustaka Arduino (zip)
-
Adafruit HTU21DF library (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip0.01 MB