Akvaryum bitkileri fotosentez yoluyla enerji yaratmak için ışığa ihtiyaç duyarken, birçok balık düzenli olarak ışık döngüsü, ancak zaten sahip olduğunuz DIY elektronik araçlarıyla onlar için yapay aydınlatmayı nasıl sağlayabilirsiniz? sahip olmak? Arduino, gerçek zamanlı saat ve LED şerit kullanarak bir DIY akvaryum aydınlatma sistemi oluşturalım.

LED Akvaryum Işığı Kullanmak

Başlamadan önce, bu projede kullandığımız LED'lerin gün ışığını taklit eden tam spektrumlu LED'ler olmadığını belirtmekte fayda var. Bu, bitkiler için faydalı olan tüm ışık dalga boylarını sağlamadıkları anlamına gelir. ağır ışık ihtiyacı olan ve akvaryum tarafından üretilen enerjinin az bir miktarını boşa harcayan akvaryum bitkileri için uygun değildir. LED'ler.

Bununla birlikte, düşük ışık gereksinimleri olan bitkili akvaryumlar için bunun gibi LED aydınlatma mükemmel olabilir. Birçok akvaryum aydınlatmasının getirdiği maliyet olmadan daha hızlı ve daha sağlıklı bitki büyümesi sunan seçim Ürün:% s; Aynı watt'ı alamazsınız.

instagram viewer

LED aydınlatmadan yararlanan sadece akvaryumunuzdaki bitkiler değildir: birçok balık türü, düzenli bir ışık döngüsünün keyfini çıkarır. sirkadiyen ritmini korumak için gece ve gündüzü taklit eder, onların dinlenmelerini, yiyecek aramalarını ve normal yaşamda olduğu gibi aktif olmalarını sağlar. vahşi.

Akvaryumunuzdaki balıklar ve bitkiler için gece-gündüz döngüsüne güç veren bir LED aydınlatma sistemi kurmak, bir Arduino, bir gerçek zamanlı saat (RTC) ve bir LED şerit kullanacağız - geniş bir çeşitlilik için kullanılabilecek şekilde ile ilgili Arduino LED aydınlatma projeleri.

Ne istiyorsun?

Bu yapıyı tamamlamak için yalnızca bir avuç parçaya ihtiyacınız var:

  • 1x Arduino mikrodenetleyici SDA/SCL pinleri ile (Uno, Leonardo, Micro, vb.; Pro Micro kullanıyoruz)
  • 1x DS3231 RTC modülü
  • IP65 dereceli veya daha yüksek 1x WS2812/WS2812B NeoPixel RGB LED şerit (silikonla kapatılmış 60 LED 1 metrelik WS2812 şerit kullanıyoruz; 20+ galonluk bir tankınız varsa daha fazla LED kullanmaktan faydalanabilirsiniz)
  • 1x 12v AC'den DC'ye güç adaptörü, dişi varil konektörlü
  • 1x 1000uF kapasitör (isteğe bağlı)
  • Çeşitli teller ve ısıyla daralan parçalar
  • Süper yapıştırıcı/çift taraflı bant
  • 3D yazıcı filamenti (isteğe bağlı)

Bu projeyi tamamlamak için bazı araçlara da ihtiyacınız olacak.

  • bir havya
  • Tel kesiciler/sıyırıcılar
  • bir ısı tabancası
  • 3D yazıcı (isteğe bağlı)

DIY Akvaryum LED Işık Kurulumunuzu Kablolama

Kendin Yap akvaryum aydınlatmanızı kurmak, projenizi kodlamaya başlamadan önce yapacağınız birkaç bağlantı ile basittir. Yukarıdaki şema, yapmanız gereken tüm bağlantıları göstermektedir, ancak bunu aşağıdaki bölümlerde ayırdık.

Gerçek Zamanlı Saati Kablolama

