Sistem Kendali Pengontrolan Listrik Secara Digital Pada Rumah Sederhana

Alat : Arduino Uno
Market Plan StereoFoam
LED
Female Jumper
Kabel Serabut
Resistor
LDR

// SCRIPT ARDUINO
byte byteRead;

int ledkamar1 = 10;
int ledkamar2 = 11;
int ledrtamu = 12;
int leddapur = 13;
int ledtaman = 5;
int ledsuhu = 6;
int buzzer = 7;
int sensorldr1 = A0; //input analog
int sensorldr2 = A1; //input analog
int  tempPin= A3; //input analog
float temp;
int suhu_aktif = 0;
int ldr_aktif = 0;

void setup()
{
Serial.begin(9600);
pinMode (sensorldr1, INPUT);
pinMode (sensorldr2, INPUT);
pinMode (tempPin, INPUT);
pinMode (ledkamar1, OUTPUT);
pinMode (ledkamar2, OUTPUT);
pinMode (ledrtamu, OUTPUT);
pinMode (leddapur, OUTPUT);
pinMode (ledtaman, OUTPUT);
pinMode (ledsuhu, OUTPUT);
pinMode (buzzer, OUTPUT);
}

void loop() {
if(suhu_aktif == 1)
{
check_suhu();
}
else
{
check_suhu_nonaktif();
}
if(ldr_aktif == 1)
{
led_taman(1);
}
else
{
led_taman(2);
}

if (Serial.available()) {
byteRead = Serial.read();
switch (byteRead)
{
case ‘1’:
ldr_aktif = 1;
Serial.println(“LDR Aktif”);
break;
case ‘q’:
ldr_aktif = 0;
Serial.println(“LDR Non Aktif”);
break;
case ‘u’:
led_kamar(1);
break;
case ‘p’:
led_kamar(2);
break;
case ‘i’:
led_kamar(3);
break;
case ‘n’:
led_kamar(4);
break;
case ‘l’:
led_tamu(1);
break;
case ‘o’:
led_tamu(0);
break;
case ‘h’:
led_dapur(1);
break;
case ‘m’:
led_dapur(0);
break;
case ‘j’:
Serial.println(“==================”);
led_kamar(1);
led_kamar(3);
led_tamu(1);
led_dapur(1);
break;
case ‘k’:
Serial.println(“==================”);
led_kamar(2);
led_kamar(4);
led_tamu(0);
led_dapur(0);
break;
case ‘a’:
check_suhu_aktif();
break;
case ‘b’:
buzer_ledsuhu_off();
check_suhu_nonaktif();
break;
}
}
}
void check_suhu_aktif()
{
suhu_aktif = 1;
}
void check_suhu_nonaktif()
{
suhu_aktif = 0;
}

void buzer_ledsuhu_off()
{
digitalWrite(ledsuhu, LOW);
digitalWrite(buzzer, LOW);
Serial.println(“buzer_ledsuhu_off”);
}
void led_dapur(int led)
{
if(led == 1)
{
digitalWrite(leddapur, HIGH);
Serial.println(“LED DAPUR NYALA”);
}
if(led == 0)
{
digitalWrite(leddapur, LOW);
Serial.println(“LED DAPUR PADAM”);
}
}
void led_tamu(int led1)
{
if(led1 == 1)
{
digitalWrite(ledrtamu, HIGH);
Serial.println(“LED TAMU NYALA”);
}
if(led1 == 0)
{
digitalWrite(ledrtamu, LOW);
Serial.println(“LED TAMU PADAM”);
}
}
void led_kamar(int idx)
{
if(idx == 1)
{
digitalWrite(ledkamar1, HIGH); // Program Opay
Serial.println(“LED KAMAR NYATLA”);
}
if(idx == 2)
{
digitalWrite(ledkamar1, LOW);
Serial.println(“LED KAMAR PADAM”);
}
if(idx == 3)
{
digitalWrite(ledkamar2, HIGH);
Serial.println(“LED KAMAR 2 NYALA”);
}
if(idx == 4)
{
digitalWrite(ledkamar2, LOW);
Serial.println(“LED KAMAR 2 PADAM”);
}
}
void led_taman(int idx)
{
if(idx == 1 )
{
int nilai = analogRead(sensorldr1);
Serial.print(“data ldr :”);
Serial.println(nilai);
if(nilai>=600){
digitalWrite(ledtaman, HIGH);
}
else
{
digitalWrite(ledtaman, LOW);
}
}
if(idx == 2)
{
digitalWrite(ledtaman, LOW);
}
}
void check_suhu()
{

temp = analogRead (tempPin); // Program Moehardi
temp = temp * 0.48828125; //(5V * 100C)/1024
Serial.print(“TEMPERATURE = “);
Serial.print(temp);
Serial.print(“*C”);
Serial.println();
if(temp>=30)
{
digitalWrite(ledsuhu, HIGH);
digitalWrite(buzzer, HIGH);
delay(100);
}
else
{
digitalWrite(ledsuhu, LOW);
digitalWrite(buzzer, LOW);
}
}

// SERIAL CPP

