Skip to content

Instantly share code, notes, and snippets.

@BjoernSchilberg
Last active May 20, 2024 15:55
Show Gist options
  • Save BjoernSchilberg/0eb41b7faf8a2859bc4c8f65baf5bcb8 to your computer and use it in GitHub Desktop.
Save BjoernSchilberg/0eb41b7faf8a2859bc4c8f65baf5bcb8 to your computer and use it in GitHub Desktop.
Aquarium

Unser digitales Schulaquarium

Ideen

Material

Temperatur

PH

PH Meter habe nur eine 2-3 Jährige Haltbarkeit, trotz Pflege. (Wichtig)

https://www.amazon.de/KKmoon-Professional-Meter%E3%80%90Labor-Steckverbinder-Hydroponik%E3%80%91Ohne/dp/B01L8EMAI6

Das Messen von pH und Sauerstoffkonzentration war der spannendste Teil meines Arduino-Projektes, aber auch der, der mir am meisten Kopfzerbrechen bereitet hat. Dabei klang am Anfang alles ganz einfach: Messkit kaufen, anschliessen, Wasserwerte messen.

Was die Kits anbelangt, habe ich mich für diese beiden Komplettlösungen von AtlasScientific entschieden. Sie schienen mir einen guten Kompromiss zu bieten zwischen Preis, Robustheit und verfügbarer Dokumentation. Ich bin nach wie vor zufrieden damit.

https://www.atlas-scientific.com/product_pages/kits/ph-kit.html
https://www.atlas-scientific.com/product_pages/kits/do-kit.html

Jep, das Zeugs kostet. Angeschlossen habe ich alles nach Anleitung und dann begann das Kalibrieren und Messen. Und das Chaos.

Die Details der pH- und Sauerstoff-Sensortechnologie hier zu erklären würde zu weit gehen. Im Kern aber liefern beide Sonden ein sehr schwaches elektrisches Signal (Schwankungen im Millivolt-Bereich) an eine Art Verstärker, der dann an den Arduino angeschlossen wird. Weil nun aber keines der Geräte, das sonst noch so im und am Aquarium hängt (Pumpe, Heizer etc.) wirklich perfekt abgeschirmt ist, gibt es zahlreiche Möglichkeiten, wie die feinen Sonden-Signale gestört werden können und es ist anfangs, gar nicht leicht, diese möglichen Störfaktoren zu verstehen und zu isolieren. Ist die Sonde richtig kalibriert? Liefert die Sonde den richtigen Wert oder muss sie sich noch einpendeln? Hat das Aquarienwasser im Vergleichsglas nicht vielleicht wirklich einen anderen pH als im Aquarium, weil das CO2 ausgegast ist? Weshalb messe ich einen anderen Wert wenn ich den Laptop berühre, der am Arduino hängt? Weshalb springt der pH hoch wenn ich den Filter ausschalte? Weshalb schwankt der Sauerstoffwert wenn sich das Töchterchen im Nachbarzimmer mit dem Fön die Haare trocknet?

Die meisten Störungen, so konnte ich mir mit der Zeit zusammenreimen, hingen mit Erdschleifen zusammen, also mit ganz schwachen Fehlströmen, die sich durch die Sonden einen Weg in die Erde gebahnt haben. Andere könnten das sicher besser erklären als ich. Lösen liess sich das Problem am Schluss ganz einfach: ein fettes Kupferkabel führt nun bei mir aus dem Aquarienwasser zum Erden-Anschluss des Motor Shields. Dieser ist nahe genug am echten Erden-Anschluss des Arduino um die Fehlströme an den Sonden vorbeizuleiten, da Strom ja immer den Weg des geringsten Widerstandes geht.

Mittlerweile messen meine Sonden präszise und ich kann damit ganz gut den Verlauf der beiden Werte im Aquarium verfolgen. Welchen Einfluss hat die Oberflächenbewegung auf die Sauerstoffkonzentration bei Tag und bei Nacht? Wie hoch steigt die Sauerstoffkonzentration eigentlich, wenn es den Pflanzen gut geht? Assimilieren die Pflanzen oder kündigt sich da eine Algenblüte an? Zehrt EasyCarbo wirklich messbar Sauerstoff? Wie lange braucht es, bis sich der soilbedingt reduzierte pH nach einem Wasserwechsel wieder einpendelt? Das lässt sich alles messen und ist extrem spannend, weil man dank dieser Messungen eben Dinge sieht, die man sonst nicht sieht.