Bu projedeki DS3231 RTC, akvaryumumuzdaki LED aydınlatma için bir zamanlayıcı görevi görür. Bu modülün kullanacağımız dört pini var: SCL, SDA, VCC ve GND, hepsi doğrudan Arduino Pro Micro'muza bağlanabiliyor.

  • Arduino'da SCL'den 3'e
  • Arduino'da SDA'dan 2'ye
  • Arduino'da VCC'den 5V'a
  • Arduino'da GND'den GND'ye

LED Şeridi Kablolama

LED'lerin Arduino'dan biraz uzakta olması muhtemel olduğundan ve ayrı bir güç adaptörü kullanmanız gerektiğinden, LED şeridinizi kablolamak RTC'den daha karmaşıktır. LED'lerinizden tam parlaklık elde etmek için. Yukarıdaki şema, LED NeoPixel şeridinizi Arduino'nuza ve güç kaynağınıza en iyi şekilde nasıl bağlayabileceğinizi gösterir. Sonuçlar.

  • Arduino'da DIN'den Dijital Pin 7'ye
  • Arduino ve Negatif (-) Güç Kaynağı Terminalinde GND'den GND'ye
  • VCC/5V+/12V - Pozitif (+) Güç Kaynağı Terminali
  • LED'lerinize zarar vermemek için Negatif (-) ve Pozitif (+) Güç Kaynağı Terminalleri arasında 1000 uF kapasitör kullanmanız şiddetle tavsiye edilir.

LED şeridimizi Arduino ve 12V güç kaynağımıza bağlamanın yanı sıra, Uzun bir kablo ile bir zincire bağlanacak üç küçük LED şeridi oluşturmak için NeoPixel klonu. Bunun için yalıtımlı üç damarlı bir kablo ve ek yerlerini kapatmak için ısıyla büzüşen kablo kullanacağız. LED şeridimiz her iki ucunda JST konektörleri ile birlikte geldi ve şeridi Arduino'muzdan ayırmayı mümkün kılmak için bize uygun bir yol sağladı.

DIY Arduino Akvaryumu NeoPixel Işıklarınızı Kodlama

Bu projenin kodlama öğesi kablolamadan daha karmaşıktır. Temel bir boş Arduino projesiyle başlayabilirsiniz, çünkü onunla birlikte gelen işlevlerin dışında hiçbir şeye ihtiyacımız olmayacak.

Kitaplıkları Ekleme

Herhangi bir kod eklemeden önce bazı kütüphaneler kurmamız gerekiyor ve bunların hepsi Arduino IDE Library Manager içinde bulunabilir.

  • Tel.h: Bu kütüphane Arduino IDE ile birlikte gelir ve RTC'miz gibi I2C bileşenleri ile iletişim kurmanıza izin verir.
  • Adafruit_NeoPixel.h: Bu kitaplık, NeoPixel LED'leri kontrol etmek için işlevler/sınıflar ekler, ancak normal WS2812 LED şeridimizle de aynı şekilde çalışır.
  • RTClib.h: Bu kütüphane DS3231 RTC modülümüzü kontrol etmemizi sağlar.
#Dahil etmek  //LED Şerit kitaplığı
#Dahil etmek
#Dahil etmek //RTC Kitaplığı

Global Değişkenler Ekleme (Opsiyonel)

Gelecekteki projelerde butonlar ve diğer girdilerle aydınlatmamızın davranışını değiştirebilmemiz için kodumuza global değişkenler ekledik. Bu zorunlu değildir, ancak değişiklik yapmanız gerektiğinde kodunuzu düzenlemenizi kolaylaştıracaktır. LED şeridimizin rengini depolamak için bir değişkenle birlikte LED parlaklığı ve tonu için değişkenler ekledik.

LED Şerit/RTC Nesnelerini Bildirme ve Başlatma

Ardından, LED şeridimizi ve RTC'yi Arduino'muz tarafından kullanılabilecek nesneler olarak ilan etmemiz ve ardından bunları kurulum döngümüzde başlatmamız gerekiyor.

LED şeritlerimiz, öncelikle kullanılan pin tanımlanarak ve şerit üzerindeki LED sayısı ayarlanarak bildirilebilir, ancak daha sonra beyanı kendisi yapmak için aşağıdaki satırları kullanabilirsiniz.

#define LED_PIN 7 // LED şeridimizi pin 7'ye ayarlar
#define LED_COUNT 60 // NeoPixel LED sayısını ayarlar
Adafruit_NeoPixel şeridi (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // LED şerit nesnemizi bildirir

RTC'yi bildirmek daha kolaydır ve onu çalıştırmak için aşağıdaki satırı kullanmanız yeterlidir; tüm önemli ayarlar varsayılan olarak uygulanır.

RTC_DS3231 rtc;

Bu tamamlandığında, kurulum sınıfımızda aşağıdaki kodu kullanarak RTC'mizi başlatmamız yeterlidir.

 Serial.başlangıç ​​(57600); //Seri bağlantımızı başlatır

#ifndef ESP8266
while (!Seri); // Seri bağlantı noktasının bağlanmasını bekleyin
#endif

Eğer (! rtc.begin()) {
Serial.println("RTC bulunamadı");
Seri.flush();
(1) gecikme (10);
} //Bu, RTC'mizin bağlı olduğundan emin olmak için test eder

Zamanlayıcı Döngüsünü Oluşturma

Şimdi, akvaryum LED şeritleriniz için ana döngüyü oluşturma zamanı. Bu, boş Arduino projenizle birlikte gelen ana döngü içinde gerçekleştirilir ve bu, sürekli çalışacağı anlamına gelir.

Gerçek zamanlı saatimiz ile mevcut saati kontrol ederek ve onu saklamak için bir değişken ayarlayarak döngüye başlarız, gün boyunca gün ışığının sağlanmasını sağlarız. Bir kez sahip olduğumuz TarihSaat Oynamak için değişken, mevcut saati ve dakikayı ayrı değişkenlere atayarak aydınlatmamızı büyük bir hassasiyetle kontrol etmemizi sağlar.

 DateTime şimdi = rtc.now(); //Geçerli zamanı toplar
int hh = şimdi.saat(); // bizim akımını bir değişkene uygular

Bunu takiben, bir dizi kullandık Eğer ışıklarımızı açıp açmayacağımızı belirleyen ifadeler. Bunlar Eğer ifadeler, mevcut saatin sabah 9'a eşit veya daha fazla ve akşam 9'a eşit veya daha az olup olmadığını kontrol eder ve bize LED ışıklarımızı yakmak için sabah 9'dan akşam 9'a kadar bir pencere verir.

Bu koşullar karşılanıyorsa, içindeki kod Eğer ifadesi, LED şeritlerimizin parlaklığını ve rengini daha önce belirlediğimiz global değişkenlere ayarlar. göstermek LED şeridi güncelleme komutu. Koşullar karşılanmazsa, bir Başka ifadesi, LED'lerin parlaklığını 0'a ayarlamak ve gece boyunca onları etkin bir şekilde kapatmak için kullanılır.

 strip.begin(); //LED şeridi açar
şerit.göster(); //Her döngüdeki LED değişikliklerini gösterir

if (hh <= 8) { //Saat sabah 8'e eşit veya daha az ise, LED şerit temizlenir
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Saat 9AM ile 9PM arasındaysa, LED'ler yanar
strip.setBrightness (255);
strip.fill (sarıBeyaz, 0, 59);
}

if (hh >= 21) { //Saat 21:00'e eşit veya daha büyükse, LED şerit temizlenir
strip.clear();
}

Tam Kod

#include // LED Şerit kitaplığı
#Dahil etmek
#include //RTC Kitaplığı
#define LED_PIN 7 // LED şeridimizi pin 7'ye ayarlar
#define LED_COUNT 60 // NeoPixel LED sayısını ayarlar
Adafruit_NeoPixel şeridi (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // LED şerit nesnemizi bildirir
uint32_t yellowWhite = şerit. Renkli (255, 251, 201); //Bir açık renk değişkeni yaratır
RTC_DS3231 rtc; // RTC nesnemizi bildirir
geçersiz kurulum() {
Serial.başlangıç ​​(57600); //Seri bağlantımızı başlatır
#ifndef ESP8266
while (!Seri); // Seri bağlantı noktasının bağlanmasını bekleyin
#endif
Eğer (! rtc.begin()) {
Serial.println("RTC bulunamadı");
Seri.flush();
(1) gecikme (10);
} //Bu, RTC'mizin bağlı olduğundan emin olmak için test eder
}
boşluk döngüsü () {
DateTime şimdi = rtc.now(); //Geçerli zamanı toplar
int hh = şimdi.saat(); // bizim akımını bir değişkene uygular
strip.begin(); //LED şeridi açar
şerit.göster(); //Her döngüdeki LED değişikliklerini gösterir
if (hh <= 8) { //Saat sabah 8'e eşit veya daha az ise, LED şerit temizlenir
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Saat 9AM ile 9PM arasındaysa, LED'ler yanar
strip.setBrightness (255);
strip.fill (sarıBeyaz, 0, 59);
}
if (hh >= 21) { //Saat 21:00'e eşit veya daha büyükse, LED şerit temizlenir
strip.clear();
}
gecikme (1000); //Kararlılık için gecikme
}

LED Akvaryum Aydınlatmanızı Takma

LED şeridimiz, takılı kullanışlı bir yapışkan şeritle birlikte gelir ve bu da onu tankımızın kapağına/kapağına takmayı inanılmaz derecede kolaylaştırır. Aynı sonuç çift taraflı bant veya süper yapıştırıcı ile de elde edilebilir, ancak seçtiğiniz yapıştırıcının yoğuşma oluşumuna karşı dayanıklı olmasını sağlamak için dikkatli olmanız gerekir. Tankınızın kapağı yoksa yeni akvaryum ışığınız için bir stand ve kullandığınız diğer bileşenler için bir kılıf da 3D yazdırabilirsiniz.

DIY Arduino Akvaryum Işıkları

Akvaryum bitkileri ve balıklar düzenli bir aydınlatma döngüsünden yararlanır. Işığımız tam spektrumlu olmasa da, bitkilerinizin ihtiyaç duyduğu mavi ışığın, yeşil ışığın ve kırmızı ışığın çoğunu sağlar. Yine de en iyisi, bu projenin inanılmaz derecede uygun fiyatlı, basit ve üstlenilmesi eğlenceli olmasıdır.

En İyi Akıllı Akvaryum Tankları Aksesuarları

Balıklarınızı sağlıklı ve mutlu tutarak manuel müdahale ihtiyacını azaltacak akıllı aksesuarlara yatırım yaparak akvaryumunuzu otomatikleştirin.

Sonrakini Oku

PaylaşCıvıldamakE-posta
İlgili konular
  • kendin yap
  • Arduino
  • LED ışıklar
  • Akıllı ev
Yazar hakkında
Samuel L. Garbett (33 Makale Yayınlandı)

Samuel, kendin yap ile ilgili her şeye tutkuyla bağlı, İngiltere merkezli bir teknoloji yazarıdır. Uzun yıllar yazar olarak çalışmanın yanı sıra web geliştirme ve 3D baskı alanlarında iş kuran Samuel, teknoloji dünyasına benzersiz bir bakış açısı sunuyor. Ağırlıklı olarak kendin yap teknolojisi projelerine odaklanarak, evde deneyebileceğiniz eğlenceli ve heyecan verici fikirleri paylaşmaktan başka bir şey sevmiyor. İş dışında, Samuel genellikle bisiklet sürerken, bilgisayar oyunları oynarken veya çaresizce evcil yengeciyle iletişim kurmaya çalışırken bulunabilir.

Samuel L.'dan Daha Fazla Garbett

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın