Anda di halaman 1dari 9

Imports Imports Imports Imports Imports Imports Imports Imports Imports

System.IO.Ports System.IO.Ports.SerialPort System System.Collections.Generic System.ComponentModel System.Data System.Drawing System.Text System.Windows.Forms

Public Class home Dim Dim Dim Dim Dim myPort As Array 'COM Ports detected on the system will be stored here baud As Int32 = 0, nilai As Int32 = 9600 datamasuk, pesanmasuk As String slave1, slave2, ambil As Boolean proses, proses2, krmpsnm, krmpsna As Integer

'deklarasi variabel - variabel yang digunakan Dim cahaya, cahayamax, cahayaavg, kelembapan, kelembapanmax, kelembapanavg, pir, suhu, suhumax, suhuavg, _ tegangan As Double Dim cahayamax2, cahayaavg2, kelembapanmax2, kelembapanavg2, suhumax2, suhuav g2 As Double Dim chy(1000), klb(1000), sh(1000), chy2(1000), klb2(1000), sh2(1000) As Dou ble Dim slave, sekurity, idks, idks2 As Integer Dim smsslave, smswaktu, smstgl As String Dim security As Boolean Dim cahaya1 As Double Private Sub try1_Load(sender As Object, e As EventArgs) Handles MyBase.Load myPort = IO.Ports.SerialPort.GetPortNames() 'Get all com ports available For A = 1 To 5 'baudrate baud = nilai + baud nilai = baud If A = 4 Then baud = 57600 ElseIf A = 5 Then baud = 115200 End If ComboBox1.Items.Add(baud) ComboBox3.Items.Add(baud) Next For i = 0 To UBound(myPort) 'com port ComboBox2.Items.Add(myPort(i)) ComboBox4.Items.Add(myPort(i)) Next End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1. Click If SerialPort1.IsOpen = False Then

'set serial port With SerialPort1 .BaudRate = ComboBox1.Text .PortName = ComboBox2.Text .Parity = IO.Ports.Parity.None .StopBits = IO.Ports.StopBits.One .DataBits = 8 End With 'open serial port SerialPort1.Open() Button1.Text = "Disconnect" 'aktifkan timer1 "timer untuk meminta data ke slave" Timer1.Enabled = True ' Timer2.Enabled = True ElseIf SerialPort1.IsOpen = True Then 'close serial port SerialPort1.Close() Button1.Text = "Connect" End If End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tic k proses = proses + 1 If proses = 1 Then 'default minta data ke slave1 slave1 = True slave2 = False ElseIf proses = 2 Then 'minta data ke slave2 slave1 = False slave2 = True proses = 0 End If If SerialPort1.IsOpen = True Then If slave1 = True Then 'meminta data ke slave 1, default SerialPort1.Write("a01dz") ElseIf slave2 = True Then 'meminta data ke slave 2, setelah slave 1 SerialPort1.Write("b02dy") End If End If End Sub Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceiv edEventArgs) Handles SerialPort1.DataReceived

datamasuk = SerialPort1.ReadLine If IsNothing(datamasuk) = False And datamasuk <> "~" Then SerialPort1.DiscardInBuffer() Me.Invoke(New EventHandler(AddressOf DoUpdate)) End If End Sub Private Sub DoUpdate() Dim panjang_data As Integer panjang_data = Len(datamasuk) ' TextBox2.Text = idks panjang_data = Len(datamasuk) If Mid(datamasuk, 1, 1) = "c" And Mid(datamasuk, (panjang_data - 1), 1) = "x" Then TextBox1.Text = datamasuk slave = Val(Mid(datamasuk, 2, 1)) cahaya = Val(datamasuk.Substring(datamasuk.IndexOf("g") + 1, (datama suk.IndexOf("i") - (datamasuk.IndexOf("g") + 1)))) kelembapan = Val(datamasuk.Substring(datamasuk.IndexOf("i") + 1, (da tamasuk.IndexOf("j") - (datamasuk.IndexOf("i") + 1)))) pir = Val(datamasuk.Substring(datamasuk.IndexOf("j") + 1, (datamasuk .IndexOf("k") - (datamasuk.IndexOf("j") + 1)))) suhu = Val(datamasuk.Substring(datamasuk.IndexOf("k") + 1, (datamasu k.IndexOf("l") - (datamasuk.IndexOf("k") + 1)))) tegangan = Val(datamasuk.Substring(datamasuk.IndexOf("l") + 1, (data masuk.IndexOf("x") - (datamasuk.IndexOf("l") + 1)))) End If

'alert ke user jika security mode diaktifkan untuk mengirimkan alert jik a ada pergerakan terdeteksi If security = True And pir = 1 Then Timer4.Enabled = True smsslave = slave smstgl = Today smswaktu = TimeOfDay() End If 'data slave 1 If slave = 1 Then 'masukkan data ke array keperluan max and avg chy(idks) = cahaya klb(idks) = kelembapan sh(idks) = suhu 'cari max and avg If idks = 0 Then cahayamax = chy(idks) kelembapanmax = klb(idks) suhumax = sh(idks)

cahayaavg = chy(idks) kelembapanavg = klb(idks) suhuavg = sh(idks) Else 'max value If chy(idks) > cahayamax Then cahayamax = chy(idks) Else cahayamax = cahayamax End If If klb(idks) > kelembapanmax Then kelembapanmax = klb(idks) Else kelembapanmax = kelembapanmax End If If sh(idks) > suhumax Then suhumax = sh(idks) Else suhumax = suhumax End If 'avg value For i = 0 To idks 'jumlahkan dahulu cahayaavg = cahayaavg + chy(i) kelembapanavg = kelembapanavg + klb(i) suhuavg = suhuavg + sh(i) Next 'rata-ratakan cahayaavg = cahayaavg / (idks + 1) kelembapanavg = kelembapanavg / (idks + 1) suhuavg = suhuavg / (idks + 1) End If idks = idks + 1 If idks = 1000 Then idks = 0 End If 'tampilkan data slave 1 TextBox11.Text = cahaya TextBox17.Text = kelembapan 'tampilan sensor pir If pir = 1 Then TextBox20.Text = "YES" TextBox18.Text = TimeOfDay() TextBox19.Text = Today 'date End If TextBox23.Text = suhu TextBox26.Text = tegangan TextBox24.Text = (tegangan / 9) * 100

'time

'maxvalue TextBox10.Text = cahayamax TextBox16.Text = kelembapanmax TextBox22.Text = suhumax 'avgvalue TextBox9.Text = cahayaavg TextBox15.Text = kelembapanavg TextBox21.Text = suhuavg 'reset avg value cahayaavg = 0 kelembapanavg = 0 suhuavg = 0 'grafik 'Scope1.Channels(0).Data.SetYData(cahaya1) ' scope1.Channels[0].Data.SetYData(cahaya); 'scope1.Channels[1].Data.SetYData(kelembapan); 'scope1.Channels[2].Data.SetYData(suhu); 'scope1.Channels[3].Data.SetYData(tegangan); End If 'tampilkan data slave 2 If slave = 2 Then 'masukkan data ke array keperluan max and avg chy2(idks2) = cahaya klb2(idks2) = kelembapan sh2(idks2) = suhu 'cari max and avg If idks2 = 0 Then cahayamax2 = chy2(idks2) kelembapanmax2 = klb2(idks2) suhumax2 = sh2(idks2) cahayaavg2 = chy2(idks2) kelembapanavg2 = klb2(idks2) suhuavg2 = sh2(idks2) Else 'max value If chy2(idks2) > cahayamax2 Then cahayamax2 = chy2(idks2) Else cahayamax2 = cahayamax2 End If If klb2(idks2) > kelembapanmax2 Then kelembapanmax2 = klb2(idks2) Else kelembapanmax2 = kelembapanmax2 End If If sh2(idks2) > suhumax2 Then suhumax2 = sh2(idks2) Else

suhumax2 = suhumax2 End If 'avg value For i = 0 To idks2 'jumlahkan dahulu cahayaavg2 = cahayaavg2 + chy2(i) kelembapanavg2 = kelembapanavg2 + klb2(i) suhuavg2 = suhuavg2 + sh2(i) Next 'rata-ratakan cahayaavg2 = cahayaavg2 / (idks2 + 1) kelembapanavg2 = kelembapanavg2 / (idks2 + 1) suhuavg2 = suhuavg2 / (idks2 + 1) End If idks2 = idks2 + 1 If idks2 = 1000 Then idks2 = 0 End If 'tampilkan data slave 1 TextBox8.Text = cahaya TextBox29.Text = kelembapan 'tampilan sensor pir If pir = 1 Then TextBox35.Text = "YES" TextBox33.Text = TimeOfDay() TextBox34.Text = Today 'date End If TextBox32.Text = suhu TextBox14.Text = tegangan TextBox12.Text = (tegangan / 9) * 100 'maxvalue TextBox7.Text = cahayamax2 TextBox28.Text = kelembapanmax2 TextBox31.Text = suhumax2 'avgvalue TextBox6.Text = cahayaavg2 TextBox27.Text = kelembapanavg2 TextBox30.Text = suhuavg2 'reset avg value cahayaavg2 = 0 kelembapanavg2 = 0 suhuavg2 = 0 'grafik 'Scope1.Channels(0).Data.SetYData(cahaya1) ' scope1.Channels[0].Data.SetYData(cahaya); 'scope1.Channels[1].Data.SetYData(kelembapan); 'scope1.Channels[2].Data.SetYData(suhu); 'scope1.Channels[3].Data.SetYData(tegangan);

