Ein neuer Controller erblickt das Licht der Welt

Da der Minimalistik Controller nun erstmal soweit fertig ist, jederzeit nach gebaut werden kann, der Code einwandfrei läuft und Ich kaum noch arbeit damit habe, wird es Zeit mein neues Projekt vor zu stellen an dem ich grade anfange zu arbeiten:
Ein neuer Aquarien Controller der für die Komplette Automatisierung da ist.

Entgegen der letzten Projekte fange Ich hierbei aber etwas anders an. Zuerst wird das User Interface geschrieben und die komplette Einstellung über Menü realisiert, dann erst wird der Code hinter den Menüs geschrieben.
Grund hierfür ist einfach das es diesmal sehr komplex wird und das Menü das Highlight werden soll.

Nachdem Ich viel im Inet gesucht habe nach guten Steuermöglichkeiten und Userfreundlichen Systemen, Funktionen und möglichkeiten bbin Ich zum Entschluss gekommen dass das System diesmal abseits von Sparsam wird. Es geht also wirklich dadrum „richtig“ auf die Kacke zu hauen.

Basis des ganzen Systems wird ein Arduino Due (84Mhz, 512kb Speicher, 96kb Ram) und ein 5″ TFT Display mit Touch.  Somit kostet das Grundsystem schonmal 40€ und mehr…
Über das Touch sollen alle Einstellungen gemacht werden können und direkt gespeichert werden. Zur Steuerung der Hauptfunktionen dient das MiniControl Board welches ohne Nano über nen 20Pol Flachband angeschlossen wird. Für die einfache Umsetzung/Verkabelung anderer Sensoren Plane Ich nen Shield für Sensoren, man kann die aber auch einfach so verkabeln. Neben allen Anschlüssen hab Ich dadrauf auch ne kleine Prototyping Area gebastelt damit Sensoren die einen Pulup widerstand benötigen direkt angeschlossen werden können. Durch die vielen Pins die das Touch TFT benötigt stehen aber nur 15 Anschlüsse zur verfügung, wovon 12 für analoge Sensoren benutzt werden können.

AquaGrowDueShield 
Arduino Due Basisschield um wichtigsten Komponenten zu halten und für Anschluss des TFT und SD. Steckplätze für feste Komponenten und Atlas Scientific Sensor Boards
AquaGrowMiniControl2
Aqugrow MiniBoard mit Verbindung über 20pol Kabel an Due Shield

Kommen wir zu den Funktionen:
Echtzeit Uhr
PWM Dimmung
7 Anschlüsse für Dosierpumpen ODER Lüfter (alle PWM Fähig)
4er Relay für Zeitsteuerung oder Steckdosen (Heizung, Pumpe ect)
LCD Anschluss für 1602 Displays (wer kein Touch mag)
4×4 Keypad (Steuerung wie Mini möglich neben Touch)
Ansteuerung Futterspender
Wassertemperatur
Luft Temperatur (LED/Abdeckung ect)
Externes EEPROM (zur Dauerhaften Speicherung der Einstellungen auch nach Software update)
PH Messen/Regeln (über Magnetventil/Steckdose)
Filterleistung Messen/Reinigungsintervalle anzeigen

Joar das soll schon mal fest umgesetzt werden. Zudem hab Ich dann noch paar Sachen auf meiner Nice-To-Have Liste:
Steckplatz für Leitwert/Redox oder Sauerstoffmessung (Muss Ich schauen was ich davon umsetze)
Ethernet/Wlan Fähigkeit (Eins von beiden)
Bluetooth
Funksteckdosen Steuerung
SD Datenlogger (mit auswertung am PC)
Photometer Wassertests
Wasserstand/Nachfüllautomatik

Zur Zeit warte ich auf meinen Due mit TFT und programmiere schon mal bisschen am Menü rum, bzw Ich schaue mir Möglichkeiten der TFT Ansteuerung an. Leider sind die meisten Projekte die man so findet alle unübersichtlich gestaltet das man kaum klauen kann. Werde daher nicht drum rum kommen nen neuen Weg ein zu schlagen und andere Möglichkeiten finden müssen.

