Salam kepada semua pencinta mikrokontroler buatan sendiri. Jika anda seorang pemilik rumah akuarium yang gembira, maka artikel ini akan menarik minat anda. Di dalamnya, saya akan menerangkan dengan terperinci keseluruhan proses mewujudkan penjana aquacontroller yang mudah tetapi sangat berguna, yang direka untuk memudahkan kehidupan pemilik dunia bawah air kecil.
Seperti yang anda tahu, mana-mana projek yang berjaya bermula dengan penyediaan spesifikasi teknikal. Berikut adalah keperluan asas dan fungsi yang saya ingin dapatkan dari akuakard pengawal:
- kos rendah dan ketersediaan komponen;
- Masa yang disesuaikan untuk menghidupkan dan mematikan cahaya dalam akuarium;
- mod makan (penapis dimatikan dan bermula secara automatik selepas 15 minit);
- kemasukan jadual makan;
- pengukuran suhu dan kelembapan udara ambien (sebagai penambahan);
- paparan tarikh, masa dan parameter semasa pada paparan LCD;
- tetapan pengurusan dan parameter melalui menu menggunakan 4 butang (Up, Down, Ok, Cancel);
- Masa yang disesuaikan untuk menghidupkan dan mematikan cahaya dalam akuarium;
- mod makan (penapis dimatikan dan bermula secara automatik selepas 15 minit);
- kemasukan jadual makan;
- pengukuran suhu dan kelembapan udara ambien (sebagai penambahan);
- paparan tarikh, masa dan parameter semasa pada paparan LCD;
- tetapan pengurusan dan parameter melalui menu menggunakan 4 butang (Up, Down, Ok, Cancel);
Berdasarkan perkara di atas, litar yang ditunjukkan dalam Rajah 1 dilahirkan.
Elemen utama adalah lembaga Arduino Prominidiperolehi di China. Seperti yang ternyata kemudian, pengawal dipasang di atasnya ATMega168 bukannya ATMega328. Ini membuatkan saya menggerutu dengan pengoptimuman program itu, kerana ia tidak dapat ditanggung oleh pengawal ini kerana separuh saiz memori flash.
Paparan LCD dua-baris yang terkenal 16 aksara telah dipilih untuk memaparkan maklumat. Dalam projek ini, ia disambungkan kepada Arduino pada bas data 4-wayar.
Sensor digital bertanggungjawab untuk mengukur suhu dan kelembapan. Dth11. Untuk keperluan domestik sudah cukup. Malah, ia tidak mempunyai tujuan khusus dan ditambah semata-mata sebagai penambahan kepada gambaran keseluruhan.
Untuk mengawal lampu pendarfluor dan penapis, saya menggunakan dua saluran simistor, dibuat pada sekumpulan opto-simistor MOC3063 dan kuasa simistor BT137-600E. Ini membolehkan kita menghilangkan litar relay mekanikal, yang untuk sebab tertentu saya tidak merasa simpati.
Butang pengurusan - jam biasa, tanpa penetapan.
Nah, kerana semua tetapan terikat pada tempoh masa tertentu, peranti semestinya mengandungi jam nyata.Dalam kes ini, saya menggunakan modul ini Tinyrtc berdasarkan microcircuit DS1703. Modul ini dikawal oleh protokol i2c dan mengandungi penyambung untuk memasang bateri, yang membolehkan anda menyimpan tarikh dan masa apabila kuasa dimatikan. Suapan modul luaran ditunjukkan dalam foto No 2
Photo No. 2 - modul jam masa nyata
Oleh itu, keperluan ditakrifkan, skim disediakan - anda boleh pergi ke peringkat reka bentuk papan litar bercetak. Perkhidmatan dalam talian EasyEda berjaya membantu saya mengatasi tugas ini. Agar tidak bersusah payah dengan lubang penggerudian, saya memutuskan untuk meletakkan semua trek dan komponen semasa di atas. Setelah memutar butiran sedikit di editor, saya mendapat reka bentuk PCB dengan hanya tiga jumper. Kemunculan papan boleh dilihat dalam angka 3.
Rajah 3 - Penampilan papan litar aquacontrol
Mereka yang ingin mengulangi projek boleh memuat turun fail PCB dari pautan ini:
Lihat fail dalam talian:
Lihat fail dalam talian:
Jadi, apa yang anda perlu perhatikan. Rintangan R4 dan R8 - kembar, semua yang lain dibuat SMD perumahan 1206. Butang jam mempunyai saiz 12x12. Papan juga mempunyai penukar voltan Cina 220V / 5V, rupa yang ditunjukkan dalam gambar No 4.
Photo No. 4 - penukar voltan 220V / 5V.
Skrin LCD dan modul jam masa nyata dirancang untuk dipasang pada rak papan, peranan yang saya telah berjaya dilakukan dengan memotong dowel plastik.
Mengenai ini, semua ciri-ciri pemasangan ditetapkan dan ia hanya untuk memindahkan papan dari skrin monitor ke dunia fizikal kami. Kaedah yang terkenal telah dipilih untuk ini. LUT, menyiratkan kehadiran pencetak laser dan besi. Bagi mereka yang tidak kenal dengan teknologi masa depan ini, proses membuat papan litar di bilik mandi saya akan diterangkan di bawah.
Jadi, untuk permulaan, cari mana-mana majalah dengan halaman berkilat atau sekeping kertas foto. Kami mencetak corak papan pada pencetak laser, tanpa melupakannya. Kami menyediakan sekeping kaca bersalut foil-foil mengikut saiz kosong dan mengisar permukaan tembaga dengan kertas pasir halus untuk bersinar. Ia sepatutnya seperti ini (foto 5).
Seterusnya, kami menukar cetakan ke kerajang dan memohon kepada PCB. Selepas itu, kami memandu kertas dengan seterika panas selama kira-kira 3 minit. Waktu pemanasan di sini mungkin berbeza-beza bergantung pada suhu besi dan pengalaman para pelukis ritual rahsia ini. Ini kelihatan seperti ini (gambar No. 6):
Selepas kertas dipatuhi dengan PCB, matikan besi dan biarkan papan litar sejuk. Kini anda perlu mengeluarkan lapisan kertas dengan teliti dan pada masa yang sama tidak merosakkan toner melekit. Agar kes itu berjaya, kertas itu mesti dibasahi dan dibuang dengan memutar dengan hujung jari. Proses ini ditunjukkan dengan lebih jelas dalam gambar No. 7.
Kadang-kadang ia berlaku bahawa di sesetengah tempat, toner hanya tidak melekat. Dalam kes ini, kawasan-kawasan ini boleh disiapkan dengan penanda tetap. Photo No. 8 menunjukkan papan selepas mengeluarkan kertas. Sila ambil perhatian bahawa di bahagian atas sebelah kiri tidak terdapat bahagian angka, yang kemudiannya akan dipulihkan dengan kaedah di atas.
Apabila semua momen yang tidak menyenangkan dihapuskan, anda boleh mula menguraikan. Untuk ini, saya menggunakan penyelesaian ferric chloride, sebagai salah satu pilihan yang paling berpatutan dan selamat. Selepas menanggalkan papan, teliti bilas dengan pelarut untuk mengeluarkan toner dari trek. Kemudian sekali lagi kita bersih dengan kertas pasir halus, degrease dan timah. Hasilnya ditunjukkan dalam gambar No. 9.
Salah satu peringkat utama selesai. Peringkat seterusnya adalah pemasangan dan pematerian komponen radio. Ini adalah proses yang kreatif dan murni individu. Sekiranya anda mempunyai sebarang pertanyaan, saya bersedia menjawabnya dalam komen, tetapi sekarang saya akan menunjukkan kepada anda apa yang saya dapat (foto 10):
Seperti yang saya tulis di atas, paparan dan modul jam dinaikkan di atas papan dengan rak plastik yang diperbuat daripada ukiran untuk pemasangan pantas, dan kenalan mereka disolder ke papan dengan wayar nipis.Sensor suhu dan kelembapan dipaparkan secara berasingan di atas peranti. Pada pendapat saya, dengan susunan ini, pembacaan akan lebih tepat. Untuk saluran pencahayaan dan penuras, dua saluran luaran dipaparkan di bahagian bawah papan. Juga, ketinggian butang tidak mencukupi, jadi saya merancang untuk menambahnya dengan bushings plastik. Selepas beberapa manipulasi, peranti mengambil penampilan hampir selesai, ditunjukkan dalam gambar No. 11.
Sebelum anda menutup bahagian atas kes, anda mesti menulis firmware dalam Arduino ProMini. Untuk melakukan ini, saya meletakkan pin di papan yang disambungkan ke kenalan Vcc, GND, Rx dan TX. Untuk program Arduino ProMini mudah menggunakan Programmer USB, tetapi ini tidak tersedia. Peranannya berjaya dilakukan oleh lembaga lain Arduino uno dengan pengawal dikeluarkan. Saya tidak akan memasuki butiran proses ini, kerana terdapat banyak artikel mengenai subjek ini di Internet. Saya hanya akan memberikan gambar No. 12 untuk kejelasan.
Sekarang mari kita bincangkan tentang program itu sendiri. Apabila anda menghidupkan kuasa, skrin utama dipaparkan. Ia memaparkan maklumat mengenai tarikh, masa, suhu dan kelembapan semasa. Juga, beberapa aksara khas dipaparkan bergantung pada keadaan semasa sistem, iaitu: cahaya sedang dihidupkan - ikon matahari; cahaya off - ikon bulan; penapis pada ikon penapis; makan sedang berjalan - ikon ikan. Apabila anda mengklik OK, pengguna memasuki menu di mana ia mungkin untuk mengkonfigurasi parameter seperti:
- mod kawalan lampu. Dalam bahagian ini, anda boleh menghidupkan dan mematikan cahaya secara manual dengan memilih item menu yang sepadan, dan juga menetapkan masa untuk mematikan dan mematikan mengikut jadual.
- mod kawalan penapis. Membolehkan anda menghidupkan dan menanggalkan penapis secara manual, pilih fungsi "makan" (menyapu), dan tetapkan jadual makan. Dalam mod pemakanan, penapis berhenti dan mengembalikan secara automatik selepas 15 minit.
- menetapkan tarikh semasa.
- menetapkan masa semasa. Data tarikh dan masa direkodkan dalam modul jam dan apabila kuasa dimatikan, ia tidak ditetapkan semula jika bateri dipasang di atasnya.
Untuk pemahaman yang lebih baik, angka 13 menunjukkan struktur menu.
- mod kawalan lampu. Dalam bahagian ini, anda boleh menghidupkan dan mematikan cahaya secara manual dengan memilih item menu yang sepadan, dan juga menetapkan masa untuk mematikan dan mematikan mengikut jadual.
- mod kawalan penapis. Membolehkan anda menghidupkan dan menanggalkan penapis secara manual, pilih fungsi "makan" (menyapu), dan tetapkan jadual makan. Dalam mod pemakanan, penapis berhenti dan mengembalikan secara automatik selepas 15 minit.
- menetapkan tarikh semasa.
- menetapkan masa semasa. Data tarikh dan masa direkodkan dalam modul jam dan apabila kuasa dimatikan, ia tidak ditetapkan semula jika bateri dipasang di atasnya.
Untuk pemahaman yang lebih baik, angka 13 menunjukkan struktur menu.
Muat turun firmware untuk Arduino Pro Mini dan semua perpustakaan yang diperlukan boleh pautan ini
Selepas menulis program ke mikropengawal, anda boleh menutup kes itu dan teruskan ke ujian dalam keadaan sebenar. Sekitar minggu operasi berlalu sebelum menulis artikel ini. Akuakultur berfungsi dengan sempurna tanpa apa-apa yang tidak berfungsi, menyelamatkan saya dari terus menarik garpu jika perlu untuk memberi makan kepada ikan atau mematikan lampu. Hasil usaha saya ditunjukkan dalam gambar No. 16.