My Newest Invention: Sleeping Detector for Smart TV

LCD 16x2 I2C

Pernahkah anda atau salah satu anggota keluarga anda tertidur saat nonton TV? Yang terjadi bukannya kita nonton TV, malah kita yang ditonton TV! Well, dengan my newest invention, say goodbye to that problem, karena sensor ini akan mendeteksi jika kita ketiduran dan akan mematikan TV secara otomatis.

Cara kerjanya sederhana, makanya saya surprise kenapa sampai sekarang tidak ada yang kepikiran bikin alat seperti ini. Kita hanya perlu Arduino Board, LCD 16x2 dan tombol push button switch.

Sleeping Detector akan secara periodik (per 5 menit) menampilkan pertanyaan , "Are you sleeping?" yang harus dijawab dalam waktu 30 detik dengan cara menekan tombol yang disediakan. Jika dalam waktu 30 detik tidak dijawab, maka Sleeping Detector akan menganggap anda sedang tidur, dan segera mematikan TV dengan menggunakan relay switch. Simple bukan? hehehe..kidding, in cuma nyobain LCD dengan I2C nya.

Pada LCD dengan I2C, terdapat 4 pin yang harus disambungkan yaitu VCC, GND, SDA, dan SCL. Pin VCC dan GND, cukup jelas harus disambungkan ke +5V dan ground sedangkan SDA dan SCL harus dipasangkan ke input pin, umumnya SDA ke A4 dan SCL ke A5. Sadangkan untuk Arduino Mega, biasanya dipasangkan ke pin 20 dan 21.

oke, ini code nya

#include <wire.h>
#include <liquidcrystal_i2c.h>

#define I2C_ADDR    0x27  // Sesuaikan dengan address I2C anda
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

int n = 1;
unsigned long int startTime = millis();
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
unsigned long int timer=30000;

void setup()
{
  lcd.begin (16,2);
 
// Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
 
}

void loop()
{
  // Backlight on/off every 3 seconds
  boolean timeUp = false;
 
  if (millis() - startTime &lt; timer){
    askAQuestion();
  } else matikanTV();

}

void askAQuestion()
{
  lcd.home ();                   // go home

  lcd.print("Are you sleepin?"); 
  lcd.setCursor ( 0, 1 );        // go to the 2nd line
  lcd.print("Answer in:");
  lcd.print((timer-(millis()-startTime))/1000);
  lcd.print(" s ");
}

void matikanTV(){
  lcd.home ();     // go home
  lcd.clear();
  lcd.print("Shutting Down TV"); 
  delay(3000);
  startTime = millis();
}
</liquidcrystal_i2c.h></wire.h>
Source Code: 
LampiranUkuran
Package icon sleep_detector.zip776 byte
Package icon NewliquidCrystal_1.3.4.zip5.98 MB
Komponen: 
Bahasa Indonesia