Perancangan Perangkat Lunak BAB I

Pada gambar 3.3 diatas adalah skematik koneksi flow sensor ke Arduino. Pin sinyal dari sensor dihubungkan dengan pin 2 Arduino yang dikonfigurasi sebagai input yang mana pin 2 tersebut akan memberikan cacahan naik ketika terjadi perubahan nilai . Pin sinyal dari sensor tersebut juga diberikan resistor pull-up dari Pin 5 volt Arduino sendiri. Tujuan dari pemasangan resistor pull-up ini agar data yang diterima dari sensor memiliki nilai yang valid. Nilai pulsa yang dibaca dari sensor didapat dengan menggunakan interupsi, hal ini memungkinkan pengambilan data dari sensor secara real-time sekalipun sistem sedang melakukan operasi yang lain.

3.5 Perancangan Perangkat Lunak

Perangkat lunak dibuat dengan menggunakan bahasa pemrograman Arduino. Pada sistem kerja dari prototipe yang dirancang terdapat tiga rutin yang merupakan bagian penting pada sistem. Berikut dibawah ini adalah rutin tersebut :  Rutin Menampilkan Halaman Web  Rutin Pembacaan Sensor  Rutin penulisan data ke kartu memori

3.5.1 Rutin Tampilan halaman web

Berikut pada gambar 3.4 adalah flowchart untuk menampilkan halaman web. Pada saat klien terhubung dengan sistem melalui web browser, maka sistem akan mengecek apakah ada string yang diinputkan pada address barweb browser setelah alamat IP sistem. Jika tidak ada maka klien akan diarahkan halaman web default. Selama sistem menampilkan halaman web , waktu sistem dan pembacaan Universitas Sumatera Utara debit air tetap berjalan.untuk dapat melihat halaman yang berisi data real-time dan data yang sudah tercatat, maka klien harus memasukan kata kunci tambahan pada address bar web browser. Contoh http:10.4.11.177tampil untuk mengakses halaman web yang berisi data real-time dari sistem dan http:10.4.11.177data untuk mengakses halaman web yang meyimpan informasi pencatatan sebelumnya Halaman web yang diakses dari web browser tidak dapat merefresh secara automatis. Untuk mendapakan data terbaru dari sistem pada halaman web, klien harus secara manual me-refresh halaman web yang sedang diakses. Rutin Untuk menampilkan halaman web dapat dilihat pada lampiran A. Universitas Sumatera Utara Gambar 6.4 Flowchart menampilkan Halaman Web Universitas Sumatera Utara Gambar 6.5 Flowchart Pengambilan data dari Flow Sensor

3.5.2 Rutin Pembacaan sensor

Pada Gambar 3.5 dapat dilihat alur kerja dari rutin pembacaan sensor. Rutin pembacaan sensor ini tetap berjalan sekalipun sistem sedang menampilkan halaman web. Pada rutin pembacaan ini terdapat dua buah interupsi yang digunakan yaitu interupsi eksternal pada pin 2 arduino untuk menerima data dari sensor dan interupsi timer millisuntuk memungkinkan sistem dapat mengkonversikan data dari sensor setiap satu detik berlalu. Universitas Sumatera Utara Rutin ini akan berhenti sesaat mengambil data dari sensor setelah interval waktu satu detik terpenuhi, interval satu detik ini didapat dengan menggunakan interupsi timer millis. Rutin ini berhenti untuk mengkonversikan data cacahan pulsa digital yang didapat dari sensor menjadi data debit air perdetik. Sebelum konversi data ini dapat dilakukan interupsi pada pin 2 arduino harus dimatikan. Berikut dibawah ini adalah rumus yang digunakan untuk mendapatkan debit liter air permenit : � � � = � ��−� �� × ℎ � � � 3.1 Pada rumus 3.1 milis adalah jumlah milidetik yang sudah berjalan sejak mikrokontroller dinyalakan. oldTime adalah variabel yang menyimpan waktu millis sebelumnya. Rumus 3.1 diatas mengkonversikan jumlah pulsa high yang terbaca dari sensor dari waktu millidetik yang sudah berlalu selama interupsi dijalankan. Rumus 3.1 dikerjakan saat interupsi dimatikan. � �� = � � 3.2 Setelah rumus 3.2 dijalankan maka nilai variabel oldTime disamakan dengan nilai millis untuk mendapatkan nilai waktu terakhir sejak perhitungan. � � � = � � 6 × 3.3 Universitas Sumatera Utara Pada rumus 3.3 , rumus ini mengkonversikan debit liter permenit pada rumus pertama menjadi debit mililiter air per detik untuk mendapatkan data yang bisa dijumlahkan setiap detiknya. Debit liter permenit dibagi dengan 60 untuk mendapatkan banyaknya liter air dalam satu menit lalu dikali dengan 1000 untuk mengkonversikannya ke satuan mililiter. � = � + � � 3.4 � = � + � � 3.5 Pada rumus 3.4 ini kita menjumlahkan debit perdetik sebelumnya untuk mendapatkan total akumulasi liter air yang sudah terbaca oleh sensor. Variabel volume menyimpan pemakaian air bulanan dan akan dinolkan saat terdeteksi pergantian bulan, sementara variabel total tetap akan mencatat selama sistem berjalan dan tidak akan dinolkan nilainya. Setelah proses kalkulasi data – data tersebut telah selesai makan rutin ini akan mengaktifkan kembali layanan interupsi pin 2 pada sensor. Hal ini dilakukan agar sistem dapat kembali menerima data cacahan pulsa dari sensor.

3.5.3 Rutin Penulisan data ke kartu mikro SD

Data yang telah didapat oleh sensor akan ditampilkan pada halaman web. Tetapi data ini akan hilang jika mikrokontroller kehilangan catu dayanya. Kekurangan ini dapat diatasi dengan menuliskan data hasil pembacaan ke kartu memori mikro SD. Data ditulis kedalam kartu memori dalam interval satu menit. Rutin penulisan ini hanya dilakukan dalam interval waktu yang ditentukan hal ini karenakan saat menuliskan data dalam bentuk string ke kartu memori , Universitas Sumatera Utara Gambar 6.6 Flowchart penulisan data ke kartu memori mikrokontroller memerlukan waktu dan memori yang besar. Data yang telah disimpan didalam kartu memori dapat ditampilkan kembali pada halaman web dengan memasukan alamat halamannya pada web browser. Universitas Sumatera Utara 33

7. BAB IV

PEN GUJI AN D AN AN ALI SA 4.1 Pengujian Pembacaan Water Flow Sensor Untuk memastikan bahwa sensor yang digunakan memenuhi kriteria maka sensor harus diuji dan dikalibrasi. Hal ini dilakukan untuk memastikan bahwa sistem dapat mengukur debit air dengan persen error yang cukup kecil. Sebelum sensor diuji, sensor harus dikalibrasi terlebih dahulu. Hal ini untuk memastikan apakah nilai faktor kalibrasi yang diberikan oleh website dapat menghasilkan nilai pengukuran yang cukup baik. Untuk mendapatkan nilai faktor kalibrasi yang sesuai, maka penulis menguji beberapa nilai faktor kalibrasi secara random. Sensor di uji dengan membandingkan pengukuran volume air yang dibacanya terhadap volume air yang sudah diukur sebelumnya. Hal ini dilakukan untuk mendapatkan seberapa besar persen error dari perbandingan hasil pengukuran dan volume yang sudah terukur. Kecepatan debit air rumah juga turut diuji. Hal ini ditujukan untuk memastikan bahwa sensor yang digunakan masih memenuhi kriteria untuk mengukur debit air pada perumahan. Pengujian ini dilakukan dengan membandingkan volume air yang sudah melewati meteran dengan waktu yang sudah berjalan. Dengan demikian didapatlah debit air per satuan waktu. Nilai debit air yang sudah didapat ini kemudian dibandingkan dengan kemampuan sensor. Universitas Sumatera Utara Berikut dibawah ini adalah tabel hasil pengujian pembacaan water flow sensor. Tabel 7.1 Tabel hasil pengujian flow sensor Berikut adalah tabel rata – rata debit air pada rumah penduduk : Tabel 7.2 Tabel rata – rata debit air rumah Volume air Waktu Debit air menit Debit air detik Percobaan 1 20 Liter 2 menit 4 detik 9,67 L menit 0,161 L detik Percobaan 2 20 Liter 2 menit 10 L menit 0,166 L detik Percobaan 3 20 Liter 2 menit 6 detik 9,52 L menit 0,158 L detik Percobaan 4 20 Liter 3 menit 6,66 L menit 0,111 L detik Volume terukur mL 500 1000 1500 2000 3000 Volume terbaca mL Percobaan 1 550 1168 1678 2108 3106 Percobaan 2 578 1058 1567 2156 3099 Percobaan 3 538 1150 1588 2087 3189 Percobaan 4 540 1100 1576 2178 3190 Percobaan 5 570 1156 1656 2134 3098 Rata - rata 555,2 1126,4 1613 2132,6 3136,4 Error Rata-rata 11 12 7 6 4 Universitas Sumatera Utara Dari hasil pembacaan sensor dapat dilihat bahwa semakin besar volume air yang diukur maka semakin kecil persen error data yang didapat. Hal ini dikarenakan gesekan yang terjadi pada bearing rotor sensor dan momen inersia setelah air melewati sensor . pada pengukuran volume kecil error semakin besar dikarenakan momen inersia tersebut, sedangkan pada volume yang lebih besar momen tersebut dapat dikompensasi oleh lamanya waktu yang dibutuhkan oleh air untuk sepenuhnya melewati sensor. Pada saat pengujian nilai faktor kalibrasi, penulis menguji beberapa nilai secara random, nilai faktor kalibrasi yang direkomendasikan oleh website adalah 5,5 dan 4,5. Tetapi tingkat error yang dihasilkan dari kedua nilai ini sangat besar pada saat pengujian. Setelah menguji beberapa nilai faktor kalibrasi secara random, penulis akhirnya mendapatkan nilai 8,5. Hasil pengujian flow sensor pada tabel 4.1 menggunakan nilai faktor kalibrasi yang sama. Nilai faktor kalibrasi ini didapat dengan melakukan beberapa kali pengujian nilai secara random. Hal ini dilakukan karena nilai faktor kalibrasi yang direkomendasikan oleh beberapa website memberikan tingkat error yang cukup tinggi. Pada tabel 4.2 dapat dilihat bahwa rata – rata debit air rumah penduduk masih berada didalam jangkauan pengukuran flow sensor yang digunakan. Meskipun sensor yang digunakan masih memberikan error yang cukup besar dalam penggunaanya. Universitas Sumatera Utara Pada Gambar 4.1 diatas merupakan konfigurasi pengujian flow sensor . Pengujian dilakukan dengan menggunakan volume air yang sudah terukur dan menuangkannya kedalam pipa yang terpasang flow sensor. Data yang didapat dari flow sensor dilihat melalui serial monitor , serial monitor merupakan fitur yang terdapat pada Arduino Development Environtment. Gambar 4.2 merupakan tampilan dari serial monitor. Gambar 7.1 Pengujian flow sensor Gambar 7.2 Tampilan serial monitor dari IDE arduino Universitas Sumatera Utara

4.2 Pengujian Arduino Webserver