Indikator Ketinggian Air Nirkabel Ultrasonik - Tenaga Surya

Coba Instrumen Kami Untuk Menghilangkan Masalah





Pengontrol ketinggian air ultrasonik adalah perangkat yang dapat mendeteksi ketinggian air dalam tangki tanpa kontak fisik dan mengirim data ke indikator LED jauh dalam mode GSM nirkabel.

Dalam posting ini kita akan membangun indikator ketinggian air nirkabel bertenaga surya berbasis ultrasonik menggunakan Arduino di mana Arduino akan mentransmisikan dan menerima pada frekuensi nirkabel 2,4 GHz. Kami akan mendeteksi ketinggian air di tangki menggunakan ultrasonik, bukan metode elektroda tradisional.



Gambaran

Indikator ketinggian air adalah gadget yang harus dimiliki, jika Anda memiliki rumah atau bahkan tinggal di rumah kontrakan. SEBUAH indikator ketinggian air menunjukkan satu data penting untuk rumah Anda yang sama pentingnya dengan pembacaan meter energi Anda, yaitu, berapa banyak air yang tersisa? Sehingga kami dapat melacak konsumsi air dan kami tidak perlu naik ke atas untuk mengakses tangki air untuk memeriksa berapa banyak air yang tersisa dan tidak ada lagi air yang berhenti tiba-tiba dari keran.

Kita hidup di tahun 2018 (pada saat penulisan artikel ini) atau nanti, kita dapat berkomunikasi ke mana saja di dunia secara instan, kita meluncurkan mobil balap listrik ke luar angkasa, kita meluncurkan satelit dan penjelajah ke mars, kita bahkan dapat mendaratkan manusia makhluk di bulan, masih belum ada produk komersial yang tepat untuk mendeteksi berapa banyak air yang tersisa di tangki air kita?



Kita bisa menemukan indikator ketinggian air yang dibuat oleh siswa kelas 5 untuk pameran sains di sekolah. Bagaimana proyek sederhana seperti itu tidak berhasil dalam kehidupan sehari-hari kita? Jawabannya adalah indikator ketinggian tangki air bukanlah proyek sederhana yang dapat dibuat oleh siswa kelas 5 untuk rumah kita. Ada banyak pertimbangan praktis sebelum kami mendesainnya.

• Tidak ada yang mau mengebor badan tangki air untuk mencari elektroda yang nantinya bisa bocor air.
• Tidak ada yang mau memasang kabel 230/120 VAC di dekat tangki air.
• Tidak ada yang mau mengganti baterai setiap bulan.
• Tidak ada yang ingin memasang kabel panjang tambahan yang tergantung di ruangan untuk indikasi ketinggian air karena tidak direncanakan sebelumnya saat membangun rumah.
• Tidak ada yang mau menggunakan air yang dicampur dengan logam korosi pada elektroda.
• Tidak ada yang mau melepas pengaturan indikator ketinggian air saat membersihkan tangki (di dalam).

Beberapa alasan yang disebutkan di atas mungkin terlihat konyol tetapi, Anda akan merasa kurang memuaskan dengan produk yang tersedia secara komersial dengan kekurangan ini. Itulah mengapa penetrasi produk ini sangat sedikit di antara rumah tangga rata-rata *.
* Di pasar India.

Setelah mempertimbangkan poin-poin utama ini, kami telah merancang indikator ketinggian air praktis yang menghilangkan kekurangan yang disebutkan.

Desain kami:

• Menggunakan sensor ultrasonic untuk mengukur ketinggian air agar tidak terjadi korosi.
• Indikasi nirkabel dari permukaan air secara real-time pada 2,4 GHz.
• Kekuatan sinyal nirkabel yang baik, cukup untuk gedung bertingkat 2.
• Tenaga surya tidak ada lagi listrik AC atau mengganti baterai.
• Alarm tangki penuh / meluap saat mengisi tangki.

Mari kita selidiki detail sirkuitnya:

Pemancar:

Itu sirkuit pemancar nirkabel yang ditempatkan di tangki akan mengirimkan data ketinggian air setiap 5 detik 24/7. Pemancar terdiri dari Arduino nano, sensor ultrasonik HC-SR04, modul nRF24L01 yang akan menghubungkan pemancar dan penerima secara nirkabel pada frekuensi 2,4 GHz.

