Antar Muka
Antar Muka
sebagai berikut:
- Pemantauan terhadap kondisi pintu masuk kantor (1 sensor) yang kondisi awalnya pintu
masuk tertutup dan lampu padam, apabila pintu masuk dibuka, maka lampu akan menyala
terus walaupun pintu ditutup kembail, lampu akan padam apabila pintu dibuka kembali.
- Pemantauan terhadap suhu dalam ruang kantor (1 sensor), apabila kondisi ruangan suhunya
mencapai >= x derajat maka 2 buah kipas angina 220VAC akan menyala apabila kondisi
ruangan sudah mencapai suhu <= (x-3) derajat celcius maka satu kipas angin akan padam
apabila kondisi ruangan sudah mencapai suhu <= (x-5) derajat maka seluruh kipas angina
padam.
Apabila sistem tersebut diaplikasikan dengan modul Arduino UNO dan antarmuka ke computer
dibuat program pemantauan/pengendalian dengan Visual Basic
3. Buat Sketch Program dengan IDE Arduino untuk keperluan tersebut (nilai x di set dalam
sebuah konstanta).
a. Arduino Variables
// Temperature Controln
const int xTemperatureMaintain = 25;
#define inputThermistor (2)
int stateLogicThermistor;
#define outputFanLeft (3)
#define outputFanRight (4)
void setup()
{
// Temperature Control
pinMode(inputLogicThermistor, INPUT);
pinMode(outputFanLeft, OUTPUT);
pinMode(outputFanRight, OUTPUT);
digitalWrite(inputLogicThermistor, HIGH);
digitalWrite(outputFanLeft, LOW);
digitalWrite(outputFanRight, LOW);
c. Arduino Loop
void loop()
{
stateInputDoorSwitch = digitalRead(inputDoorSwitch);
stateOutputDoorLamp = digitalRead(outputDoorLamp);
// Toggle Switch MASK
if (stateInputDoorSwitch & stateInputDoorSwitch != 1)
{
stateToggleSwitch = stateInputDoorSwitch;
// Door Switch Control
if (stateInputDoorSwitch == LOW)
{
if (stateOutputDoorLamp == LOW)
{
digitalWrite(outputDoorLamp, HIGH);
Serial.println(LampON);
}
else
{
digitalWrite(outputDoorLamp, LOW);
Serial.println(LampOFF);
}
}
// Temperature Control
else
{
if (inputThermistor >= xTemperatureMaintain)
{
digitalWrite(outputFanLeft, HIGH);
digitalWrite(outputFanRight, HIGH);
}
else if ((inputThermistor <= xTemperatureMaintain - 3) &&
(inputThermistor > xTemperatureMaintain - 5))
{
digitalWrite(outputFanLeft, LOW);
digitalWrite(outputFanRight, HIGH);
}
else
{
digitalWrite(outputFanLeft, LOW);
digitalWrite(outputFanRight, LOW);
}
}
}
}
4. Buat program antar muka dengan VB untuk memantau kondisi sensor dan keluaran
a. Apabila ruang kantor gelap, antar muka tertulis “Ruangan Gelap”, apabila kondisi
ruang kantor terang, antar muka tertulis “Ruangan Terang”.
b. Tampilan informasi yang menunjukan nilai suhu ruangan setiap saat.
c. Apabila kondisi suhu ruang kantor >= x derajat, pada antar muka tertulis “kondisi
ruang panas”, apabila kondsi ruang kantor <= (x-3) derajat, antar muka tertulis
“kondisi ruang sedang”, dan apabila kondisi ruang kantor <= (x-5) derajat pada
antarmuka tertulis “kondisi ruang sejuk”.
i. VB
Dim Hot = 2
Dim Warm = 1
Dim Cold = 0
// Temperature Controln
const int xTemperatureMaintain = 25;
#define inputThermistor (2)
int stateLogicThermistor;
#define outputFanLeft (3)
#define outputFanRight (4)
void setup()
{
Serial.begin(9600);
// Temperature Control
pinMode(inputLogicThermistor, INPUT);
pinMode(outputFanLeft, OUTPUT);
pinMode(outputFanRight, OUTPUT);
digitalWrite(inputLogicThermistor, HIGH);
digitalWrite(outputFanLeft, LOW);
digitalWrite(outputFanRight, LOW);
void loop()
{
stateInputDoorSwitch = digitalRead(inputDoorSwitch);
stateOutputDoorLamp = digitalRead(outputDoorLamp);
// Toggle Switch MASK
if (stateInputDoorSwitch & stateInputDoorSwitch != 1)
{
stateToggleSwitch = stateInputDoorSwitch;
// Door Switch Control
if (stateInputDoorSwitch == LOW)
{
if (stateOutputDoorLamp == LOW)
{
digitalWrite(outputDoorLamp, HIGH);
Serial.println(LampON);
}
else
{
digitalWrite(outputDoorLamp, LOW);
Serial.println(LampOFF);
}
}
// Temperature Control
else
{
if (inputThermistor >= xTemperatureMaintain)
{
digitalWrite(outputFanLeft, HIGH);
digitalWrite(outputFanRight, HIGH);
Serial.println(hotCondition)
}
else if ((inputThermistor <= xTemperatureMaintain - 3) &&
(inputThermistor > xTemperatureMaintain - 5))
{
digitalWrite(outputFanLeft, LOW);
digitalWrite(outputFanRight, HIGH);
Serial.println(warmCondition)
}
else
{
digitalWrite(outputFanLeft, LOW);
digitalWrite(outputFanRight, LOW);
Serial.println(cold Condition)
}
}
}
}
d. Tampilan
Button for Testing Only