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
3.1.1 Blok Diagram
Sensor Infus
Sensor Infus
Modul Arduino UNO
Modul RFTransceiver
nrf24l01
TX
Komputer Modul Arduino UNO
Modul RFTransceiver nrf24l01 RX Sensor Infus Sensor Infus Sensor Infus BLOK PEMANCAR BLOK PENERIMA
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
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
.
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
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)
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
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.
Perancangan ini digunakan untuk membuat dasar fungsi rerima serial dari arduino dengan menggunakan flowcart dibawah ini sebagai dasar algoritma .
Membaca Data
Mengolah Data Inputan
Indikator Start
Cek COM DAN CEK APAKAH ADA DATA
BARU
ADA DATA
Tidak
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
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, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting()) "Secara otomatis menerima data setiap kali data yang diterima di SerialPort
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
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); }
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 .
KONVERT MENJADI SINYAL DENGAN DATA SERIAL START APAKAH ADA SINYAL INPUT KIRIM DATA DENGAN SERIAL ADA TIDAK
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 }
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 .
KONVER MENJADI SINYAL DENGAN DATA SERIAL START APAKAH ADA SINYAL INPUT KIRIM RF ADA TIDAK
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.h> 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
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); }