Panel surya 9 V hingga 12 V dengan arus keluaran 300mA akan memberi daya pada sirkuit pemancar. Papan sirkuit manajemen baterai akan mengisi baterai Li-ion, sehingga kami dapat memantau ketinggian air bahkan saat tidak ada sinar matahari.

Mari kita telusuri cara menempatkan sensor ultrasonik di tangki air:

Harap dicatat bahwa Anda harus menggunakan kreativitas Anda untuk membangun sirkuit dan melindungi dari hujan dan sinar matahari langsung.

Buat lubang kecil di atas penutup tangki untuk menempatkan sensor Ultrasonik dan tutup dengan beberapa jenis perekat yang dapat Anda temukan.

menempatkan sensor ultrasonik di tangki air

Sekarang ukur tinggi penuh tangki dari bawah ke tutup, tuliskan dalam meter. Sekarang ukur tinggi kapasitas penampung air tangki seperti yang ditunjukkan pada gambar di atas dan tulis dalam meter.
Anda harus memasukkan dua nilai ini ke dalam kode.

Diagram skematis Transmitter:

koneksi pemancar ultrasonik untuk kontrol ketinggian air

CATATAN: nRF24L01 menggunakan 3.3V karena Vcc tidak terhubung ke output 5V Arduino.

Catu daya untuk pemancar:

desain catu daya pengontrol level air ultrasonik

Pastikan daya keluaran panel surya Anda yaitu keluaran (volt x arus) lebih besar dari 3 watt. Itu panel surya harus 9V ke 12V.

Panel 12V dan 300mA direkomendasikan yang dapat Anda temukan dengan mudah di pasaran. Baterai harus sekitar 3,7V 1000 mAh.

Modul pengisian daya 5V 18650 Li-ion:

Gambar berikut menunjukkan standar 18650 sirkuit pengisi daya

Input dapat berupa USB (tidak digunakan) atau eksternal 5V dari IC LM7805. Pastikan Anda mendapatkan modul yang benar seperti yang ditunjukkan di atas, yang seharusnya TP4056 perlindungan, yang memiliki pemutusan baterai rendah dan perlindungan sirkuit pendek.

Output ini harus diumpankan ke input XL6009 yang akan meningkatkan tegangan yang lebih tinggi, menggunakan output obeng kecil XL6009 harus disesuaikan ke 9V untuk Arduino.

Ilustrasi konverter penguat DC ke DC XL6009:

Itu menyimpulkan perangkat keras pemancar.

Kode untuk Transmitter:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10)
const byte address[6] = '00001'
const int trigger = 3
const int echo = 2
const char text_0[] = 'STOP'
const char text_1[] = 'FULL'
const char text_2[] = '3/4'
const char text_3[] = 'HALF'
const char text_4[] = 'LOW'
float full = 0
float three_fourth = 0
float half = 0
float quarter = 0
long Time
float distanceCM = 0
float distanceM = 0
float resultCM = 0
float resultM = 0
float actual_distance = 0
float compensation_distance = 0
// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0 // Enter in Meters.
float full_height = 1.3 // Enter in Meters.
// ---------- -------------- //
void setup()
{
Serial.begin(9600)
pinMode(trigger, OUTPUT)
pinMode(echo, INPUT)
digitalWrite(trigger, LOW)
radio.begin()
radio.openWritingPipe(address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
full = water_hold_capacity
three_fourth = water_hold_capacity * 0.75
half = water_hold_capacity * 0.50
quarter = water_hold_capacity * 0.25
}
void loop()
{
delay(5000)
digitalWrite(trigger, HIGH)
delayMicroseconds(10)
digitalWrite(trigger, LOW)
Time = pulseIn(echo, HIGH)
distanceCM = Time * 0.034
resultCM = distanceCM / 2
resultM = resultCM / 100
Serial.print('Normal Distance: ')
Serial.print(resultM)
Serial.println(' M')
compensation_distance = full_height - water_hold_capacity
actual_distance = resultM - compensation_distance
actual_distance = water_hold_capacity - actual_distance
if (actual_distance <0)
{
Serial.print('Water Level:')
Serial.println(' 0.00 M (UP)')
}
else
{
Serial.print('Water Level: ')
Serial.print(actual_distance)
Serial.println(' M (UP)')
}
Serial.println('============================')
if (actual_distance >= full)
{
radio.write(&text_0, sizeof(text_0))
}
if (actual_distance > three_fourth && actual_distance <= full)
{
radio.write(&text_1, sizeof(text_1))
}
if (actual_distance > half && actual_distance <= three_fourth)
{
radio.write(&text_2, sizeof(text_2))
}
if (actual_distance > quarter && actual_distance <= half)
{
radio.write(&text_3, sizeof(text_3))
}
if (actual_distance <= quarter)
{
radio.write(&text_4, sizeof(text_4))
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

Ubah nilai berikut dalam kode yang Anda ukur:

// ------- CHANGE THIS -------//
float water_hold_capacity = 1.0 // Enter in Meters.
float full_height = 1.3 // Enter in Meters.
// ---------- -------------- //

Itu menyimpulkan pemancar.

Penerima:

Skema pengontrol penerima ketinggian air ultrasonik

Penerima dapat menunjukkan 5 level. Alarm, ketika tangki mencapai kapasitas penahanan air maksimum absolut saat mengisi tangki. 100 hingga 75% - Keempat LED akan menyala, 75 hingga 50% tiga LED akan menyala, 50 hingga 25% dua LED akan menyala, 25% dan kurang satu LED akan menyala.
Penerima dapat diberi daya dari baterai 9V atau dari charger smartphone ke USB kabel mini-B.

Kode untuk Penerima:

// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //
#include
#include
RF24 radio(9, 10)
int i = 0
const byte address[6] = '00001'
const int buzzer = 6
const int LED_full = 5
const int LED_three_fourth = 4
const int LED_half = 3
const int LED_quarter = 2
char text[32] = ''
void setup()
{
pinMode(buzzer, OUTPUT)
pinMode(LED_full, OUTPUT)
pinMode(LED_three_fourth, OUTPUT)
pinMode(LED_half, OUTPUT)
pinMode(LED_quarter, OUTPUT)
digitalWrite(buzzer, HIGH)
delay(300)
digitalWrite(buzzer, LOW)
digitalWrite(LED_full, HIGH)
delay(300)
digitalWrite(LED_three_fourth, HIGH)
delay(300)
digitalWrite(LED_half, HIGH)
delay(300)
digitalWrite(LED_quarter, HIGH)
delay(300)
digitalWrite(LED_full, LOW)
delay(300)
digitalWrite(LED_three_fourth, LOW)
delay(300)
digitalWrite(LED_half, LOW)
delay(300)
digitalWrite(LED_quarter, LOW)
Serial.begin(9600)
radio.begin()
radio.openReadingPipe(0, address)
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
}
void loop()
{
if (radio.available())
{
radio.read(&text, sizeof(text))
Serial.println(text)
if (text[0] == 'S' && text[1] == 'T' && text[2] == 'O' && text[3] == 'P')
{
digitalWrite(LED_full, HIGH)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
for (i = 0 i <50 i++)
{
digitalWrite(buzzer, HIGH)
delay(50)
digitalWrite(buzzer, LOW)
delay(50)
}
}
if (text[0] == 'F' && text[1] == 'U' && text[2] == 'L' && text[3] == 'L')
{
digitalWrite(LED_full, HIGH)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == '3' && text[1] == '/' && text[2] == '4')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, HIGH)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == 'H' && text [1] == 'A' && text[2] == 'L' && text[3] == 'F')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, LOW)
digitalWrite(LED_half, HIGH)
digitalWrite(LED_quarter, HIGH)
}
if (text[0] == 'L' && text[1] == 'O' && text[2] == 'W')
{
digitalWrite(LED_full, LOW)
digitalWrite(LED_three_fourth, LOW)
digitalWrite(LED_half, LOW)
digitalWrite(LED_quarter, HIGH)
}
}
}
// ----------- Program Developed by R.GIRISH / Homemade-circuits .com ----------- //

Itu menyimpulkan penerima.

CATATAN: Jika tidak ada LED yang menyala, artinya penerima tidak bisa mendapatkan sinyal dari pemancar. Anda harus menunggu 5 detik untuk menerima sinyal dari pemancar setelah menyalakan sirkuit penerima.

Prototipe penulis:

Pemancar:

prototipe pemancar ultrasonik

Penerima:

prototipe penerima ultrasonik

Jika Anda memiliki pertanyaan tentang rangkaian pengontrol ketinggian air nirkabel ultrasonik bertenaga surya ini, jangan ragu untuk mengungkapkannya di komentar, Anda dapat mengharapkan untuk mendapatkan balasan cepat.




Sepasang: Cara Membuat Sirkuit Boost Converter Sederhana Berikutnya: Cara Mendesain Konverter Flyback - Tutorial Komprehensif