Tanaman akuarium membutuhkan cahaya untuk menghasilkan energi melalui fotosintesis, sementara banyak ikan mendapat manfaat dari cahaya biasa siklus cahaya, tetapi bagaimana Anda bisa memberikan pencahayaan buatan untuk mereka dengan alat elektronik DIY yang sudah Anda miliki memiliki? Mari membangun sistem pencahayaan akuarium DIY menggunakan Arduino, jam waktu nyata, dan strip LED.

Menggunakan Lampu Akuarium LED

Sebelum kita mulai, perlu dicatat bahwa LED yang kami gunakan dalam proyek ini bukanlah LED spektrum penuh yang meniru cahaya siang hari. Ini berarti bahwa mereka tidak memberikan semua panjang gelombang cahaya yang bermanfaat bagi tanaman, menjadikannya tidak cocok untuk tanaman akuarium dengan kebutuhan ringan yang berat dan membuang sedikit energi yang dihasilkan oleh LED.

Konon, untuk akuarium yang ditanam dengan persyaratan cahaya rendah, pencahayaan LED seperti ini bisa menjadi pilihan yang sangat baik pilihan yang menawarkan pertumbuhan tanaman lebih cepat dan sehat tanpa biaya yang datang dengan banyak pencahayaan akuarium produk; Anda tidak akan mendapatkan watt yang sama.

instagram viewer

Bukan hanya tanaman di akuarium Anda yang mendapat manfaat dari pencahayaan LED: banyak spesies ikan menikmati siklus cahaya reguler yang meniru siang dan malam untuk mempertahankan ritme sirkadian mereka, memungkinkan mereka untuk beristirahat, mencari makanan, dan aktif seperti yang akan mereka lakukan. Alam liar.

Untuk membangun sistem pencahayaan LED yang menggerakkan siklus siang-malam untuk ikan dan tanaman di akuarium Anda, kita akan menggunakan Arduino, jam waktu nyata (RTC), dan strip LED—seperti yang dapat digunakan untuk berbagai dari Proyek pencahayaan LED Arduino.

Apa yang kamu butuhkan?

Anda hanya perlu beberapa bagian untuk menyelesaikan build ini:

  • 1x mikrokontroler Arduino dengan pin SDA/SCL (Uno, Leonardo, Micro, dll.; kami menggunakan Pro Mikro)
  • 1x DS3231 RTC modul
  • 1x WS2812/WS2812B NeoPixel RGB LED strip dengan peringkat IP65 atau lebih tinggi (kami menggunakan 60 LED strip WS2812 1 meter yang telah disegel dengan silikon; Anda dapat memanfaatkan lebih banyak LED jika Anda memiliki tangki 20+ galon)
  • 1x 12v AC ke adaptor daya DC dengan konektor laras perempuan
  • 1x 1000uF kapasitor (opsional)
  • Berbagai macam kabel dan potongan panas menyusut
  • Lem super/pita dua sisi
  • Filamen printer 3D (opsional)

Anda juga akan memerlukan beberapa alat untuk menyelesaikan proyek ini.

  • Sebuah besi solder
  • Pemotong / penari telanjang kawat
  • Pistol panas
  • Printer 3D (opsional)

Menghubungkan Pengaturan Lampu LED Aquarium DIY Anda

Menghubungkan pencahayaan akuarium DIY Anda sederhana, hanya dengan beberapa koneksi yang harus dibuat sebelum Anda dapat memulai dengan pengkodean proyek Anda. Diagram di atas menunjukkan semua koneksi yang perlu Anda buat, tetapi kami telah menguraikannya di bagian di bawah ini.

Menghubungkan Jam Waktu Nyata

DS3231 RTC dalam proyek ini bertindak sebagai pengatur waktu untuk pencahayaan LED di akuarium kami. Modul ini memiliki empat pin yang akan kita gunakan: SCL, SDA, VCC, dan GND, yang semuanya dapat langsung disambungkan ke Arduino Pro Micro.

  • SCL ke 3 di Arduino
  • SDA ke 2 di Arduino
  • VCC ke 5V di Arduino
  • GND ke GND di Arduino

Menghubungkan Strip LED

Pengkabelan strip LED Anda lebih rumit daripada RTC, karena LED cenderung agak jauh dari Arduino dan Anda perlu menggunakan adaptor daya terpisah untuk mendapatkan kecerahan penuh dari LED Anda. Diagram di atas menunjukkan bagaimana Anda dapat menghubungkan strip NeoPixel LED Anda ke Arduino dan sumber daya untuk yang terbaik hasil.

  • DIN ke Digital Pin 7 di Arduino
  • GND ke GND di Arduino dan Terminal Sumber Daya Negatif (-)
  • VCC/5V+/12V ke Terminal Sumber Daya Positif (+)
  • Sangat disarankan agar Anda menggunakan kapasitor 1000uF melintasi Terminal Sumber Daya Negatif (-) dan Positif (+) untuk mencegah kerusakan pada LED Anda

