Skip to content

RootDev4/Huehnerstall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐔 Hühnerstall PWA

Progressive Web App (PWA) zur Verwaltung und Steuerung meines automatisierten Hühnerstalls.

📌 See englisch version of this README here. (WiP/To-Do)

Die App läuft auf einem Raspberry Pi 3 als NodeJS-Applikation. GPIO-Schnittstellen werden über Python3-Scripte gesteuert, da die verfügbaren NodeJS-Pakete (npm) diesbezüglich weniger flexibel und zuverlässig sind.

Features

  • Automatisierte Steuerung der Hühnerklappe (Zeitschaltung, Lichtsensor, Nothalt, Verriegelung) -> JOSTechnik
  • Steuerung der Hühnerstall-IT über eine App (lokales Netzwerk oder aus der Ferne via VPN)
  • Öffnen/Schließen der Hühnerklappe / Erkennen des Klappenstatus (offen/geschlossen)
  • Messen von Temperatur und Luftfeuchtigkeit im Stall
  • Erkennen des Status der Stalltüre (offen/geschlossen)
  • Live Stream per Kamera-Modul

Technik

Schaltung

Die Sensoren bzw. Steuerleitungen zum JOST Steuermodul werden über GPIO-Schnittstellen kontrolliert. Über das Relais lässt sich die Hühnerklappe in der App öffnen und schließen.

Anbindung

JOSTechnik bietet unterschiedliche Zusatzmodule an, welche an die Steuereinheit angeschlossen werden können. Diese habe ich mit Pythonscripts ersetzt, welche an den entsprechenden Ein- bzw. Ausgängen Signale über Relais/Optokoppler schalten.

Externer Taster

Ein externer, kabelgebundener Taster vom Hersteller kann angeschlossen werden, um die Hühnerklappe auch aus der Ferne öffnen und schließen zu können. Das hierzu äquivalente Pythonscript sieht folgendermaßen aus:

#!/usr/bin/env python3
#  Python script to open/close the flap over control module connected to Raspberry Pi.

import time, json, sys

try:
    from gpiozero import DigitalOutputDevice

    pin = int(sys.argv[1])

    if pin is None or pin < 2 or pin > 27:
        raise Exception('Invalid PIN set.')
    
    relais = DigitalOutputDevice(pin)
    module = sys.argv[0].replace('.py', '')
    
    time.sleep(1)
    relais.on()
    time.sleep(2)
    relais.off()

    print(json.dumps({ 'module': module, 'ok': True }))

except Exception as error:
    print(json.dumps({ 'error': str(error) }))

finally:
    sys.exit(1)

Über den jeweiligen GPIO-Pin bekommt das Steuermodul das Signal, die Klappe zu öffnen oder zu schließen.

Klappenstatus

Eine externe, kabelgebundene Fernanzeige vom Hersteller kann angeschlossen werden, um den Status der Klappe über eine rote LED (offen) oder grüne LED (geschlossen) anzuzeigen. Das hierzu äquivalente Pythonscript sieht folgendermaßen aus:

#!/usr/bin/env python3
# Python script to get flap status from control module connected to Raspberry Pi.

import json, sys

try:
    from gpiozero import DigitalInputDevice

    pin = int(sys.argv[1])

    if pin is None or pin < 2 or pin > 27:
        raise Exception('Invalid PIN set.')

    input = DigitalInputDevice(pin)
    status = 'closed' if input.value == 1 else 'open'
    module = sys.argv[0].replace('.py', '')
    
    print(json.dumps({ 'module': module, 'status': status }))

except Exception as error:
    print(json.dumps({ 'error': str(error) }))

finally:
    sys.exit(1)

Das Signal wird nur an einem LED-Ausgang abgegriffen. Je nachdem, ob dort Strom anliegt oder nicht, ist die Klappe geöffnet bzw. geschlossen.

Eindrücke

Nachtsicht

Eine neue Kamera ermöglicht nun auch mittels Infrarot die Überwachung des Hühnerstalls bei Nacht.

stream mjpg

PWA Screenshot

To-Do

  • Hardware (Technik)
  • Software (App)
  • Fehlererkennung und Verzögerungstoleranzen
  • manuellen Betrieb steuern und Automatik anpassen
  • Webcam-Stream via raspivid (derzeit: Python3 picamera)

About

App zur Steuerung der Hühnerstall-IT

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published