Aquarienpflanzen brauchen Licht, um durch Photosynthese Energie zu erzeugen, während viele Fische von regelmäßigem Licht profitieren Lichtzyklus, aber wie können Sie ihnen mit den DIY-Elektronikwerkzeugen bereits künstliches Licht zukommen lassen? verfügen über? Lassen Sie uns ein DIY-Aquarium-Beleuchtungssystem mit einem Arduino, einer Echtzeituhr und einem LED-Streifen bauen.
Verwenden einer LED-Aquariumbeleuchtung
Bevor wir beginnen, ist es erwähnenswert, dass die LEDs, die wir in diesem Projekt verwenden, keine Vollspektrum-LEDs sind, die Tageslicht nachahmen. Dies bedeutet, dass sie nicht alle Lichtwellenlängen liefern, die für Pflanzen von Vorteil sind, und sie wiedergeben ungeeignet für aquarienpflanzen mit hohem lichtbedarf und geringer energieverschwendung Leuchtdioden.
Für bepflanzte Aquarien mit geringem Lichtbedarf kann eine solche LED-Beleuchtung jedoch hervorragend sein Wahl, die ein schnelleres und gesünderes Pflanzenwachstum ohne die Kosten bietet, die mit vielen Aquarienbeleuchtungen verbunden sind Produkte; Sie werden einfach nicht die gleiche Wattzahl bekommen.
Nicht nur die Pflanzen in Ihrem Aquarium profitieren von einer LED-Beleuchtung, auch viele Fischarten freuen sich über einen regelmäßigen Lichtzyklus ahmt Tag und Nacht nach, um ihren zirkadianen Rhythmus beizubehalten, damit sie sich ausruhen, nach Nahrung suchen und aktiv sein können, wie sie es tun würden das wilde.
Um ein LED-Beleuchtungssystem zu bauen, das einen Tag-Nacht-Zyklus für die Fische und Pflanzen in Ihrem Aquarium antreibt, Wir werden einen Arduino, eine Echtzeituhr (RTC) und einen LED-Streifen verwenden – wie er für eine Vielzahl von Anwendungen verwendet werden kann von Arduino LED-Beleuchtungsprojekte.
Was brauchen Sie?
Sie benötigen nur eine Handvoll Teile, um diesen Build abzuschließen:
- 1x Arduino-Mikrocontroller mit SDA/SCL-Pins (Uno, Leonardo, Micro, etc.; wir verwenden ein Pro Micro)
- 1x DS3231 RTC-Modul
- 1x WS2812/WS2812B NeoPixel RGB LED-Streifen mit Schutzart IP65 oder höher (wir verwenden einen 1-Meter-WS2812-Streifen mit 60 LEDs, der mit Silikon versiegelt wurde; Sie können von der Verwendung von mehr LEDs profitieren, wenn Sie einen 20+-Gallonen-Tank haben)
- 1x 12-V-Wechselstrom-zu-Gleichstrom-Netzteil mit Hohlbuchse
- 1x 1000uF Kondensator (optional)
- Verschiedene Drähte und Schrumpfteile
- Sekundenkleber/doppelseitiges Klebeband
- 3D-Drucker-Filament (optional)
Sie benötigen auch einige Werkzeuge, um dieses Projekt abzuschließen.
- Ein Lötkolben
- Drahtschneider/Abisolierzange
- Eine Heißluftpistole
- Ein 3D-Drucker (optional)
Verkabelung Ihres DIY-Aquarium-LED-Licht-Setups
Die Verkabelung Ihrer DIY-Aquariumbeleuchtung ist einfach, mit nur wenigen Verbindungen, die Sie herstellen müssen, bevor Sie mit der Programmierung Ihres Projekts beginnen können. Das obige Diagramm zeigt alle Verbindungen, die Sie herstellen müssen, aber wir haben dies in den folgenden Abschnitten aufgeschlüsselt.
Verkabelung der Echtzeituhr
Der DS3231 RTC in diesem Projekt fungiert als Timer für die LED-Beleuchtung in unserem Aquarium. Dieses Modul hat vier Pins, die wir verwenden werden: SCL, SDA, VCC und GND, die alle direkt mit unserem Arduino Pro Micro verdrahtet werden können.
- SCL auf 3 auf Arduino
- SDA auf 2 auf Arduino
- VCC auf 5V auf Arduino
- GND zu GND auf Arduino
Verdrahtung des LED-Streifens
Die Verkabelung Ihres LED-Streifens ist komplizierter als die RTC, da die LEDs wahrscheinlich in einiger Entfernung vom Arduino sind und Sie ein separates Netzteil verwenden müssen um die volle Helligkeit aus Ihren LEDs herauszuholen. Das obige Diagramm zeigt, wie Sie Ihren LED-NeoPixel-Streifen am besten an Ihren Arduino und Ihre Stromquelle anschließen können Ergebnisse.
- DIN zu Digital Pin 7 auf Arduino
- GND zu GND auf Arduino und negativem (-) Stromquellenanschluss
- VCC/5V+/12V zum positiven (+) Stromquellenanschluss
- Es wird dringend empfohlen, einen 1000-uF-Kondensator zwischen den negativen (-) und positiven (+) Stromquellenanschlüssen zu verwenden, um Schäden an Ihren LEDs zu vermeiden
Neben dem Anschluss unseres LED-Streifens an unsere Arduino- und 12-V-Stromquelle werden wir auch unseren modifizieren NeoPixel-Klon, um drei kleinere LED-Streifen zu erstellen, die mit einem langen Kabel in einer Kette verbunden werden. Wir werden dafür ein isoliertes dreiadriges Kabel verwenden, zusammen mit Schrumpfschlauch, um die Verbindungen abzudichten. Unser LED-Streifen wurde mit JST-Anschlüssen an jedem Ende geliefert, was uns eine bequeme Möglichkeit bietet, den Streifen von unserem Arduino zu lösen.
Kodieren Sie Ihre DIY Arduino Aquarium NeoPixel Lights
Das Codierelement dieses Projekts ist komplizierter als die Verdrahtung. Sie können mit einem einfachen, leeren Arduino-Projekt beginnen, da wir außer den damit verbundenen Funktionen nichts benötigen.
Hinzufügen der Bibliotheken
Bevor wir Code hinzufügen, müssen wir einige Bibliotheken installieren, die alle im Arduino IDE Library Manager zu finden sind.
- Draht.h: Diese Bibliothek wird mit der Arduino IDE geliefert und ermöglicht Ihnen die Kommunikation mit I2C-Komponenten wie unserer RTC.
- Adafruit_NeoPixel.h: Diese Bibliothek fügt Funktionen/Klassen zur Steuerung von NeoPixel-LEDs hinzu, funktioniert aber genauso gut mit unserem regulären WS2812-LED-Streifen.
- RTClib.h: Diese Bibliothek ermöglicht es uns, unser DS3231 RTC-Modul zu steuern.
#enthalten //LED-Streifenbibliothek
#enthalten
#enthalten //RTC-Bibliothek
Globale Variablen hinzufügen (optional)
Wir haben unserem Code globale Variablen hinzugefügt, damit wir das Verhalten unserer Beleuchtung mit Schaltflächen und anderen Eingaben in zukünftigen Projekten ändern können. Dies ist nicht unbedingt erforderlich, erleichtert jedoch die Bearbeitung Ihres Codes, wenn Sie Änderungen vornehmen müssen. Wir haben Variablen für die LED-Helligkeit und den Farbton sowie eine Variable zum Speichern der Farbe unseres LED-Streifens hinzugefügt.
Deklarieren und Initialisieren von LED-Streifen/RTC-Objekten
Als nächstes müssen wir unseren LED-Streifen und RTC als Objekte deklarieren, die von unserem Arduino verwendet werden können, gefolgt von der Initialisierung in unserer Setup-Schleife.
Unsere LED-Streifen können deklariert werden, indem zuerst der verwendete Pin definiert und die Anzahl der LEDs auf dem Streifen festgelegt wird, aber dann können Sie die folgenden Zeilen verwenden, um die Deklaration selbst vorzunehmen.
#define LED_PIN 7 // Setzt unseren LED-Streifen auf Pin 7
#define LED_COUNT 60 // Legt die Anzahl der NeoPixel-LEDs fest
Adafruit_NeoPixel-Streifen (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Deklariert unser LED-Streifenobjekt
Die RTC ist einfacher zu deklarieren, und Sie müssen nur die folgende Zeile verwenden, um sie zum Laufen zu bringen. Alle wichtigen Einstellungen werden standardmäßig übernommen.
RTC_DS3231 RTC;
Sobald dies abgeschlossen ist, müssen wir nur noch unsere RTC mit dem folgenden Code in unserer Setup-Klasse initialisieren.
Serial.begin (57600); //Beginnt unsere serielle Verbindung
#ifndef ESP8266
während (!Serial); // Warten Sie, bis die serielle Schnittstelle verbunden ist
#endif
wenn (! rtc.begin()) {
Serial.println ( "RTC konnte nicht gefunden werden");
Serial.flush ();
während (1) Verzögerung (10);
} //Dies testet, um sicherzustellen, dass unsere RTC verbunden ist
Erstellen der Timer-Schleife
Jetzt ist es Zeit, die Hauptschleife für Ihre Aquarien-LED-Streifen zu bauen. Dies wird innerhalb der Hauptschleife behandelt, die mit Ihrem leeren Arduino-Projekt geliefert wurde, und das bedeutet, dass es kontinuierlich ausgeführt wird.
Wir beginnen die Schleife, indem wir die aktuelle Zeit mit unserer Echtzeituhr überprüfen und eine Variable setzen, um sie zu speichern, um sicherzustellen, dass tagsüber Tageslicht bereitgestellt wird. Sobald wir ein Terminzeit Variable spielen, können wir die aktuelle Stunde und Minute separaten Variablen zuweisen, wodurch wir unsere Beleuchtung mit großer Präzision steuern können.
DateTime now = rtc.now(); //Erfasst die aktuelle Zeit
int hh = now.hour(); // Wendet das aktuelle Our auf eine Variable an
Anschließend verwendeten wir eine Reihe von wenn Aussagen, um zu bestimmen, ob wir unsere Lichter einschalten sollen. Diese wenn Anweisungen überprüfen, ob die aktuelle Stunde gleich oder größer als 9 Uhr und gleich oder kleiner als 21 Uhr ist, was uns ein Fenster von 9 Uhr bis 21 Uhr gibt, um unsere LED-Leuchten einzuschalten.
Wenn diese Bedingungen erfüllt sind, codieren Sie innerhalb der wenn -Anweisung setzt die Helligkeit und Farbe unserer LED-Streifen auf die globalen Variablen, die wir zuvor festgelegt haben, zusammen mit der Verwendung von a Show Befehl zum Aktualisieren des LED-Streifens. Liegen die Voraussetzungen nicht vor, an anders -Anweisung wird verwendet, um die Helligkeit der LEDs auf 0 zu setzen und sie während der Nacht effektiv auszuschalten.
strip.begin(); // Schaltet den LED-Streifen ein
Strip-Show(); // Zeigt die LED-Änderungen von jeder Schleife anif (hh <= 8) {// Wenn die Zeit gleich oder kleiner als 8 Uhr morgens ist, wird der LED-Streifen gelöscht
strip.clear();
}
if ((hh > 8) && (hh < 21)) {//Wenn die Zeit zwischen 9:00 und 21:00 liegt, schalten sich die LEDs ein
strip.setBrightness (255);
strip.fill (yellowWhite, 0, 59);
}
if (hh >= 21) {// Wenn die Zeit gleich oder größer als 21 Uhr ist, wird der LED-Streifen gelöscht
strip.clear();
}
Der vollständige Code
#include //LED-Streifenbibliothek
#enthalten
#include //RTC-Bibliothek
#define LED_PIN 7 // Setzt unseren LED-Streifen auf Pin 7
#define LED_COUNT 60 // Legt die Anzahl der NeoPixel-LEDs fest
Adafruit_NeoPixel-Streifen (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Deklariert unser LED-Streifenobjekt
uint32_t yellowWhite = Streifen. Farbe (255, 251, 201); //Erzeugt eine Variable für die Lichtfarbe
RTC_DS3231 RTC; // Deklariert unser RTC-Objekt
ungültige Einrichtung () {
Serial.begin (57600); //Beginnt unsere serielle Verbindung
#ifndef ESP8266
während (!Serial); // Warten Sie, bis die serielle Schnittstelle verbunden ist
#endif
wenn (! rtc.begin()) {
Serial.println ( "RTC konnte nicht gefunden werden");
Serial.flush ();
während (1) Verzögerung (10);
} //Dies testet, um sicherzustellen, dass unsere RTC verbunden ist
}
Leere Schleife () {
DateTime now = rtc.now(); //Erfasst die aktuelle Zeit
int hh = now.hour(); // Wendet das aktuelle Our auf eine Variable an
strip.begin(); // Schaltet den LED-Streifen ein
Strip-Show(); // Zeigt die LED-Änderungen von jeder Schleife an
if (hh <= 8) {// Wenn die Zeit gleich oder kleiner als 8 Uhr morgens ist, wird der LED-Streifen gelöscht
strip.clear();
}
if ((hh > 8) && (hh < 21)) {//Wenn die Zeit zwischen 9:00 und 21:00 liegt, schalten sich die LEDs ein
strip.setBrightness (255);
strip.fill (yellowWhite, 0, 59);
}
if (hh >= 21) {// Wenn die Zeit gleich oder größer als 21 Uhr ist, wird der LED-Streifen gelöscht
strip.clear();
}
Verzögerung (1000); // Verzögerung für Stabilität
}
Anpassen Ihrer LED-Aquariumbeleuchtung
Unser LED-Streifen wurde mit einem praktischen Klebestreifen geliefert, der es unglaublich einfach macht, ihn an der Haube/dem Deckel unseres Tanks anzubringen. Das gleiche Ergebnis kann mit doppelseitigem Klebeband oder Sekundenkleber erzielt werden, aber Sie müssen darauf achten, dass der von Ihnen gewählte Klebstoff die Bildung von Kondenswasser übersteht. Sie können auch einen Ständer für Ihre neue Aquarienbeleuchtung in 3D drucken, wenn Ihr Aquarium keinen Deckel hat, und ein Gehäuse für die anderen Komponenten, die Sie verwendet haben.
DIY Arduino Aquariumbeleuchtung
Aquarienpflanzen und Fische profitieren von einem regelmäßigen Beleuchtungszyklus. Unser Licht ist zwar kein Vollspektrumlicht, liefert aber dennoch einen Großteil des blauen, grünen und roten Lichts, das Ihre Pflanzen benötigen. Das Beste ist jedoch, dass dieses Projekt unglaublich erschwinglich, einfach und unterhaltsam ist.
Automatisieren Sie Ihr Aquarium, indem Sie in intelligentes Zubehör investieren, das die Notwendigkeit manueller Eingriffe reduziert und Ihre Fische gesund und glücklich hält.
Lesen Sie weiter
- DIY
- Arduino
- LED Lichter
- Intelligentes Zuhause
Samuel ist ein in Großbritannien ansässiger Technologieautor mit einer Leidenschaft für alles, was mit Heimwerken zu tun hat. Nachdem er Unternehmen in den Bereichen Webentwicklung und 3D-Druck gegründet und viele Jahre als Autor gearbeitet hat, bietet Samuel einen einzigartigen Einblick in die Welt der Technologie. Er konzentriert sich hauptsächlich auf DIY-Tech-Projekte und liebt nichts mehr, als lustige und aufregende Ideen zu teilen, die Sie zu Hause ausprobieren können. Außerhalb der Arbeit trifft man Samuel normalerweise beim Radfahren, beim Spielen von PC-Videospielen oder beim verzweifelten Versuch, mit seiner Haustierkrabbe zu kommunizieren.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden