Isi kandungan:
- Bekalan
- Langkah 1: Kalis air
- Langkah 2: Lingkungan Bercetak 3D Tersuai Saya
- Langkah 3: Memasang Skrin LCD
- Langkah 4: Memasang Butang Momentari
- Langkah 5: Litar Kuasa dan Pengisian
- Langkah 6: Mengecas Kabel
- Langkah 7: Mengenai Sensor Aliran
- Langkah 8: Pendawaian Sensor Aliran
- Langkah 9: Memasang Flow Sensor
- Langkah 10: Arduino & Perfboard
- Langkah 11: Pendawaian Segala-galanya
- Langkah 12: Pengaturcaraan
- Langkah 13: Menutup Tudung
- Langkah 14: Menguji
- Langkah 15: Sekarang Mulakan Menjimatkan Air
Video: Jimat Air & Wang Dengan Monitor Air Mandi: 15 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Mana yang menggunakan lebih banyak air - mandi atau mandi?
Saya baru-baru ini memikirkan soalan ini, dan saya menyedari bahawa saya sebenarnya tidak tahu berapa banyak air yang digunakan semasa saya mandi. Saya tahu ketika saya mandi kadang-kadang fikiran saya berkeliaran, memikirkan idea projek baru yang sejuk atau cuba memutuskan apa yang perlu diambil untuk sarapan, sementara air hanya mengalir ke longkang. Akan lebih mudah untuk mengurangkan penggunaan air saya sekiranya saya benar-benar tahu berapa liter yang saya gunakan setiap kali!
Saya melakukan sedikit kajian, dan mendapati bahawa kepala pancuran mandian yang berlainan dapat digunakan di mana saja dari 9.5 liter (2.5 gelen) per minit hingga kurang dari 6 liter (1.6 gelen) seminit, jika anda memasang pengatur aliran. Pancuran yang sangat lama boleh menggunakan lebih banyak air.
Saya memutuskan untuk merancang dan membina peranti yang akan menunjukkan jumlah air yang digunakan setiap pancuran, kos air, dan kadar aliran. Saya telah memasang peranti ini selama beberapa minggu, dan sangat berguna untuk membaca secara langsung jumlah air yang digunakan.
Dalam Instructable ini, saya akan menerangkan bagaimana saya membina ini. Sudah tentu, anda tidak perlu mengikuti langkah saya dengan tepat! Selalu bagus untuk menggunakan bahagian yang anda ada. Saya telah memasukkan pautan ke semua bahagian yang saya gunakan, atau bahagian yang setara yang akan berfungsi.
Bekalan
(Semua Harga dalam USD)
- Sensor Aliran - $ 3.87
- Skrin LCD - $ 2.29
- Arduino Nano - $ 1.59
- Boost Converter - $ 1.88
- Pengecas LiPo - $ 1.89
- Suis Toggle Kalis Air - $ 0,93 (Bukan yang betul yang saya gunakan, tetapi ia mesti berfungsi)
- Butang Tahan Air - $ 1.64
- Standoffs, M3 Screw & Nuts - $ 6,99
- Jack 2mm 3.5mm Wanita - $ 2.86 ea.
- Palam 3.5mm Lelaki - $ 1.48
- Pemasangan Kabel 3.5mm 3 '- $ 3.57
- Pemasangan Kabel USB - $ 1.74
- Gandingan Wanita-ke-Wanita NPS 1/2 "- $ 1,88
- Bateri LiPo 500mAh 3.7V - $ 3.91
Alat & Bekalan Umum
- Soldering Iron & Solder
- Kawat
- Pemotong Kawat
- Pelucut Kawat
- Pita Dua Sisi
- Pemutar Skru Phillips
- Pencetak 3D (Pilihan)
Langkah 1: Kalis air
Aspek yang paling sukar dalam projek ini adalah menjadikan keseluruhannya kalis air. Oleh kerana ia akan berada di tempat mandi, ia mesti dapat bertahan dari kelembapan yang melampau dan percikan sesekali. Kira-kira 75% daripada jumlah masa yang dihabiskan untuk projek ini sedang mencari bahagian ini.
Cara saya melihatnya, ada dua pilihan: merancang kandang cetak 3D khusus, atau cuba membuatnya berfungsi dengan kandang di luar rak. Oleh kerana saya baru-baru ini mendapat pencetak 3D saya sendiri, saya memutuskan untuk memilih dengan pilihan pertama.
Sekiranya anda tidak mempunyai akses ke pencetak 3D, berikut adalah beberapa kandang di luar rak yang saya dapati yang mendakwa kalis air, dan mungkin akan berfungsi. Harap maklum bahawa saya tidak membeli salah satu penutup ini, jadi saya tidak menjamin bahawa semua komponen akan sesuai di dalamnya!
Banggood - Kotak 100x68x50mm dengan Tutup Lutsinar - $ 5,35
Kotak Digikey - 130x80x70mm dengan Tudung Lutsinar - $ 11.65
Untuk perkara ini dan seterusnya, apabila saya merujuk kepada lampiran, saya bercakap mengenai 3D yang dicetak saya.
Langkah 2: Lingkungan Bercetak 3D Tersuai Saya
Setelah bekerja di Fusion 360 selama beberapa jam, saya muncul dengan kandang ini. Ia mempunyai tiga potongan bulat yang sesuai dengan dua bicu 3.5mm wanita dan satu suis togol. Tutupnya mempunyai lubang 16mm untuk tombol tekan sesaat, dan potongan segi empat tepat untuk skrin, serta empat lubang pemasangan untuk menahan layar di tempatnya. Tudungnya adalah bahagian yang terpisah dan mempunyai bibir untuk membantu mengelakkan masuknya kelembapan melalui jahitan. Empat lubang di sudut kotak adalah untuk menahan penutupnya dengan baki 30mm. Semua lubang skru berdiameter 3mm, yang sesuai dengan skru M3.
Anda boleh memuat turun fail STL dari halaman Thingiverse saya. Ia boleh dicetak tanpa rakit atau sokongan, tetapi saya menggunakan sokongan hanya untuk selamat. Saya juga menggunakan infill 100%. Oleh kerana dindingnya sangat tipis, mengurangkan peratusan pengisian tidak benar-benar mengubah jumlah masa cetak atau jumlah bahan, jadi saya menyimpannya pada 100%.
Untuk membuat layar kelihatan, ia boleh menonjol melalui potongan di penutup kandang, atau diletakkan di belakang tingkap yang lutsinar. Oleh kerana skrin tidak boleh terkena kelembapan, kita terjebak dengan pilihan kedua. Sayangnya percetakan 3D dengan filamen telus masih dalam peringkat awal, jadi kita harus sedikit kreatif.
Penyelesaian saya adalah dengan membuat potongan segi empat tepat di penutup, dan lekatkan pada kepingan plastik lutsinar dari beberapa bungkusan sayur. Teknik ini boleh digunakan walaupun anda tidak menggunakan lampiran khas saya; potong segi empat tepat dengan pisau utiliti atau Dremel. Sudah tentu, jika anda menggunakan penutup dengan penutup lutsinar, ini tidak diperlukan sama sekali.
Sumber terbaik untuk plastik lutsinar yang saya dapati ialah menghasilkan pembungkusan. Biasanya bayam atau sayur-sayuran berdaun lain terdapat dalam bekas plastik jernih yang besar. Dalam kes saya, saya menggunakan bungkusan dari "lada medley".
Saya mahukan overhang 5mm untuk memberikan banyak permukaan untuk lekat, jadi saya memotong segiempat tepat 27x77mm plastik jernih. Saya terpaksa memangkas sudut supaya skru sesuai. Saya mencantumkan garis superglue di sekitar perimeter potongan, dan kemudian meletakkan plastik jernih itu. Saya menambah sedikit superglue di sekitar tepi selepas hanya memastikan ia ditutup.
Petua Pro: Letakkan bahagian di hadapan kipas kecil semasa lem mengering. Ketika superglue mengering, ia cenderung meninggalkan sisa putih yang keji, yang pastinya tidak kita inginkan di tingkap kita yang telus. Saya menggunakan kipas 12V lama dari bekalan kuasa komputer. Saya membiarkan gam duduk selama 12 jam untuk memastikan ia benar-benar kering.
Langkah 3: Memasang Skrin LCD
Setelah tetingkap telus kering, LCD boleh dipasang. LCD adalah paparan watak 16x2 yang sangat popular, dengan "ransel" I²C yang disolder ke belakang. Saya sangat mengesyorkan mendapatkan skrin ini dengan antara muka I²C. Pendawaian semua garis selari agak menjengkelkan dan memperkenalkan lebih banyak kemungkinan kesalahan - versi I²C hanya mempunyai dua wayar untuk kuasa dan dua wayar untuk isyarat.
Saya menggunakan empat standoff 10mm untuk memasang skrin. Seterusnya masing-masing mempunyai benang lelaki di satu hujung dan benang wanita di hujungnya. Saya memasukkan benang lelaki melalui lubang-lubang di LCD dan mengetatkan kacang M3 pada setiap satu. Kemudian saya menggunakan empat skru M3 untuk menahan hujung wanita yang tersekat melalui penutup kandang. Saya mendapat bungkusan ini yang mempunyai 10mm untuk memasang LCD, dan yang lebih panjang untuk memegang penutup ke pangkal. Selain itu, terdapat skru dan mur M3, jadi anda tidak perlu membeli perkakasan tambahan.
Pastikan murnya sangat ketat sehingga apabila anda mengetatkan skru, penyekat tidak berpusing. Juga, pastikan anda tidak terlalu mengetatkan skru, atau penutup plastik boleh cacat dan tidak menutup dengan betul.
Baris 16 pin header pada LCD harus berada di bahagian atas - pastikan anda tidak memasang LCD terbalik!
Langkah 4: Memasang Butang Momentari
Saya memutuskan untuk menggunakan butang krom yang kelihatan sakit di panel depan. Saya telah menggunakannya dalam projek sebelumnya dan saya sangat menyukai penampilannya. Mereka mestilah kalis air, dan mereka dilengkapi dengan cincin getah untuk mengelakkan kelembapan memasuki kandang melalui benang.
Langkah ini cukup mudah. Tanggalkan kacang, tetapi teruskan gelang getah. Masukkan butang melalui lubang di penutup, dan ketatkan kacang dari bahagian belakang. Elakkan pengetatan mur yang terlalu ketat, atau gelang getah akan hancur dan tidak sesuai dengan tujuannya.
Langkah 5: Litar Kuasa dan Pengisian
Sekarang kita akan mengumpulkan komponen kuasa bateri. Ini termasuk bateri, suis induk, papan pemantauan / pengecasan bateri, dan penukar penguat.
Bateri yang saya gunakan ialah bateri lithium ion sel tunggal 3.7V 1500 mAh. Yang khusus saya gunakan ditarik dari alat kawalan Playstation yang rosak. Mana-mana bateri Li-Ion atau LiPo sel tunggal akan berfungsi, selagi ia sesuai dengan kandang anda. Bateri jenis ini cenderung sangat nipis dan rata, jadi anda mungkin boleh menggunakan bateri saya dua kali lebih besar tanpa masalah. Sel 18650 akan berfungsi, tetapi tidak akan sesuai dengan kandang peribadi saya, jadi anda perlu merancang sendiri, atau menggunakan kandang di luar rak. Sekiranya boleh, saya cadangkan menggunakan bateri yang telah disimpan (seperti yang saya lakukan) kerana bateri penghantaran selalunya mahal!
Bateri hendaklah disolder terlebih dahulu ke papan pengecasan TP4056. Sekiranya anda mahu, anda boleh memasangkan penyambung JST RCY ke bateri dan pengecas untuk kemudahan (saya melakukan ini), tetapi tidak perlu. Pastikan untuk memerhatikan polaritas yang betul seperti yang ditunjukkan oleh tanda pada papan pengecas, kerana papan tidak dilindungi daripada kekutuban bateri terbalik!
Seterusnya, pateri wayar dari output positif pengecas (terletak di sebelah wayar bateri positif) ke input positif pada penukar rangsangan. Kemudian pateri wayar dari output negatif (terletak di sebelah wayar bateri negatif) ke pin umum (tengah) suis togol utama. Akhirnya, pateri wayar dari pin suis yang biasanya terbuka ke input negatif penukar penguat. Sekiranya anda menyambungkan multimeter ke output penukar penguat dan menghidupkan suis induk, voltan harus ditunjukkan.
Oleh kerana Arduino, layar LCD, dan sensor aliran kita semua memerlukan 5V, kita mesti menetapkan output penukar rangsangan ke 5V. Ini dicapai dengan memutar tombol pada potensiometer dengan pemutar skru kecil. Dengan suis utama dihidupkan, bateri disambungkan, dan multimeter disambungkan ke output penukar penguat, perlahan-lahan putar potensiometer sehingga output membaca 5V. Akan sukar untuk mendapatkan bacaan tepat 5.000V tetapi bertujuan untuk voltan antara 4.9V dan 5.1V.
Oleh kerana penutup khas saya ditutup dengan beberapa skru, kami tidak mahu membuka casing setiap kali ia perlu dicas. Saya menggunakan bicu fon kepala 3.5mm untuk ini. Penyambung tepat yang saya gunakan adalah yang ini dari Digikey (yang sesuai dengan ukuran potongan saya), tetapi yang sesuai dari Banggood juga harus berfungsi.
Pertama, saya memasukkan penyambung ke lubang paling bawah di dalam kandang. Oleh kerana ini akan sering dicabut dari kabel, dan karena itu rentan terhadap masuknya kelembapan, lebih baik memasangnya di bahagian bawah untuk mencegah air menetes ke dalam. Setelah memasang mesin cuci kunci dan mengetatkan mur, saya menyolder dua wayar ke tab "hujung" dan "lengan" pada penyambung. Pin penyambung ditunjukkan dalam salah satu gambar saya yang diberi komen. Saya menyolder hujung wayar "lengan" yang lain ke input negatif pada pengecas, di sebelah port USB mikro. Terakhir, saya memasangkan wayar "tip" ke pad + 5V, di sisi lain port USB. Port USB pada pengecas tidak akan digunakan, kerana sukar untuk menjadikan port USB menembusi kandang tanpa membiarkan kelembapan masuk.
Langkah 6: Mengecas Kabel
Oleh kerana kita menggunakan bicu audio 3.5mm sebagai port pengecasan kita, kita perlu membuat kabel penyesuai yang mempunyai palam 3.5mm lelaki di satu hujungnya, dan palam USB A di hujung yang lain. Ini akan membolehkan kita menggunakan pengecas peranti mudah alih generik (seperti pengecas iPhone) untuk mengecas peranti ini.
Anda boleh membeli unit kabel USB dengan penyambung USB A di satu hujung dan kabel kalengan di hujung yang lain, tetapi jika anda seperti saya, anda mungkin mempunyai selusin kabel USB rawak yang terletak di sekitar yang tidak anda perlukan. Daripada membeli pemasangan kabel USB, saya hanya mendapat kabel USB mikro ke USB A yang tidak saya perlukan dan mematikan penyambung USB mikro.
Seterusnya, saya menanggalkan jaket putih dari kabel untuk mendedahkan hanya dua wayar di dalamnya: wayar merah dan hitam. Beberapa kabel USB akan mempunyai empat wayar: merah, hitam, hijau, dan putih. Hijau dan putih adalah untuk pemindahan data, dan dapat diabaikan. Tanggalkan penebat dari wayar merah dan hitam sahaja.
Seterusnya anda memerlukan palam 3.5mm lelaki. Saya menggunakan yang ini dari Banggood. Pateri wayar merah dari kabel USB ke tab tengah (yang merupakan hujung penyambung) dan wayar hitam ke tab lengan panjang. Lihat gambar saya untuk penjelasan.
Saya mengesyorkan agar selalu memasang palam 3.5mm sebelum palam USB, kerana proses memasang kabel boleh menyebabkan palamnya terpendek di wadah logam.
Langkah 7: Mengenai Sensor Aliran
Saya mengambil sensor aliran ini dari Banggood dengan harga $ 3,87. Sebelum menggunakannya, saya memutuskan untuk menyiasat bagaimana ia berfungsi.
Reka bentuknya sangat mudah dan bijak. Elektronik ditutup sepenuhnya dari air. Terdapat baling berputar bebas yang berputar lebih perlahan atau lebih cepat bergantung pada kadar aliran. Pada satu titik pada baling-baling adalah magnet. Di bahagian luar sensor terdapat petak kecil yang mengandungi PCB kecil dengan dua komponen: perintang, dan sensor kesan ruang. Setiap kali magnet melewati sensor kesan ruang, ia beralih antara tinggi dan rendah. Dengan kata lain, ia bertukar antara 5V dan 0V setiap kali baling-baling berpusing.
Untuk membaca sensor, kami menerapkan + 5V pada wayar merah, negatif pada wayar hitam, dan membaca isyarat digital dari wayar kuning. Dalam foto osiloskop saya, anda dapat melihat bagaimana isyarat berubah semasa aliran dihidupkan. Pada mulanya, isyarat sentiasa voltan sifar. Apabila aliran bermula, frekuensi denyutan cepat naik ke kelajuan dan mencapai keadaan stabil.
Menurut lembar data, sensor mengeluarkan 450 denyutan per liter. Ini akan menjadi penting di kemudian hari semasa kita menulis perisian.
Langkah 8: Pendawaian Sensor Aliran
Sensor aliran dilengkapi dengan penyambung JST-XH 3-pin. Ini tidak sesuai kerana wayar terlalu pendek, dan penyambungnya mempunyai kontak yang terdedah yang mudah dipendekkan oleh titisan air sesat. Saya memesan pemasangan kabel palam audio 3.5mm dari Digikey. Panjangnya 3 ', panjang yang sempurna, dan mempunyai kabel kalengan, yang memudahkan pematerian. Saya tidak mengesyorkan untuk menggunakan kabel fon kepala lama, kerana kabel tersebut biasanya mempunyai wayar enamel yang sangat nipis, yang hampir mustahil untuk disolder.
Sensor aliran mempunyai penutup plastik, dipegang oleh dua skru Phillips. Cukup lepaskan skru ini, dan cabut papan litar. Ia tidak dilekatkan dengan gam, hanya disimpan dengan penutup plastik. Seterusnya, ketepikan tiga wayar dengan memanaskannya dengan besi pematerian dan angkat, satu demi satu.
Seterusnya, pasangkan kabel audio 3.5mm ke pad. Saya mencadangkan agar sesuai dengan warna seperti yang saya lakukan. Konfigurasi ini mempunyai + 5V di hujung, isyarat di gelang, dan tanah di lengan. Ini adalah konfigurasi yang sama digunakan untuk port pengisian, dari langkah 6. Jika anda tidak sengaja memasang pengecas ke port sensor, atau sebaliknya, tidak akan ada kerosakan pada peranti.
Langkah 9: Memasang Flow Sensor
Sehingga ke tahap ini, semua kerja kami telah dilaksanakan di bengkel. Tetapi sekarang, sudah tiba masanya untuk menuju ke bilik mandi!
Pertama, saya menanggalkan kepala pancuran. Ini menunjukkan sebilangan kecil paip yang menonjol dari dinding, dengan benang lelaki NPS 1/2 . Dengan selesa, sensor aliran kami mempunyai ukuran utas yang sama! Satu-satunya masalah ialah sensor mempunyai benang lelaki di kedua hujungnya, jadi kami akan memerlukan gandingan wanita-ke-wanita.
Di kedai perkakasan tempatan saya, terdapat 1/2 gandingan dalam tembaga, besi, dan PVC. Yang PVC adalah yang paling murah, jadi saya mendapatkannya. Walaupun dari belakang, tembaga atau keluli akan kelihatan lebih bagus.
Sebaik sahaja anda mempunyai gandingan, pasangkan sensor aliran ke gandingan, dan kemudian skru hujung gandingan yang lain ke paip. Sensor aliran mempunyai anak panah untuk menunjukkan arah aliran yang dimaksudkan. Pastikan anda tidak memasangnya ke belakang, jika tidak, pengukurannya mungkin tidak tepat. Akhirnya, pasangkan kepala pancuran ke hujung sensor aliran.
Sudah tentu, saya menganggap bilik mandi anda menggunakan benang NPS 1/2 , seperti yang saya lakukan. Sekiranya ini tidak berlaku, anda perlu mendapatkan penyesuai tambahan.
Petua Pro: Tambahkan beberapa pita tukang paip Teflon ke semua utas sebelum menyatukan kepingannya untuk mengelakkan kebocoran. Saya tidak mempunyai apa-apa, tetapi saya merancang untuk menambahkannya dalam masa terdekat.
Langkah 10: Arduino & Perfboard
Oleh kerana kita perlu melakukan banyak pendawaian, adalah idea yang baik untuk mendapatkan sebilangan papan wangi untuk membuat sesuatu menjadi lebih kemas. Saya memotong segi empat tepat papan wangi kira-kira 1 "dengan 2". Seterusnya, saya meletakkan Arduino Nano saya di tengah papan dan menandakan di mana pin header dilalui. Kemudian saya memotong dua panjang kepala wanita, masing-masing panjang 15 pin. Saya menyisipkannya ke papan wangi di mana saya menandakannya sebelum ini. Ini akan membolehkan kita membuang Arduino untuk pengaturcaraan.
Petua Pro: Tandakan orientasi port USB Arduino supaya anda selalu memasangkannya ke papan wangi dengan cara yang sama.
Langkah 11: Pendawaian Segala-galanya
Kini tiba masanya untuk menyatukan semuanya! Saya telah menyertakan gambarajah pendawaian lengkap, yang boleh anda ikuti, atau lihat langkah-langkah bertulis saya di bawah jika anda lebih suka pendekatan yang lebih berpandu.
Pertama, saya memotong beberapa pin header lelaki dan menyoldernya ke papan wangi di landasan + 5V dan landasan. Kemudian saya menyolder dua lagi pin header yang disambungkan ke pin A4 dan A5 di Arduino. Header ini akan membolehkan kita menyambungkan skrin LCD menggunakan jumper wanita-ke-wanita.
Seterusnya, saya menyolder sepasang wayar dari output penukar penguat ke rel +5V dan landasan. Ini akan memberi kuasa kepada Arduino, LCD, dan sensor aliran.
Selepas itu, saya memotong dua wayar dan menghubungkannya ke terminal butang tekan. Saya menyolder satu wayar ke landasan, dan yang lain ke pin digital 3.
Bahagian terakhir untuk solder adalah sensor aliran. Oleh kerana kita sudah memasang palam 3.5mm ke sensor, kita hanya perlu menyolokkan jek wanita 3.5mm. Mula-mula saya menyolder tiga wayar - satu ke setiap tab pada bicu. Kemudian saya memasukkan soket melalui kandang dan memasangnya di tempat dengan kacang. Akhirnya, saya memasangkan lengan ke tanah, hujungnya ke + 5V, dan cincin ke pin digital 2.
Saya memilih untuk menggunakan pin digital 2 dan 3 untuk sensor butang dan aliran kerana ia adalah pin gangguan perkakasan. Ini akan menjadikannya lebih mudah untuk menulis kodnya.
Sekarang kita selesai menyolder, tetapi kita masih perlu menyambungkan LCD. Oleh kerana kita mengepung tandukan, kita hanya memerlukan empat pelompat wanita-ke-wanita. Sambungkan pin "Vcc" ke + 5V, pin "Gnd" ke tanah, pin "SCL" ke A5, dan pin "SDA" ke A4. Agar skrin LCD masuk ke dalam kandang, kita perlu membengkokkan pin header ke belakang. Membengkokkan pin berulang-ulang akan meletihkan logam dan menyebabkan pin pecah, jadi saya cadangkan hanya membongkoknya sekali, dan lakukan dengan berhati-hati.
Kini pendawaian selesai!
Langkah 12: Pengaturcaraan
Setelah perkakasan tersambung, kita dapat memprogram Arduino.
Saya mahu program ini mempunyai ciri-ciri berikut:
- Pada baris pertama, paparkan kiraan jumlah liter yang dikemas kini dengan cepat
- Pada baris kedua, tunjukkan jumlah kos air atau kadar aliran
- Semasa mandi berjalan, butang tekan beralih antara menunjukkan kos atau kadar aliran
- Apabila pancuran tidak berjalan, butang tekan akan membersihkan semua data dan menetapkan semula skrin
- Sensor harus dibaca menggunakan rutin gangguan untuk mengelakkan kaedah pengundian kasar
- Semasa mengemas kini layar, kita hanya perlu mengemas kini nilai yang telah berubah, dan bukannya menimpa keseluruhan layar setiap kali (ini akan menyebabkan kerlipan yang nyata)
Program ini mengikuti struktur sederhana. Dengan menggunakan fungsi millis (), kita dapat membuat kelewatan yang sebenarnya tidak menghentikan pelaksanaan program. Lihat tutorial ini untuk contoh mengedipkan LED tanpa menggunakan fungsi delay ().
Fungsi milis () mengembalikan bilangan milisaat sejak Arduino dihidupkan. Dengan membuat pemboleh ubah "sebelumnyaMillis" dan mengurangkan Millis () - sebelumnyaMillis (), kita dapat melihat masa berlalu sejak sebelumnyaMillis dikemas kini.
Sekiranya kita mahu sesuatu berlaku satu saat, kita boleh menggunakan blok kod berikut:
jika ((milis () - sebelumnyaMillis)> = 1000) {
sebelumnyaMillis = millis (); toggleLED (); }
Ini memeriksa sama ada perbezaan antara milisa () (masa semasa) dan sebelumnyaMillis (kali terakhir) lebih besar daripada atau sama dengan 1000 milisaat. Sekiranya ada, perkara pertama yang kita lakukan adalah menetapkan sebelumnyaMillis sama dengan masa semasa. Kemudian kami melaksanakan apa sahaja langkah tambahan yang kami mahukan. Dalam contoh ini, kita menukar LED. Kemudian kami keluar dari blok kod ini dan menyelesaikan fungsi loop () yang lain, sebelum kembali ke permulaan dan mengulanginya lagi.
Manfaat menggunakan kaedah ini berbanding fungsi penundaan sederhana () ialah kelewatan () meletakkan jeda waktu di antara arahan, tetapi tidak memperhitungkan masa yang diperlukan untuk melaksanakan arahan lain dalam fungsi gelung (). Sekiranya anda melakukan sesuatu yang memerlukan waktu lebih lama daripada hanya mengedipkan LED, seperti mengemas kini layar LCD, waktu yang diperlukan tidak boleh diabaikan, dan setelah beberapa siklus ia akan bertambah. Sekiranya anda mengemas kini skrin LCD pada satu jam, ia akan menjadi tidak tepat dan ketinggalan.
Oleh itu, setelah memahami struktur keseluruhan program, inilah masanya untuk memasukkan arahan. Daripada menjelaskan setiap baris kod di sini, saya cadangkan anda membaca terlebih dahulu carta alir yang dilampirkan, yang memberikan gambaran tahap tinggi mengenai apa yang dilakukan oleh program ini.
Setelah anda melihat carta alir, lihatlah kod Arduino yang dilampirkan. Saya telah mengulas hampir setiap baris untuk menjelaskan apa yang dilakukan oleh setiap baris.
Terdapat beberapa bahagian dalam kod yang mungkin ingin anda ubah. Yang paling penting ialah kos seliter. Di bandar saya, air berharga 0.2523 ¢ seliter. Cari baris berikut, dan ubah nilai tersebut agar sesuai dengan kos di mana anda tinggal:
const float COST_PER_LITRE = 0.2523; // kos seliter, dalam sen, dari laman web bandar
Sekiranya anda lebih suka menggunakan galon melebihi liter, ubah semua garis "LCD.print ()" yang merujuk kepada "L" atau "L / s" menjadi "G" atau "G / s". Kemudian padamkan baris berikut:
CONVERSION float const = 450.0; // simpan ini tanpa tekanan untuk liter
… dan melepaskan baris ini:
CONVERSION float const = 1703.0; // tanggalkan ini dan hapus baris di atas untuk gelen
Terdapat satu lagi keanehan yang mungkin anda perhatikan dalam kod saya. Set watak lalai tidak termasuk watak "¢", dan saya tidak mahu menggunakan dolar, kerana kosnya akan muncul sebagai "$ 0,01" atau kurang untuk kebanyakan waktu. Oleh itu, saya terpaksa mencipta watak tersuai. Susunan bait berikut digunakan untuk mewakili simbol ini:
byte cent_sign = {B00100, B00100, B01111, B10100, B10100, B01111, B00100, B00100};
Setelah membuat susunan ini, watak khas mesti "dibuat" dan disimpan.
lcd.createChar (0, cent_sign);
Setelah ini selesai, untuk mencetak watak khusus kami menggunakan baris berikut:
lcd.write (bait (0)); // tanda sen cetak (¢)
LCD boleh mempunyai hingga 8 watak tersuai. Maklumat lebih lanjut mengenai perkara ini ada di sini. Saya juga menemui alat dalam talian yang berguna ini yang membolehkan anda melukis watak khusus menggunakan antara muka grafik, dan ia secara automatik akan menghasilkan susunan bait tersuai.
Langkah 13: Menutup Tudung
Akhirnya, kami hampir selesai!
Sudah tiba masanya untuk memasukkan semua elektronik ke dalam kandang dan berharap penutupnya ditutup. Tetapi pertama, kita perlu melekatkan 30mm. Pakej standoff yang saya beli tidak termasuk yang panjang, tetapi ia dilengkapi dengan 20mm dan 10mm yang boleh dilampirkan bersama. Saya memasukkan empat penyekat ke lubang di bahagian bawah kandang dengan empat skru M3 (lihat gambar 1 & 2). Pastikan untuk mengencangkannya dengan selamat, tetapi jangan terlalu ketat atau anda berisiko memecahkan penutup plastik.
Sekarang kita boleh memuatkan semua elektronik di dalamnya. Saya melekatkan pengecas dan penukar penguat ke penutup dengan pita dua sisi, seperti yang dilihat pada gambar ketiga. Kemudian saya membungkus pita elektrik di sekitar logam yang terdedah pada dua bicu 3.5mm, hanya untuk memastikan tidak ada yang terpendek dengan menghubungi penyambungnya.
Saya dapat membuat Arduino sesuai dengan meletakkannya di sisinya, di sudut kiri bawah, dengan port USB menghadap ke kanan. Saya menggunakan lebih banyak pita dua sisi untuk mengamankan bateri ke bahagian bawah penutup di bawah skrin LCD.
Akhirnya, setelah semuanya tersekat lebih kurang ke dalam kotak, penutupnya boleh ditutup dengan empat lagi skru M3.
Langkah 14: Menguji
Pasangkan pertama penyambung 3.5mm dari sensor aliran. Saya mengesyorkan melakukan ini sebelum peranti dihidupkan, kerana mungkin palam membuat sambungan yang tidak diingini semasa disambungkan.
Seterusnya, hidupkan suis kuasa utama. Walaupun tidak ada air yang mengalir, butang panel depan tidak boleh melakukan apa-apa selain membersihkan jumlah dan membersihkan skrin. Oleh kerana jumlahnya akan menjadi sifar secara lalai, butang itu nampaknya tidak akan berlaku lagi.
Sekiranya anda menghidupkan bilik mandi, jumlahnya akan mula meningkat. Secara lalai, kos ditunjukkan. Sekiranya anda menekan butang panel depan, kadar aliran akan ditunjukkan di garis bawah. Menekan butang panel depan akan beralih antara menunjukkan kadar aliran dan menunjukkan kos, selagi mandi sedang berjalan. Setelah mandi berhenti, menekan butang panel depan akan menetapkan semula ukuran dan membersihkan skrin.
Pemasangan
Cara anda memilih pemasangan peranti bergantung pada susun atur pancuran mandian anda. Sebilangan bilik mandi mungkin mempunyai langkan yang cukup dekat dengan kepala pancuran sehingga anda boleh meletakkan peranti di sana. Di pancuran saya, saya mempunyai bakul yang dilekatkan dengan cawan sedutan yang saya letakkan di dalamnya. Sekiranya anda tidak memiliki kemewahan langkan atau bakul, anda boleh mencuba memegang peranti ke dinding dengan cawan sedutan dua sisi. Ini hanya akan berfungsi jika anda menggunakan kandang di luar rak yang mempunyai sandaran yang lancar, atau anda mencetak penutup khas saya pada pencetak dengan plat kaca. Sekiranya kandang anda mempunyai sandaran kasar (seperti yang saya lakukan), anda boleh mencuba menggunakan pita dua sisi, walaupun ini mungkin meninggalkan sisa di dinding pancuran anda jika anda cuba mengeluarkan peranti.
Penyelesaian masalah
Skrin dihidupkan, tetapi lampu latar mati - pastikan pelompat dipasang pada dua pin di sisi modul I² C
Skrin kosong, dengan lampu latar menyala - pastikan alamat I² C betul dengan menjalankan pengimbas I²C
Skrin dihidupkan, tetapi nilainya tetap sifar - periksa apakah ada isyarat yang datang dari sensor dengan mengukur voltan pada pin 2. Sekiranya tidak ada isyarat, periksa apakah sensor disambungkan dengan betul.
Skrin kosong dengan lampu latar mati - periksa bahawa LED kuasa pada Arduino menyala, dan periksa bahawa skrin mempunyai kuasa
Skrin menyala seketika, kemudian semuanya berhenti - anda mungkin menetapkan voltan dari penukar rangsangan terlalu tinggi (komponen tidak dapat mengendalikan lebih dari 5V)
Peranti berfungsi, tetapi nilainya salah - pastikan sensor aliran yang anda gunakan mempunyai faktor penukaran 450 denyutan per liter yang sama. Sensor yang berbeza mungkin mempunyai nilai yang berbeza.
Langkah 15: Sekarang Mulakan Menjimatkan Air
Penambahbaikan
Versi perisian terkini berfungsi dengan cukup baik, tetapi akhirnya saya ingin menambahkan kemampuan untuk mempunyai pengguna yang berbeza (ahli keluarga, rakan serumah, dll.) Peranti akan menyimpan statistik setiap orang (jumlah air & jumlah pancuran) ke paparkan purata penggunaan air untuk setiap orang. Ini dapat mendorong orang untuk bersaing untuk menggunakan air paling sedikit.
Akan lebih baik jika kita memiliki cara untuk mengekspor data yang akan dilihat dalam spreadsheet, sehingga dapat digambarkan. Oleh itu, anda dapat melihat waktu berapa tahun orang mempunyai pancuran mandian yang lebih kerap dan lebih lama.
Ciri-ciri ini semua memerlukan penggunaan EEPROM - memori yang tidak stabil dari Arduino. Ini akan membolehkan data disimpan walaupun peranti dimatikan.
Ciri lain yang berguna ialah penunjuk bateri. Buat masa ini, satu-satunya petunjuk bahawa peranti perlu diisi semula adalah apabila papan pengurus bateri memutuskan bekalan kuasa. Adalah mudah untuk menghubungkan input analog tambahan untuk mengukur voltan bateri. Pembahagi voltan tidak akan diperlukan kerana voltan bateri selalu kurang dari 5V.
Sebilangan idea ini berbatasan dengan fitur, itulah sebabnya saya tidak mengembangkan perisian lebih jauh.
Selebihnya terpulang kepada anda!
Hadiah Pertama dalam Peraduan Sensor
Disyorkan:
Buat Termostat Pemanas Bersambung Sendiri dan Jimat Dengan Pemanasan: 53 Langkah (dengan Gambar)
Buat Termostat Pemanas Sendiri dan Jimat Dengan Pemanasan: Apakah tujuannya? Tingkatkan keselesaan dengan memanaskan rumah anda seperti yang anda mahukan. Menjimatkan dan mengurangkan pelepasan gas rumah hijau dengan memanaskan kediaman anda hanya apabila anda memerlukan. Tetaplah mengawal pemanasan anda di mana sahaja anda berada. Banggalah anda melakukannya
Mesin Etching PCB. Jimat Wang dan Masa .: 8 Langkah
Mesin Etching PCB. Jimat Wang dan Masa ….: Seperti yang anda lihat dari gambar. Ini adalah mesin ukiran DIY saya. Saya membina mesin pengukir ini hampir 10 tahun yang lalu (1998) … Langkah berikut adalah perincian pembinaan ….. Nikmati
Buat Mesin Pembersih Rekod Profesional Anda sendiri dengan Kurang daripada $ 80 dan Jimat Hingga $ 3000 dan Lebih Banyak: 6 Langkah (dengan Gambar)
Buat Mesin Pembersih Rekod Profesional Anda Sendiri dengan Harga Kurang Dari $ 80 dan Jimat Hingga $ 3000 dan Lebih Banyak lagi: Maafkan bahasa Inggeris saya. Selepas saya mengetahui bunyi vinil lama yang baik, saya menghadapi masalah setiap penggemar rakaman. Bagaimana membersihkan rekod dengan betul!? Terdapat banyak cara di Internet. Cara yang lebih murah seperti Knosti atau Discofilm tetapi juga
Buat Pouch EeePC / Netbook Nice Felt Anda sendiri dengan harga kira-kira $ 8 (dan jimat $ 91 dan bukannya beli dari Redmaloo): 5 Langkah (dengan Gambar)
Buat Pouch EeePC / Netbook Nice Felt Anda sendiri dengan harga kira-kira $ 8 (dan Jimat $ 91 Daripada Membeli Dari Redmaloo): Instruksional ini akan menunjukkan kepada anda, bagaimana membuat komputer riba anda sendiri, sangat bagus dan bagus atau beg netbook yang lebih baik. Ini akan menyimpan netbook anda, memberi anda mousepad, perasaan menggunakan sesuatu yang unik, bagus dan buatan tangan dan perasaan goos
Jimat Wang Besar! Beli Dalam Talian !: 6 Langkah
Jimat Wang Besar! Beli Dalam Talian !: Anda tidak akan percaya wang yang saya lihat terbuang dalam penyelidikan yang buruk, perjalanan ke kedai-kedai mewah atau pembelian dorongan yang menjengkelkan. Diskaun besar hanya dengan beberapa klik sahaja. Malangnya laman web itu tidak benar-benar melompat kepada anda, begitu beruntung untuk anda