Selain menghubungkan strip LED kami ke sumber daya Arduino dan 12V kami, kami juga akan memodifikasi Klon NeoPixel untuk membuat tiga strip LED yang lebih kecil yang akan dihubungkan dalam rantai dengan kabel panjang. Kami akan menggunakan kabel triple-core berinsulasi untuk ini, bersama dengan heat shrink untuk menutup sambungan. Strip LED kami dilengkapi dengan konektor JST di setiap ujungnya, memberi kami cara mudah untuk melepaskan strip dari Arduino kami.

Mengkodekan Lampu NeoPixel Akuarium Arduino DIY Anda

Elemen pengkodean proyek ini lebih rumit daripada pengkabelan. Anda dapat memulai dengan proyek Arduino kosong dasar, karena kami tidak memerlukan apa pun di luar fungsi yang menyertainya.

Menambahkan Perpustakaan

Sebelum menambahkan kode apa pun, kita perlu menginstal beberapa perpustakaan, dan semua ini dapat ditemukan di dalam Manajer Perpustakaan Arduino IDE.

  • Kawat.h: Pustaka ini dilengkapi dengan Arduino IDE dan memungkinkan Anda untuk berkomunikasi dengan komponen I2C, seperti RTC kami.
  • Adafruit_NeoPixel.h: Pustaka ini menambahkan fungsi/kelas untuk mengontrol LED NeoPixel, tetapi berfungsi dengan baik dengan strip LED WS2812 reguler kami.
  • RTClib.h: Pustaka ini memungkinkan kami untuk mengontrol modul DS3231 RTC kami.
#termasuk  // Pustaka Strip LED
#termasuk
#termasuk //Perpustakaan RTC

Menambahkan Variabel Global (Opsional)

Kami telah menambahkan variabel global ke kode kami sehingga kami dapat mengubah perilaku pencahayaan kami dengan tombol dan input lain di proyek mendatang. Ini tidak penting, tetapi akan lebih mudah untuk mengedit kode Anda saat Anda perlu membuat perubahan. Kami menambahkan variabel untuk kecerahan dan rona LED, bersama dengan variabel untuk menyimpan warna strip LED kami.

Mendeklarasikan & Menginisialisasi Objek Strip LED/RTC

Selanjutnya, kita perlu mendeklarasikan strip LED dan RTC kita sebagai objek yang dapat digunakan oleh Arduino kita, diikuti dengan menginisialisasinya dalam loop pengaturan kita.

Strip LED kami dapat dideklarasikan dengan terlebih dahulu menentukan pin yang digunakan dan mengatur jumlah LED pada strip, tetapi kemudian Anda dapat menggunakan baris di bawah ini untuk membuat deklarasi itu sendiri.

#define LED_PIN 7 // Setel strip LED kami ke pin 7
#define LED_COUNT 60 // Menyetel jumlah LED NeoPixel
Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Mendeklarasikan objek strip LED kami

RTC lebih mudah dideklarasikan, dan Anda hanya perlu menggunakan baris di bawah ini untuk menjalankannya; semua pengaturan penting diterapkan secara default.

RTC_DS3231 rtc;

Setelah ini selesai, kita hanya perlu menginisialisasi RTC kita menggunakan kode berikut di kelas setup kita.

 Serial.begin (57600); //Memulai koneksi serial kami

#ifndef ESP8266
while (!Serial); // Tunggu hingga port serial terhubung
#berakhir jika

jika (! rtc.mulai()) {
Serial.println("Tidak dapat menemukan RTC");
Serial.flush();
sedangkan (1) penundaan (10);
} //Ini menguji untuk memastikan bahwa RTC kita terhubung

Membangun Loop Timer

Sekarang, saatnya membuat lingkaran utama untuk strip LED akuarium Anda. Ini ditangani dalam loop utama yang disertakan dengan proyek Arduino kosong Anda, dan ini berarti bahwa itu akan berjalan terus menerus.

Kami memulai loop dengan memeriksa waktu saat ini dengan jam real-time kami dan mengatur variabel untuk menyimpannya, memastikan bahwa siang hari disediakan di siang hari. Setelah kita memiliki Tanggal Waktu variabel untuk dimainkan, kita dapat menetapkan jam dan menit saat ini untuk memisahkan variabel, memungkinkan kita mengontrol pencahayaan dengan presisi tinggi.

 DateTime sekarang = rtc.now(); //Mengumpulkan waktu saat ini
int jj = sekarang.jam(); //Menerapkan arus our ke variabel

Setelah ini, kami menggunakan serangkaian jika pernyataan untuk menentukan apakah akan menyalakan lampu kami. Ini jika pernyataan memeriksa untuk melihat apakah jam saat ini sama dengan atau lebih dari jam 9 pagi dan sama dengan atau kurang dari jam 9 malam, memberi kita jendela dari jam 9 pagi sampai jam 9 malam agar lampu LED kita menyala.

