Dalam tutorial Arduino Indonesia kali ini akan berbagi ilmu mengenai bagaimana menggunakan sensor suhu SHT11, yang juga bisa digunakan untuk pada SHT10 dan SHT15, untuk mengukur suhu dan kelembaban.
Perbedaan antara SHT10, SHT11, dan SHT15 terletak pada nilai ralat tingkat kelembabannya.
- SHT10, low cost version, +/-4.5% RH accuracy
- SHT11, standard version, +/-3% RH accuracy
- SHT15, high end version, +/-2% RH accuracy
Sedangkan untuk feature yang sama ditawarkan oleh sensor-sensor tersebut antara lain.
- Size: 7.5 x 4.9 x 2.6 mm
- Output: digital (2-wire interface)
- Supply voltage range: 2.4 to 5.5 V
- Energy consumption: 80µW (at 12bit, 3V, 1 measurements/ s)
- RH operating range: 0% up to 100% RH
- T operating range: -40°C to +125°C (-40°F to +257°F)
- RH response time: 8 sec (tau63%)
Berbeda dengan I2C yang mana pada Arduino secara default menggunakan library Wire.h, untuk SHT11 tidak menggunakannya. Untuk I2C pada board Arduino Uno dilakukan dengan menghubungkan pin analog A4 (SDA, serial data) ke pin SDA suatu perangkat dan pin analog A5 (SCL, serial clock) ke pin SCL perangkat yang support I2C.
Untuk SHT10, SHT11, dan SHT15, pin SDA dan SCL dari sensor tersebut dapat disambungkan ke pin mana saja (yang support), tidak terbatas pada pin A4 dan A5 di Arduino Uno.
Berikut ini adalah gambar konfigurasi pengkabelan (wiring) Arduino, SHT11, dan LCD.
Library SHT11 (juga support SJT10 dan SHT15) dapat diperoleh dengan download melalui link berikut. Source code (sketch) project Arduino pengukur suhu dan kelembaban dengan SHT11 dan LCD ialah sebagai berikut.
/*
Program Mengukur Suhu dan Kelembaban
Arduino Uno
Loki Lang
*/
#include <LiquidCrystal.h>
#include <SHT1x.h>
#define dataPin 2
#define clockPin 3
LiquidCrystal lang(4, 5, 6, 7, 8, 9);
SHT1x feli(dataPin, clockPin);
void setup()
{
Serial.begin(9600);
Serial.println("Arduino SHT11");
lang.begin(16, 2);
lang.setCursor(0, 0);
lang.print("Arduino SHT11");
delay(1000);
}
void loop()
{
float temp_c;
float humidity;
temp_c = feli.readTemperatureC();
humidity = feli.readHumidity();
Serial.print("Suhu: ");
Serial.print(temp_c, DEC);
Serial.println(" celsius");
lang.clear();
lang.setCursor(0, 0);
lang.print("Suhu: ");
lang.setCursor(6, 0);
lang.print(temp_c, DEC);
Serial.print("Kelembaban: ");
Serial.print(humidity);
Serial.println("%");
lang.setCursor(0, 1);
lang.print("Kelembaban: ");
lang.setCursor(12, 1);
lang.print(humidity);
delay(500);
}
Program Mengukur Suhu dan Kelembaban
Arduino Uno
Loki Lang
*/
#include <LiquidCrystal.h>
#include <SHT1x.h>
#define dataPin 2
#define clockPin 3
LiquidCrystal lang(4, 5, 6, 7, 8, 9);
SHT1x feli(dataPin, clockPin);
void setup()
{
Serial.begin(9600);
Serial.println("Arduino SHT11");
lang.begin(16, 2);
lang.setCursor(0, 0);
lang.print("Arduino SHT11");
delay(1000);
}
void loop()
{
float temp_c;
float humidity;
temp_c = feli.readTemperatureC();
humidity = feli.readHumidity();
Serial.print("Suhu: ");
Serial.print(temp_c, DEC);
Serial.println(" celsius");
lang.clear();
lang.setCursor(0, 0);
lang.print("Suhu: ");
lang.setCursor(6, 0);
lang.print(temp_c, DEC);
Serial.print("Kelembaban: ");
Serial.print(humidity);
Serial.println("%");
lang.setCursor(0, 1);
lang.print("Kelembaban: ");
lang.setCursor(12, 1);
lang.print(humidity);
delay(500);
}