Arduino Project Mengukur Suhu dan Kelembaban dengan SHT11


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
SHT11 merupakan versi standard yang banyak digunakan, SHT15 memiliki nilai ralat dan ketepatan yang paling baik, namun dengan harga yang lebih mahal. Sedangkan SHT10 merupakan versi yang lebih murah.
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%)
Komunikasi data SHT11 tidak menggunakan I2C, melainkan menggunakan digital 2-wire interface, yang mana menggunakan dua buah signal, yakni data dan clock.
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.

<img src="arduino_sht11_lcd.png" alt="arduino_sht11_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);
}