Pembuatan Alat Ukur Telemetri Curah Hujan Tipe Tipping Bucket Menggunakan Sensor Reed Switch Mikrokontroler Atmega8535 Berbasis Android
43
LAMPIRAN
Pemograman Code Vision AVR
#include
#include
#include
void main(void)
{
PORTA=0x0F;
DDRA=0x00;
PORTB=0x0F;
DDRB=0x00;
PORTC=0x00;
DDRC=0x0F;
PORTD=0xFC;
DDRD=0x03;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 56000 (Double Speed Mode)
UCSRA=0x02;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x08;
while (1)
{ if (PINB.0 == 0){
Universitas Sumatera Utara
44
while (PINB.0 == 0){}
printf("D");
}
delay_ms(100);
}
}
Pemograman Visual Basic
Dim TIMES(0 To 1000) As String
Dim f As String
Dim Temp1, Temp2 As Single
Dim i, j, Jam, TotalCurahHujan, Intensitas, CHRata2 As Integer
Dim Hour(0 To 24) As String
Dim oXL As Excel.Application
Dim Intensity(1 To 1000), Average(1 To 1000), Total(1 To 1000) As Integer
Private Sub Command1_Click()
Set oXL = New Excel.Application
Set oxlbook = oXL.Workbooks.Add
FileName = "C:\Data\" + Text3 + ".xls"
oxlbook.Worksheets(1).Range("A1") = " Mean Time "
oxlbook.Worksheets(1).Range("B1") = " Intensity "
oxlbook.Worksheets(1).Range("C1") = " Average "
oxlbook.Worksheets(1).Range("D1") = " Total "
Universitas Sumatera Utara
45
oxlbook.SaveAs FileName
For i = 2 To j
oxlbook.Worksheets(1).Range("A" & i) = TIMES(i)
oxlbook.Worksheets(1).Range("B" & i) = Intensity(i)
oxlbook.Worksheets(1).Range("C" & i) = Average(i)
oxlbook.Worksheets(1).Range("D" & i) = Total(i)
Next i
On Error GoTo 1
oxlbook.SaveAs FileName
oxlbook.Close
1:
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Form_Load()
Universitas Sumatera Utara
46
With MSComm1
If .PortOpen = True Then .PortOpen = False
.DTREnable = True
.RTSEnable = True
.RThreshold = 1
.SThreshold = 0
MSComm1.PortOpen = True
End With
Temp1 = 0
For i = 0 To 24
Hour(i) = 0
Next i
j=1
'reset nilai count
For i = 1 To 24
MSChart1.Column = i
MSChart1.Data = Hour(i)
Next i
End Sub
Private Sub Timer1_Timer()
Data = MSComm1.Input
If Data "" Then
Universitas Sumatera Utara
47
If Data = "D" Then
Temp1 = Temp1 + 1
End If
End If
Label12 = Temp1
End Sub
Private Sub Timer2_Timer()
Text2 = Time
Text1 = Time
If Text2 = "00:00:00 AM" Then
End If
Dat = Left(Text1, 8)
Dat = Right(Dat, 5)
Text1 = Dat
If Text1 = "00:00" Then
Intensitas = Label12 * 0.5 / 60 * 100
Label6 = Intensitas
TotalCurahHujan = TotalCurahHujan + Intensitas * 60 / 100
Label5 = TotalCurahHujan
Text1 = Time
Dat = Left(Text1, 5) 'baca jumlah jam
Jam = Left(Text1, 1)
Universitas Sumatera Utara
48
If Jam = "0" Then
Jam = Left(Text1, 2)
Jam = Right(Jam, 1)
Else
Jam = Left(Text1, 2)
End If
If Jam = 0 Then Jam = 1
'Akuisisi data tiap jam
CHRata2 = TotalCurahHujan / Jam
Label7 = CHRata2
Hour(Jam) = Intensitas
Temp1 = 0
j=j+1
Intensity(j) = Intensitas
Average(j) = CHRata2
Total(j) = TotalCurahHujan
TIMES(j) = Text2
If Intensitas >= 10 Then Label9 = "Hujan Ringan"
If Intensitas >= 500 Then Label9 = "Hujan Sedang"
If Intensitas >= 1000 Then Label9 = "Hujan Lebat"
If Intensitas > 2000 Then Label9 = "Sangat Lebat"
Universitas Sumatera Utara
49
For i = 1 To 24
MSChart1.Column = i
MSChart1.Data = Hour(i)
Next i
End If
End Sub
Universitas Sumatera Utara
50
GAMBAR KESELURUHAN PERALATAN
Gambar instrument
Universitas Sumatera Utara
51
Gambar ketika tidak ada curah hujan
Gambar ketika ada curah hujan
Universitas Sumatera Utara
+5 V
220 nF
C1
R1
10K
10
Vcc
Reset
30 AVCC
31 AGND
32 AREF
0,22 Ohm
SENSOR REED
SWITCH
Jungkitan yang
memiliki magnet
1
2
3
4
ATMega
8535
GND
33
34
35
36
37
38
39
40
+5 V
Vcc
PB0
PB1
PB2
PB3
USB PORT
5 PB4
6 PB5
0,22 Ohm
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
TTL-USB
CONVERTER
PD0 14
5V
1
2
PD1 15
3
4
23 PC1
24 PC2
PD2 16
PD3 17
PD4 18
PD5 19
PD6 20
PD7 21
25 PC3
26 PC4
XTAL1 12
7 PB6
8 PB7
22 PC0
GND
WI-FI
4 MHZ
XTAL2 13
GND
SMARPHONE
ANDROID
11
52
Universitas Sumatera Utara
27 PC5
28 PC6
29 PC7
PERSONAL
COMPUTER
GAMBAR RANGKAIAN PELENGKAP
SENSOR REED
SWITCH
9
53
Universitas Sumatera Utara
LAMPIRAN
Pemograman Code Vision AVR
#include
#include
#include
void main(void)
{
PORTA=0x0F;
DDRA=0x00;
PORTB=0x0F;
DDRB=0x00;
PORTC=0x00;
DDRC=0x0F;
PORTD=0xFC;
DDRD=0x03;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 56000 (Double Speed Mode)
UCSRA=0x02;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x08;
while (1)
{ if (PINB.0 == 0){
Universitas Sumatera Utara
44
while (PINB.0 == 0){}
printf("D");
}
delay_ms(100);
}
}
Pemograman Visual Basic
Dim TIMES(0 To 1000) As String
Dim f As String
Dim Temp1, Temp2 As Single
Dim i, j, Jam, TotalCurahHujan, Intensitas, CHRata2 As Integer
Dim Hour(0 To 24) As String
Dim oXL As Excel.Application
Dim Intensity(1 To 1000), Average(1 To 1000), Total(1 To 1000) As Integer
Private Sub Command1_Click()
Set oXL = New Excel.Application
Set oxlbook = oXL.Workbooks.Add
FileName = "C:\Data\" + Text3 + ".xls"
oxlbook.Worksheets(1).Range("A1") = " Mean Time "
oxlbook.Worksheets(1).Range("B1") = " Intensity "
oxlbook.Worksheets(1).Range("C1") = " Average "
oxlbook.Worksheets(1).Range("D1") = " Total "
Universitas Sumatera Utara
45
oxlbook.SaveAs FileName
For i = 2 To j
oxlbook.Worksheets(1).Range("A" & i) = TIMES(i)
oxlbook.Worksheets(1).Range("B" & i) = Intensity(i)
oxlbook.Worksheets(1).Range("C" & i) = Average(i)
oxlbook.Worksheets(1).Range("D" & i) = Total(i)
Next i
On Error GoTo 1
oxlbook.SaveAs FileName
oxlbook.Close
1:
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Form_Load()
Universitas Sumatera Utara
46
With MSComm1
If .PortOpen = True Then .PortOpen = False
.DTREnable = True
.RTSEnable = True
.RThreshold = 1
.SThreshold = 0
MSComm1.PortOpen = True
End With
Temp1 = 0
For i = 0 To 24
Hour(i) = 0
Next i
j=1
'reset nilai count
For i = 1 To 24
MSChart1.Column = i
MSChart1.Data = Hour(i)
Next i
End Sub
Private Sub Timer1_Timer()
Data = MSComm1.Input
If Data "" Then
Universitas Sumatera Utara
47
If Data = "D" Then
Temp1 = Temp1 + 1
End If
End If
Label12 = Temp1
End Sub
Private Sub Timer2_Timer()
Text2 = Time
Text1 = Time
If Text2 = "00:00:00 AM" Then
End If
Dat = Left(Text1, 8)
Dat = Right(Dat, 5)
Text1 = Dat
If Text1 = "00:00" Then
Intensitas = Label12 * 0.5 / 60 * 100
Label6 = Intensitas
TotalCurahHujan = TotalCurahHujan + Intensitas * 60 / 100
Label5 = TotalCurahHujan
Text1 = Time
Dat = Left(Text1, 5) 'baca jumlah jam
Jam = Left(Text1, 1)
Universitas Sumatera Utara
48
If Jam = "0" Then
Jam = Left(Text1, 2)
Jam = Right(Jam, 1)
Else
Jam = Left(Text1, 2)
End If
If Jam = 0 Then Jam = 1
'Akuisisi data tiap jam
CHRata2 = TotalCurahHujan / Jam
Label7 = CHRata2
Hour(Jam) = Intensitas
Temp1 = 0
j=j+1
Intensity(j) = Intensitas
Average(j) = CHRata2
Total(j) = TotalCurahHujan
TIMES(j) = Text2
If Intensitas >= 10 Then Label9 = "Hujan Ringan"
If Intensitas >= 500 Then Label9 = "Hujan Sedang"
If Intensitas >= 1000 Then Label9 = "Hujan Lebat"
If Intensitas > 2000 Then Label9 = "Sangat Lebat"
Universitas Sumatera Utara
49
For i = 1 To 24
MSChart1.Column = i
MSChart1.Data = Hour(i)
Next i
End If
End Sub
Universitas Sumatera Utara
50
GAMBAR KESELURUHAN PERALATAN
Gambar instrument
Universitas Sumatera Utara
51
Gambar ketika tidak ada curah hujan
Gambar ketika ada curah hujan
Universitas Sumatera Utara
+5 V
220 nF
C1
R1
10K
10
Vcc
Reset
30 AVCC
31 AGND
32 AREF
0,22 Ohm
SENSOR REED
SWITCH
Jungkitan yang
memiliki magnet
1
2
3
4
ATMega
8535
GND
33
34
35
36
37
38
39
40
+5 V
Vcc
PB0
PB1
PB2
PB3
USB PORT
5 PB4
6 PB5
0,22 Ohm
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
TTL-USB
CONVERTER
PD0 14
5V
1
2
PD1 15
3
4
23 PC1
24 PC2
PD2 16
PD3 17
PD4 18
PD5 19
PD6 20
PD7 21
25 PC3
26 PC4
XTAL1 12
7 PB6
8 PB7
22 PC0
GND
WI-FI
4 MHZ
XTAL2 13
GND
SMARPHONE
ANDROID
11
52
Universitas Sumatera Utara
27 PC5
28 PC6
29 PC7
PERSONAL
COMPUTER
GAMBAR RANGKAIAN PELENGKAP
SENSOR REED
SWITCH
9
53
Universitas Sumatera Utara