So, das war jetzt etwas nerdy. Nach dem Klick ein Bild von einem nicht ganz typischen Tagesverlauf (ich habe am Arduino gebastelt heute), wie ihn mein Logging-Programm ausspuckt. Man bemerke die extreme Sauerstoffübersättigung gestern Abend.

Quelle: https://www.flowgrow.de/threads/noch-ein-diy-controller.33805/page-2

Redoxpotential / Oxidation Reduction Potential (ORP) Sensor

Ein Oxidations-Reduktions-Potenzial (ORP)-Sensor misst die Aktivität von Oxidationsmitteln und Reduktionsmitteln in einer wässrigen Lösung, er misst die Fähigkeit eines Sees oder Flusses, sich selbst zu reinigen oder Abfallprodukte abzubauen.

Total Dissolved Solids (TDS)

TDS gibt die Summe der gelösten Salze im Wasser an. Die gebräuchliche Einheit ist mg/l (Milligramm pro Liter).

Ist ein Maß für den gelösten kombinierten Gehalt aller im Wasser vorhandenen anorganischen und organischen Substanzen. Typischerweise gilt: Je höher der TDS-Wert, desto mehr Substanzen sind im Wasser gelöst. Daher können höhere TDS-Werte (Total Dissolved Solids) darauf hinweisen, dass das Wasser mehr Schadstoffe enthält, die ein Gesundheitsrisiko darstellen können.

elektrische Leitfähigkeitssensor (EC-Sensor) / electrical conductivity sensor (EC sensor)

Der elektrische Leitfähigkeitssensor (EC-Sensor) misst die elektrische Leitfähigkeit in einer Lösung, die normalerweise für Aquakulturen und Wasserqualitätsprüfungen verwendet wird.

turbidity /Trübungssensor

Der Trübungssensor kann die Trübung des Wassers (die Anzahl der Schwebstoffe) messen. Der optische Sensor dieses Moduls kann die Dichte von trübem Wasser und die Konzentration von Fremdkörpern unter Verwendung der Brechung der Wellenlänge zwischen Fototransistor und Diode messen. Je höher der Ausgangswert ist, desto trüber ist das Wasser.

Sauerstoffkonzentration

Preise ab 100 Euro aufwärts.

Tips & Tricks

WringPI tool

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
gpio readall

GPIO

pinout

stream to youtube

#! /bin/bash
#
# Diffusion youtube avec ffmpeg

# Configurer youtube avec une résolution 720p. La vidéo n'est pas scalée.

VBR="2500k"                                    # Bitrate de la vidéo en sortie
FPS="30"                                       # FPS de la vidéo en sortie
QUAL="medium"                                  # Preset de qualité FFMPEG
YOUTUBE_URL="rtmp://a.rtmp.youtube.com/live2"  # URL de base RTMP youtube

SOURCE="udp://239.255.139.0:1234"              # Source UDP (voir les annonces SAP)
KEY="...."                                     # Clé à récupérer sur l'event youtube

ffmpeg \
    -i "$SOURCE" -deinterlace \
    -vcodec libx264 -pix_fmt yuv420p -preset $QUAL -r $FPS -g $(($FPS * 2)) -b:v $VBR \
    -acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k \
    -f flv "$YOUTUBE_URL/$KEY" 

motioneyeos in VLC anschauen

Open motioneyeos.xspf in vlc player.

<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">
  <title>motioneyeos</title>
  <trackList>
    <track>
      <location>http://10.1.0.5:8081/</location>
      <extension application="http://www.videolan.org/vlc/playlist/0">
        <vlc:id>0</vlc:id>
        <vlc:option>network-caching=1000</vlc:option>
      </extension>
    </track>
  </trackList>
  <extension application="http://www.videolan.org/vlc/playlist/0">
    <vlc:item tid="0"/>
  </extension>
</playlist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment