Perancangan Sistem Pemantauan dan Pengukuran Ketinggian Air Sungai Secara Jarak Jauh Dengan Tampilan PC
Lampiran 1
Listing program dari seluruh sistem .
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.9 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date
: 11/04/2016
Author
only
: Freeware, for evaluation and non-commercial use
Company :
Comments:
Chip type
: ATmega8
Program type
: Application
AVR Core Clock frequency: 4,000000 MHz
Memory model
: Small
External RAM size
: 0
Data Stack size
: 256
*****************************************************/
Universitas Sumatera Utara
#include
#include
#include
unsigned int Level;
void Read_Sensor(void)
{
PORTB.1
= 1;
//rutin baca sensor ping
//
delay_us(35);
// send start pulse
PORTB.1
//
= 0;
TCNT1=0;
//reset counter
while (PINB.0 == 0){};
// wait for return
pulse
TCCR1B=0x02;
// start timer (timer period
= 2uS)
while ((PINB.0 == 1) && !(TIFR & 0x80));
timing the return pulse
TCCR1B=0x00;
Level = TCNT1;
variable h
//
// stop timer
// save timer value to
if ( Level < 1000 ) {Level = (Level*10)/25;}
//utk menghilangkan efek penggenapan
if ( Level >= 1000) {Level = (Level/25)*10;}
}
void main(void)
{
Universitas Sumatera Utara
// Input/Output Ports initialization
// Port B initialization
PORTB=0x01;
DDRB=0x02;
// Port C initialization
PORTC=0x30;
DDRC=0x00;
// Port D initialization
PORTD=0x00;
DDRD=0x80;
// USART initialization
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
while (1)
Universitas Sumatera Utara
{ Read_Sensor();
printf("%i",Level);
delay_ms(1000);
//tunda 10 mili
detik
if ( Level < 100) {PORTD.7 =
1;delay_ms(500);PORTD.7 = 0;}
}
}
Lampiran 2
Listing program visual basic untuk menampilkan grafik level air dan alarm
pada PC
Dim Yd1(0 To 10000), j, Level As Integer
Dim TIMES(0 To 1000) As String
Dim f As String
Dim oXL As Excel.Application
Private Declare Function sndPlaySound Lib "Winmm.dll"
Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, ByVal
uflags As Long) As Long
Private Const snd_sync = &H0
Private Const snd_Async = &H1
Private Const snd_loop = &H8
Private Sub A_Click()
sndPlaySound vbNullString, snd_Async
End Sub
Private Sub Command1_Click()
Universitas Sumatera Utara
Timer1.Enabled = False
Set oXL = New Excel.Application
Set oxlbook = oXL.Workbooks.Add
FileName = "C:\Data\" + Text4 + ".xls"
oxlbook.Worksheets(1).Range("A1") = " Time
"
oxlbook.Worksheets(1).Range("B1") = " Level sungai (cm)
"
oxlbook.SaveAs FileName
For i = 2 To j
oxlbook.Worksheets(1).Range("A" & i) = TIMES(i)
oxlbook.Worksheets(1).Range("B" & i) = Yd1(i)
Next i
On Error GoTo 1
oxlbook.SaveAs FileName
oxlbook.Close
1:
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True
j = 0
Universitas Sumatera Utara
End Sub
Private Sub Command4_Click()
sndPlaySound vbNullString, snd_Async
Unload Me
End Sub
Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub
Private Sub Timer1_Timer()
x = MSComm1.Input
If x "" Then
If x > 50 Then Level = 53 - x / 10
If Level > 0 Then Text1 = Level
Picture1.Top = 2500 + (4100 - (Text1 * 100))
Picture1.Height = 6600 - Picture1.Top
End If
If Level > 40 Then
alert = "C:\ Windows \ media \" + "notify.wav"
sndPlaySound alert, snd_Async Or snd_loop
Universitas Sumatera Utara
End If
End Sub
Private Sub Timer2_Timer()
Text3 = Time
If Level > 0 Then Yd1(j) = Level
TIMES(j) = Text3
j = j + 1
End Sub
Universitas Sumatera Utara
Lampiran 3
Gambar Alat
1. Sensor HC-SR04
5. Buzzer
2. Modul RS485
6. Tabung Air
3. Kabel Penghubung
7. Rangkaiaan
4. Adaptor
8. Komputer/PC
Universitas Sumatera Utara
Lampiran 4
Gambar Alat Secara Keseluruh
Universitas Sumatera Utara
100µF/50V
1
PC 6 (RESET)
(ADC5/SCL) PC 5
28
2
PD 0 (RXD)
(ADC4/SCA) PC 4
27
3
PD 1 (TXD)
(ADC3) PC 3
26
4
PD 2 (INT 0)
(ADC2) PC 2
25
5
PD 3 (INT 1)
6
PD 4 (XCK/T0)
7
VCC
8
GND
220µF/25V
Interconnect
Modul RS485
Modul RS485
PC
Jaringan
RS485
10 KΩ
XTAL
4MHz
Buzzer
9
10
11
(ADC0) PC 0
23
GND
22
AREF
21
PB 6 (XTAL1/TOSC1)
AVCC
20
PB 7 (XTAL2/TOSC2)
(SCF) PB5
19
(MISO) PB 4
18
PD 5 (T1)
Universitas Sumatera Utara
12
PD 6 (AIN0)
(MOSI/OC2) PB 3
17
13
PD 7 (AIN1)
(SS/OC1B) PB2
16
14
PB 0 (IC P1)
(OC1A) PB 1
5 Volt
4
24
ATMEGA 8
5 Volt
(ADC1) PC 1
2 trigger
HC-SR04
Ultrasonic
Ping Sensor
echo
3
1
15
Lampiran 5
10µF/25V
AN 7805
Rangkaian Lengkap Sistem
BATERE
12V/2AH
Monitor
Listing program dari seluruh sistem .
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.9 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date
: 11/04/2016
Author
only
: Freeware, for evaluation and non-commercial use
Company :
Comments:
Chip type
: ATmega8
Program type
: Application
AVR Core Clock frequency: 4,000000 MHz
Memory model
: Small
External RAM size
: 0
Data Stack size
: 256
*****************************************************/
Universitas Sumatera Utara
#include
#include
#include
unsigned int Level;
void Read_Sensor(void)
{
PORTB.1
= 1;
//rutin baca sensor ping
//
delay_us(35);
// send start pulse
PORTB.1
//
= 0;
TCNT1=0;
//reset counter
while (PINB.0 == 0){};
// wait for return
pulse
TCCR1B=0x02;
// start timer (timer period
= 2uS)
while ((PINB.0 == 1) && !(TIFR & 0x80));
timing the return pulse
TCCR1B=0x00;
Level = TCNT1;
variable h
//
// stop timer
// save timer value to
if ( Level < 1000 ) {Level = (Level*10)/25;}
//utk menghilangkan efek penggenapan
if ( Level >= 1000) {Level = (Level/25)*10;}
}
void main(void)
{
Universitas Sumatera Utara
// Input/Output Ports initialization
// Port B initialization
PORTB=0x01;
DDRB=0x02;
// Port C initialization
PORTC=0x30;
DDRC=0x00;
// Port D initialization
PORTD=0x00;
DDRD=0x80;
// USART initialization
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
while (1)
Universitas Sumatera Utara
{ Read_Sensor();
printf("%i",Level);
delay_ms(1000);
//tunda 10 mili
detik
if ( Level < 100) {PORTD.7 =
1;delay_ms(500);PORTD.7 = 0;}
}
}
Lampiran 2
Listing program visual basic untuk menampilkan grafik level air dan alarm
pada PC
Dim Yd1(0 To 10000), j, Level As Integer
Dim TIMES(0 To 1000) As String
Dim f As String
Dim oXL As Excel.Application
Private Declare Function sndPlaySound Lib "Winmm.dll"
Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, ByVal
uflags As Long) As Long
Private Const snd_sync = &H0
Private Const snd_Async = &H1
Private Const snd_loop = &H8
Private Sub A_Click()
sndPlaySound vbNullString, snd_Async
End Sub
Private Sub Command1_Click()
Universitas Sumatera Utara
Timer1.Enabled = False
Set oXL = New Excel.Application
Set oxlbook = oXL.Workbooks.Add
FileName = "C:\Data\" + Text4 + ".xls"
oxlbook.Worksheets(1).Range("A1") = " Time
"
oxlbook.Worksheets(1).Range("B1") = " Level sungai (cm)
"
oxlbook.SaveAs FileName
For i = 2 To j
oxlbook.Worksheets(1).Range("A" & i) = TIMES(i)
oxlbook.Worksheets(1).Range("B" & i) = Yd1(i)
Next i
On Error GoTo 1
oxlbook.SaveAs FileName
oxlbook.Close
1:
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True
j = 0
Universitas Sumatera Utara
End Sub
Private Sub Command4_Click()
sndPlaySound vbNullString, snd_Async
Unload Me
End Sub
Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub
Private Sub Timer1_Timer()
x = MSComm1.Input
If x "" Then
If x > 50 Then Level = 53 - x / 10
If Level > 0 Then Text1 = Level
Picture1.Top = 2500 + (4100 - (Text1 * 100))
Picture1.Height = 6600 - Picture1.Top
End If
If Level > 40 Then
alert = "C:\ Windows \ media \" + "notify.wav"
sndPlaySound alert, snd_Async Or snd_loop
Universitas Sumatera Utara
End If
End Sub
Private Sub Timer2_Timer()
Text3 = Time
If Level > 0 Then Yd1(j) = Level
TIMES(j) = Text3
j = j + 1
End Sub
Universitas Sumatera Utara
Lampiran 3
Gambar Alat
1. Sensor HC-SR04
5. Buzzer
2. Modul RS485
6. Tabung Air
3. Kabel Penghubung
7. Rangkaiaan
4. Adaptor
8. Komputer/PC
Universitas Sumatera Utara
Lampiran 4
Gambar Alat Secara Keseluruh
Universitas Sumatera Utara
100µF/50V
1
PC 6 (RESET)
(ADC5/SCL) PC 5
28
2
PD 0 (RXD)
(ADC4/SCA) PC 4
27
3
PD 1 (TXD)
(ADC3) PC 3
26
4
PD 2 (INT 0)
(ADC2) PC 2
25
5
PD 3 (INT 1)
6
PD 4 (XCK/T0)
7
VCC
8
GND
220µF/25V
Interconnect
Modul RS485
Modul RS485
PC
Jaringan
RS485
10 KΩ
XTAL
4MHz
Buzzer
9
10
11
(ADC0) PC 0
23
GND
22
AREF
21
PB 6 (XTAL1/TOSC1)
AVCC
20
PB 7 (XTAL2/TOSC2)
(SCF) PB5
19
(MISO) PB 4
18
PD 5 (T1)
Universitas Sumatera Utara
12
PD 6 (AIN0)
(MOSI/OC2) PB 3
17
13
PD 7 (AIN1)
(SS/OC1B) PB2
16
14
PB 0 (IC P1)
(OC1A) PB 1
5 Volt
4
24
ATMEGA 8
5 Volt
(ADC1) PC 1
2 trigger
HC-SR04
Ultrasonic
Ping Sensor
echo
3
1
15
Lampiran 5
10µF/25V
AN 7805
Rangkaian Lengkap Sistem
BATERE
12V/2AH
Monitor