Raspberry PI – Aquarium Computer
01.Okt.2018 Andere Themen

Raspberry PI – Aquarium Computer

Als eines Tages die analoge Zeitschaltuhr meines Aquariums kaputtging, ich keine Lust hatte sie zu reparieren oder eine neue zu kaufen, überlegte ich, ob man das nicht auch anders realisieren kann. Eventuell was was auch Spaß macht, mit einem Raspberry zum Beispiel. Erfahrungen mit Steckdosen über den Raspberry Pi steuern waren dank meines Magic Mirrors Projekt vorhanden, die Planung ging also los. Inspiriert durch andere Projekte im Internet stand der erste Plan recht schnell, ein Raspberry Pi 3 mit Touch-Display, 433MHZ Sendern und Temperatur-Sensoren sollten es zum Anfang sein.

Die Amazon Einkaufsliste war schnell erstellt und dank Prime war alles nach wenigen Tagen vorhanden. Der Plan: als Erstes das Touchscreen über die GPIO´s zum Laufen bekommen und danach Funksteckdosen mit den Sendern über mehrere Cronjobs steuern, damit die defekte Zeitschaltuhr ersetzt werden kann und ich es nicht mehr manuel regeln muss.

Welche Bauteile wurden verwendet?

  • Raspberry Pi 3 Model B
  • Raspberry Pi 7″ Touchscreen
  • Raspberry Gehäuse
  • Demiawaking Wasserdichte Temperatur Sensoren (5er Pack, war günstiger)
  • Rydges 5V 3A Netzteil für den Raspberry
  • Brennenstuhl Funksteckdosen
  • 433MHZ Sender und Empfänger hatte ich noch
  • Speicherkarte, Widerstand(4.7k Ω) und Jumper-Kabel waren noch vorhanden

Das Touchscreen war schnell angeschlossen und in das Gehäuse eingebaut. Die Funksender dank Anleitung im Internet schnell gelötet und passten noch super mit in das Gehäuse.

 

….demnächst mehr….

 

Temperaturfühler auslesen und die Werte in die Datenbank schreiben

Als nächstes musste ich dann auch die Temperatur von beiden Sensoren auslesen und in die Datenbank schreiben. OK, ich gebe zu, ich bin kein Python Gott und musste mich auch bei Google etwas belesen, aber hey genau das ist es doch was den Spaß ausmacht. Kein fertiges Produkt kaufen, etwas Basteln und Technologien/Sprachen kennenlernen. Mir gefällt die sehr einfache Syntax, was für „faule“ Entwickler ;-)

Hier mein Script, welches nun also die zwei Sensoren ausliest und die Ergebnisse in die lokale MySQL Datenbank schreibt.

#!/usr/bin/python
# coding=utf-8
# messprogramm.py
#----------------


import os, sys, time
import mysql
import mysql.connector
import urllib2

try:
    connection = mysql.connector.connect(host = "localhost", user= "myuser", passwd = "mypassword", db = "mydb")
except:
    print "Keine Verbindung zum Server"
    exit(0)

# Aquarium Temperatur auslesen    
def aktuelleTemperatur():
      
    # 1-wire Slave Datei lesen 28-0416c4de55ff
    file = open('/sys/bus/w1/devices/28-0416c4de55ff/w1_slave')
    filecontent = file.read()
    file.close()

    # Temperaturwerte auslesen und konvertieren
    stringvalue = filecontent.split("\n")[1].split(" ")[9]
    temperature = float(stringvalue[2:]) / 1000

    # Temperatur ausgeben
    rueckgabewert = '%6.2f' % temperature 
    return(rueckgabewert)

# Raum Temperatur auslesen
def aktuelleTemperatur2():
      
    # 1-wire Slave Datei lesen 28-0416c4d03fff
    file = open('/sys/bus/w1/devices/28-0416c4d03fff/w1_slave')
    filecontent = file.read()
    file.close()

    # Temperaturwerte auslesen und konvertieren
    stringvaluee = filecontent.split("\n")[1].split(" ")[9]
    temperaturee = float(stringvaluee[2:]) / 1000

    # Temperatur ausgeben
    rueckgabewert2 = '%6.2f' % temperaturee 
    return(rueckgabewert2)

schleifenZaehler = 0
schleifenAnzahl = 1

while schleifenZaehler < schleifenAnzahl:
    messdaten = aktuelleTemperatur()
    messdaten2 = aktuelleTemperatur2()
    
    # Schleifenzähler erhöhen
    schleifenZaehler = schleifenZaehler + 1

    # Temperatur in lokale Datenbank schreiben
    cursor = connection.cursor()
    cursor.execute("INSERT INTO data (temp1, temp2) VALUES (%s, %s)",(messdaten, messdaten2,))
    cursor.close
    connection.commit()
Tobias Keller Web Entwickler
Tobias Keller Web Entwickler

Mit Leib und Seele Web Entwickler, immer auf der Suche nach der nächsten Herrausforderung, offen für Neues, Autodidakt.

Kommentare

Geschlossen wegen DSGVO, Artikel 13 Gedöns