Anda di halaman 1dari 12

Laporan Workshop Sistem Antarmuka

Bayu Bimasakti - 2120600031

Praktikum 8
Judul: Data logger
Tanggal: 28 April 2022

Pendahuluan
Pada pertemuan Workshop Teknik Antar muka yang dilakukan pada hari kamis
tanggal 28 April 2022 membahas mengenai kelanjutan dari praktikum sebelumnya,
pada pertemuan ini kita membahas mengenai Data Logger dimana disini kita dapat
menggunakan GUI sebelumnya namun terdapat sedikit Tambahan pada fitur GUInya,
selain itu pada praktikum ini untuk pengujiannya menggunakan GUI Mikrokontroler
untuk menerima data dari sensor.
Pada praktikum ini tujunya adalah untuk dapat melakukan Peyimpanan data yang
diterima secara lokal ke dalam file teks

Pada percobaan sebelumnya, sebuah alat yang diwakili oleh simulator


mikrokontroler mempunyai 4 macam data sensor (lihat Gambar 1). Alat tersebut
mengirimkan data secara terus menerus ke PC untuk ditampilkan. Selanjutnya untuk
keperluan analisa lebih lanjut atau untuk melihat history data beberapa waktu yang
lalu maka data yang diterima tersebut nanitnya akan di simpan kedalam local memory

Dengan cara merekam data tersebut ke dalam file. Untuk data yang tidak terlalu
kompleks, file yang digunakan dapat berupa file text. Sedangkan untuk data yang
kompleks, anda dapat menggunakan file CSV ataupun file database yang lain. Pada
praktikum ini anda akan mencoba untuk merekam paket data yang diterima dari
simulator mikrokontroler ke dalam sebuah file text.
Tampilan GUI Penyimpanan berupa Teks

Data yang dimasukkan dalam teks akan di simpan ke local memori sesuai dengan
lokasi penyimpana yang kita inginkan lalu kemudian di simpan dalam bentuk teks

Sorucode Program utama proses Penyimpanan file


private void button1_Click(object sender, EventArgs e)
{
folderDlg.ShowNewFolderButton = true;
DialogResult result = folderDlg.ShowDialog();
if (result == DialogResult.OK)
label4.Text = folderDlg.SelectedPath;

button2.Enabled = true;

private FolderBrowserDialog folderDlg = new FolderBrowserDialog();

private void button2_Click(object sender, EventArgs e)


{
TextWriter txt = new StreamWriter(label4.Text + "/data.txt", true);
// TextWriter txt = new StreamWriter(label2.Text + "data.txt");
txt.WriteLine(textBox1.Text);
txt.Close();
label2.Text = "Saved";
textBox1.Clear();
}
Tugas
Anda telah mencoba teknik merekam data text kedalam file text. Tugas anda
adalah gunakan simulator mikrokontroler untuk mengirimkan data ke aplikasi anda
kemudian simpan paket data yang diterima ke dalam file.

Tampilan GUI

Pada desain GUI yang telah saya buat data dapat diterima dalam mode brodcase
ataupun dalam mode Request lalu kemudian selanjutnya disimpan kedalam local meori
dengan cara memilih folder yang di inginkan

Setelah memilih lokasi penyimpanan selanjutnya mengetikan nama file yang akan di
simpan pada teks box
Pada file diatas nantinya akan di simpan dengan nama 08 Data loger pada lokasi
penyimpanan “D:\Ackerman\MATERI KULIAH\Workshop Teknik Antarmuka\Laporan
Praktikum\Praktikum 8\Tempat simpan file” apabila file yang di simpan tidak di berikan
nama file maka settingan defaulnya adalah “Data.txt”

Setelah di tekan tombol simpan file maka akan muncul keterangan Saving dan
otomatis file akan ada di local memori yang kita pilih untuk menyimpan file
Tampilan file yang di simpan dalam mode Request dan tidak di berikan nama file pada
saat di simpan

Source Code Full Program


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;

namespace _07_Request
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button2.Enabled = false;
button3.Enabled = false;
button4.Enabled = false;
button5.Enabled = false;
button6.Enabled = false;
textBox1.Enabled = false;
textBox2.Enabled = false;
//toolStripStatusLabel1.Text = folderDlg.SelectedPatch;
}

private void Form1_Load(object sender, EventArgs e)


{
String[] portList = System.IO.Ports.SerialPort.GetPortNames();
foreach (String portName in portList)
comboBox1.Items.Add(portName);
comboBox1.Text = comboBox1.Items[comboBox1.Items.Count - 1].ToString();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
serialPort1.PortName = comboBox1.Text;
serialPort1.BaudRate = Int32.Parse(comboBox2.Text);
serialPort1.BaudRate = int.Parse(comboBox2.Text);
serialPort1.NewLine = "\r\n";
serialPort1.Open();
comboBox1.Enabled = false;
comboBox2.Enabled = false;
button1.Enabled = false;
toolStripStatusLabel1.Text = serialPort1.PortName + " is
connected.";
button5.Enabled= true;
button2.Enabled = true;
button3.Enabled = true;
button4.Enabled = true;
textBox1.Enabled = true;
textBox2.Enabled = true;

}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Warning");
}
}

private void button2_Click_1(object sender, EventArgs e)


{
serialPort1.Close();
comboBox1.Enabled = true;
comboBox2.Enabled = true; ;
button1.Enabled = true;
toolStripStatusLabel1.Text = serialPort1.PortName + " is Disconnected.";
button2.Enabled = false;
button3.Enabled = false;
button4.Enabled = false;
button5.Enabled = false;
button6.Enabled = false;
textBox1.Enabled = false;
textBox2.Enabled = false;

private string T, H, P,U;

private void serialPort1_DataReceived(object sender,


System.IO.Ports.SerialDataReceivedEventArgs e)
{
//Tampilkan(serialPort1.ReadExisting());

string receivedMsg = serialPort1.ReadLine();


Tampilkan(receivedMsg);
}
private delegate void TampilkanDelegate(object item);
TextWriter txt;
private void Tampilkan(object item)
{
if (InvokeRequired)
//This is a worker thread so delegate the task.
listBox1.Invoke(new TampilkanDelegate(Tampilkan), item);
else

//this is the UI thread so perform the task.


listBox1.Items.Add(item);
//listBox1.SelectedIndex = listBox1.Items.Count-1;
splitData(item);

}
private int triger=0;
private void splitData(object item)
{

String[] data = item.ToString().Split(',');


if (triger == 0)
{
suhu.Text = data[1] + " °C"; //texrbox untuk data suhu
kelembaban.Text = data[2] + " RH"; // textbox untuk data kelembaban
tekanan.Text = data[3] + " mb"; // textbox untuk data tekanan udara
UV.Text = data[4] + " UV"; // textbox untuk data uv index*/

//Conversi Data
T = Convert.ToString(data[1]);
H = Convert.ToString(data[2]);
P = Convert.ToString(data[3]);
U = Convert.ToString(data[4]);
}

else if (triger == 1)
{
suhu.Text = data[1] + " °C"; //teksbox untuk suhu
kelembaban.Text = "-"; // textbox untuk data kelembaban
tekanan.Text = "-"; // textbox untuk data tekanan udara
UV.Text = "-"; // textbox untuk data uv index*/

//Conversi Data
T = Convert.ToString(data[1]);
H = "";
P = "";
U = "";

else if (triger == 2)
{
suhu.Text = "-"; //teksbox untuk data suhu
kelembaban.Text = data[1] + " RH"; // textbox untuk data kelembaban
tekanan.Text = "-"; // textbox untuk data tekanan udara
UV.Text = "-"; // textbox untuk data uv index*/

//Conversi Data
T = "";
H = Convert.ToString(data[1]);
P = "";
U = "";
}

else if (triger == 3)
{
suhu.Text = "-"; //teksbox untuk suhu
kelembaban.Text ="-"; // textbox untuk data kelembaban
tekanan.Text = data[1]+" mb"; // textbox untuk data tekanan udara
UV.Text = "-"; // textbox untuk data uv index*/

//Conversi Data
T = "";
H = "";
P = Convert.ToString(data[1]);
U = "";
}

else if (triger == 4)
{
suhu.Text = "-"; //teksbox untuk suhu
kelembaban.Text = "-"; // textbox untuk data kelembaban
tekanan.Text = "-"; // textbox untuk data tekanan udara
UV.Text = data[1] + " UV"; // textbox untuk data uv index*/

//Conversi Data
T = "";
H = "";
P = "";
U = Convert.ToString(data[1]);
}
}

private void groupBox1_Enter(object sender, EventArgs e)


{

private void button3_Click(object sender, EventArgs e)


{
try
{
//String[] data = item.ToString().Split(',');
if (textBox1.Text == "T" || textBox1.Text == "t")
{
serialPort1.Write("T"+ "\r\n");
triger = 1;
}

if (textBox1.Text == "H" || textBox1.Text == "h")


{
serialPort1.Write("H" + "\r\n");
triger = 2;
}

if (textBox1.Text == "P" || textBox1.Text == "p")


{
serialPort1.Write("P" + "\r\n");
triger = 3;
}

if (textBox1.Text == "U" || textBox1.Text == "u")


{
serialPort1.Write("U" + "\r\n");
triger = 4;
}
if (textBox1.Text == "A" || textBox1.Text == "a")
{
serialPort1.Write("A" + "\r\n");
triger = 0;
}
listBox1.Items.Add("Request : " + textBox1.Text);
textBox1.Clear();

}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Warning");
}
}

private void label8_Click(object sender, EventArgs e)


{

private void checkBox1_CheckedChanged(object sender, EventArgs e)


{

private void groupBox11_Enter(object sender, EventArgs e)


{

private void label6_Click(object sender, EventArgs e)


{

private void label6_Click_1(object sender, EventArgs e)


{

private void label9_Click(object sender, EventArgs e)


{

private void label13_Click(object sender, EventArgs e)


{

private void textBox1_TextChanged(object sender, EventArgs e)


{

private void button4_Click(object sender, EventArgs e)


{
listBox1.Items.Clear();
suhu.Text = "-";
kelembaban.Text = "-";
tekanan.Text = "-";
UV.Text = "-";
}

private void tableLayoutPanel5_Paint(object sender, PaintEventArgs e)


{

private void label10_MouseEnter(object sender, EventArgs e)


{

private void button5_Click(object sender, EventArgs e)


{
button6.Enabled = true;
folderDlg.ShowNewFolderButton = true;
DialogResult result = folderDlg.ShowDialog();
if (result == DialogResult.OK)
{
toolStripStatusLabel1.Text = folderDlg.SelectedPath;
}
}
private FolderBrowserDialog folderDlg = new FolderBrowserDialog();

private void button6_Click(object sender, EventArgs e)


{
//TextWriter txt = new StreamWriter(toolStripStatusLabel1.Text +
"/data.txt", true);
//txt.WriteLine(listBox1.Items);
//txt.WriteLine(listBox1.Items.Add(item));
if (textBox2.Text == "")
{
txt = new StreamWriter(toolStripStatusLabel1.Text + "/data.txt",
true);
toolStripStatusLabel1.Text ="SAVING";
}
else
{
txt = new StreamWriter(toolStripStatusLabel1.Text + "/" +
textBox2.Text + ".txt", true);
}

if (T != " ")
txt.WriteLine("Temperatur : " + T + " °C");
if (H != " ")
txt.WriteLine("Kelembaban : " + H + " RH");
if (P != " ")
txt.WriteLine("Tekanan : " + P + " mb");
if (U != " ")
txt.WriteLine("UV Indeks : " + U + " UV");
txt.WriteLine("");
txt.Close();

toolStripStatusLabel1.Text = "SAVING";
}

Anda mungkin juga menyukai