Da Ich noch in der „Draft-Phase“ bin und eh erst alle Menüs fertig programmieren werde für das Touch interessiert mich im moment was Ihr so an eurem AQ habt und gerne Automatisieren wollt. Wichtig hierbei ist aber dass es dafür einen Sensor gibt den man kaufen kann, keinen Schaltplan. Auch wenn Ich das ganze auf ein eigenes Shield aufbaue, soll zu 100% gewährleistet sein das man das System auch ohne dieses Nachbauen könnte.
Postet einfach einen Kommentar mit euren Ideen unter den Beitrag.

10 Kommentare auf “Ein neuer Controller erblickt das Licht der Welt

  1. Hi Moritz,

    Ich kalkuliere gerade die Kosten für das System. Kannst du mir daher sagen, auf welchen Rouchscrenn du zurückgegriffen hast? Hast du vielleicht sogar einen Link, wo du es bestellt hast?

    Grüße

  2. Hallo, Das kann ich zum Jetzigen Zeitpunkt noch nicht machen da der Projektstand noch nicht an dem Punkt ist wo ich genaues über die Komonenten sagen kann. Bevor ich Teile genau aufschreibe möchte Ich erst sicher stellen das die vorgeschlagenen Komponenten auch wirklich funktionieren.

  3. Hallo MajorMadness Says, ich interesiere mich für dein Controller Projekt und würde gern so was zu beschafen, bitte informiere mich auf welchem stand bist du? Was würde mir das ganze Projakt so ungefehr kosten?
    Danke im Vorraus.
    Lg Slawa

    • Der stand hat sich zum Kommentar oben noch nicht verändert. Ich warte grade auf Prototypen der im Beitrag erwähnten shields und werde diese dann testen und eine basis Funktionsweise fertig programmieren und durch testen. Dann kann ich genaue aussagen treffen und werde darüber natürlich auch berichten.
      Zeit und Lieferverzögerungen sind momentan der Punkt woran es hängt…

    • Das hat viele Gründe: zum einen finde ich den Gedanken hinter Raspberry nicht gut das man erst ein Linux System oder ähnliches Installieren muss um Basis funktionen des Controllers zu nutzen, er ist meiner Meinung nach komplett Oversized (ein 8mhz Arduino kann das gleiche wie ein 700mhz Pi), macht dies aber wiederum schwer rudimentäre Sensoren aus zu lesen da man erst eine auf Linux abgestimmte Hardware Libary brauch. In Arduino schau ich ins Datenblatt, suche die richtigen bit folgen und kann den Sensor ansprechen. Als einfaches Beispiel: Wie lese ich einen DS18B20 Temperatur Sensor aus?
      Arduino Style:

      #include
      OneWire ds(2);
      byte present = 0;
      byte data[12];
      byte addr[8];
      ds.search(addr);

      ds.reset();
      ds.select(addr);
      ds.write(0x44, 1);
      present = ds.reset();
      ds.select(addr);
      ds.write(0xBE);
      for (byte i = 0; i < 9; i++) { data[i] = ds.read(); } int16_t raw = (data[1] << 8) | data[0]; Float tempC = (float)raw / 16.0; }

      Das war es. Dauert keine 20 Sekunden und ich habe den Sketch um Temperatur erweitert.
      Raspberry Style:
      Kernelmodule laden:
      $ sudo modprobe w1-gpio
      $ sudo modprobe w1-therm
      Eintragen für laden Systemstart:
      $ sudo echo >> /etc/modules w1-gpio && sudo echo >> /etc/modules w1_therm
      Einfach eine neue Datei namens temp (ohne Endung) unter /usr/bin/ anlegen und folgenden Inhalt einfügen (Achtung auch hier wieder den Namen des Sensors anpassen!):
      #! /bin/bash

      # Temperatur des Sensors auslesen
      tempread=`cat /sys/bus/w1/devices/10-0008017b5e27/w1_slave`
      temp=`echo $tempread | egrep -o '[\-0-9]+$'`
      temp2=`echo "scale=2; $temp / 1000" | bc`
      # Wert ausgeben
      echo "Gemessene Temperatur des Sensors" $temp2 "°C"
      Danach muss noch ein Paket nachinstalliert und die Datei noch ausführbar gemacht werden:
      sudo aptitude update
      $ sudo aptitude install bc
      $ chmod +x /usr/bin/temp
      Zum regelmäßigen Abfragen und Anzeigen:
      sudo aptitude update
      sudo aptitude install snmp-mibs-downloader bc
      /etc/default/snmpd in Zeile 5 ergänzen.
      export MIBS=UCD-SNMP-MIB
      Nun noch den Dienst neu starten
      sudo /etc/init.d/snmpd restart
      Neue Ziele die wir monitoren wollen, müssen wir in /etc/mrtg.cfg eintragen
      eine neue Datei namens cpu_temp_auslesen.sh anlegen und den folgende Skript-Schnipsel hineinkopieren.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      #!/bin/bash
      # Read cpu temperature
      tempread=`cat /sys/class/thermal/thermal_zone0/temp`
      temp=`echo "scale=2; $tempread / 1000" | bc`
      # Wert ausgeben
      echo $temp
      echo 0
      echo 0
      echo temperature
      chmod 750 /home/pi/skripte/mrtg/cpu_temp_auslesen.sh
      mrtg.cfg:

      ######################################################################
      # System: DS18S20 Temperatur Sensor
      # Contact: root
      # Location: attached to Raspberry Pi
      ######################################################################
      ### DS18S20 Temperatur SensorWohnzimmer
      TimeStrPos[temp_wohnzimmer]: RU
      Target[temp_wohnzimmer]: `/home/pi/skripte/mrtg/update_mrtg_temp.sh`
      Options[temp_wohnzimmer]: gauge,growright,nopercent,expscale,transparent
      Title[temp_wohnzimmer]: Temperatur Wohnzimmer
      PageTop[temp_wohnzimmer]:

      Temperatur Wohnzimmer

      MaxBytes[temp_wohnzimmer]: 125
      Step[temp_wohnzimmer]: 60
      Legend1[temp_wohnzimmer]: Gemessene Temperatur im Wohnzimmer
      LegendI[temp_wohnzimmer]: Innentemperatur
      LegendO[temp_wohnzimmer]:
      YLegend[temp_wohnzimmer]: Grad Celsius
      ShortLegend[temp_wohnzimmer]: Grad °C

      Bitte was???? Keine Sorge, das habe Ich mir nicht aus den Fingern gezogen, Das ist ein Tutorial von kopfkino Blog und teil 2.

  4. krass…

    ich finde auf jedenfall super was du machst! vielleicht versuch ich mal den ganz kleinen controller nachzubauen. oder warte doch auf den „neuen“…finde das mit dem grossen display einfach super! g**l!

    will eigentlich nur temperatur und ph wert in einem display ablesen können. eventuell auch co2 nachtabschaltung.

    weiter so :)

  5. Hallo, erst mal Danke für deine tolle Arbeit!

    Die LED-Steuerung ist echt gut geworden.
    Eine Frage noch wird der „grosse Controller“ vom Blog 8 März 2014 noch irgendwie weiterentwickelt oder wird das ganze Teil zu kompliziert?. Mein Traum wäre ja ein Controller, mit dem ich die ganze Auaqrientechnik komplett steuern kann. (Licht, CO2, Temperatur, Stömug, PH-Wert, Futter, Filter etc…..)

    Danke und weiter so!!

    Liebe Grüße

    Roland

    • Hallo Roland,
      Der Controller wurde sehr lange weiter entwickelt und war auch Softareseitig recht weit. Ich habe aber niemals eine Akzeptable Hardwarelösung finden können da die geplanten ARM Chips Probleme machten. Durch die Weiterentwicklung der MiniControl mit der MiniTFT und dem Schritt zum gewerblichen, war Ich gezwungen mich neu zu orientieren und diese Steuerung erstmal wieder in die Schublade zu legen. Manche Teile der Funktionen werden nach und nach in der MiniTFT eingebaut, wenn die Entwicklung dann da abgeschlossen ist und die Grenze des möglichen erreicht ist, dann wird der „große“ Controller sicherlich wieder aus der Schublade geholt und nochmal von Grund auf neu konzipiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.