• Tidak ada hasil yang ditemukan

BAB 3 METODE PENELITIAN. pada bab metodologi penelitian telah dipelajari tentang: mikrokontroller AVR

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 METODE PENELITIAN. pada bab metodologi penelitian telah dipelajari tentang: mikrokontroller AVR"

Copied!
26
0
0

Teks penuh

(1)

1 BAB 3

METODE PENELITIAN

3.1 Metode perancangan

Pada bagian yang merupakan bagian (bab.3), ini jika pada bab sebelumnya pada bab metodologi penelitian telah dipelajari tentang: mikrokontroller AVR khususnya ATmega328, arduino v1.0.4 yang merupakan program yang digunakan pada penelitian ini, prinsip kerja sensor: suhu, intensitas cahaya dan konsep perancangan untuk menggabungkan beberapa rangkaian sensor dengan sistem rangkaian “Multi-channel Data Logger” maka pada bab ini akan dilakukan proses aplikasi yang langsung pada pembuatan aplikasinya perancangan rangkaiannya yang dijelaskan melalui diagram alir (Flowchart) yang dibuat sesuai dengan cara kerja rangkaiannya dan penelitian terhadap hasil akhirnya yang sudah melalui kajian ulang pada proses pengujian akhir sistem yang telah di verifikasi hasil pengujian sistemnya seperti pada penjelasan dibawah ini :

3.1.1 Perancangan sensor suhu

Pada tahap ini dimulai dengan perancangan sensor suhu (LM35), dengan melakukan penulisan program list yang ditulis seperti dibawah ini :

Program list :

#include <LiquidCrystal.h>

(2)

2

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);//pin yang digunakan lcd

int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to

//the resolution is 10 mV / degree centigrade with a //500 mV offset to allow for negative temperatures

void setup() { lcd.begin(16, 2); lcd.setCursor(0,1); lcd.write("TEMP: "); lcd.setCursor(13,1); lcd.write("C"); Serial.begin(9600); while (!Serial) {

; // wait for serial port to connect. Needed for Leonardo only

} }

void loop() {

//getting the voltage reading from the temperature sensor int reading = analogRead(sensorPin);

(3)

3 float voltage = reading * 5.0;

voltage /= 1024.0;

// now print out the temperature

float temperatureC = voltage* 100 ; //converting from 10 mv per degree wit 500 mV offset

//to degrees ((volatge - 500mV) times 100) // now convert to Fahrenheight

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;

if(temperatureC >30.0) { lcd.setCursor(0,0); lcd.print("Bahaya"); lcd.setCursor(7,1); lcd.print((int)temperatureC); } else { lcd.setCursor(0,0); lcd.print("Normal"); lcd.setCursor(7,1); lcd.print((int)temperatureC); Serial.print("temp:"); Serial.print(temperatureC);

(4)

4

Serial.println(); delay(1000); }

}

Dari hasil penulisan program seperti diatas maka akan hasil keluaran pada

LCD adalah sebagai berikut seperti pada gambar (3.1 dan 3.2) dibawah ini:

Gambar 3.1 Hasil pengukuran suhu pada LCD

(5)

5 Dari gambar (3.1 dan 3.2) menyatakan proses koding pada pengukuran suhu telah berhasil dilakukan, dengan keluaran (Output) pada LCD dan Serial monitor.

3.1.2 Perancangan sensor suhu dan kelembaban

Pada tahap ini dimulai dengan perancangan sensor suhu (LM35) dan kelembaban (DHT11) dengan melakukan penulisan program list yang ditulis seperti dibawah ini :

Program list :

#include <DHT11.h> #include <LiquidCrystal.h> #include <math.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);//pin yang digunakan lcd

int sensorPin = 0; //Analog PIN0 (sensor LM35) //resolusi 10 mV / derajat celcius

//500 mV offset untuk temperatur dibawah minus

int pin=3;//pin DHT11 output DHT11 dht11(pin);

void setup() {

(6)

6

//init serial

Serial.begin(9600); while (!Serial) {

; // wait for serial port to connect. Needed for Leonardo only } lcd.begin(16, 2); } void loop() { //variable unutk DHT11 int err;

float temp, humi;

//variable untuk LM35

int reading = analogRead(sensorPin);

// converting that reading to voltage, for 3.3v arduino use 3.3 float voltage = reading * 5.0;

voltage /= 1024.0;

// mulai mengkonversi temperatur

float temperatureC = voltage* 100 ; //konversi dari 10 mv per derajar dengan 500 mV offset

(7)

7 //menjadi derajat ((votage - 500mV) times 100)

float temperature = (temperatureC * 9.0 / 5.0) + 32.0; if((err=dht11.read(humi, temp))==0)

{

//ambil data dari LM35 lcd.setCursor(0,0); lcd.print("Temp:"); lcd.setCursor(6,0); lcd.print((int)temperatureC); lcd.print("^C"); Serial.print("Temperature:"); Serial.print((int)temperatureC); Serial.print("^C ");

//ambil data dari DHT11 //Serial.print("temp:"); // Serial.print(temp); Serial.print("Humidity:"); Serial.print((int)humi); Serial.print("% ");

(8)

8 lcd.setCursor(0,1); lcd.print("Humi:"); lcd.setCursor(6,1); lcd.print((int)humi); lcd.print("%");

/* aktifkan komentar dibawah ini untuk membaca perbandingan lcd.setCursor(11,1); lcd.print(temp); */ } else { Serial.println(); Serial.print("Error No :"); Serial.print(err); Serial.println(); }

delay(DHT11_RETRY_DELAY); //delay for reread }

Dari hasil penulisan program seperti diatas maka akan hasil keluaran pada

(9)

9 Gambar 3.3 Hasil pengukuran suhu dan kelembaban pada LCD

Gambar 3.4 Hasil pengukuran suhu dan kelembaban udara pada serial monitor

Dari gambar (3.3 dan 3.4), menyatakan proses koding pada pengukuran suhu dan kelembaban telah berhasil dilakukan, dengan keluaran (Output) pada LCD dan Serial monitor.

(10)

10

3.1.3 Perancangan sensor suhu, kelembaban dan intensitas cahaya

Pada tahap ini dimulai dengan perancangan sensor suhu (LM35), kelembaban udara (DHT11) dan sensor intensitas cahaya (LDR)dengan melakukan penulisan program list yang ditulis seperti dibawah ini :

Program list : #include <SoftwareSerial.h> #include <DHT11.h> #include <LiquidCrystal.h> #include <math.h> LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

int tempPin = A0; //Analog PIN0 (sensor LM35) //resolusi 10 mV / derajat celcius

//500 mV offset untuk temperatur dibawah minus

float lightPin = A1;

int pin=3;//pin DHT11 output DHT11 dht11(pin);

void setup() {

//menampilkan tulisan temperatur baris atas

(11)

11 Serial.begin(9600);

while (!Serial) {

; // wait for serial port to connect. Needed for Leonardo only } lcd.begin(16, 2); } void loop() { //variable unutk DHT11 int err;

float temp, humi, light;

//variable untuk LM35

int reading = analogRead(A1); int baca = analogRead(A0);

// converting that reading to voltage, for 3.3v arduino use 3.3 float voltage = baca * 6.0;

voltage /= 1024.0;

float Light=reading*5.0; Light/=1024.0;

(12)

12

// mulai mengkonversi temperatur

float temperatureC = voltage* 100 ; //konversi dari 10 mv per derajat dengan 500 mV offset

//menjadi derajat ((votage - 500mV) times 100) float temperature = (temperatureC * 9.0 / 5.0) + 32.0;

if((err=dht11.read(humi, temp))==0) {

//ambil data dari LM35 lcd.setCursor(0,0); lcd.print("Temp:"); lcd.setCursor(6,0); lcd.print((int)temperatureC); lcd.print(" "); Serial.print("temp:"); Serial.print((int)temperatureC); Serial.print("^C "); lcd.setCursor(10,0); lcd.print("Light:"); //ambil data dari LDR;

(13)

13 lcd.setCursor(10,1);//pastikan posisi kursor diatur disini... kolom ke 10 baris pertama

lcd.print((int)lightX); lcd.print(" "); //kirim ke serial Serial.print("Light:"); Serial.print((int)lightX); Serial.print("Lux ");

//ambil data dari DHT11 //Serial.print("temp:"); // Serial.print(temp); Serial.print("hum:"); Serial.print((int)humi); Serial.print("% "); lcd.setCursor(0,1); lcd.print("Hum :"); lcd.setCursor(6,1); lcd.print((int)humi); lcd.print(" ");

/* aktifkan komentar dibawah ini untuk membaca perbandingan

(14)

14 lcd.print(temp); */ } else { Serial.println(); Serial.print("Error No :"); Serial.print(err); Serial.println(); }

delay(DHT11_RETRY_DELAY); //delay for reread }

void showData (int light)//fungsi pisah string dan tampil data LDR

{

String s2;

s2 = String (light) + "Lux"; lcd.setCursor(11,0); lcd.print(s2); }

Dari hasil penulisan program seperti diatas maka akan hasil keluaran pada

(15)

15 Gambar 3.5 Hasil pengukuran suhu,kelembaban dan intensitas

cahaya pada LCD

Gambar 3.6 Hasil pengukuran suhu,kelembaban dan intensitas cahaya pada serial monitor

Dari gambar (3.5 dan 3.6), menyatakan proses koding pada pengukuran suhu, kelembaban dan intensitas cahaya telah berhasil dilakukan, dengan keluaran (Output) pada LCD dan Serial monitor. Maka metode penelitian dan perancangan

(16)

16

telah berhasil membuat rangkaian dengan konsep “Multi-channel Data Logger”, dimana sensor-sensor telah digabungkan menggunakan rangkaian arduino uno yang berbasiskan pada mikrokontroller ATmega328. Berikut ini merupakan gambar stuktur rancangan rangkaian multichannel data logger melalui penjelasan menggunakan skematik rangkaian (gambar 3.6) diagram alir /Flowchart gambar (gambar 3.7) adalah sebagai berikut:

Skematik rangkaian

Gambar 3.7 Skematik rangkaian pengukuran suhu,kelembaban udara dan intensitas cahaya menggunakan rangkaian arduino uno

(17)

17 Flow chart Program arduino

Yes

No

Gambar 3.8 Diagram alir (flowchart) struktur hasil pengukuran suhu, kelembaban dan intensitas cahaya untuk output pada LCD&Serial to PC

Start

end Init header file library Init LCD(), Init Serial()

Get data Voltage. A0 pin( lm35 out) Temp = ( voltage * 6.0 ) / 1024 Cahaya= (Light * 5)/1024 Panggil Fungsi DHT 11 (pin3) Jika HUMI= 0 Dan Temp = 0 Kirim Serial “Error”

Kirim Serial data Temp: dataTemp()

Kirim Serial data Light: dataLight()

Kirim Serial data Light: dataHumi()

(18)

18

3.2 Metode perancangan program VisualBasic/vbnet

Setelah berhasil merancang perangkat aplikasi multichannel data logger pada pengukuran suhu,kelembaban udara dan intensitas cahaya telah dengan keluaran (Output) pada LCD 16x2 dan serial monitor pada aplikasi program arduino uno v.1.0.4 maka pada tahapan selanjutnya perancang system akan melakukan penyempurnaan hasil, dimana dibuata rancangan program khusus untuk tampilan keluaran(Outputn)nya, yang menggunakan aplikasi dari program

VisualBasic2010/vbnet2010, dengan menuliskan pada layar (form.1) seperti

penjelasan melalui program list adalah sebagai berikut dibawah ini :

'programmer : Antonius Nur ' vb net 2010 Imports System Imports System.Drawing Imports System.Windows.Forms Imports System.Data Imports System.Data.OleDb Imports ADODB Imports System.Windows.Forms.DataVisualization.Charting

PublicClass Form1

' Dim SerialPort1 As New System.IO.Ports.SerialPort() Dim inputData AsString = ""

(19)

19

PublicEvent DataReceived As

IO.Ports.SerialDataReceivedEventHandler

Dim CN As ADODB.Connection Dim RS As ADODB.Recordset

Dim Series1 AsNew Series Dim Series2 AsNew Series

' Terima data dari Port Serial

PrivateSub SerialPort1_DataReceived(ByVal sender As

System.Object, _

ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles

SerialPort1.DataReceived

inputData = SerialPort1.ReadExisting 'atau mengunakan perintah SerialPort1.ReadLine

Me.Invoke(New EventHandler(AddressOf DoUpdate))

EndSub

PublicSub DoUpdate()

'Ambil data dari variabel inputdata

OnErrorGoTo ErrHan

(20)

20

Dim temp() AsString Dim hum() AsString Dim Light() AsString Dim data() AsString Dim maxi AsString

Dim nilai() AsString Dim suhuX(5) AsString Dim suhuY(5) AsString

' Dim temp As String ' Dim hum As String ' Dim data As String

maxi = TextBox5.Text

data = inputData.Split(" ") temp = data(0).Split(":") hum = data(1).Split(":")

' RS.Open("select * from tbldata ", CN, 3, 3) ' Me.Text = temp(1).ToString.Trim.Length ' If temp(1).ToString.Trim.Length > 0 And hum.ToString.Trim.Length > 0 Then

(21)

21 'RS.AddNew() 'RS.Fields("temp").Value = temp(1) 'RS.Fields("hum").Value = hum 'RS.Update() 'End If

TextBox1.Text = inputData & TextBox1.Text TextBox2.Text = temp(1) TextBox3.Text = hum(1) nilai = TextBox2.Text.Split(".") ProgressBar1.Value = nilai(0) '... If ProgressBar1.Value < 30 Then Shape.BackColor = Color.Lime Else Shape.BackColor = Color.Red EndIf '... errhan: Exit Sub EndSub

(22)

22

PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e

As System.EventArgs) HandlesMyBase.Load CN = New ADODB.Connection

CN.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\db.mdb;")

CN.CursorLocation = CursorLocationEnum.adUseClient CN.Open()

Dim ports() AsString Dim port AsString

SerialPort1.BaudRate = 9600 'setting baudrate

SerialPort1.Parity = IO.Ports.Parity.None SerialPort1.DataBits = 8

SerialPort1.StopBits = IO.Ports.StopBits.One SerialPort1.Handshake = IO.Ports.Handshake.None SerialPort1.RtsEnable = True

'mendeteksi Nomor Port dan ditampilkan di Combox

ports = System.IO.Ports.SerialPort.GetPortNames ComboBox1.Text = ports(0)

'ListBox1.Text = ports(0) ForEach port In ports

ComboBox1.Items.Add(port) ' tampilkan port yang terbaca ' ListBox1.Items.Add(port)

(23)

23 SerialPort1.PortName() = ComboBox1.Text

EndSub

PrivateSub ComboBox1_SelectedIndexChanged(ByVal sender As

System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

'Pilih nomor Com Port sesuai di combobox

SerialPort1.PortName() = ComboBox1.Text

EndSub

PrivateSub Form1_FormClosed(ByVal sender As System.Object, _

ByVal e As System.Windows.Forms.FormClosedEventArgs) _

HandlesMyBase.FormClosed

' tutup port serial

SerialPort1.Close()

EndSub

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e

As System.EventArgs) Handles Button1.Click If SerialPort1.IsOpen = FalseThen Button1.Text = "CLOSE"

Button1.BackColor = SystemColors.Control ComboBox1.Enabled = False

(24)

24

SerialPort1.Open() ' buka Port Else

Button1.Text = "OPEN" ComboBox1.Enabled = True Button1.BackColor = Color.Red SerialPort1.Close() 'tutup port

EndIf

EndSub

PrivateSub Button4_Click(ByVal sender As System.Object, ByVal e

As System.EventArgs) Handles Button4.Click End

EndSub

EndClass

(25)

25 Seperti pada (gambar 3.9) diatas tampilan keluaran (Output) merupakan hasil rancangan untuk tampilan program untuk menampilkan hasil pengolahan data dari rangkaian multichannel data logger pada pengukuran suhu, kelembaban udara dan intensitas cahaya. Jika rangkaian dihubungkan dengan kabel serial USB maka pada bagian COM port akan diisi oleh port yang digunakan pada aplikasi program arduino uno dan untuk memulai mencetak hasil klik bagian token open maka program akan memproses keluaran (Output) yang merupakan hasil keluaran dari rangkaian sensor suhu, kelembaban dan intensitas cahaya.

Gambar 3.10 Tampilan program VisualBasic2010/vbnet2010

Seperti pada (gambar 3.10) diatas tampilan keluaran (Output) yang merupakan hasil rancangan untuk tampilan program untuk menampilkan hasil pengolahan data dari rangkaian multichannel data logger pada pengukuran suhu, kelembaban udara dan intensitas cahaya.

Jika rangkaian dihubungkan dengan kabel serial USB maka pada bagian COM port akan diisi oleh port yang digunakan diamana port yang digunakan

(26)

26

yaitu port (COM4) pada aplikasi program arduino uno dan untuk memulai mencetak hasil klik bagian token open maka program akan memproses keluaran(Output)yang merupakan hasil keluaran dari rangkaian sensor suhu,kelembaban dan intensitas cahaya. Seperti pada (gambar 3.2c) dibawah ini:

Flow chart Program VB NET

No

Yes

Gambar 3.11 Diagram alir/Flowchart frogram VBnet Start end Init Serial_IO() BaudRate = 9600, SetPort data=SerialPort. DataReceived

Pisah String “ : “ dari Nilai data(x) Split function()

Tempdata(0) salin ke variable Temp Humdata(1) salin ke variable Hum cahayadata(2) salin ke variable Cahaya

Kirim Serial data Temp: dataTemp()

Kirim Serial data Light: dataLight()

Kirim Serial data Humi: dataHumi()

TextBox1Temp(0) salin ke variable TextBox1 TextBox2Hum(1) salin ke variable TextBox2 TextBox3Cahaya(2)salin kevariableTextBox3

Try Open Port Number Open

Gambar

Gambar 3.1 Hasil pengukuran suhu pada LCD
Gambar 3.4 Hasil pengukuran suhu dan kelembaban udara pada serial monitor
Gambar 3.6 Hasil pengukuran suhu,kelembaban dan intensitas  cahaya pada serial monitor
Gambar 3.7 Skematik rangkaian pengukuran suhu,kelembaban udara dan intensitas  cahaya menggunakan rangkaian arduino uno
+5

Referensi

Dokumen terkait

7 Juni lalu perwakilan IMWU NL group Rotterdam menghadiri RIO bersama teman-teman dari organisasi lain membahas mengenai psikologi undocumented berdasarkan kasus

Apabila diklasifikasikan kembali berdasarkan ukuran kelompok, tipe kelompok yang lebih banyak terekam di hutan sekunder (kelompok jantan, kelompok betina, dan kelompok remaja)

Puji syukur penulis kehadirat Allah S.W.T yang telah melimpahkan rahmat, karunia serta nikmatnya yang tak pernah putus sehingga penulis dapat menyelesaikan

Pada saat Undang-Undang ini mulai berlaku, ketentuan Pasal 53 sampai dengan Pasal 62 dari Bab VII mengenai pemeriksaan di sidang pengadilan yang diatur dalam

BAB III, BAB III adalah bab yang berisi tentang metode penelitian dimana peneliti menggunakan beberapa bagian penting seperti lokasi penelitian yang akan dilakukan penulis

[r]

Apabila pihak regulator di suatu negara anggota telah dapat menentukan adanya bahaya dari produk pangan dan menunjukkan resiko terhadap kesehatan dan kehidupan

Pada bab-bab sebelumnya telah dikemukakan tentang temuan-temuan penelitian dan hasil pengujian hipotesis melalui analisis statistik. Dalam bab ini akan