• Tidak ada hasil yang ditemukan

Perancangan Sistem Informasi Debit Air berbasis Arduino UNO

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Sistem Informasi Debit Air berbasis Arduino UNO"

Copied!
7
0
0

Teks penuh

(1)

LAMPIRAN A

//Kode Program Sistem

//inisialisasi variabel dan library #include <SD.h>

#include <SPI.h> #include <Time.h> #include <Ethernet.h>

byte sensorInterrupt = 0; // 0 = pin 2; 1 = pin 3 byte sensorPin = 2;

// konstanta untuk faktor kalibrasi flow sensor float calibrationFactor = 8.5;

volatile byte pulseCount; int volbulan[6] ;

int temp[6];

unsigned long volume; unsigned long total; unsigned long oldmin; unsigned long oldmonth; unsigned long oldTime;

float debitmenit;

unsigned int debitdetik;

const int chipSelect = 4; File dataFile;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

byte ip[] = { 10,4,11,177 };

const int MAX_PAGE_NAME_LEN = 8; // max characters in a page name

char buffer[MAX_PAGE_NAME_LEN+1]; // page name + terminating null

EthernetServer server(80); EthernetClient client;

//inisialisasi server ,SD card, waktu dan interupsi void setup()

{

Serial.begin(9600);

Ethernet.begin(mac, ip); server.begin();

(2)

setTime(12,0,0,6,30,14);

attachInterrupt(sensorInterrupt, pulseCounter, RISING);

// make sure that the default chip select pin is set to

// output, even if you don't use it: pinMode(10, OUTPUT);

// see if the card is present and can be initialized:

if (!SD.begin(chipSelect)) {

Serial.println("Card failed, or not present");

// don't do anything more: return;

}

Serial.println("card initialized.");

}

//Fungsi Utama Sistem void loop()

{

debit(); // Rutin pembacaan data debbit air dari sensor

client = server.available(); if (client) {

while (client.connected()) { if (client.available()) {

if( client.find("GET ") ) { // look for the page name

memset(buffer,0, sizeof(buffer)); // clear the buffer

if(client.find( "/"))

if(client.readBytesUntil('/', buffer, MAX_PAGE_NAME_LEN ))

{

if(strcmp(buffer, "tampil") == 0)

showAnalog(); else

if(strcmp(buffer, "data") == 0)

(3)

else

unknownPage(buffer); } }

Serial.println(); break;

} }

client.stop(); }

}

// Rutin Halaman Data real-time sistem void showAnalog()

{

sendHeader();

client.println(F("DATA PELANGGAN ")); client.println("<br />");

client.println(F("NAMA PELANGGAN : Arif Azhari"));

client.println("<br />");

client.println(F("NOMOR PELANGGAN : 11691")); client.println("<br />");

client.println(F("ALAMAT PELANGGAN : Jl Ayahanda Gg tabib NO : 6"));

client.println("<br />");

client.print(" Jam : "); client.print(hour());

client.print(F(" Menit : ")); client.print(minute());

client.print(F(" Detik : ")); client.print(second());

client.println("<br />");

client.print(F(" Tanggal : ")); client.print(day());

client.print(F(" Bulan : ")); client.print(monthStr(month())); client.print(F(" Tahun : ")); client.print(year());

(4)

client.print(F("Pemakaian air Bulan ini (dalam m3) : "));

client.print(volume); client.println("<br />");

for (int bulan = 0; bulan < 5; bulan++) {

client.print(F("Pemakaian air ")); client.print(bulan+1);

client.print(F(" Bulan Lalu : ")); client.print(volbulan[bulan]); client.println("<br />");

}

}

//Rutin Halaman Web Data pada kartu memori void showDigital()

{

sendHeader();

File dataFile = SD.open("datalog.txt");

int i;

while(dataFile.available()) {

client.write(dataFile.read()); i++;

if(i > 40) {

i=0;

client.println("<br />");

}

}

dataFile.close();

}

//Halaman Web default

void unknownPage(char *page) {

sendHeader();

(5)

Sistem</h1>");

client.print(page);

client.println("<br />");

client.println("Halaman yang tersedia :<br />");

client.println("/Hasil Pembacaan /<br />"); client.println("/Data Pembacaan/<br />"); client.println("</body></html>");

}

void swap() {

// Tukan data bulan ini ke bulan yang sudah berlalu

for(int bulan = 5;bulan >= 1;bulan--) {

temp[bulan]=volbulan[bulan-1]; volbulan[bulan]=temp[bulan];

}

volbulan[0]=volume; volume=0;

}

void pulseCounter() {

// naikan cacahan Pulsa pulseCount++;

}

void debit() {

if((millis() - oldTime) > 1000) // rutin memproses pulsa counter dalam rentang satu detik

{

// disable interupsi untuk memulai perhitungan pulsa dan proses lainnya

detachInterrupt(sensorInterrupt);

(6)

debit dalam liter per menit

debitmenit = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;

// waktu setelah interupsi berlalu. oldTime = millis();

// konversikan kedalam mililiter

debitdetik = (debitmenit / 60) * 1000;

// jumlahkan milliliter yang telah lewat dengan yang sekarang untuk mendapatkan total volume

volume += debitdetik; total += debitdetik;

String dataString =" ";

// Reset ulang pulsa pulseCount = 0;

if(month() != oldmonth) {

swap();

oldmonth = month();

}

if(minute() != oldmin) {

oldmin = minute(); dataString += day(); dataString += " : "; dataString += month();

dataString += " : "; dataString += year(); dataString += " ";

dataString += hour(); dataString += " : "; dataString += minute(); dataString += " : "; dataString += second(); dataString += " ";

dataString += " Volume";

dataString += String(volbulan[0]);

(7)

File dataFile = SD.open("datalog.txt", FILE_WRITE);

dataFile.println(dataString); dataFile.close();

}

// nyalakan kembali interpsi attachInterrupt(sensorInterrupt, pulseCounter, RISING);

}

}

void sendHeader() {

// send a standard http response header client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html"); client.println();

client.println("<html><head><title>Web server multi-page </title>");

Referensi

Dokumen terkait

Dalam proyek akhir ini diusulkan suatu keran otomatis menggunakan solenoid valve yang dikontrol menggunakan Arduino Uno serta sensor PIR (Passive Infrared Receiver) sebagai

Hasil yang dicapai adalah meningkatkan aspek kenyamanan dan kemudahan yang umumnya digunakan pada masyarakat awam dalam monitoring penggunaan debit air setiap

Jika cairan telah menetes, maka motor servo akan memutar untuk melonggarkan dan menegangkan selang agar jumlah tetesan sesuai dengan set point dan jika cairan

Helm dengan sistem buka-tutup kaca otomatis berbasis Arduino Uno adalah sebuah helm yang dirancang untuk melindungi pengendara sepeda motor dari udara di Jakarta

Setelah dilakukan pengujian alat pintu air pengendali banjir secara otomatis dengan menggunakan sensor HC-SR04 maka alat tersebut bekerja dengan baik (berhasil) dalam

Sistem informasi pengendali menggunakan rangkaian pengkondisi sinyal dan arduino UNO sebagai bagian dari perangkat keras yang berfungsi menerima data dari sensor,

Sensor ultrasonik memberikan sinyal bahwa kondisi pada paralon membutuhkan air atau kurang dari yang dibutuhkan maka pompa air yang ada dalam akuarium akan aktif

Tabel II Pengukuran Jarak Magnet dan Switch Dalam Memberi Respon Tabel II Pengujian Keaktifan sensor PIR terhadap objek Jarak cm Respon Tegangan Keluaran Vdc Aktif dan