Daftar Isi:
- Perlengkapan
- Langkah 1: Tahan air
- Langkah 2: Kandang Cetakan 3D Kustom Saya
- Langkah 3: Memasang Layar LCD
- Langkah 4: Memasang Tombol Sesaat
- Langkah 5: Sirkuit Daya dan Pengisian Daya
- Langkah 6: Pengisian Kabel
- Langkah 7: Tentang Sensor Aliran
- Langkah 8: Pengkabelan Sensor Aliran
- Langkah 9: Memasang Sensor Aliran
- Langkah 10: Arduino & Perfboard
- Langkah 11: Menghubungkan Semuanya
- Langkah 12: Pemrograman
- Langkah 13: Menutup Tutupnya
- Langkah 14: Pengujian
- Langkah 15: Sekarang Mulai Hemat Air
Video: Hemat Air & Uang Dengan Pancuran Air Monitor: 15 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Mana yang menggunakan lebih banyak air - mandi atau pancuran?
Saya baru-baru ini memikirkan pertanyaan ini, dan saya menyadari bahwa saya sebenarnya tidak tahu berapa banyak air yang digunakan ketika saya mandi. Saya tahu ketika saya di kamar mandi kadang-kadang pikiran saya mengembara, memikirkan ide proyek baru yang keren atau mencoba memutuskan apa yang harus dimakan untuk sarapan, sementara air mengalir begitu saja. Akan jauh lebih mudah untuk mengurangi konsumsi air saya jika saya benar-benar tahu berapa liter yang saya gunakan setiap kali!
Saya melakukan sedikit riset, dan menemukan bahwa kepala pancuran yang berbeda dapat menggunakan mulai dari 9,5 liter (2,5 galon) per menit hingga kurang dari 6 liter (1,6 galon) per menit, jika Anda memasang pembatas aliran. Pancuran yang sangat tua bisa menggunakan lebih banyak air.
Saya memutuskan untuk merancang dan membangun perangkat yang akan menampilkan total volume air yang digunakan per pancuran, biaya air, dan laju aliran. Saya telah memasang perangkat ini selama beberapa minggu, dan sangat berguna untuk memiliki pembacaan langsung jumlah air yang digunakan.
Dalam Instructable ini, saya akan menjelaskan bagaimana saya membangun ini. Tentu saja, Anda tidak harus mengikuti langkah saya dengan tepat! Itu selalu baik untuk memanfaatkan bagian-bagian yang Anda miliki tergeletak di sekitar. Saya telah menyertakan tautan ke semua bagian yang saya gunakan, atau bagian setara yang akan berfungsi.
Perlengkapan
(Semua Harga dalam USD)
- Sensor Aliran - $3,87
- Layar LCD - $2,29
- Arduino Nano - $1,59
- Konverter Tingkatkan - $1,88
- Pengisi Daya Lipo - $1,89
- Sakelar Toggle Tahan Air - $0,93 (Bukan yang saya gunakan, tetapi seharusnya berfungsi)
- Tombol Tekan Tahan Air - $1,64
- Kebuntuan, Sekrup & Mur M3 - $6,99
- 2X Jack 3.5mm Wanita - $ 2,86 ea.
- Steker 3.5mm Pria - $1,48
- Rakitan Kabel 3,5mm 3' - $3,57
- Perakitan Kabel USB - $1,74
- 1/2" NPS Kopling Wanita-ke-Wanita - $1,88
- Baterai LiPo 3.7V 500mAh - $3,91
Alat & Perlengkapan Umum
- Besi Solder & Solder
- Kabel
- Pemotong Kawat
- Penari telanjang kawat
- Pita Dua Sisi
- Obeng Phillips
- Pencetak 3D (Opsional)
Langkah 1: Tahan air
Aspek yang paling sulit dari proyek ini adalah membuat semuanya tahan air. Karena akan berada di pancuran, ia harus mampu bertahan dari kelembaban ekstrem dan percikan sesekali. Sekitar 75% dari total waktu yang dihabiskan untuk proyek ini adalah mencari tahu bagian ini.
Cara saya melihatnya, ada dua pilihan: mendesain enklosur cetak 3D khusus, atau mencoba membuatnya bekerja dengan enklosur siap pakai. Karena saya baru saja mendapatkan printer 3D saya sendiri, saya memutuskan untuk menggunakan opsi pertama.
Jika Anda tidak memiliki akses ke printer 3D, berikut adalah beberapa enklosur siap pakai yang menurut saya diklaim tahan air, dan mungkin akan berfungsi. Harap diperhatikan bahwa saya belum membeli salah satu dari penutup ini, jadi saya tidak menjamin bahwa semua komponen akan muat di dalamnya!
Banggood - Kotak 100x68x50mm dengan Tutup Transparan - $5.35
Digikey - Kotak 130x80x70mm dengan Tutup Transparan - $11,65
Untuk poin ini dan seterusnya, ketika saya merujuk ke enklosur, saya berbicara tentang yang saya cetak 3D.
Langkah 2: Kandang Cetakan 3D Kustom Saya
Setelah bekerja di Fusion 360 selama beberapa jam, saya menemukan enklosur ini. Ini memiliki tiga guntingan melingkar agar sesuai dengan dua jack 3.5mm perempuan dan satu sakelar sakelar. Tutupnya memiliki lubang 16mm untuk tombol tekan sesaat, dan potongan persegi panjang untuk layar, serta empat lubang pemasangan untuk menahan layar di tempatnya. Penutup adalah bagian yang terpisah dan memiliki bibir untuk membantu mencegah masuknya uap air melalui jahitan. Empat lubang di sudut kotak untuk menahan tutupnya dengan jarak 30mm. Semua lubang sekrup berdiameter 3mm, yang sesuai dengan sekrup M3.
Anda dapat mengunduh file STL dari halaman Thingiverse saya. Itu dapat dicetak tanpa rakit atau penyangga apa pun, tetapi saya menggunakan penyangga hanya untuk amannya. Saya juga menggunakan pengisi 100%. Karena dindingnya sangat tipis, mengurangi persentase pengisian tidak benar-benar mengubah total waktu cetak atau total bahan, jadi saya hanya menyimpannya di 100%.
Untuk membuat layar terlihat, itu bisa menonjol melalui potongan di tutup enklosur, atau ditempatkan di belakang jendela transparan. Karena layar tidak boleh terkena kelembapan, kami terjebak dengan opsi kedua. Sayangnya pencetakan 3D dengan filamen transparan masih dalam tahap awal, jadi kita harus sedikit kreatif.
Solusi saya adalah membuat potongan persegi panjang di tutupnya, dan merekatkan sepotong plastik transparan dari beberapa kemasan sayuran. Teknik ini dapat digunakan bahkan jika Anda tidak menggunakan enklosur kustom saya; cukup potong persegi panjang dengan pisau utilitas atau Dremel. Tentu saja, jika Anda menggunakan enklosur dengan penutup transparan, ini tidak diperlukan sama sekali.
Sumber terbaik untuk plastik transparan yang saya temukan adalah produk kemasan. Biasanya bayam atau sayuran berdaun lainnya datang dalam wadah plastik bening besar. Dalam kasus saya, saya menggunakan kemasan dari "pepper medley".
Saya ingin overhang 5mm untuk memberikan banyak area permukaan untuk perekatan, jadi saya memotong persegi panjang 27x77mm dari plastik bening. Saya harus memotong sudutnya sedikit agar sekrupnya pas. Saya menyemprotkan garis superglue di sekeliling potongan, dan kemudian meletakkan plastik bening di atasnya. Saya menambahkan sedikit lebih banyak lem super di sekitar tepinya setelah hanya untuk memastikan itu disegel.
Pro-Tip: Tempatkan bagian di depan kipas kecil saat lem mengering. Saat superglue mengering, ia cenderung meninggalkan residu putih keji di belakang, yang tentu saja tidak kita inginkan di jendela transparan kita. Saya menggunakan kipas 12V lama dari catu daya komputer. Saya membiarkan lem selama 12 jam untuk memastikan lem benar-benar kering.
Langkah 3: Memasang Layar LCD
Setelah jendela transparan mengering, LCD dapat dipasang. LCD adalah layar karakter 16x2 yang sangat populer, dengan "ransel" I²C yang telah disolder di bagian belakang. Saya sangat merekomendasikan mendapatkan layar ini dengan antarmuka I²C. Pengkabelan semua jalur paralel cukup mengganggu dan menimbulkan lebih banyak potensi kesalahan - versi I²C hanya memiliki dua kabel untuk daya dan dua kabel untuk sinyal.
Saya menggunakan empat standoff 10mm untuk memasang layar. Kebuntuan masing-masing memiliki utas jantan di satu ujung dan utas betina di ujung lainnya. Saya memasukkan benang jantan melalui lubang di LCD dan mengencangkan mur M3 ke masing-masing lubang. Kemudian saya menggunakan empat sekrup M3 untuk mengamankan ujung betina dari kebuntuan melalui tutup enklosur. Saya mendapatkan paket standoff ini yang memiliki 10mm untuk memasang LCD, dan yang lebih panjang untuk menahan tutupnya ke alas. Plus, ada sekrup dan mur M3, jadi Anda tidak perlu membeli perangkat keras tambahan.
Pastikan murnya sangat kencang sehingga saat Anda mengencangkan sekrup, standoff tidak berputar. Juga, pastikan Anda tidak mengencangkan sekrup secara berlebihan, atau tutup plastik dapat berubah bentuk dan tidak menutup dengan benar.
Deretan 16 pin header pada LCD harus berada di atas - pastikan Anda tidak memasang LCD secara terbalik!
Langkah 4: Memasang Tombol Sesaat
Saya memutuskan untuk menggunakan tombol krom yang tampak sakit ini di panel depan. Saya telah menggunakannya di proyek sebelumnya dan saya sangat menyukai tampilannya. Mereka seharusnya tahan air, dan dilengkapi dengan cincin karet untuk mencegah kelembaban masuk ke dalam selungkup melalui benang.
Langkah ini cukup mudah. Lepaskan murnya, tetapi pertahankan cincin karetnya. Masukkan tombol melalui lubang di tutupnya, dan kencangkan mur dari sisi belakang. Hindari mengencangkan mur secara berlebihan, atau cincin karet akan hancur dan tidak berfungsi sebagaimana mestinya.
Langkah 5: Sirkuit Daya dan Pengisian Daya
Sekarang kita akan menyusun komponen daya baterai. Ini termasuk baterai, sakelar utama, papan pemantauan/pengisian baterai, dan konverter boost.
Baterai yang saya gunakan adalah baterai lithium ion sel tunggal 3.7V 1500 mAh. Yang saya gunakan ditarik dari pengontrol Playstation yang rusak. Baterai Li-Ion atau LiPo sel tunggal apa pun akan berfungsi, asalkan sesuai dengan enklosur Anda. Jenis baterai ini cenderung sangat tipis dan rata, jadi Anda mungkin dapat menggunakan baterai dua kali lebih besar dari baterai saya tanpa masalah. Sel 18650 akan berfungsi, tetapi tidak akan muat di selungkup khusus saya sehingga Anda harus mendesain sendiri, atau menggunakan selungkup yang sudah ada. Jika memungkinkan, saya sarankan menggunakan baterai bekas (seperti yang saya lakukan) karena pengiriman baterai seringkali mahal!
Baterai pertama-tama harus disolder ke papan pengisi daya TP4056. Jika mau, Anda dapat menyolder konektor JST RCY ke baterai dan pengisi daya untuk kenyamanan (saya melakukan ini), tetapi itu tidak perlu. Pastikan untuk mengamati polaritas yang benar seperti yang ditunjukkan oleh tanda pada papan pengisi daya, karena papan tidak terlindung dari polaritas baterai terbalik!
Selanjutnya, solder kabel dari output positif pengisi daya (terletak di samping kabel baterai positif) ke input positif pada konverter boost. Kemudian solder kabel dari output negatif (terletak di samping kabel baterai negatif) ke pin umum (tengah) sakelar sakelar master. Terakhir, solder kabel dari pin sakelar yang biasanya terbuka ke input negatif konverter boost. Jika Anda menghubungkan multimeter ke output konverter boost dan menyalakan sakelar master, tegangan akan ditampilkan.
Karena Arduino, layar LCD, dan sensor aliran kita semua membutuhkan 5V, kita harus mengatur output konverter boost ke 5V. Ini dicapai dengan memutar kenop pada potensiometer dengan obeng kecil. Dengan sakelar master dihidupkan, baterai terhubung, dan multimeter terhubung ke output konverter boost, putar potensiometer perlahan hingga output membaca 5V. Akan sulit untuk mendapatkan pembacaan tepat 5.000V tetapi bertujuan untuk tegangan antara 4.9V dan 5.1V.
Karena penutup khusus saya ditutup dengan beberapa sekrup, kami tidak ingin harus membuka kasing setiap kali perlu diisi daya. Saya menggunakan jack headphone 3.5mm untuk ini. Konektor persis yang saya gunakan adalah yang ini dari Digikey (untuk apa ukuran guntingan di enklosur saya), tetapi yang ini dari Banggood juga bisa digunakan.
Pertama, saya memasukkan konektor ke lubang paling bawah di enklosur. Karena ini akan dicabut sebagian besar waktu, dan karena itu rentan terhadap masuknya uap air, yang terbaik adalah memasangnya di bagian bawah untuk mencegah air menetes ke dalam. Setelah memasang mesin cuci kunci dan mengencangkan mur, saya menyolder dua kabel ke tab "ujung" dan "lengan" pada konektor. Pinout konektor ditampilkan di salah satu gambar beranotasi saya. Saya menyolder ujung lain dari kabel "lengan" ke input negatif pada pengisi daya, di samping port micro USB. Terakhir, saya menyolder kabel "ujung" ke bantalan +5V, di sisi lain port USB. Port USB pada pengisi daya tidak akan digunakan, karena akan sulit membuat port USB menembus casing tanpa membiarkan kelembapan masuk.
Langkah 6: Pengisian Kabel
Karena kita menggunakan jack audio 3,5 mm sebagai port pengisian daya, kita perlu membuat kabel adaptor yang memiliki colokan 3,5 mm jantan di satu ujung, dan colokan USB A di ujung lainnya. Ini akan memungkinkan kami untuk menggunakan pengisi daya perangkat seluler generik (seperti pengisi daya iPhone) untuk mengisi daya perangkat ini.
Anda dapat membeli rakitan kabel USB dengan konektor USB A di satu ujung dan kabel kaleng di ujung lainnya, tetapi jika Anda seperti saya, Anda mungkin memiliki selusin kabel USB acak yang tidak Anda perlukan. Daripada membeli rakitan kabel USB, saya baru saja mendapatkan kabel micro USB ke USB A yang tidak saya perlukan dan memutuskan konektor micro USB.
Selanjutnya, saya menanggalkan jaket putih dari kabel untuk mengungkapkan hanya dua kabel di dalamnya: kabel merah dan hitam. Beberapa kabel USB akan memiliki empat kabel: merah, hitam, hijau, dan putih. Hijau dan putih untuk transfer data, dan dapat diabaikan. Lepaskan isolasi dari kabel merah dan hitam saja.
Selanjutnya Anda akan membutuhkan colokan 3,5 mm laki-laki. Saya menggunakan yang ini dari Banggood. Solder kabel merah dari kabel USB ke tab tengah (yang merupakan ujung konektor) dan kabel hitam ke tab lengan panjang. Lihat foto saya untuk klarifikasi.
Saya sarankan untuk selalu mencolokkan steker 3,5 mm sebelum steker USB, karena proses mencolokkan kabel dapat menyebabkan steker korslet pada stopkontak logam.
Langkah 7: Tentang Sensor Aliran
Saya mengambil sensor aliran ini dari Banggood seharga $3,87. Sebelum menggunakannya, saya memutuskan untuk menyelidiki cara kerjanya.
Desainnya sangat sederhana dan cerdik. Elektronik benar-benar disegel dari air. Ada baling-baling berputar bebas yang berputar lebih lambat atau lebih cepat tergantung pada laju aliran. Pada satu titik pada baling-baling terdapat magnet. Di bagian luar sensor terdapat kompartemen kecil yang berisi PCB kecil dengan dua komponen: resistor, dan sensor hall-effect. Setiap kali magnet melewati sensor hall-effect, magnet akan beralih antara tinggi dan rendah. Dengan kata lain, ia beralih antara 5V dan 0V setiap kali baling-baling berputar.
Untuk membaca sensor, kami menerapkan +5V ke kabel merah, negatif ke kabel hitam, dan membaca sinyal digital dari kabel kuning. Dalam foto osiloskop saya, Anda dapat melihat bagaimana sinyal berubah saat aliran dihidupkan. Pada awalnya, sinyal selalu nol volt. Ketika aliran dimulai, frekuensi pulsa dengan cepat mencapai kecepatan dan mencapai keadaan tunak.
Menurut datasheet, sensor mengeluarkan 450 pulsa per liter. Ini akan menjadi penting nanti ketika kita menulis perangkat lunak.
Langkah 8: Pengkabelan Sensor Aliran
Sensor aliran dilengkapi dengan konektor JST-XH 3-pin. Ini tidak ideal karena kabelnya terlalu pendek, dan konektornya memiliki kontak terbuka yang dapat dengan mudah dikorsletingkan oleh tetesan air yang tersesat. Saya memesan rakitan kabel colokan audio 3,5 mm ini dari Digikey. Panjangnya 3 ', yang merupakan panjang yang sempurna, dan memiliki kabel kaleng, yang membuatnya mudah untuk disolder. Saya tidak menyarankan mencoba menggunakan kabel headphone lama, karena kabel ini cenderung memiliki kabel email yang sangat tipis, yang hampir tidak mungkin untuk disolder.
Sensor aliran memiliki penutup plastik, dipegang oleh dua sekrup Phillips. Cukup lepaskan sekrup ini, dan tarik keluar papan sirkuit. Itu tidak dipegang dengan lem apa pun, itu hanya disimpan di tempatnya dengan tutup plastik. Selanjutnya, matikan ketiga kabel dengan memanaskannya dengan besi solder dan mengangkatnya, satu per satu.
Selanjutnya, solder kabel audio 3,5 mm ke bantalan. Saya sarankan mencocokkan warna seperti yang saya lakukan. Konfigurasi ini memiliki +5V di ujung, sinyal di ring, dan ground di lengan. Ini adalah konfigurasi yang sama yang digunakan untuk port pengisian daya, dari langkah 6. Jika Anda secara tidak sengaja mencolokkan pengisi daya ke port sensor, atau sebaliknya, tidak akan ada kerusakan pada perangkat.
Langkah 9: Memasang Sensor Aliran
Sampai saat ini, semua pekerjaan kami telah dilakukan di bengkel. Tapi sekarang, saatnya pergi ke kamar mandi!
Pertama, saya melepas kepala pancuran. Ini mengungkapkan sedikit pipa yang menonjol dari dinding, dengan ulir jantan NPS 1/2 . Dengan mudah, sensor aliran kami memiliki ukuran ulir yang sama persis! Satu-satunya masalah adalah sensor memiliki ulir jantan di kedua ujungnya, jadi kami akan melakukannya membutuhkan pasangan perempuan-ke-perempuan.
Di toko perangkat keras lokal saya, ada 1/2 kopling kuningan, besi, dan PVC. Yang PVC adalah yang termurah, jadi saya mendapatkan yang itu. Meskipun di belakang, kuningan atau baja akan terlihat lebih bagus.
Setelah Anda memiliki kopling, cukup pasang sensor aliran ke dalam kopling, lalu kencangkan ujung kopling yang lain ke pipa. Sensor aliran memiliki panah untuk menunjukkan arah aliran yang diinginkan. Pastikan Anda tidak memasangnya terbalik, jika tidak, pengukurannya bisa tidak akurat. Terakhir, kencangkan kepala pancuran ke ujung sensor aliran.
Tentu saja, saya berasumsi pancuran Anda menggunakan utas NPS 1/2 , seperti yang saya lakukan. Jika tidak demikian, Anda perlu mendapatkan adaptor tambahan.
Pro-Tip: Tambahkan beberapa selotip Teflon ke semua utas sebelum memasangnya bersama-sama untuk mencegah kebocoran. Saya tidak memilikinya, tetapi saya berencana untuk menambahkan ini dalam waktu dekat.
Langkah 10: Arduino & Perfboard
Karena kita harus melakukan banyak pengkabelan, ada baiknya untuk mendapatkan sepotong perfboard untuk membuat segalanya sedikit lebih rapi. Saya memotong persegi panjang perfboard sekitar 1" kali 2". Selanjutnya, saya menempatkan Arduino Nano saya di tengah papan dan menandai di mana pin header melewati. Lalu saya memotong dua panjang header perempuan, masing-masing panjangnya 15 pin. Saya menyolder ini ke perfboard tempat saya menandai sebelumnya. Ini akan memungkinkan kita untuk menghapus Arduino untuk pemrograman.
Pro-Tip: Tandai orientasi port USB Arduino sehingga Anda selalu mencolokkannya ke perfboard dengan cara yang sama.
Langkah 11: Menghubungkan Semuanya
Sekarang saatnya untuk menyolder semuanya bersama-sama! Saya telah menyertakan diagram pengkabelan lengkap, yang dapat Anda ikuti, atau lihat langkah-langkah tertulis saya di bawah ini jika Anda lebih suka pendekatan yang lebih terpandu.
Pertama, saya memotong beberapa pin header jantan dan menyoldernya ke perfboard pada +5V dan ground rail. Kemudian saya menyolder dua pin header lagi yang terhubung ke pin A4 dan A5 pada Arduino. Header ini akan memungkinkan kita untuk menghubungkan layar LCD menggunakan jumper female-to-female.
Selanjutnya, saya menyolder sepasang kabel dari output konverter boost ke +5V dan ground rail. Ini akan memberikan daya ke Arduino, LCD, dan sensor aliran.
Setelah itu, saya memotong dua kabel dan menghubungkannya ke terminal tombol tekan. Saya menyolder satu kabel ke rel tanah, dan yang lainnya ke pin digital 3.
Bagian terakhir yang harus disolder adalah sensor aliran. Karena kita sudah memasang konektor 3.5mm ke sensor, kita hanya perlu menyolder jack perempuan 3.5mm. Pertama saya menyolder tiga kabel - satu ke masing-masing tab pada jack. Kemudian saya memasukkan dongkrak melalui selungkup dan mengamankannya dengan mur. Akhirnya, saya menyolder selongsong ke ground, ujung ke +5V, dan cincin ke pin digital 2.
Saya memilih untuk menggunakan pin digital 2 dan 3 untuk tombol dan sensor aliran karena mereka adalah pin interupsi perangkat keras. Ini akan membuatnya lebih mudah untuk menulis kode.
Sekarang kita sudah selesai menyolder, tapi kita masih perlu menghubungkan LCD. Karena kami menyolder header, kami hanya membutuhkan empat jumper female-to-female. Hubungkan pin "Vcc" ke +5V, pin "Gnd" ke ground, pin "SCL" ke A5, dan pin "SDA" ke A4. Agar layar LCD muat di dalam enklosur, kita harus menekuk pin header ke belakang. Menekuk pin bolak-balik beberapa kali akan melelahkan logam dan menyebabkan pin patah, jadi saya sarankan hanya menekuknya sekali, dan lakukan dengan hati-hati.
Sekarang pengkabelan selesai!
Langkah 12: Pemrograman
Sekarang semua perangkat keras terhubung, kita dapat memprogram Arduino.
Saya ingin program memiliki fitur-fitur berikut:
- Pada baris pertama, tampilkan hitungan yang diperbarui dengan cepat dari total liter
- Pada baris kedua, tampilkan total biaya air atau laju aliran
- Saat pancuran sedang berjalan, tombol tekan beralih antara menunjukkan biaya atau laju aliran
- Saat pancuran tidak berjalan, tombol tekan harus menghapus semua data dan mengatur ulang layar
- Sensor harus dibaca menggunakan rutin interupsi untuk menghindari metode polling kotor
- Saat memperbarui layar, kami hanya harus memperbarui nilai yang telah berubah, daripada menimpa seluruh layar setiap kali (ini akan menyebabkan kedipan yang nyata)
Program mengikuti struktur sederhana. Dengan menggunakan fungsi millis(), kita dapat membuat penundaan yang sebenarnya tidak menghentikan eksekusi program. Lihat tutorial ini untuk contoh mengedipkan LED tanpa menggunakan fungsi delay().
Fungsi milis() mengembalikan jumlah milidetik sejak Arduino dihidupkan. Dengan membuat variabel " PreviousMillis " dan mengurangkan Millis() - PreviousMillis(), kita dapat melihat waktu yang telah berlalu sejak PreviousMillis diperbarui.
Jika kita ingin sesuatu terjadi satu per detik, kita dapat menggunakan blok kode berikut:
if((milis() - sebelumnyaMillis) >= 1000){
sebelumnyaMillis = mili(); toggleLED(); }
Ini memeriksa apakah perbedaan antara milis() (waktu saat ini) dan sebelumnyaMillis (waktu terakhir) lebih besar dari atau sama dengan 1000 milidetik. Jika ya, hal pertama yang kita lakukan adalah mengatur Millis sebelumnya sama dengan waktu sekarang. Kemudian kami menjalankan langkah tambahan apa pun yang kami inginkan. Dalam contoh ini, kami mengaktifkan LED. Kemudian kita keluar dari blok kode ini dan menyelesaikan sisa fungsi loop(), sebelum kembali ke awal dan mengulanginya lagi.
Manfaat menggunakan metode ini dibandingkan fungsi delay() sederhana adalah bahwa delay() menempatkan jeda waktu di antara instruksi, tetapi tidak memperhitungkan waktu yang diperlukan untuk mengeksekusi instruksi lain dalam fungsi loop(). Jika Anda melakukan sesuatu yang membutuhkan waktu lebih lama daripada hanya mengedipkan LED, seperti memperbarui layar LCD, waktu yang diperlukan tidak dapat diabaikan, dan setelah beberapa siklus, waktu akan bertambah. Jika Anda memperbarui layar LCD pada jam, itu akan cepat menjadi tidak akurat dan tertinggal.
Jadi sekarang kita memahami keseluruhan struktur program, saatnya untuk memasukkan instruksi. Daripada menjelaskan setiap baris kode di sini, saya sarankan Anda membaca terlebih dahulu diagram alur terlampir, yang memberikan gambaran tingkat tinggi tentang apa yang dilakukan program.
Setelah Anda melihat diagram alur, lihat kode Arduino terlampir. Saya telah mengomentari hampir setiap baris untuk memperjelas apa yang dilakukan setiap baris.
Ada beberapa bagian dalam kode yang mungkin ingin Anda ubah. Yang paling penting adalah biaya per liter. Di kota saya, biaya air 0,2523¢ per liter. Temukan baris berikut, dan ubah nilainya agar sesuai dengan biaya tempat Anda tinggal:
const float COST_PER_LITRE = 0,2523; // biaya per liter, dalam sen, dari situs web kota
Jika Anda lebih suka menggunakan galon daripada liter, ubah semua baris "LCD.print()" yang merujuk ke "L" atau "L/s" menjadi "G" atau "G/s". Kemudian hapus baris berikut:
const float KONVERSI = 450.0; // biarkan ini tidak dikomentari untuk liter
… dan batalkan komentar pada baris ini:
const float KONVERSI = 1703.0; // batalkan komentar ini dan hapus baris di atas untuk galon
Ada satu lagi keanehan yang mungkin Anda perhatikan dalam kode saya. Kumpulan karakter default tidak menyertakan karakter "¢", dan saya tidak ingin menggunakan dolar, karena biayanya akan muncul sebagai "$0,01" atau kurang untuk sebagian besar waktu. Oleh karena itu, saya terpaksa membuat karakter khusus. Array byte berikut digunakan untuk mewakili simbol ini:
byte tanda_sen = { B00100, B00100, B01111, B10100, B10100, B01111, B00100, B00100 };
Setelah membuat array ini, karakter khusus harus "dibuat" dan disimpan.
lcd.createChar(0, cent_sign);
Setelah ini selesai, untuk mencetak karakter khusus kami menggunakan baris berikut:
lcd.write(byte(0)); // cetak tanda sen (¢)
LCD dapat memiliki hingga 8 karakter khusus. Informasi lebih lanjut tentang ini ada di sini. Saya juga menemukan alat online yang membantu ini yang memungkinkan Anda menggambar karakter khusus menggunakan antarmuka grafis, dan itu akan secara otomatis menghasilkan larik byte khusus.
Langkah 13: Menutup Tutupnya
Akhirnya, kita hampir selesai!
Saatnya memasukkan semua barang elektronik ke dalam enklosur dan berharap tutupnya tertutup. Tapi pertama-tama, kita perlu memasang standoff 30mm. Paket standoffs yang saya beli tidak termasuk yang sepanjang itu, tapi itu datang dengan 20mm dan 10mm yang bisa disambungkan. Saya memasang empat standoff ke dalam lubang di bagian bawah enklosur dengan empat sekrup M3 (lihat gambar 1 & 2). Pastikan untuk mengencangkannya dengan aman, tetapi tidak terlalu kencang atau Anda berisiko merusak selungkup plastik.
Sekarang kita bisa memasukkan semua barang elektronik di dalamnya. Saya memasang pengisi daya dan konverter penguat ke tutupnya dengan selotip dua sisi, seperti yang terlihat pada gambar ketiga. Kemudian saya melilitkan beberapa pita listrik di sekitar logam yang terbuka pada dua jack 3.5mm, hanya untuk memastikan tidak ada yang korslet dengan menghubungi konektor.
Saya bisa membuat Arduino pas dengan meletakkannya di sisinya, di sudut kiri bawah, dengan port USB menghadap ke kanan. Saya menggunakan lebih banyak selotip dua sisi untuk mengamankan baterai ke bagian bawah penutup di bawah layar LCD.
Akhirnya, setelah semuanya dijepit dengan aman ke dalam kotak, tutupnya dapat disekrup dengan empat sekrup M3 lagi.
Langkah 14: Pengujian
Pertama pasang konektor 3.5mm dari sensor aliran. Saya sarankan melakukan ini sebelum perangkat dihidupkan, karena steker mungkin membuat koneksi yang tidak diinginkan saat sedang dimasukkan.
Selanjutnya, hidupkan sakelar daya utama. Meskipun tidak ada air yang mengalir, tombol panel depan seharusnya tidak melakukan apa pun selain membersihkan total dan membersihkan layar. Karena totalnya akan menjadi nol secara default, tombol tersebut tampaknya belum melakukan apa pun.
Jika Anda menyalakan pancuran, totalnya harus mulai meningkat. Secara default, biaya ditampilkan. Jika Anda menekan tombol panel depan, laju aliran akan ditampilkan di garis bawah. Menekan tombol panel depan akan beralih antara menampilkan laju aliran dan menunjukkan biaya, selama pancuran sedang berjalan. Setelah pancuran berhenti, menekan tombol panel depan akan mengatur ulang pengukuran dan membersihkan layar.
Pemasangan
Bagaimana Anda memilih untuk memasang perangkat tergantung pada tata letak pancuran Anda. Beberapa pancuran mungkin memiliki langkan yang cukup dekat dengan kepala pancuran sehingga Anda bisa meletakkan perangkat di sana. Di kamar mandi saya, saya memiliki keranjang yang terpasang dengan cangkir hisap tempat saya meletakkan perangkat di dalamnya. Jika Anda tidak memiliki kemewahan langkan atau keranjang, Anda dapat mencoba memegang perangkat ke dinding dengan cangkir hisap dua sisi. Ini hanya akan berfungsi jika Anda menggunakan enklosur siap pakai yang memiliki alas halus, atau Anda mencetak enklosur khusus saya pada printer dengan pelat pembuatan kaca. Jika penutup Anda memiliki alas yang kasar (seperti milik saya), Anda dapat mencoba menggunakan selotip dua sisi, meskipun ini mungkin meninggalkan beberapa residu di dinding kamar mandi Anda jika Anda mencoba melepaskan perangkat.
Penyelesaian masalah
Layar menyala, tetapi lampu latar mati - pastikan jumper terpasang pada dua pin di samping modul I²C
Layar kosong, dengan lampu latar menyala - periksa apakah alamat I²C sudah benar dengan menjalankan pemindai I²C
Layar menyala, tetapi nilainya tetap nol - periksa apakah ada sinyal yang datang dari sensor dengan mengukur tegangan pada pin 2. Jika tidak ada sinyal, periksa apakah sensor terhubung dengan benar.
Layar kosong dengan lampu latar mati - periksa apakah LED daya pada Arduino menyala, dan periksa apakah layar memiliki daya
Layar menyala sebentar, lalu semuanya berhenti - Anda mungkin mengatur tegangan dari konverter boost terlalu tinggi (komponen tidak dapat menangani lebih dari 5V)
Perangkat berfungsi, tetapi nilainya salah - pastikan sensor aliran yang Anda gunakan memiliki faktor konversi yang sama yaitu 450 pulsa per liter. Sensor yang berbeda mungkin memiliki nilai yang berbeda.
Langkah 15: Sekarang Mulai Hemat Air
Perbaikan
Versi perangkat lunak saat ini bekerja dengan cukup baik, tetapi pada akhirnya saya ingin menambahkan kemampuan untuk memiliki pengguna yang berbeda (anggota keluarga, teman serumah, dll.) Perangkat akan menyimpan statistik setiap orang (total air & jumlah total pancuran) ke menampilkan penggunaan air rata-rata untuk setiap orang. Hal ini dapat mendorong masyarakat untuk berlomba-lomba menggunakan air paling sedikit.
Ini juga akan keren untuk memiliki cara untuk mengekspor data untuk dilihat dalam spreadsheet, sehingga dapat dibuat grafik. Kemudian Anda bisa melihat jam berapa orang mandi lebih sering dan lebih lama.
Semua fitur ini memerlukan penggunaan EEPROM - memori non-volatil bawaan Arduino. Ini akan memungkinkan data disimpan bahkan setelah perangkat dimatikan.
Fitur lain yang berguna adalah indikator baterai. Saat ini, satu-satunya indikasi bahwa perangkat perlu diisi ulang adalah ketika papan pengelola baterai memutus daya. Akan mudah untuk menghubungkan input analog tambahan untuk mengukur tegangan baterai. Pembagi tegangan bahkan tidak diperlukan karena tegangan baterai selalu kurang dari 5V.
Beberapa dari ide-ide ini berbatasan dengan fitur creep, itulah sebabnya saya tidak mengembangkan perangkat lunak lebih jauh.
Sisanya terserah padamu!
Hadiah Pertama dalam Kontes Sensor
Direkomendasikan:
Buat Termostat Pemanas Terhubung Anda Sendiri dan Hemat Dengan Pemanasan: 53 Langkah (dengan Gambar)
Buat Termostat Pemanas Terhubung Anda Sendiri dan Lakukan Penghematan Dengan Pemanasan: Apa tujuannya? Tingkatkan kenyamanan dengan memanaskan rumah Anda persis seperti yang Anda inginkan Lakukan penghematan dan kurangi emisi gas rumah kaca dengan memanaskan rumah Anda hanya saat Anda membutuhkannya Kendalikan pemanas Anda di mana pun Anda berada Banggalah Anda melakukannya y
LED POVstick Dengan Bluetooth Hemat Energi: 10 Langkah (dengan Gambar)
LED POVstick Dengan Bluetooth Low Energy: Instruksi ini menunjukkan kepada Anda cara membuat tongkat lightwriter dengan LED RGB yang dapat dikontrol melalui BLE dari ponsel Anda! Sekarang musim gelap dimulai dan Anda perlu mengambil gambar eksposur panjang: Dengan tongkat ini Anda dapat menulis tanda tangan Anda ke
Udara Lebih Dingin! untuk Lebih Sedikit Uang! Air Conditioner Supercharging!!: 14 Langkah (dengan Gambar)
Udara Lebih Dingin! untuk Lebih Sedikit Uang! Air Conditioner Supercharging!!: Anda bisa mendapatkan pendinginan yang lebih baik, dan biaya daya yang lebih rendah dengan metode ini. Pendingin udara bekerja dengan mengompresi zat pendingin gas sampai mengembun di (Anda dapat menebaknya) kondensor di sisi luar. Ini melepaskan panas di luar. Lalu ketika itu
Mesin Etsa PCB. Hemat Uang dan Waktu.: 8 Langkah
Mesin Etsa PCB. Hemat Uang dan Waktu ….: Seperti yang Anda lihat dari gambar. Ini adalah mesin etsa DIY saya. Saya membuat mesin etsa ini hampir 10 tahun yang lalu (1998)… Langkah selanjutnya adalah detail konstruksinya….. Selamat menikmati
Buat Mesin Pembersih Catatan Profesional Anda Sendiri dengan Harga Kurang dari $80 dan Hemat Hingga $3000 dan Lebih Banyak.: 6 Langkah (dengan Gambar)
Buat Mesin Pembersih Rekaman Profesional Anda Sendiri dengan Harga Kurang dari $80 dan Hemat Hingga $3000 dan Lebih Banyak.: Permisi bahasa Inggris saya. Setelah saya menemukan kembali suara vinil tua yang bagus, saya memiliki masalah yang dimiliki setiap penggemar rekaman. Bagaimana cara membersihkan arsip dengan benar!? Ada banyak cara di Internet. Cara yang lebih murah seperti Knosti atau Discofilm tetapi juga