Seperti yang saya janjikan sebelumnya, akan saya posting untuk membuat sendiri kontrol pompa air yang lebih handal, anti "tek-tok". Kalau sebelumnya saya coba gunakan yang sudah jadi (buatan pabrik) ternyata hanya bertahan sekira satu bulan.
Bisa jadi penyebabnya adalah pemasangannya vertikal sehingga mengganggu saklar mekanik yang ada di dalamnya, dan itu perlu dibuktikan.
Berikutnya saya coba bikin dengan memanfaatkan flow sensor + arduino uno dengan tambahan solidstate relay dan beberapa asesories lain.
Agar lebih murah, bisa juga arduino uno diganti dengan arduino pro mini.
Video diatas adalah percobaan untuk on/off beban berdasarkan flow air dalam pipa.
Alat sudah berfungsi sudah lebih dari Sebulan yang lalu.
Koneksi sensor
Untuk men drive pompa, bisa digunakan relay modul semacam ini, trigger untuk modul relay dari PIN D7 Arduino.
Di project ini, saya gunakan solidstate relay yang terdiri dari TRIAC BT138 dan MOC3012
Bagi yang mau mencoba, supaya lebih mudah gunakan arduino uno, untuk shieldnya bisa dibikin sendiri. Gambar PCB nya silahkan di download disini.
Inti dari programnya/sketch adalah seperti dibawah ini:
/************/
volatile int NbTopsFan; //measuring the rising edges of the signal
int Calc;
int hallsensor = 2; //The pin location of the sensor
#define POMPA 7
int OnOff = 0;
void rpm () //This is the function that the interupt calls
{
NbTopsFan++; //This function measures the rising and falling edge of th hall effect sensors signal
}
void setup() //
{
pinMode(hallsensor, INPUT); //initializes digital pin 2 as an input
pinMode(POMPA, OUTPUT);
Serial.begin(9600); //This is the setup function where the serial port is initialised,
attachInterrupt(0, rpm, RISING); //and the interrupt is attached
}
void loop ()
{
int treshold = 20;
if (NbTopsFan > treshold && OnOff == 0) {
OnOff = 1;
digitalWrite(POMPA, OnOff);
Serial.println("Pompa ON");
}
else if (OnOff == 1 && NbTopsFan < treshold ) {
OnOff = 0;
digitalWrite(POMPA, OnOff );
Serial.println("Pompa OFF");
}
Serial.print("Pulse: ");
Serial.println(NbTopsFan);
NbTopsFan = 0; //Set NbTops to 0 ready for calculations
sei(); //Enables interrupts
delay (1000); //Wait 1 second
cli(); //Disable interrupts
Calc = (NbTopsFan * 60 / 7.5); //(Pulse frequency x 60) / 7.5Q, = flow ratein L / hour
Serial.print (Calc, DEC); //Prints the number calculated above
Serial.print (" L/hour\r\n"); //Prints "L/hour" and returns a new line
}
/*********/
Sketch silahkan dirubah sesuai selera dan kebutuhan.
Sengaja saya tidak muat secara lengkap dengan tujuan untuk memancing agar yang akan mencoba tidak copy/paste, tapi mau belajar coding dan membiasakan diri menggunakan logika. Karena dari program diatas masih harus ditambah beberapa trik agar berjalan sempurna. Tapi tidak perlu khawatir, jika ada pertanyaan silahkan PM/inbox, pasti akan saya jawabUntuk pengembangan alat ini kedepan, saya akan pergunakan esp8266 dan telegramBot, atau WSN (arduino + nRF24L01, atau mungkin low power (& low cost) tranceiver CC1101 supaya bisa terkoneksi dengan smarHome.
Selamat mencoba.
Bandung, 27 September 2017
twitter @bambangsud
IG: @bambangsud
Beberapa posting project sebelumnya ada di wordpress.com
Jika ada pertanyaan atau yang perlu didiskusikan, silahkan PM di FB_messanger
Catatan:
Tulisan ini akan masih terus saya update berdasarkan masukan dan pertanyaan yang saya terima dari teman2.
Jadi sering2 ditengok :)
Tidak ada komentar:
Posting Komentar