'time

End If datamasuk = "~" End Sub Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tic k proses2 = proses2 + 1 If proses2 = 1 Then SerialPort2.Write("ATEO" & vbCrLf) ElseIf proses2 = 2 Then SerialPort2.Write("AT+CMGF=1" & vbCrLf) ElseIf proses2 = 3 Then 'SerialPort2.Write("AT+CNMI=0,2,0,0,0" & vbCrLf) proses = 0 Timer2.Enabled = False End If End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2. Click If SerialPort2.IsOpen = False Then 'set serial port With SerialPort2 .BaudRate = ComboBox3.Text .PortName = ComboBox4.Text .Parity = IO.Ports.Parity.None .StopBits = IO.Ports.StopBits.One .DataBits = 8 End With 'open serial port SerialPort2.Open() Button2.Text = "Disconnect" 'aktifkan timer untuk setting modem Timer2.Enabled = True ElseIf SerialPort2.IsOpen = True Then 'close serial port SerialPort2.Close() Button2.Text = "Connect" End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3. Click If SerialPort2.IsOpen = True Then Timer3.Enabled = True End If End Sub Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tic

k Dim nohp, pesan As String krmpsnm = krmpsnm + 1 nohp = TextBox5.Text pesan = TextBox3.Text If krmpsnm = 1 Then 'set no.hp SerialPort2.Write("AT+CMGS=" & Chr(34) & nohp & Chr(34) & vbCrLf) ElseIf krmpsnm = 2 Then 'tulis pesan, kirim pesan SerialPort2.Write(pesan & vbCrLf & Chr(26)) krmpsnm = 0 ' MsgBox("Pesan Telah Dikirim", MsgBoxStyle.Information) Timer3.Enabled = False End If End Sub Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tic k Dim nohp As String = +628126178274 krmpsna = krmpsna + 1 If krmpsna = 1 Then 'set no.hp SerialPort2.Write("AT+CMGS=" & Chr(34) & nohp & Chr(34) & vbCrLf) ElseIf krmpsna = 2 Then 'tulis pesan, kirim pesan If slave = 1 Then SerialPort2.Write("Terdeteksi Gerakan Pada Slave 1" & vbLf) SerialPort2.Write("Pada Tanggal : " & smstgl & vbLf) SerialPort2.Write("Pada Pukul :" & smswaktu & vbLf) ElseIf slave = 2 Then SerialPort2.Write("Terdeteksi Gerakan Pada Slave 2" & vbLf) SerialPort2.Write("Pada Tanggal : " & smstgl & vbLf) SerialPort2.Write("Pada Pukul : " & smswaktu & vbLf) End If SerialPort2.Write(vbCrLf & Chr(26)) Timer4.Enabled = False End If End Sub Private Sub SerialPort2_DataReceived(sender As Object, e As SerialDataReceiv edEventArgs) Handles SerialPort2.DataReceived pesanmasuk = SerialPort2.ReadExisting If IsNothing(pesanmasuk) = False And pesanmasuk <> "~" Then SerialPort2.DiscardInBuffer() 'Me.Invoke(New EventHandler(AddressOf inboxmsg)) End If End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4. Click sekurity = sekurity + 1 If sekurity = 1 And security = False Then security = True Button4.Text = "Security OFF" End If If sekurity = 2 And security = True Then security = False Button4.Text = "Security ON" sekurity = 0 End If End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) End Sub Private Sub Timer5_Tick(sender As Object, e As EventArgs) Handles Timer5.Tic k cahaya1 = 100 'Scope1.Channels(0).Data.SetYData(chy(1)) End Sub End Class

Anda mungkin juga menyukai