Jika kondisi ini terpenuhi, kode dalam jika pernyataan mengatur kecerahan dan warna strip LED kami ke variabel global yang kami atur sebelumnya, bersama dengan menggunakan a menunjukkan perintah untuk memperbarui strip LED. Jika kondisi tidak terpenuhi, lain pernyataan digunakan untuk mengatur kecerahan LED ke 0, mematikannya secara efektif pada malam hari.

 strip.mulai(); //Menyalakan strip LED
strip.tampilkan(); //Menampilkan perubahan LED dari setiap loop

if (hh <= 8) { //Jika waktunya sama atau kurang dari jam 8 pagi, strip LED akan hilang
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Jika waktu antara jam 9 pagi dan 9 malam, LED menyala
strip.setBrightness (255);
strip.fill (kuningPutih, 0, 59);
}

if (hh >= 21) { //Jika waktunya sama atau lebih besar dari jam 9 malam, strip LED akan hilang
strip.clear();
}

Kode Lengkap

#include //library Strip LED
#termasuk
#include //RTC Library
#define LED_PIN 7 // Setel strip LED kami ke pin 7
#define LED_COUNT 60 // Menyetel jumlah LED NeoPixel
Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Mendeklarasikan objek strip LED kami
uint32_t kuningPutih = strip. Warna (255, 251, 201); //Membuat variabel warna terang
RTC_DS3231 rtc; // Mendeklarasikan objek RTC kita
batalkan pengaturan() {
Serial.begin (57600); //Memulai koneksi serial kami
#ifndef ESP8266
while (!Serial); // Tunggu hingga port serial terhubung
#berakhir jika
jika (! rtc.mulai()) {
Serial.println("Tidak dapat menemukan RTC");
Serial.flush();
sedangkan (1) penundaan (10);
} //Ini menguji untuk memastikan bahwa RTC kita terhubung
}
lingkaran kosong() {
DateTime sekarang = rtc.now(); //Mengumpulkan waktu saat ini
int jj = sekarang.jam(); //Menerapkan arus our ke variabel
strip.mulai(); //Menyalakan strip LED
strip.tampilkan(); //Menampilkan perubahan LED dari setiap loop
if (hh <= 8) { //Jika waktunya sama atau kurang dari jam 8 pagi, strip LED akan hilang
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Jika waktu antara jam 9 pagi dan 9 malam, LED menyala
strip.setBrightness (255);
strip.fill (kuningPutih, 0, 59);
}
if (hh >= 21) { //Jika waktunya sama atau lebih besar dari jam 9 malam, strip LED akan hilang
strip.clear();
}
penundaan (1000); // Penundaan untuk stabilitas
}

Memasang Pencahayaan Akuarium LED Anda

Strip LED kami dilengkapi dengan strip perekat praktis yang terpasang, membuatnya sangat mudah untuk dipasang ke kap/tutup tangki kami. Hasil yang sama dapat dicapai dengan selotip dua sisi atau lem super, tetapi Anda harus berhati-hati untuk memastikan bahwa perekat yang Anda pilih dapat bertahan dari penumpukan kondensasi. Anda juga dapat mencetak dudukan lampu akuarium baru secara 3D jika tangki Anda tidak memiliki penutup, dan wadah untuk komponen lain yang telah Anda gunakan.

Lampu Akuarium Arduino DIY

Tanaman akuarium dan ikan mendapat manfaat dari siklus pencahayaan yang teratur. Meskipun cahaya kami tidak berspektrum penuh, namun masih memberikan banyak cahaya biru, lampu hijau, dan lampu merah yang dibutuhkan tanaman Anda. Apa yang terbaik, bagaimanapun, adalah bahwa proyek ini sangat terjangkau, sederhana, dan menyenangkan untuk dilakukan.

Aksesoris Tangki Akuarium Cerdas Terbaik

Otomatiskan akuarium Anda dengan berinvestasi pada aksesori pintar yang akan mengurangi kebutuhan akan intervensi manual, menjaga ikan Anda tetap sehat dan bahagia.

Baca Selanjutnya

MembagikanMenciakSurel
Topik-topik terkait
  • buatan sendiri
  • Arduino
  • Lampu LED
  • Rumah Pintar
Tentang Penulis
Samuel L Garbett (33 Artikel Diterbitkan)

Samuel adalah penulis teknologi yang berbasis di Inggris dengan hasrat untuk semua hal DIY. Memulai bisnis di bidang pengembangan web dan pencetakan 3D, serta bekerja sebagai penulis selama bertahun-tahun, Samuel menawarkan wawasan unik tentang dunia teknologi. Berfokus terutama pada proyek teknologi DIY, dia tidak lebih dari berbagi ide menyenangkan dan menarik yang dapat Anda coba di rumah. Di luar pekerjaan, Samuel biasanya dapat ditemukan bersepeda, bermain video game PC, atau berusaha mati-matian untuk berkomunikasi dengan kepiting peliharaannya.

More From Samuel L. Garbett

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan