Aquarium-Controller

Aquarium Controller: 10 Schritte (mit Bildern)

Dieses Instructable zeigt Ihnen, wie man eine Aquarium-Controller.

Zuallererst: Ich bin kein Ingenieur und kein Programmierer. Es können Fehler auftreten. Fragen Sie daher nach, ob Unklarheiten vorliegen. Wir wollen keinen Fischkocher machen :)

Ich wünsche Ihnen viel Spaß und viel Spaß bei diesem Projekt.

Ok, jetzt ein paar Hintergrundinformationen: Ich habe 4 Aquarien und brauchte viele Zeitschaltuhren für das Licht, weil ich Tageslicht, Dämmerung, Nachtlicht oder Scheinwerfer benutze. Dann brauche ich Zeitschaltuhren für CO2-Magnetventile (CO2-Schalter?) Und einige Steckdosen für eine Heizung.

Viele Schalter, viele Steckdosen, viel Geld, das Sie brauchen. Es wäre viel einfacher, wenn ein Arduino das alles könnte.

Ich dachte ein wenig: Ich möchte keine Hochspannung an meinem Controller, weil ich kein Profi bin. Ich möchte alles in einem und ich möchte sehen, wie es funktioniert. Das ist alles ;)

Das Ziel: Ein Arduino, der Tageslicht (LED und Leuchtstofflampen), Dämmerung (LED), Nachtlicht / Spots (LED) nach Zeit und Länge steuert und das Licht nicht plötzlich ein- und ausschalten soll, sondern langsam gedimmt. Der Arduino sollte die Temperatur messen und die Heizung ein- oder ausschalten. Der Arduino sollte Radio an Funksteckdosen für Lampen oder Gegenstände mit hoher Spannung senden. Und das Arduino sollte mir einige Informationen über alle Werte (Temp, Ph, Licht, Sockel) auf einem schönen kleinen Bildschirm geben und ich möchte einen Bewegungserkennungssensor zum Einschalten eines Nachtlichts, wenn ich bei allen Lichtszenen in den Tank schauen möchte Aus (zB mitten in der Nacht) Das ist nicht so viel, oder? ;)

  • Am Ende finden Sie ein Flussdiagramm. Es beschreibt die Funktion.

Aktualisieren: Das Projekt wird fortgesetzt ... siehe Schritt 10.

Software & Updates nur für meine nächsten Projekte - Aquarium Controller II + III + IV

Zubehör:

Schritt 1: Was Sie brauchen

- 1x Arduino UNO

- 1x RGB-Shield *

- 1x Prototyp-Schild *

- 1x TFT 1.8 "Display

- 1x RealTimeClock DS3231RTC

- 1x wasserdichter DS18B20 Temperatursensor

- 1x PH-Sonde und Elektronik (für die Zukunft)

- 1x Widerstand 4k7

- 1x Funksender RF433MHz

- einige Funksteckdosen (Funkempfänger?)

- 1x Ultraschallsensor HC-SR04 *

- 3x FETs (BUZ11) *

- 3x Widerstand 1K *

- 3x Widerstand 1M *

(* Sie können auch ein RGB-Schild verwenden)

- 1x Netzteil 12V 5-10A

- 1x Netzteil 5V (nur für Arduino)

- 1x Ein Fall, den Sie mögen.

- Drähte, Kabel, Flachbandkabel

- Schraubverbindungen

- männliche und weibliche Steckverbinder

- einige Werkzeuge

Sie können beispielsweise alle Teile bei eBay erwerben. Wenn Sie einen anderen FET verwenden möchten, verwenden Sie bitte einen FET, der speziell für TTL on Gate entwickelt wurde. (5V Bereich)

Sie können einen Spannungsregler von 12V bis 5V für den Arduino verwenden, aber ich nehme an, der Regler wird warm oder heiß, aber Sie sollten den 12V auch nicht für den Arduino verwenden. Daher ist eine 5-V-Stromversorgung für den Arduino eine gute Idee.

Schritt 2: Verbinden aller Teile miteinander

Es sieht etwas schwierig aus, ist es aber nicht;)

Lass uns anfangen. Schritt für Schritt.

Zunächst müssen Sie entscheiden, ob Sie mit Gegenständen bauen oder einen Schild verwenden möchten.

Lass es uns in DIY versuchen. Es ist billiger;)

Ich benutze für mein Aquarium-Licht LED-Streifen. Eine in voller Länge für die Dämmerung, eine zusammen für Tageslicht und blaue LEDs oder eine kurze LED-Leiste als Scheinwerfer zur Simulation von Mondschein.

Ich brauche also eine FAT (W1 = weiß1) für Tageslicht, eine FAT (W2 = weiß2) für Tageslicht / Dämmerung und eine dritte FAT (B = blau) für Mondschein.

Schritt 3: Fette einlöten

Ich löte 3 FATs und die 1k- und 1M-Widerstände auf eine Leiterplatte.

Der 1k-Widerstand am linken Pin von BUZ11, der 1M-Widerstand zwischen dem linken und rechten Pin von BUZ11. Masse am rechten Pin und der mittlere Pin wird ausgegeben.

Das brauchst du 3 mal. Sie können jedoch maximal 5 FATs verwenden. Weil Sie dafür 5 freie PWMs (Arduino Outputs) haben.

Für die LED-Streifen und das Netzteil sollten Sie Schraubverbinder verwenden.

Und für die Verbindung zwischen Platine und Arduino habe ich Flachbandkabel verwendet. Mit oder ohne Stecker.

Schritt 4: RTC, RF433MHz, Temp-Sensor einlöten

Prototyp-Boards haben Kupferstreifen für + 5V und sind in der Mitte sowie auf der linken und rechten Seite geschliffen.

Wenn Sie die Einzelteile geschickt ordnen, sparen Sie Draht und Löten;)

Ich habe die Echtzeituhr (mit der Batterie oben) und den RF433MHz in einer Reihe in der Mitte auf Steckkontakte gelegt. Es ist einfacher, sie zu wechseln, wenn sie unbrauchbar oder beschädigt sind.

Für den Temp-Sensor verwende ich auch Steckkontakte. Ich löte die Stifte am Sensor und die Buchsenleiste auf der Platine in der Nähe des Arduino PIN7.

Ich löte das Flachbandkabel für die FATs an der Unterseite. Es befindet sich also zwischen Prototype-Board und Arduino.

Siehe das Bild oben.

Schritt 5: TFT-Bildschirm einlöten

Es gibt viele Arten von TFT-Bildschirmen. Bitte schauen Sie sich die Unterseite der Platine oder den Anschluss für eine detaillierte Verwendung an!

Du brauchst:

  • Stromversorgung (+ 5V und Masse)
  • Zurücksetzen -> Zurücksetzen
  • CS -> PIN8
  • DC -> PIN4
  • SDA -> A4
  • SCK -> A5

(links das TFT-Board, rechts das Arduino)

Vielleicht hast du Pins wie BL = Backlight. Sie müssen eine Verbindung zu 5V / GND herstellen.

Einige TFT-Bildschirme haben einen SD-Steckplatz. Ich benutze es nicht.

Um den Bildschirm mit dem Arduino zu verbinden, verwende ich auch Steckverbinder und Flachbandkabel.

Das Display zeigt Ihnen:

  • Der Name des Controllers;)
  • Temperatur vom Temperaturfühler
  • Zeit (hh: mm) / möglicherweise in der Zukunft PH-Wert in dieser Zeile
  • Wasserstand oder vielleicht Statusfutterautomat (jetzt ohne Funktion)
  • Status (vorerst: beschädigte Gegenstände / Betriebstemperatur)
  • Ferngesteuertes Licht
  • Funkheizung
  • Funkgesteuertes CO2
  • Intensität der Beleuchtung (Tageslicht, Dämmerung, Mondlicht)

  • Grafische Darstellung der Beleuchtung

Schritt 6: Vorbereiten der Funksteckdosen

Es gibt verschiedene Arten von Funksteckdosen. Einige mit DIP-Schaltern, andere mit Drehschaltern.

Ich verwende Steckdosen mit Drehschaltern, um den Übertragungscode einzustellen, und meine Skizze (Arduino-Programm) liefert diese Art von Funksteckdosen. Es ist jedoch einfach, den Code zu ändern, um Funksteckdosen mit DIP-Schaltern (Gruppe und Einheit) zu verwenden.

Zum Einstellen der Steckdosen benutze ich das erste Drehrad als Gruppe, um das Aquarium auszuwählen und stelle drei Steckdosen auf 1.

Und dann habe ich die zweiten Räder eingestellt. Ich wähle eine Fassung für Leuchtstofflampen (Aquarium 1, Fassung 1), eine für die Heizung (Aquarium 1, Fassung 2) und eine für CO2 (Aquarium 1, Fassung 3). Das gleiche gilt für Aquarium 2 (Aquarium 2, Sockel 1, ...) und so weiter ...

Die Reihenfolge der Sockel ist in der Software angegeben und sollte nicht geändert werden, da der TFT-Bildschirm ebenfalls in dieser Reihenfolge gestaltet ist.

Schritt 7: Bewegungserkennung

Ok, zu diesem Zeitpunkt übernimmt der Arduino die Kontrolle;)

Das Licht ist zeitgesteuert und es kann kein Schalter verwendet werden oder wird benötigt, um das Aquarium zu beleuchten! Fein.

Aber ich brauche ein paar Schalter, um zu leuchten, wenn ... ähm ... das ist, was ich entfernen wollte! : /

Leuchtet tagsüber. Nachts geht das Licht aus. Aber ich möchte eine separate Steuerung;) Die Bewegungserkennung ist meine Lösung.

Ich denke, es ist eine gute Idee, ein kleines Licht (Punkt oder blaue LED) als Mondlicht anzuzünden, wenn ich nachts in ein Aquarium schauen möchte, wenn alle Lichter ausgeschaltet sind.

Ein Ultraschallsensor konnte mich in der Nähe des Tanks erkennen, einen kleinen Scheinwerfer einschalten und nach einer Weile wieder ausschalten, aber nicht plötzlich sanft.

Es ist ganz einfach, den Sensor auszulösen, auf das Echo zu warten und ein wenig zu rechnen. Erst wenn der Sensor mich in einer Entfernung von 2 bis 3 Fuß erkennt und es nach 22 Uhr ist, leuchtet der B-FET (Blaulicht) zu 50% auf. Voila, Mondschein;)

Schritt 8: Was als nächstes kommt;)

Arduinos Speicher ist nicht voll, wir haben noch Ausgaben. Was können wir sonst noch tun?

Ich hatte es schon vorgeschlagen, ich hätte gerne eine PH-Kontrolle. Die Teile sind bestellt. Die Lieferung dauert noch. Ich erzähls dir später ;)

Eine andere Idee betrifft eine automatische Zuführung. Ok, Sie können eine Menge Feeder kaufen, aber dieser Feeder funktioniert nicht richtig, weil der Feed zu viel oder zu wenig ist. Was ist mit Tablettenfütterung?

Normalerweise bekommt man einen Futterautomat mit rollendem Futtertank, aus dem zweimal am Tag etwas ins Aquarium fällt. Ok, nicht die beste Lösung, oder? Aber es ist einfach;)

Ich denke an etwas anderes. Kennen Sie den alten Zigarettenspender? Sie stecken Geld hinein, ziehen eine Schublade heraus und holen Ihre Zigarettenschachtel. Nur EINE Kiste, da die Schublade die gleiche Größe hat, in die nur eine Kiste passt.

OK, Sie benötigen Ihre Fischfutterbox und eine Schublade, in die nur so viel Futter passt, wie Sie benötigen.

Stellen Sie sich nun die Fischfutterbox als Silo vor und die Schublade befindet sich unter diesem Silo. Und stellen Sie sich vor, es gibt ein Servo, das die Schublade bewegt.

Nun, die Schublade befindet sich in oder unter der Lebensmittelbox und ist daher voll mit Lebensmitteln. Das Servo zieht die Schublade heraus, das Futter fällt ins Aquarium. So oft du willst, gesteuert vom Arduino.

Dann schiebt das Servo die Schublade wieder in den Einzugskasten und dieser füllt sich wieder mit dem Einzug, der von oben automatisch einfällt. Und wie beim Zigarettenspender blockieren die folgenden Zigarettenschachteln nichts, das muss auch an dieser Maschine sein. Hört sich einfach an, hm? ;)

Ich habe eine ziemlich genaue Vorstellung davon, aber ich muss darüber nachdenken. Ich erzähls dir später....

Gestern habe ich Nährstoffpumpen gesehen. Aber ... ich sage es dir später;)

Schritt 9: Code

Puh...

Wie kann ich das erklären oder übersetzen?

Ich habe das Programm in einfacher "Arduino-Sprache" geschrieben. Ich habe keine schwierigen Codes verwendet und wahrscheinlich können Sie viel besser machen.

Aktualisieren: Ich habe eine Beschreibung der Funktion hinzugefügt.

Ich denke, es ist das Beste, du siehst es dir an und fragst mich, ob etwas nicht eindeutig ist.

.

Schritt 10: Nährstoffpumpen - eine Überlegung

Ich benutze Flüssigdünger für meine Aquarien.

• Täglich morgens 8 ml NPK-Dünger
• 1 x wöchentlich 8 ml Eisendünger
• 1 Mal pro Woche 15 ml Eisendünger
• 1 x wöchentlich 8 ml N-Dünger

Es wäre schön, wenn dies automatisch passieren könnte;)

Bei Ebay habe ich kleine Pumpen gefunden, die mit 12V betrieben werden (genau wie die LED-Beleuchtung, das geht in Ordnung) Ich habe 3 Stück gekauft;)
Für jeden Dünger habe ich jetzt eine Pumpe, aber ich brauche eine Kontrolle, die die Dosierung übernimmt. Der Arduino;)
Aber mein AquaController-Arduino hat nicht genug Ausgänge. Und ich brauche auch einige Eingaben für die manuelle Steuerung. Zum Beispiel nach dem Wasserwechsel.

Ein weiterer Arduino? Ja, aber ein Arduino Mini Pro. Günstig und klein. Ich habe 5 Stück für 12 € gekauft. Das reicht für andere Projekte. ;)

Der Mini Pro kommuniziert mit dem Arduino Uno. Ich werde dafür I2C verwenden. So kann ich mit nur wenigen Drähten viele Ein- und Ausgänge bedienen.

Der Uno teilt dem Mini Pro mit, wann mit der Düngung begonnen werden soll. Dann regelt der Mini Pro die Düngermenge und fordert einige Tasten zum manuellen Nachfüllen von Dünger auf.


Das ist der plan;)