LAMPIRAN
Data-data lampiran sebagai pendukung dari perancangan ini diambil dari beberapa sumber yang terdapat didalam datasheet yang bersangkutan dengan perancangan aplikasi rangkaian multi-channel data logger menggunakan mikrokontroller arduino uno pada pengukuran suhu,kelembaban udara dan intensitas cahaya adalah sebagai berikut seperti dibawah ini :
I. ARDUINO UNO
Gambar board arduino uno
Arduino Uno adalah papan mikrokontroler berdasarkan ATmega328
(datasheet). Ini memiliki 14 digital input / output pin (dimana 6 dapat digunakan sebagai output PWM), 6 input analog, osilator kristal 16 MHz, koneksi aUSB, sebuah colokan listrik, header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau kekuasaan itu dengan AC-to-DCadapter atau baterai untuk memulai. Uno berbeda dari semua papan sebelumnya dalam hal itu tidak menggunakan chip driver FTDI USB-to-serial. Sebaliknya, fitur Atmega8U2 diprogram sebagai konverter USB-to-serial. "Uno" berarti satu dalam bahasa Italia dan diberi nama untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi referensi dari Arduno, bergerak maju.
Spesifikasi teknis (Technical Specifications) Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB of which 0.5 KB used by bootloader
SRAM 2 KB
EEPROM 1 KB
Clock Speed 16 MHz
Tabel spesifikasi teknis mikrokontroller arduino uno
II. SENSOR SUHU/TEMPERATURE (LM35)
Gambar dan skematik rangkaian sensor suhu (LM35)
Spesifikasi teknis (Technical Specifications) Parameter Conditions Accuracy, LM35 T A = +25°C T A = -10°C T A = T MAX T A = T MIN
Non Linearity T MINI. ≤ T A≤T MAX
Sensor gain T MINI. ≤ T A≤T MAX
Load Regulation T A = +25°C T MINI. ≤ T A≤T MAX Line Regulation T A = +25°C 4V.≤ VS±≤30V Quiescent current VS = +5°C, +25°C VS = +5°C VS = +30°C, +25°C VS = +30°C Change of quiescent current 4V.≤VS≤30V,
+25°C
4V.≤ VS≤30V Temperature coefficient of
quiescent current Minimum temperature for rated accuracy
I L = 0
Long term stability TJ-TMAX
, for 1000 hours
Tabel spesifikasi teknis sensor suhu (LM35)
III.SENSOR KELEMBABAN UDARA/HUMIDITY (DHT11)
Gambar dan skematik rangkaian sensor kelembaban udara (DHT11)
Spesifikasi teknis (Technical Specifications) Sensor s Measureme nt Range Humidit y Accurac y Temperatur e Accuracy Resolutio n Packag e DHT11 0-100%RH 0-50 ℃ ±5%RH ±2℃ 1 4 Pin Single Row
PROSES KOMUNIKASI SECARA KESELURUHAN (OVERALL COMMUNICATIONS PROCESS)
Gambar Overall Communication Process
Gambar proses MCU mengirim hasil pengolahan data sinyal awal & hasil respons DHT
Gambar proses MCU mengirim hasil pengolahan data sinyal & hasil respons” DHT (Indikasi data“0”)
Gambar proses MCU mengirim hasil pengolahan data sinyal & hasil respons” DHT (Indikasi data“1”)
IV.SENSOR INTENSITAS CAHAYA/LIGHT INTENSITY (LDR)
Gambar dan skematik rangkaian sensor intensitas cahaya (LDR)
Spesifikasi teknis (Technical Specifications) Sensors Light Resistance Dark Resistance Response Time
LDR 400 Lux 0 Lux Rising
Tabel spesifikasi teknis sensor intensitas cahaya (LDR)
Gamma karakteristik
Under 10 lux and 100 lux and given by γ = log(R10/R100) / log(100/10) = log(R10/R100)R10, R100: resistance at 10 lux and 100 lux.The tolerance of γ is ±0.1
V. BILL OF MATERIAL
Daftar harga komponen-komponen yang digunakan pada tahap
perancangan perangkat multi-channel data logger adalah sebagai berikut dibawah ini :
No. Nama Barang Harga
1 Arduino Uno rev3 Rp 420,000.00
2
Komponen-komponen rangkaian
Multi-Channel data logger Rp 1,600,000.00
3
Sensor :Suhu(LM35),kelemban udara
(DHT11) & intensitas cahaya (LDR) Rp 309,000.00
4 Lain-lain Rp 250,000.00
Total Rp 2,579,000.00
VI.PERANCANGAN SENSOR SUHU
Program list :
#include <LiquidCrystal.h>
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);
// converting that reading to voltage, for 3.3v arduino use 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); Serial.println(); delay(1000); } }
VII. PERANCANGAN SENSOR SUHU DAN KELEMBABAN
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() {
//menampilkan tulisan temperatur baris atas
//init serial
Serial.begin(9600); while (!Serial) {
} 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
//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("% "); 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 }
VIII. PERANCANGAN SENSOR SUHU, KELEMBABAN DAN INTENSITAS CAHAYA 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
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;
float lightX= Light*100;
// 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;
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 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 }
void showData (int light)//fungsi pisah string dan tampil data LDR
{
String s2;
lcd.setCursor(11,0); lcd.print(s2); }
IX. METODE PERANCANGAN PROGRAM VISUALBASIC/VBNET
'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 = ""
Dim inputData2 AsString = "" PublicEvent DataReceived As IO.Ports.SerialDataReceivedEventHandler
Dim CN As ADODB.Connection Dim RS As ADODB.Recordset
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
RS = New ADODB.Recordset 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
'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
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
' ListBox1.Items.Add(port) Next port
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
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
• Lampiran tambahan tentang teori dasar
Kelembaban spesifik
Kelembapan spesifik adalah metode untuk mengukur jumlah uap air di udara dengan rasio terhadap uap air di udara kering. Kelembapan spesifik diekspresikan dalam rasio kilogram uap air, m_w , per gram udara,
Rasio tersebut dapat ditulis sebagai berikut:
Dari Wikipedia bahasa Indonesia, ensiklopedia
bebasPerubahan tertunda ditampilkan di halaman iniBelum Diperiksa Relative humidity.jpg
Pengertian / Arti Kalibrasi
Kalibrasi menurut wikipedia adalah proses verifikasi bahwa suatu akurasi alat ukur sesuai dengan rancangannya. Kalibrasi biasa dilakukan dengan membandingkan suatu standar yang tertelusur dengan standar nasional maupun internasional dan bahan-bahan acuan tersertifikasi.
Sedangkan pengertian / arti kalibrasi ISO/IEC Guide 17025 adalah serangkaian kegiatan yang membentuk hubungan antara nilai yang ditunjukkan oleh instrumen ukur atau sistem pengukuran, atau nilai yang diwakili oleh bahan ukur, dengan nilai-nilai yang sudah diketahui yang berkaitan dari besaran yang diukur dalam kondisi tertentu. Dengan kata lain, kalibrasi adalah kegiatan untuk menentukan kebenaran konvensional nilai
penunjukkan alat ukur dan bahan ukur dengan cara membandingkan terhadap standar ukur yang mampu telusur (traceable) ke standar nasional untuk satuan ukuran dan/atau internasional.