Anda di halaman 1dari 10

Suatu Sistem Pengendali “ruang kantor pintar” membutuhkan pemantauan terhadap beberapa hal

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

1. Tentukan komponen-komponen (dan jumlahnya) sensor, alat keluaran serta komponen


pendukung yang diperlukan (apabila ada) untuk membangun sistem tersebut (selain Arduino
UNO dan computer).
2. Rancang lah wiring diagram / skematik rangkaian yang menghubungkan antara sensor-
sensor dan keluaran dengan Arduino UNO (catatan: tentukan sendiri No. PIN I/O pada
Arduino sesuai kebutuhan perancangan)
3. Buat Sketch Program dengan IDE Arduino untuk keperluan tersebut (nilai x di set dalam
sebuah konstanta).
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”.
5. Apabila “ruang kantor pintar” ini dilengkapi dengan sistem keamanan kebakaran perangkat
apa saja yang dibutuhkan? Gambarkan perubahan rangkaiannya pada Arduino!
1. Tentukan komponen-komponen (dan jumlahnya) sensor, alat keluaran serta komponen
pendukung yang diperlukan (apabila ada) untuk membangun sistem tersebut (selain Arduino
UNO dan computer).
a. Components:
i. Temperature Control
1. Input Sensor
a. Thermistor
b. Op-Amp
c. Analog Reader Input Arduino
2. Output
a. 2x Transistor
b. 2x Relay
c. 2x Kipas Angin (220V AC)
ii. Door & Lamp Control
1. Input Sensor
a. Raid Switch
2. Output Sensor
a. Relay
b. Transistor
c. Bohlam/Lampu
2. Rancang lah wiring diagram / skematik rangkaian yang menghubungkan antara sensor-
sensor dan keluaran dengan Arduino UNO (catatan: tentukan sendiri No. PIN I/O pada
Arduino sesuai kebutuhan perancangan)
a. Schematic

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)

// Door & Lamp Control


#define inputDoorSwitch (5)
int stateInputDoorSwitch = LOW;
int stateToggleSwitch = LOW;
#define outputDoorLamp (6)
int stateOutputDoorLamp;
b. Arduino Setup

void setup()
{
// Temperature Control
pinMode(inputLogicThermistor, INPUT);
pinMode(outputFanLeft, OUTPUT);
pinMode(outputFanRight, OUTPUT);
digitalWrite(inputLogicThermistor, HIGH);
digitalWrite(outputFanLeft, LOW);
digitalWrite(outputFanRight, LOW);

// Door & Lamp Control


pinMode(inputDoorSwitch, INPUT);
pinMode(outputDoorLamp, OUTPUT);
digitalWrite(inputLogicThermistor, HIGH);
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

Public Class formApplication

Dim Hot = 2
Dim Warm = 1
Dim Cold = 0

Dim bLampCondON = False


Dim serialInput As String
Dim iTempCondition As Integer

Private Sub timerProgram_Tick(sender As System.Object, e As


System.EventArgs) Handles timerProgram.Tick
'serialInput = serialArduino.ReadExisting()
If (Len(serialInput) > 0) Then
If (Mid(serialInput, 1, 3) = "ONN") Then
bLampCondON = True
ElseIf (Mid(serialInput, 1, 3) = "OFF") Then
bLampCondON = False
ElseIf (Mid(serialInput, 1, 3) = "000") Then
iTempCondition = Cold
ElseIf (Mid(serialInput, 1, 3) = "001") Then
iTempCondition = Warm
ElseIf (Mid(serialInput, 1, 3) = "O10") Then
iTempCondition = Hot
Else
txtBox_OutputTemp.Text = serialInput.ToString
End If
End If

If (bLampCondON = True) Then


txtBox_Output_LightCondition.Text = "Ruangan Terang"
ElseIf (bLampCondON = False) Then
txtBox_Output_LightCondition.Text = "Ruangan Gelap"
End If

If (iTempCondition = Cold) Then


txtBox_Output_TempCondition.Text = "Ruangan Dingin"
ElseIf (iTempCondition = Warm) Then
txtBox_Output_TempCondition.Text = "Ruangan Sedang"
ElseIf (iTempCondition = Hot) Then
txtBox_Output_TempCondition.Text = "Ruangan Panas"
End If
End Sub

Private Sub formApplication_Load(sender As System.Object, e As


System.EventArgs) Handles MyBase.Load
serialArduino.PortName = "COM5"
serialArduino.BaudRate = 9600
serialArduino.Parity = IO.Ports.Parity.None
serialArduino.DataBits = 8
serialArduino.StopBits = IO.Ports.StopBits.One
'serialArduino.Open()
timerProgram.Enabled = True
End Sub
ii. Arduino

// Temperature Controln
const int xTemperatureMaintain = 25;
#define inputThermistor (2)
int stateLogicThermistor;
#define outputFanLeft (3)
#define outputFanRight (4)

// Door & Lamp Control


#define inputDoorSwitch (5)
int stateInputDoorSwitch = LOW;
int stateToggleSwitch = LOW;
#define outputDoorLamp (6)
int stateOutputDoorLamp;

#define LampON ("ONN")


#define LampOFF ("OFF")

#define coldCondition ("000")


#define warmCondition ("001")
#define hotCondition ("010")

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);

// Door & Lamp Control


pinMode(inputDoorSwitch, INPUT);
pinMode(outputDoorLamp, OUTPUT);
digitalWrite(inputLogicThermistor, HIGH);
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

5. Smoke Detection using MQ-2 Smoke Sensor

Anda mungkin juga menyukai