// WEB TEMPLATE

 

// PERSENTASI TUGAS

 

 

 

 

Advertisements

FRITZING

Fritzing merupakan salah satu dari sekian banyak aplikasi untuk mendesain rangkaian elektronika. Sama halnya seperti aplikasi lain ( eagle, protel, pad2pad, dll ) fritzing juga memiliki board designer ( untuk membuat jalur pcb ).

untuk mendapatkan aplikasinya maka dapat mengakses halaman berikut : www.fritzing.org

Aplikasi ini dikembangkan sebagai aplikasi open source dan mendukung layanan untuk integrasi dengan perangkat arduino, membina ekosistem kreatif yang memungkinkan pengguna untuk mendokumentasikan prototipe mereka, berbagi dengan orang lain, alat mengajar elektronik di ruang kelas, dan tata letak dan pembuatan PCB profesional.

Dukungan dokumentasi dalam bentuk video maupun text dokumen sehingga aplikasi fritzing ini mudah untuk dipelajari oleh orang yang awam elektronika sekalipun.

ARDUINO UNO

Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri.

arduinouno

Arduino Uno adalah piranti mikrokontroler menggunakan ATmega328 ,merupakan penerus Arduino Duemilanove. Arduino Uno memiliki 14 Pin input/output digital(dimana 6 pin dapat digunakan sebagai output PWM), 6 input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset.

referencedesignreferensi : http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

OPENGL

OpenGL merupakan library grafis standar yang digunakan untuk keperluan-keperluan pemrograman grafis yang terdiri dari berbagai macam fungsi, termasuk grafik primitive (titik, garis dan lingkaran) dan biasanya digunakan untuk menggambar sebuah objek 2D atau 3D . OpenGL sendiri bersifat Open-Source, multi-platform dan multi-languange, sehingga dapat dikembangkan dengan semua bahasa pemrograman yang ada.

GLUT merupakan pengembangan dari OpenGL yang didesain untuk menyediakan interface window, menu dan perlatan inputan, GLUT juga menyediakan fungsi otomatis untuk menggambar objek primitif (garis, lingkaran, titik, persegi),objek 3 dimensi wire (kerangka) maupun yang solid, seperti cube (kubus), sphere (bola), dan teapot (poci teh), cone (kerucut), torus, dan lain-lain.

Tujuan dikembangkannya GLUT adalah menciptakan fleksibitas code antar platform yang dapat dijalankan lebih dari satu sistem operasi (Windows, Linux, Mac OS X, FreeBSD, OpenBSD, NetBSD), dan untuk lebih mudah mempelajari OpenGL. Dengan menggunakan GLUT hanya memerlukan sedikit code dibandingkan dengan OpenGL, tanpa mengetahui spesifikasi sistem operasi, dikarenakan OpenGL adalah sebagai mesin.

Untuk pemrograman OpenGL menggunakan C++, diperlukan library tambahan yaitu :
1. glut.h yang dicopy ke drive:\Program Files\Microsoft Visual Studio 2010\Vc\include\GL
2. glut32.lib yang dicopy ke drive:\Program Files\Microsoft Visual Studio 2010\Vc\lib
3. glut32.dll yang dicopy ke drive:\Windows\System
Ada 5 fungsi yang harus dipanggil untuk melakukan instalansi window yaitu:
a. glutInit(int argc,char**argv)
Fungsi ini menginisialisasi glut dan memproses argument command_line yg disertakan(jika ada). Fungsi ini harus di panggil pertama kali sebelum pemanggilan terhadap fungsi-fungsi yang lain.
b. glutInitDisplayMode(unsigned intmode)
Fungsi ini digunakan untuk menentukan apakah akan menggunakan model pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa menentukan apakah akan menggunakan windows buffer single atau double.
c. GlutInitWindowPosisition(int.x,int.y)
Fungsi ini menentukan letak window dengan patokkannya ialah pada window kiri atas.
d. glutInitWindowSize(int width,int height)
fungsi ini menspesifikasikan ukuran window yang dibuat dalam pixel.
e. glutCreateWindow(char *string)
Fungsi untuk membuat window dalam konteks openGL, dan akan menghasilkan identitas atau judul window tersebut.
4. Windowing dengan GLUT
Display Callback
1. glutDisplayFunc(void(*func)(void))
Fungsi ini memanggil fungsi lain yg menentukan konten dari windows yg telah di buat sebelumnya.
2. glutPostRedisplay(void)
Untuk mengubah konten window
3. glutMainLoop(void)
Fungsi untuk event perulangan, display pada callback akan terus ditampilkan selama aplikasi itu tidak ditutup.
Perintah pada OpenGL menggunakan kata depan gl dan untuk kata selanjutnya merupakan perintah untuk melakukan suatu operasi pembuatan objek.
Pendefinisian variable dan konstanta pada OpenGL menggunakan huruf kapital untuk semua hurufnya dan dibatasi oleh garis bawah. Pada sistem operasi windows perintah-perintah pada OpenGL terpaket pada file Opengl32.dll yang merupakan file Dynamic Load Library.
opengl