Anda di halaman 1dari 13

/*

 * Parameter value
 * 201 --> ON
 * 202 --> OFF
 * 203 --> OFF
 * 204 --> ON
 */

#include <SoftwareSerial.h>        // Komunikasi Arduino dengan bluetooth 


#include <OneWire.h>        // memasukkan program 
#include <DallasTemperature.h>    // memasukkan library Dallas ke program
#include <RBDdimmer.h>        // memasukkan library dimmer ke program

#define DS_PIN 7            // Pin 7 sebagai INPUT Dallas


#define POMPA_PIN 5        // Pin 5 sebagai OUTPUT Pompa
#define PELTIER_PIN 6        // Pin 6 sebagai OUTPUT Peltier
#define DIMMERPin 11        // Pin 11 sebagai OUTPUT ke Dimmer. Penempatan pin
float temp;                           // variable suhu
int value;            // Penyimpan data dari bluetooth
bool temp_state = false;        // Penyimpan data otomatis
unsigned long timer;        // Penyimpan data milis, deklarasi variable

OneWire oneWire(DS_PIN);            // konfigurasi library


DallasTemperature sensor(&oneWire);
SoftwareSerial bluetooth(3, 4);          // Konfigurasi pin RX DAN TX
dimmerLamp dimmer(DIMMERPin);

void setup() {
  dimmer.begin(NORMAL_MODE, ON);        // inisiasi DIMMER
  bluetooth.begin(9600);             // inisiasi library
  sensor.begin();                // inisiasi library
  Serial.begin(9600);            // inisiasi library
  pinMode(POMPA_PIN,OUTPUT);            // pin sebagai OUTPUT POMPA
  pinMode(PELTIER_PIN,OUTPUT);        // pin sebagai OUTPUT PELTIER
  dimmer.setState(OFF);            // DIMMER OFF
  digitalWrite(POMPA_PIN, LOW);        // Pin POMPA OFF
  digitalWrite(PELTIER_PIN, LOW);        // Pin PELTIER OFF
  timer = millis();            // inisiasi timer
}
void loop() {
  if(millis() > timer + 2000){        // mengirim data dari arduino ke handphone melalui
bluetooth setiap 2 s
    sensor.requestTemperatures();        // meminta data baca temperatur
    temp = sensor.getTempCByIndex(0);
    String data_toSend = String(temp);       
    int data_length = data_toSend.length() + 1;
    char data_Draw[data_length];
    data_toSend.toCharArray(data_Draw, data_length);    // mengubah data float ke char agar
aplikasi tidak error
    if((temp < 45.00) && (temp > 20.00)){        // jangkauan data yang ditampilkan pada
aplikasi
      bluetooth.write(data_Draw);            // mengirim data temperature ke aplikasi
    }
    Serial.println("DS18b20 : " + String(temp));        // untuk menampilkan temperatur pada
serial monitor
    timer = millis();
  }
  if(temp_state){                //mengatur otomatisasi dari kipas sesuai batas suhu yang telah
diprogram
    fanomatic(27.00, 80, true);       
    fanomatic(27.00, 0, false);
  }
if(bluetooth.available()){
    value = bluetooth.read();    // mengatur otomatisasi ON OFF kipas melalui handphone
    Serial.println(value);
    switch(value){
      case 201 :             // kipas ON   
        temp_state = true;       
        break;
      case 202 :            // kipas OFF
        temp_state = false;           
        break;
      case 203 :                // kipas OFF
        digitalWrite(POMPA_PIN,LOW);
        digitalWrite(PELTIER_PIN,LOW);
        break;
      case 204 :                // kipas ON
        digitalWrite(POMPA_PIN,HIGH);
        digitalWrite(PELTIER_PIN,HIGH);
        break;
    }
 if((!value && !temp_state) || !value)  dimmer.setState(OFF);    // mengatur ON OFF dimmer 
    else if((value >= 30) && (value <= 100)){
      int dimming_value = map(value, 30, 100, 32, 90);        // setting Dimmer
      dimmer.setState(ON);
      dimmer.setPower(dimming_value);
      Serial.println("IN : " + String(value) + " Power : " + String(dimming_value));
    }
  }
}

void fanomatic(float suhu, int pwr, bool state){       


  if(temp < 45.00 && temp > 15.00){            // jangkauan suhu yang dapat digunakan untuk
mengatur ON OFF Dimmer
    if(state){
      if(temp > suhu){
        dimmer.setState(ON);            // temperatur lebih dari 27.00 maka DIMMER ON
        dimmer.setPower(pwr);           
      }
    }
    else{
      if(temp <= suhu){            // temperatur lebih dari 27.00 maka DIMMER ON
        dimmer.setState(OFF);
      }
    }
  }
}
// inisialisasi coding(Pengenalan program) Pin data pada Aduino Uno.

const int pinH1 = 1;

const int pinK2 = 2;

const int pinM3 = 3;

const int pinM4 = 4;

const int pinK5 = 5;

const int pinH6 = 6;

const int pinM7 = 7;

const int pinK8 = 8;

const int pinH9 = 9;

const int pinM10 = 10;

const int pinK11 = 11;

const int pinH12 = 12;

void setup(){

// Peran pin Arduino uno sebagai output data.

pinMode(pinH1, OUTPUT);

pinMode(pinK2, OUTPUT);

pinMode(pinM3, OUTPUT);

pinMode(pinM4, OUTPUT);

pinMode(pinK5, OUTPUT);

pinMode(pinH6, OUTPUT);

pinMode(pinM7, OUTPUT);

pinMode(pinK8, OUTPUT);

pinMode(pinH9, OUTPUT);

pinMode(pinM10, OUTPUT);

pinMode(pinK11, OUTPUT);

pinMode(pinH12, OUTPUT);

}
void loop(){

// coding jalur A Jalan : M3(Mati),M4710(Hidup),H6912(Mati),H1(Hidup)

digitalWrite(pinM3, LOW);

digitalWrite(pinM4, HIGH);

digitalWrite(pinM7, HIGH);

digitalWrite(pinM10, HIGH);

digitalWrite(pinH1, HIGH);

digitalWrite(pinH6, LOW);

digitalWrite(pinH9, LOW);

digitalWrite(pinH12, LOW);

delay(2000);

digitalWrite(pinM3, LOW);

digitalWrite(pinM4, LOW);

digitalWrite(pinM7, LOW);

digitalWrite(pinM10, LOW);

digitalWrite(pinH1, LOW);

digitalWrite(pinH6, LOW);

digitalWrite(pinH9, LOW);

digitalWrite(pinH12, LOW);

delay(2000);

// Coding pindah lampu K2(Hidup) berkedip 3x ke k5

digitalWrite(pinK2, HIGH);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);
digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, HIGH);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, HIGH);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

// Coding Jalur B Jalan : M3710(Hidup)M4(Mati),H6(Hidup)H1912(Mati)

digitalWrite(pinM3, HIGH);

digitalWrite(pinM4, LOW);

digitalWrite(pinM7, HIGH);

digitalWrite(pinM10, HIGH);

digitalWrite(pinH1, LOW);

digitalWrite(pinH6, HIGH);
digitalWrite(pinH9, LOW);

digitalWrite(pinH12, LOW);

delay(2000);

digitalWrite(pinM3, LOW);

digitalWrite(pinM4, LOW);

digitalWrite(pinM7, LOW);

digitalWrite(pinM10, LOW);

digitalWrite(pinH1, LOW);

digitalWrite(pinH6, LOW);

digitalWrite(pinH9, LOW);

digitalWrite(pinH12, LOW);

delay(2000);

// Coding pindah lampu K5(Hidup)berkedip 3x ke K8.

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, HIGH);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, HIGH);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);
digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, HIGH);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

// Coding Jalur C Jalan : M3410(Hidup)M7(Mati),H9(Hidup)H1612(Mati)

digitalWrite(pinM3, HIGH);

digitalWrite(pinM4, HIGH);

digitalWrite(pinM7, LOW);

digitalWrite(pinM10, HIGH);

digitalWrite(pinH1, LOW);

digitalWrite(pinH6, LOW);

digitalWrite(pinH9, HIGH);

digitalWrite(pinH12, LOW);

delay(2000);

digitalWrite(pinM3, LOW);

digitalWrite(pinM4, LOW);

digitalWrite(pinM7, LOW);

digitalWrite(pinM10, LOW);

digitalWrite(pinH1, LOW);
digitalWrite(pinH6, LOW);

digitalWrite(pinH9, LOW);

digitalWrite(pinH12, LOW);

delay(2000);

// Coding pindah lampu K8(Hidup)berkedip 3x ke K11.

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, HIGH);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, HIGH);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, HIGH);

digitalWrite(pinK11, LOW);
delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

// Coding Jalur D Berjalan : M347(Hidup)M10(Mati),H12(Hidup)H169(Mati)

digitalWrite(pinM3, HIGH);

digitalWrite(pinM4, HIGH);

digitalWrite(pinM7, HIGH);

digitalWrite(pinM10, LOW);

digitalWrite(pinH1, LOW);

digitalWrite(pinH6, LOW);

digitalWrite(pinH9, LOW);

digitalWrite(pinH12, HIGH);

delay(2000);

digitalWrite(pinM3, LOW);

digitalWrite(pinM4, LOW);

digitalWrite(pinM7, LOW);

digitalWrite(pinM10, LOW);

digitalWrite(pinH1, LOW);

digitalWrite(pinH6, LOW);

digitalWrite(pinH9, LOW);

digitalWrite(pinH12, LOW);

delay(2000);

// Coding pindah lampu K11(Hidup)berkedip 3x ke K2.

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);
digitalWrite(pinK11, HIGH);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, HIGH);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, HIGH);

delay(100);

digitalWrite(pinK2, LOW);

digitalWrite(pinK5, LOW);

digitalWrite(pinK8, LOW);

digitalWrite(pinK11, LOW);

delay(100);

Anda mungkin juga menyukai