Tentang proyek ini
Diagram di bawah ini menampilkan sensor ultrasound dan Arduino. Model yang dibuat hanya untuk keperluan presentasi .
Pendahuluan
Indikator level banyak digunakan di semua sektor industri. Kami juga dapat menerapkan hal yang sama untuk pekerjaan skala kecil atau keperluan rumah tangga. Kami telah membangun sensor level cairan yang membantu kami membaca data berkelanjutan. Ini memberi kita nilai berapa banyak cairan yang ditempati di dalam tangki. Sistem yang kami buat adalah sistem umpan balik yang tidak hanya memberi kami jumlah cairan yang terisi tetapi juga mengontrolnya dengan menggunakan pompa.
Konstruksi
Gambar di atas adalah diagram blok yang disederhanakan dari sistem yang saya buat. Arduino adalah mikrokontroler yang kita gunakan. Sensor ultrasound HC-SR04 terhubung ke Arduino. Sensor dipasang di bagian atas tangki. Saya telah menggunakan dua pompa submersible untuk model. Pompa submersible bersifat uni-directional, yaitu hanya dapat mengangkut cairan dari satu arah ke arah lain. Kita bisa menggunakan pompa dua arah yang bisa dioperasikan dua arah. Kedua pompa mendapatkan sinyal dari Arduino. Pompa membutuhkan 12v untuk beroperasi, oleh karena itu kita harus menggunakan driver motor juga. (Pengemudi motor tidak ditampilkan dalam diagram blok.)
Bekerja
Untuk pemahaman yang lebih mudah, kami akan membagi model menjadi beberapa bagian:
Merasakan
Sistem penginderaan memiliki sensor ultrasonik HC-SR04. Rentang ultrasonik berjalan di atas 20 kHz. Sensor ini memiliki Pemancar dan Penerima. Pemancar menghasilkan frekuensi 40 kHz; gelombang ultrasonik ini dipantulkan kembali dari permukaan cairan dan diterima oleh penerima. Sensor ini memiliki 4 pin:ground diberikan ke ground Arduino dan VCC bisa +3.3v atau 5v. Pin pemicu digunakan untuk memberikan sinyal pemicu ke pemancar. Pin echo digunakan untuk menerima echo dari ultrasound. Dari sini kami mendapatkan periode waktu USG untuk memproduksi dan menerima. Kita perlu mengubah waktu menjadi jarak. Berikut ini ditunjukkan di bawah ini:
durasi =pulseIn(echoPin, HIGH); // Menghitung jarak jarak=durasi*0.034/2;
Sistem Kontrol
Arduino menerima data dari sensor dan kemudian memberikan sinyal yang diinginkan ke pompa. Kami dapat mengatur level yang kami berikan dari kode. Jika level melewati ambang batas yang diberikan, pompa di dalam tangki diberi sinyal dan mulai memompa air keluar dari tangki sampai di bawah ambang batas. Ketika level turun di bawah ambang batas yang disebutkan, pompa di reservoir mulai memompa cairan ke tangki. Tangki dan hanya satu pompa yang akan digunakan.
Perbaikan di Masa Depan
Kami dapat meningkatkan efisiensi proyek dengan cara berikut:
- Kita dapat menggunakan pompa dua arah yang dapat ditempatkan di luar tangki, maka hanya satu pompa yang harus digunakan.
- Kami dapat menampilkan hasilnya pada OLED atau layar LCD.
- Kami juga dapat menyimpan data di cloud jika terhubung ke IOT.
- Kami dapat mengontrol level cairan dan juga memeriksa level cairan dari aplikasi jika terhubung ke IOT.
- Kami juga dapat menyediakan bel pengaman saat tangki meluap, kami juga dapat memodifikasi kode untuk menghindari tangki meluap.
Kode
- pengontrol ketinggian air
pengontrol ketinggian airArduino
int tankPump=3;int reserviorPump=2;int trigPin =9;//whiteint echoPin =10;//durasi brownlong;int jarak;void setup(){ Serial.begin(9600); pinMode (Pompa tangki, OUTPUT); pinMode(ReserviorPump,OUTPUT); pinMode(trigPin, OUTPUT); // Menetapkan trigPin sebagai OutputpinMode(echoPin, INPUT); // Menetapkan echoPin sebagai Input}void loop(){ultrasound();pump();}void ultrasound(){ digitalWrite(trigPin, LOW);delayMicroseconds(2);// Menyetel trigPin pada status HIGH untuk 10 mikrodetikdigitalWrite(trigPin, HIGH);delayMicroseconds(10);digitalWrite(trigPin, LOW);// Membaca echoPin, mengembalikan waktu tempuh gelombang suara dalam mikrodetikdurasi =pulseIn(echoPin, HIGH);// Menghitung jarakjarak=durasi* 0.034/2;// Mencetak jarak pada Serial MonitorSerial.print("Distance:");Serial.println(distance);delay(1000);}void pump(){ if (distance> 10){ digitalWrite(tankPump ,TINGGI); digitalWrite(pompa reservoir,RENDAH); } else{ digitalWrite(Pompa tangki,RENDAH); } if(jarak <6){ digitalWrite(pompa reservoir,TINGGI); digitalWrite(Pompa tangki,RENDAH); } else{ digitalWrite(pompa reservoir,RENDAH); } }
Skema