BAB III Perancangan Indikator Dan Monitoring Infus Berbasis Nirkabel 3.1 Perencanaan Perangkat Keras Dalam pembuatan monitoring infus ini diperlukan hardware dan software,hardware merupakan perangkat keras dan software merupakan perangkat lunak ,hardware berupa alat dan bahan serta software merupakan didalamnya algoritma dan bahasa pemrograman ,untuk pembuatan monitoring infus ini menggunakan bahasa java arduino untuk program modul arduino dan vb.net digunakan pada sisi pemrograman untuk komputer ,berikut alat dan bahan yang dibutuhkan antara lain : 1.Laptop atau komputer 2.Modul arduino 3.Catu daya 5 volt 4.Multimeter digital 5.Solder 6.Modul rf transceiver 7.timah 8.jumper,dll
24
3.1.1 Blok Diagram
Sensor Infus BLOK PEMANCAR
Sensor Infus
Sensor Infus Modul Arduino UNO Sensor Infus
Modul RFTransceiver nrf24l01
TX
Modul RFTransceiver nrf24l01
RX
Sensor Infus
BLOK PENERIMA
Komputer
Modul Arduino UNO
Gambar 3.1 Blok diagram monitoring infus secara nirkabel Dari gambar ada beberapa hubungan antar bagian dalam sistem monitoring infus ini .pada gambar modul arduino uno bisa disebut bagian sentral (pengendali utama) karena pada blok ini sebagai pengubah inputan modul rf ke data serial pada sisi penerima dan pada mengirim berfungsi inputan dari sensor di transmisikan melalui modul rf menuju ke bagian penerima, pada bagian pemancar terdapat sensor pendeteksi infus ,sensor ini berfungsi sebagai pendeteksi ada tidaknya cairan dalam infus,sedangkan bagian modul transceiver rf pada sisi pemancar berfungsi mentransmisikan data yang diterima pada sensor untuk dikirim menuju bagian penerima melalui wireless, pada bagian penerima selain terdapat arduino yang sebagai penghubung antara modul rf ke komputer/laptop
25
terdapat modul rf transceiver yang berfungsi sebagai penerima data dari bagian pemancar,
pada
bagian
komputer
terdapat
program
monitoring
infus
menggunakan vb.net dalam pembuatan programnya, dimana program ini dibuat agar pengguna dapat memantau infus pasien masing kamar secara efisien dan mudah untuk diamati. 3.1.2 Arduino Uno R3 Pada rancangan monitoring infus ini arduino berperan sangat penting diantaranya pada sisi pemancar berfungsi sebagai pengolah data dari inputan dan ditransmisikan oleh modul rf ,dan pada sisi penerima berfungsi sebagai pengolah data dari modul rf dan dibubah menjadi bentuk data serial lalu dikirim ke computer untuk diproses lebih lanjut .
Gambar 3.2 Arduino Uno
26
Masing-masing dari 14 pin digital Uno dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Mereka beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki resistor pull-up internal (terputus secara default) dari 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi spesial:
Serial: pin 0 (RX) dan 1 (TX) Digunakan untuk menerima (RX) dan
mengirimkan (TX) data serial TTL. Pin ini terhubung dengan pin ATmega8U2 USB-to-Serial TTL.
Eksternal Interupsi: Pin 2 dan 3 dapat dikonfigurasi untuk memicu
interrupt pada nilai yang rendah (low value), rising atau falling edge, atau perubahan nilai. Lihat fungsi attachInterrupt() untuk rinciannya.
PWM: Pin 3, 5, 6, 9, 10, dan 11 Menyediakan 8-bit PWM dengan fungsi
analogWrite()
SPI: pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) mendukung
komunikasi SPI dengan menggunakan perpustakaan SPI
LED: pin 13. Built-in LED terhubung ke pin digital 13. LED akan
menyala ketika diberi nilai HIGH
3.1.3 Modul Transceiver Pengirim dan Penerima
27
Modul Ini adalah serangkaian 2,4 GHz modul radio yang semua didasarkan pada chip Nordic Semiconductor nRF24L01 +. Nordic nRF24L01 + mengintegrasikan transceiver lengkap 2.4GHz RF, RF synthesizer, dan baseband logika termasuk Enhanced ShockBurst accelerator protokol hardware mendukung kecepatan tinggi antarmuka SPI untuk kontroler aplikasi. The-daya rendah jarak pendek (200 kaki atau lebih
Gambar 3.3 Modul nrf24l01
Gambar 3.4 PCB nrf24l01 konfigurasi pin dan spesifikasi dapat dilihat disini
On-board 3.3V LDO Regulator (3.3 pasokan 7V diperbolehkan)
On-board Antenna 2.4GHz keramik
28
100m Rentang di 250kbps 250kbps ke 2Mbit Data Rate Auto Re-Transmit Multiceiver - 6 Pipa data 32 Byte terpisah TX dan RX FIFOs 5V input pin toleran Software channel dipilih dari 2400MHz ke 2525MHz (125 saluran dipilih) Minimal jumlah komponen eksternal Pins: VCC, CE, CSN, SCK, mosi, miso, IRQ, GND
3.1.4 Catu Daya Catu daya berasal dari adaptor,catu daya yang dibutuhkan untuk arduino pada sisi pengirim adalah 5V DC . Daya 5V digunakan untuk mensuplai mikrokontroler arduino dan modul transceiver nRF24L01 mendapat daya 3.3 volt yang berasal dari pin arduino .Pada sisi penerima catuan modul arduino berasal dari 5 volt usb yang terdapat pada laptop atau komputer. 3.1.5 Sensor Infus Menggunakan Pegas Rangkaian sensor ini dapat diliahat pada gambar dibawah ini, dimana cara kerjanya adalah menggunakan sifat dari pegas yaitu renggang dan meyempit,jika air infus masih ada maka per akan renggang dan sensor menyentuh bagian sensor bagian bawah sehingga memberikan sinyal 0 V kepada arduino, jika cairan infus sedikit maka berat infus akan berkurang dan pegas akan menyempit menuju
29
bentuk semula maka sensor bagian atas akan memberikan sinyal 5V kepada arduino yang berarti cairan infus habis.
Gambar 3.5 Skematik Rangkaian Sensor Infus 3.2 Perancangan Perangkat Lunak Pada pembuatan perangkat lunak monitoring infus ini pada bagian komputer menggunakan bahasa pemrograman vb.net dan pada arduino menggunakan bahasa pemrograman java. 1.2.1 Perancangan Perangkat Lunak Monitoring Infus Menggunakan vb.net Pembuatan software monitoring infus ini pada komputer menggunakan vb.net dengan menggunakan visual studio.
1.2.1.1
Terima Data Serial
30
Perancangan ini digunakan untuk membuat dasar fungsi rerima serial dari arduino dengan menggunakan flowcart dibawah ini sebagai dasar algoritma .
Start
Tidak
Cek COM DAN CEK APAKAH ADA DATA BARU
ADA DATA
Membaca Data
Mengolah Data Inputan
Indikator
Gambar 3.6 Flowcart Terima data serial berikut kode terima data serial: ///////////////////////////////////////////////////// „impor librari yang digunakan Imports System Imports System.ComponentModel Imports System.Threading Imports System.IO.Ports Public Class Form1 Dim myPort As Array 'COM Port terdeteksi pada sistem akan disimpan di sini Delegate Sub SetTextCallback(ByVal [text] As String) „Ditambahkan untuk mencegah kesalahan threading selama menerima data
31
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SerialPort1.PortName = "COM14" 'Set Serial Port 1 ke port COM yang dipilih pada saat startup SerialPort1.BaudRate = "9600"
'Set Baud rate ke nilai yang dipilih
'Pengaturan lainnya Serial Port Property SerialPort1.Parity = IO.Ports.Parity.None SerialPort1.StopBits = IO.Ports.StopBits.One SerialPort1.DataBits = 8
„ membuka serial properti
SerialPort1.Open() End Sub Private Sub SerialPort1_DataReceived(ByVal sender As Object, System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived ReceivedText(SerialPort1.ReadExisting()) diterima di SerialPort
ByVal
e
As
"Secara otomatis menerima data setiap kali data yang
End Sub
1.2.1.2
Pengolahan Data Inputan Serial Perancangan ini digunakan untuk membuat dasar fungsi pengolahan data
dari arduino ,berikut kode pengolahan data yang terima data serial. ///////////////////////////////////////////////////////////////////////////// Private Sub ReceivedText(ByVal [text] As String) 'membandingkan antar data yang diterima dan ketetapan jika sama maka akan dieksekusi
If String.Compare(text.Substring(0, 1), "b") = 0 Then „jika data yang diterima sama dengan b maka warna akan di ganti hjau 'TextBox1.BackColor = Color.Green‟tampak warna hijau b1.BackColor = Color. Green ‟tampak warna hijau ElseIf String.Compare(text.Substring(0, 1), "a") = 0 Then 'TextBox1.BackColor = Color.Red ‟tampak warna merah b1.BackColor = Color.Red ‟tampak warna merah
1.2.2
Perancangan Perangkat Lunak Arduino
32
Pembuatan software monitoring infus ini pada komputer menggunakan bahasa pemrograman java dan menggunakan software developer arduino untuk membuat program. 3.2.2.1 Pengolahan Sinyal Keluaran Sensor Perancangan ini digunakan untuk membuat dasar fungsi pengolahan dari inputan sensor pada arduino ,berikut kode pengolahan sinyal keluaran sensor. /////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { int sensorValue1 = digitalRead(2); // jika nilai sensorValue1 HIGH maka kirimkan data “a” if (sensorValue1==HIGH){ //Serial.println("a"); transmitter.txPL(message); transmitter.send(SLOW); message="a"; delay(100); } // jika nilai sensorValue1 LOW maka kirimkan data “b” if (sensorValue1==LOW){ //Serial.println("b"); transmitter.txPL(message); transmitter.send(SLOW); message="b"; delay(100); }
3.2.2.2 pengirimanan data melalui serial
33
Perancangan ini digunakan untuk membuat fungsi pengiriman data hasil olahan sinyal sensor dan pada arduino diteruskan menjadi data serial, agar dapat berkomunikasi dengan Komputer, dengan menggunakan flowcart dibawah ini sebagai dasar algoritma .
START
TIDAK
APAKAH ADA SINYAL INPUT
ADA KONVERT MENJADI SINYAL DENGAN DATA SERIAL
KIRIM DATA DENGAN SERIAL
Gambar 3.7 Pengirimanan Data Melalui Serial berikut kode pengiriman data melalui serial:
///////////////////////////////////////////////////////////////////////////////////// void setup() { Serial.begin(9600); pinMode(2, INPUT);//set pin 2 sebagai input pinMode(3, INPUT); //set pin 3 sebagai input pinMode(4, INPUT); //set pin 4 sebagai input pinMode(5, INPUT); //set pin 5 sebagai input pinMode(6, INPUT); //set pin 6 sebagai input pinMode(7, INPUT); //set pin 7 sebagai input }
34
void loop() { int sensorValue1 = digitalRead(2); // baca nilai pin 2 int sensorValue2 = digitalRead(3); // baca nilai pin 3 int sensorValue3 = digitalRead(4); // baca nilai pin 4 int sensorValue4 = digitalRead(5); // baca nilai pin 5 int sensorValue5 = digitalRead(6); // baca nilai pin 6 int sensorValue6 = digitalRead(7); // baca nilai pin 7 ///////////1 // jika nilai sensorValue1 HIGH maka tampilkan “a” if (sensorValue1==HIGH){ Serial.println("a"); delay(500); } // jika nilai sensorValue1 HIGH maka tampilkan “b” if (sensorValue1==LOW){ Serial.println("b"); delay(500); }
3.2.2.3 Pengolahan Inputan Dan Pengiriman Data Serial Melalui RF Perancangan ini digunakan untuk membuat dasar fungsi penggabungan kode-kode sebelumnya kode ini digunakan pada pemancar pada arduino, dengan menggunakan flowcart dibawah ini sebagai dasar algoritma .
35
START
TIDAK
APAKAH ADA SINYAL INPUT
ADA KONVER MENJADI SINYAL DENGAN DATA SERIAL
KIRIM RF
Gambar 3.8 Pengolahan Inputan Dan Pengiriman Data Serial Melalui RF berikut kode pengolahan inputan dan pengiriman data serial melalui RF. ////////////////////////////////////////////////////////////////////////////////////////////// #include <SPI.h> #include
nRF24L01p transmitter(7,8);//CSN,CE void setup() { delay(150); //Serial.begin(115200); SPI.begin(); SPI.setBitOrder(MSBFIRST); transmitter.channel(90); transmitter.TXaddress("Artur"); transmitter.init(); pinMode(2, INPUT);
//set pin 2 sebagai input
pinMode(3, INPUT);
//set pin 3 sebagai input
pinMode(4, INPUT);
//set pin 4 sebagai input
pinMode(5, INPUT);
//set pin 5 sebagai input
36
pinMode(6, INPUT);
//set pin 6 sebagai input
} String message; void loop() { int sensorValue1 = digitalRead(2);
// baca nilai pin 2
int sensorValue2 = digitalRead(3); // baca nilai pin 3 int sensorValue3 = digitalRead(4); // baca nilai pin 4 int sensorValue4 = digitalRead(5); // baca nilai pin 5 int sensorValue5 = digitalRead(6); // baca nilai pin 6 ///////////1 // jika nilai sensorValue1 HIGH maka kirimkan data “a” if (sensorValue1==HIGH){ //Serial.println("a"); transmitter.txPL(message); transmitter.send(SLOW); message="a"; delay(100); } // jika nilai sensorValue1 LOW maka kirimkan data “b” if (sensorValue1==LOW){ //Serial.println("b"); transmitter.txPL(message); transmitter.send(SLOW); message="b"; delay(100); }