Steuerung Schildkrötengehege

  • Hallo,
    Ich möchte heute mein nun abgeschlossenes Projekt Gehege-Steuerung für unsere Schildkröten nach 4 wöchigem Dauertest vorstellen.
    Es gibt viele vorgefertigte Projekte zu diesem Thema jedoch gab es jedesmal irgendwas das mir nicht so zusagte oder mir was fehlte und somit strickte ich mir letztendlich selber was zusammen. Vielleicht kann der ein oder andere daraus was "brauchen" oder es hilft ihm, deswegen diese Vorstellung.
    Für dieses Projekt habe ich ca. 70 Stunden verbraten und glaubte zwischendurch nicht mehr an die Fertigstellung :no_sad:
    Natürlich kann man noch Kleinigkeiten anpassen/ändern oder erweitern, weiteres ist alles (Platinen) auch noch nicht in einer Verteilerbox untergebracht was jedoch noch erfolgen wird.


    Hardware:

    • Raspberry Pi 2 (logisch ...)
    • 4 Temperaturfühler des Typs DS18B20
    • 1 selbstgebaute Relaiskarte mit 2 Relais, 5V für die Lüftersteuerung
    • 1 selbstgebaute Relaiskarte mit 2 Relais, 220V für die Schaltung der Heizung und Lampe
    • PiCamera
    • PowerLan (Fritz) für Netzwerkanbindung


    Software:

    • Bedienoberfläche in html, php
    • LogIn Fenster wegen Zugang aus Internet
    • GoogleChart-API für die Chartanzeige und Auswertung
    • Datenbank MySQL
    • Hauptprogramm in Python
    • Lüftersteuerung in Python, Aufruf über crontab
    • shellscript für die Bereitstellung der piCam
    • Kleine Bildergallerie erstellt mit Lightroom


    Die web-Oberfläche ist in html und php erstellt worden. Da ich Zugriff aus dem Internet haben wollte wurde eine LogIn Abfrage erstellt mit Benutzername und Passwort. Über die Übersichtsseite habe ich nun Zugriff auf die webCam, die aktuellen Werte im Gehege grafisch aufbereitet, die aktuelle CPU-Temperatur des Raspi, Festlegung der Schaltzeiten, eine Bildergallerie und die Administration bzgl. SQL.


    Der Link "Livecam" startet auf dem Pi ein Shellscript welches mir die Kamera auf einen bestimmmten Port streamt, dieser wurde in html eingebunden.


    Der Link "aktuelle Werte Gehege" holt mir über php die Daten aus der Datenbank und zeigt sie mir über GoogleChart grafisch an. Zusätzlich sehe ich die aktuell eingestellten Schaltzeiten für die Heizung bzw. der Lampe, den aktuellen Status der Heizung bzw. Lampe und der letzte Datenbankeintrag mit Datum und Uhrzeit.


    Der Link "aktuelle CPU Temperatur des Raspi" holt mir über php die Daten aus der Datenbank und zeigt mir über GoogleChart die Temperatur grafisch aufbereitet. Die Datenbank wird vom Pythonprogramm Lüftersteurung alle 5 min. gefüttert.


    Der Link "Schaltzeiten" lässt mich wie der Name schon sagt die Schaltzeiten und Temperaturen festlegen. Über php werden diese Werte in eine Textdatei geschrieben welche später vom Pythonprogramm schildis-hauptprogramm.py ausgelesen und verarbeitet werden.


    Der Link "Bilder" zeigt mir eine kleine Galerie von Bildern welche von Lightroom erstellt und danach eingebunden wurde.


    Der Link "Administration" beinhaltet lediglich 2 Verknüpfungen zu phpinfo und phpMyadmin.


    Die Links "Linienchart Raspi2" und "Linienchart Gehege" lassen mich durch Eingabe eines Filters von Datum oder Zeit oder beides die jeweils hinterlegten Daten aus der Datenbank über GoogleChart als Kennlinie anzeigen. Hier sieht man dann auch schön wie die Temperatur wieder hochgeht wenn die Heizung eingeschaltet wurde.


    Nun zu den 2 laufenden Pythonprogrammen:


    Die Lüftersteuerung des Pi ist ein Pythonprogramm (lueftersteurung.py) welches über crontab alle 5 Minuten aufgerufen wird.
    Als erstes wird die aktuelle Temperatur der CPU in die Datenbank geschrieben für die spätere Visualisierung und Auswertung über GoogleChart.
    Ist die Temperatur der CPU höher als 45 Grad wird der Lüfter eingeschaltet für 4 Minuten. Ist die Temperatur danach kleiner 38 Grad wird ausgeschalten. Ist die Temperatur jedoch noch höher als 38 Grad wird für weitere 50 Sekunden der Lüfter laufen gelassen und das Programm danach beendet. Nach 10 Sekunden kommt erneuter Aufruf durch crontab.
    Eigentlich wollte ich die Lüftersteuerung über pwm realisieren jedoch machte das der kleine 5V Lüfter nicht mit ...


    Das Hauptprogramm (schildis-hauptprogramm.py) welches die Temperaturen ausliest und abhängig von den Schaltzeiten die Relais steuert, starte ich aktuell händisch über vnc auf dem Terminal da ich somit von extern darauf zugreifen kann und aktuelle Statuswerte, welche mir das Hauptprogramm ausspuckt, somit sehen kann (siehe Konsolen-Bild).
    Prinzipiell ist das Hauptprogramm wie folgt aufgebaut:


    • Initialisierungen (Fühler, alle 15 min. Fühler auslesen, alle 15 min. SQL Eintrag, alle 30 min. Schaltwerte lesen)
    • Eine Funktion für Fühler auslesen
    • Eine Funktion für Schaltwerte auslesen
    • Bei Programmstart werden generell die Fühler und die Schaltwerte ausgelesen, danach nach Vorgabe laut Initialisierungen
    • Holen der aktuellen Zeit
    • Überprüfung ob Schaltzeit Tag-Nacht (nicht über Mitternacht) oder Nacht-Tag (über Mitternacht) geht (Hier habe ich ziemlich lange rumgemacht deswegen diese Überprüfung, geht bestimmt auch anderst ...)
    • Vergleich ob Schaltzeit erfüllt und Temperaturvorgaben erfüllt
    • GPIO's schalten
    • SQL Eintrag


    Hier nun noch ein paar Bilder, den Code habe ich noch nicht hochgeladen, ist aber kein Problem wenn gewünscht !
    Zu sagen wäre noch das mir dieses Forum sehr geholfen hat bei diversen verzwickten Problemen :thumbs1:











  • Hallo, das sieht genauso aus wie ich es in meinem zukünftigen Gehege auch haben möchte!
    Es wäre noch toll, wenn du eine kleine Bauteilliste inkl. den genauen Schaltplan veröffentlichen könntest.
    Der SourceCode wäre natürlich auch sehr hilfreich ;)


    Vielen Dank!

  • Hallo,
    würde mich auch sehr darüber freuen, wenn Du den Sourcecode veröffentlichen würdest. Und ne Anleitung für nen DAU [SMILING FACE WITH SMILING EYES]
    Gruß Paul

  • Hallo,
    vielen Dank.
    Mit dieser Anleitung sollte ich definitiv was anfangen können.
    Aber eine Frage hätte ich noch:
    Mit was für einer Software hast du die Platine "illustriert"?
    Also die Bilder (auch vom Pi) erstellt!
    Die muss ich auch haben ;)

  • Hallo [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]ddeluxe87,[/font]


    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Habe gerade fast 1 Stunde gesucht mit was für einer Software ich die Bilder gemacht habe :blush: [/font]


    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Also ich denke die Bilder mit dem Handy sind klar ...[/font]


    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Die 3 Bilder in "Schaltplanoptik" (Platinenlayout) wurden mit "BlackBoard Breadboard Designer" erstellt, das Projekt ist zwar eingestellt, war jedoch für mich eine sehr Bedienerfreundliche Software und ich kam auf das was ich wollte. Hab sehr lange nach einer für meine Wünsche geeigneten Software gesucht ....[/font]


    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Das Bild Verdrahtung1 wurde wie top44 schon schrieb mit fritzing gemacht. [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Das[/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] Bild[/font][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] Verdrahtung2[/font] wurde aus Bild Verdrahtung1 und Bildern der Platinen mit Paint zusammengefügt (ich weiß das es besser geht, war aber unter Zeitdruck ...)[/font]

  • Hallo Flyer99,
    herzlichen Dank. Habs probiert. Funktionirtt alles bis suf die Webcam. Und bei der aktuellen Version geht das mit dem Sensor etwas anders.
    Hier steht unter den Kommentaren wie es geht.
    http://kopfkino.irosaurus.com/…or-an-einem-raspberry-pi/
    Die Anleitung und Dokumentation ist supi.
    Ein Tipp zur Webcam bräuchte ich noch. [SMILING FACE WITH SMILING EYES]
    Vorallem wie die Bilder-Galerie funktioniert.


    Vielen Dank
    Gruss Paul

  • Hallo Paul,


    Freut mich das "fast" alles funktioniert. Ich werde nachher bzgl. der Cam nochmals die Downloads durchschauen ob sich vielleicht ein Fehler eingeschlichen hat ...
    Das mit der Gallerie werde ich dann auch näher erläutern.
    Das mit dem "aktivieren" der Sensoren hatte ich damals nach diversen Anleitungen probiert welche nicht zum Erfolg führten. Nach langem probieren, aktivieren usw. gingen sie irgendwann plötzlich. Nun kann sein das manche Einträge nicht nötig sind. Ich war jedoch ehrlich gesagt zu faul danach zu schauen was nun wo eingetragen werden muss und was überflüssig ist, war froh das die Sensoren ausgelesen wurden :blush:


    Melde mich später nochmal ...

  • Hallo Paul,


    Habe die Dateien nochmals geprüft vom Download, die passen.
    Geb mal an der Konsole folgendes ein:

    Code
    cd /var/www/bash
    sudo sh start_stream.sh


    Es sollte "mjpg_streamer started" angezeigt werden, wenn ja dann im Browser folgendes eingeben:
    'IP-deines-Raspberry':9000


    Dann sollte sich die Seite des M-JPEG-Streamers öffnen und du solltest ein Bild sehen.
    Wenn das zumindest mal klappt stimmt auf der php-Seite was nicht.


    Wenn nicht überprüfe nochmals:

    • Kamera in raspi-config aktiviert ?
    • Rechte und Besitzer der start_stream.sh angepasst ?
    • /etc/sudoers angepasst ?


    Zur Bildergallerie muss ich gestehen da war ich faul. Da ich alle meine Bilder mit der Software Lightroom verwalte und diese Software eine eigene html-Gallerieerstellung besitzt habe ich diese auch genutzt. Sprich ich hab über Lightroom meine Bilder ausgewählt und Lightroom erstellte mir über exportieren einen Ordner mit dem html Code und den benötigten Dateien. Diesen Ordner habe ich auf den Pi kopiert und verweise mit dem Button Bilder der Startseite nur auf die index.html in dem von Lightroom erstellten Ordner ...
    Ich hatte anfangs probiert die Bilder selber über html einzufügen, dies war jedoch sehr zeitaufwendig (Bilder verkleinern, Quali usw.) und hatte zudem nicht das Aussehen wie ich es mir gewünscht hatte. Nach 2 Tagen wollte ich mich nicht länger damit aufhalten und griff zu Lightroom.
    Du findest im Inet mit Sicherheit eine Gratissoftware die dir deine Bildergallerie in html erstellt um sie einfach kopieren zu können !


    Das mit der Sensoranbindung ist noch so ne Sache, hier wird auf device tree verwiesen aber jedes mal irgenwie anderst parametriert ..... da steig ich noch nicht wirklich durch :denker:
    Habs auf jeden Fall bei mir geändert und es geht, Danke ! Die Anleitung muss noch abgeändert werden diesbezüglich.

    Edited once, last by flyer99 ().

  • Hallo Paul,
    Habe gerade bemerkt das ich vergessen habe zu erwähnen die Datei "start_stream.sh" und "stop_stream.sh" aus dem Ordner Bash ausführbar zu machen ... Dies könnte ebenfalls dein Problem sein. Hab's in der Anleitung aktualisiert. :blush:

  • Hallo,
    habs mit der Kamera nicht hin bekommen. Jetzt starte ich mal so mit der Steuerung.

    Heute Nacht ist Probelauf und morgen kommt das Kästle ins Gehege. Ist ja schon bitterkalt in der Nacht.
    Danke nochmals flyer99 für die tolle Arbeit.
    Gruss Paul [emoji4]

  • Hi,
    Sieht gut aus :thumbs1: Hoffe der Test war erfolgreich ...


    Was ich nicht sehe sind Lüfter für die Box ? Also jetzt kriegste mit Sicherheit kein thermisches Problem, aber im Sommer ... :blush:


    Habe den Funktionsumfang noch ein bischen erweitert. Es wird jetzt morgens mittags und abends ein Bild über die Cam gemacht und per Email versendet (somit muss man sich nicht jedesmal aufschalten um zu sehen ob alle Tierchen abends im Quartier sind). Wird heute im Laufe des Tages in der Anleitung aktualisiert.


    Das mit der Kamera sollte man auch noch hinbekommen. Grundsätzlich sollte man über die Konsole mal ein Bild schiessen können (raspistill -o image.jpg). Wenn das klappt sollte der Stream auch funktionieren.

  • Hallo,


    Es gibt ein paar Änderungen/Verbesserungen ;)


    Pro Steckdose sind nun 2 Timer verfügbar. Sprich 4 Timer welchen jeweils ein gewünschter Referenzsensor zugewiesen werden kann. Einstellbar wie gehabt über Browser. Dementsprechend wurde auch die Konsolenausgabe aktualisiert.
    Die Lüftersteuerung wurde ebenfalls erweitert für einen Emailversand bei Erreichen einer CPU-Temperatur > Warnschwelle.


    Nun seit einem halben Jahr Dauerbetrieb ohne Ausfall :shy:


    Anleitung


    @ Kann mir vielleicht jemand ein paar Tips geben bzgl. zumüllen des Raspberry ? Also er läuft ja seit einem halben Jahr ohne Probleme mit webcam, sql etc. Denke aber das sich doch irgendwo "Müll" ansammelt ?? Aufrufe durch crontab werden mit [font="Calibri, sans-serif"]>/dev/null 2>&1 schon in den Papierkorb geschoben (wegen Konsolenausgaben).[/font]


    [font="Calibri, sans-serif"]Über Infos würde ich mich freuen ![/font]

  • Projekt wurde erweitert um einen Bodensensor, LED welche als Licht für das Foto in der Höhle benötigt wird, Anpassung HTML Oberfläche für Touch, Chart Auswertung über phplot, automatische Datenbanksicherung.


    Beitrag soll nicht zum pushen dienen sondern rein als Info da mich doch sehr viele Emails erreichen von Leuten welche das Projekt nachbauen wollen :thumbs1:


    Schildis

  • es ist ein wenig Zeit vergangen ...
    an dem Projekt habe ich jedoch die letzten Wochen nochmals einiges an Arbeit reingesteckt ... Es wurde eine Platine von mir entworfen welche nun 5 Relais enthält die 220V schalten (eines davon ist für die Kühlung der Schaltbox vorgesehen), Klemmen für die Fühler, Anschluß von 2 LED's welch unter anderem als "Lampe" dienen wenn im Dunkeln in die Höhle per LiveCam geschaut werden will.


    Die komplette Peripherie ist nun steckbar (bis auf die RaspiCam, hier fand ich nicht wirklich was brauchbares und nen SUB-D Stecker wollte ich nicht ...).


    [Blocked Image: https://up.picr.de/28785614uz.jpg]


    [Blocked Image: https://up.picr.de/28805812te.jpg]


    [Blocked Image: https://up.picr.de/28854684af.jpg]


    Die Enworfene Platine befindet sich unter dem Raspi
    Netzwerkkabel wird noch gegen ein kürzeres getauscht ...


    [Blocked Image: https://up.picr.de/28915378xl.jpg]


    Das ist alles recht frisch und der Deckel wurde heute erst draufgeschraubt ... :D

    Die "alte" Steuerungsbox ist tot ...


    [Blocked Image: http://up.picr.de/28915441km.jpg]



    Meine Page für die Anleitung wird noch aktualisiert, muss mal kucken wie ich das mache ... bin jetzt nicht so der Homepageverwalter und Zeit ist mehr als abgezählt :blush:

  • Hallo Leute,


    Die Steuerung Version2 ist nun im Einsatz (im Schildkrötengehege, nicht mehr in der Garage :D ) , die WEB-Oberfläche wurde gründlich überarbeitet und ein paar Neuerungen kamen hinzu. Das ganze war jetzt doch einiges mehr Arbeit als ich dachte, aber ich denke es hat sich gelohnt :cool: ....


    • Optimierung der Datenbank auf eine Tabelle.
    • Erkennung der Timereinstellung ob Zeitregelung, Wärmeregelung oder beides aktiv ist
    • Alle Temperaturdaten auf einem Bild
    • Erstellung von Zeitraffervideos, Bilder werden nur der Uhrzeit entsprechend bzgl. Sonnenaufgang und Sonnenuntergang gemacht
    • Email Benachrichtigung für sämtliche Temperaturwerte bei min max Überschreitung einstellbar
    • Charterstellung ist nun flexibel
    • Erstellung eines Warenkorbes für die Bauteilbestellung


    Wer Interesse am Nachbau hat kann sich die Sache hier gerne näher anschauen ...



    [Blocked Image: http://up.picr.de/29307807qj.jpg]


    [Blocked Image: http://up.picr.de/29307819eq.jpg]


    [Blocked Image: http://up.picr.de/29307833zf.jpg]


    [Blocked Image: http://up.picr.de/29307838ct.jpg]


    [Blocked Image: http://up.picr.de/29307839ol.jpg]


    [Blocked Image: http://up.picr.de/29307841fi.jpg]


    [Blocked Image: http://up.picr.de/29307842ob.jpg]


    [Blocked Image: http://up.picr.de/29307848hg.jpg]


    [Blocked Image: http://up.picr.de/29307853xl.jpg]


    [Blocked Image: http://up.picr.de/29307865ym.jpg]

  • Hallo,


    ein super interessantes Projekt, was ich gerade selber versuche umzusetzen. Leider funktioniert der Link zu der Anleitung nicht mehr. Kannst du den erneuern oder mir die Anleitung zu kommen lassen ?


    Das wäre super.


    Viele Grüße