Automatische Hühnerklappe / Hühnerstall (Raspberry Pi und Lego Technik)

  • Hallo Miteinander,


    nachdem bei uns seit ein paar Monaten 3 Hühner leben und brav Eier legen, wurde es langsam Zeit das Stalltüreöffnen am Morgen und -schließen am Abend zu automatisieren. Nachdem mir als Raspberry-PI Newbie eure Anleitungen extrem weiter geholfen haben möchte ich meine bisherigen Erfahrungen teilen - vielleicht plant ja jemand gerade ein ähnliches Projekt ...


    [hr]


    Bestehende Projektbeschreibungen - automatische Hühnertüre:



    [hr]


    Anforderungen & Einkaufsliste


    Der RaspberryPi soll langfristig folgende Aufgaben erledigen:


    • Innentüre (Wärmeschutz im Winter) schiebend öffnen
    • Außentüre (Einbruchschutz) nach oben öffnen
    • Webcam zur Beobachtung der Türfunktion
    • Temperatursensor
    • Steuerung von Wärmematten im Winter (um die Temperatur im über 0° zu halten)


    Nachdem ein Batteriebetrieb über Wochen mit dem Raspberry Pi aufwendig ist, wurde ein Erdkabel und Verteiler in den Stall verlegt. Folgende Elektronik-Teile wurden eingesetzt:



    *) Achtung, dieser Motor ist dafür eigentlich zu schwach!



    [hr]


    Bisherige Arbeitsschritte N°1: Motoransteuerung programmieren


    Ich habe den oben genannten Motor bestellt, weil ich ein Rasbpi-Newbie bin und sichergehen wollte dass alles funktioniert. Bei dem Motor ist eine Anleitung und ein Script beigelegt, der bei Motor#1 auch einwandfrei funktioniert. Man sollte die Platine aber nicht direkt an den GPIO anstecken, sondern mit den im Experiment-Set enthaltenen Kabeln händisch verbinden. Dafür gibt es 2 Gründe:


    • Man belegt damit alle weiteren Pins, die für weitere Sensoren benötigt werden
    • pi4j hat Probleme mit GPIO7, ich habe daher als Workaround GPIO0 an beiden Motoren angesteckt (Motor 1 nutzt somit GPIO0-3, Motor 2 nutzt GPIO 4-6 und GPIO 0 anstelle 7).


    Wie man das Script ausführt entnimmt man am besten einem pi4j GPIO Beispiel. Wichtig ist dabei: Dateiname und Klassenname müssen übereinstimmen, und der Code muss in den Ordner /opt/pi4j/lib/ gelegt werden. Hinweis: Für diesen Ordner muss man zuerst die Schreibrechte mit chmod setzen (allein daran bin ich anhand der kryptischen Fehlermeldungen 2h lang verzweifelt).


    Den Java-Code habe ich übrigens anders als im Tutorial in BlueJ eingegeben - einfach eine neue Klasse erstellen, diese kompilieren und dann mit rechter Maustaste bei der Klasse klicken und "void main ..." ausführen. Das ist mir als Grafiker wesentlich sympatischer als dieses 80er-Jahre Linux Shell - ich sag dazu ja immer DOS Fenster (jaja, rügt mich nur dafür!!! ;-) )


    PS: Zur Motorsteuerung gibt es auch Python-Anleitungen, wahrscheinlich hat man da kein Problem mit GPIO7 (z.B. elektronx.de, learn.adafruit.com).
    PPS: Man sollte an dieser Stelle auch gleich den Motor mit einem externen Netzteil versorgen weil die Stromversorgung mit Raspberry Pi für die Aufgabenstellung nicht ausreicht, siehe Schritt 4!



    [hr]


    Bisherige Arbeitsschritte N°2: Temperatursteuerung & Webcam


    Der Vorteil von dem Raspberry Pi Experiment-Set ist, dass für den Temperatursensor bereits Scripts & Anleitungen zur Verfügung gestellt werden. Die haben ohne Probleme funktioniert.


    Als Webcam habe ich einfach eine alte USB Webcam verwendet und mit fswebcam diese eingerichtet (Anleitung USB Webcam auf RasberryPi). Wichtig ist dabei, dass das automatische Speichern auf der Festplatte ausgeschaltet ist - sonst ist diese relativ schnell voll. Die Anleitung funktioniert in internen Netzwerk einwandfrei, für eine Internet-Webcam siehe nächster Arbeitsschritt.




    [hr]


    Bisherige Arbeitsschritte N°3: Raspberry Pi für Remotezugriff bereit machen


    Nachdem der Raspberry Pi im Hühnerstall stehen wird, wo ich keinen Platz für Monitor und Tastatur habe, möchte ich auf diesen via WLAN Netzwerk oder Internet zugreifen. Das Zauberwort hierfür ist wohl XRDP - damit kann man sich von einem anderen Rechner aus einloggen. Ich kann mich leider nicht mehr erinnern, welches Tutorial ich verwendet habe - ihr findet per Google Suche zu xrdp problemlos Anleitungen, das ganze dauert nur einige Minuten und war selbst für einen Newbie für mich leicht zu lösen. Wichtig ist dabei, dass man bei einigen Routern eine Portweiterleitung einrichten muss - was dann je nach Router doch komplizierter sein kann.


    Wenn man mit der Portweiterleitung Probleme hat und/oder den Raspberry Pi vom Internet aus steuern möchte, kann man auch weaved verwenden, die speziell für den Raspberry Pi einen xrdp Remotezugriff ohne Portweiterleitung ermöglichen (weaved-Anleitung). Das ganze ist gratis, man muss sich aber nach 30 Minuten immer wieder neu einloggen. Nachteil: Die Reaktionszeit ist langsam, aber für kleine Code-Änderungen reicht es.


    Leider habe ich es nicht geschafft, die Webcam übers Internet aufzurufen. Workaround für Faule: Mit weaved kann man sich am Rechner einloggen und dort per Browser auf das Webcam-Bild zugreifen (siehe xrdp screenshot im Anhang).


    Hinweis: Aus Sicherheitsgründen sollte man das Standard-Passwort ändern! Wenn man das über den xrdp remote Zugriff macht, sollte man dann sofort "sudo service xrdp restart" eingeben, ansonsten kann man sich danach nicht mehr anmelden! (ja, blöd, wenn man dafür alles wieder ausbauen, an einen Monitor anstecken, und wieder einbauen muss! ;-) )






    [hr]


    Bisherige Arbeitsschritte N°4: Installation im Hühnerstall


    Im Anhang findet ihr einige Fotos vom aktuellen Stand - der zugegeben noch ein wenig chaotisch ist. Das lag vor allem daran, dass sich die Motoren als extrem schwach herausgestellt haben - trotz externer Stromversorgung, die ich jetzt mit 7V anstelle den angegebenen 5 V betreibe. Als weiteren Workaround habe ich einige Logo-Technik Bauteile ausgegraben und so eine stärkere Übersetzung bewirkt - allerdings mit dem Effekt, dass das Öffnen nun 20 Minuten dauert. Hat aber den Vorteil, dass kein Huhn eingequetscht werden kann!


    Mit den Lego-Technik teilen lässt sich jetzt die innere Türe schieben - diese wird mit 2 Seilen und einer Seilwinde in die jeweilige Richtung geschoben. Die äußere Türe ist mit ca. 400g leider noch immer zu schwer für den Motor, bzw. die Übersetzung wäre dann so groß, dass das Schließen/Öffnen 2h dauern würde. Ich plane daher als nächstes eine wesentlich kleinere und leichtere Türe einzubauen (aus Gitteralu).


    Weiteres Problem (Nachtrag 7.Juli): Man sollte das Verhältnis zwischen Seilstärke und dem Durchmesser der drehenden Stange bedenken. Manchmal verteilt sich das Seil schön an der Stange und manchmal wickelt es sich an einer Stelle auf. Dadurch öffnet sich das Tor jedes mal unterschiedlich weit. Lösungsmöglichkeiten: Durchmesser der Stange erhöhen oder Breite der Stelle so eng setzten, dass sich das Seil jedes mal gleich aufwickelt.


    [hr]

    Bisherige Arbeitsschritte N°5: Zeitautomatik


    Zuerst wollte ich die Zeitautomatik direkt in Java lösen, das war aber ziemlich kompliziert. Ich bin daher auf crontab umgestiegen - hier ein Beispielcode wie das Öffnen täglich 6h Morgens und das Schließen um 8h abends durchgeführt wird:


    00 06 * * * sudo java -classpath .:classes:/opt/pi4j/lib/'*' open >/dev/null 2>&1
    00 20 * * * sudo java -classpath .:classes:/opt/pi4j/lib/'*' close >/dev/null 2>&1



    Die Java Dateien "open.jar" und "close.jar" habe ich auch hier mit BlueJ im Verzeichnis /opt/pi4j/lib/ erstellt! Ursprünglich wollte ich die Zeitschaltung mit dem im Experimentier-Set integrierten Lichtsensor realisieren. Das ist mir im Moment zu viel Arbeit da man mit crontab sehr einfach für jeden Monat individuelle Zeiten angeben kann.



    [hr]


    Weitere Schritte


    Ja - zugegeben, das ganze Projekt ist bis jetzt doch etwas chaotischer verlaufen als ursprünglich geplant - vor allem der Workaround mit den Lego-Teilen für eine bessere Übersetzung ist doch sehr abenteuerlich geworden. Schade, dass die Schrittmotoren nur ca. 100 gramm Gewicht heben können! Vielleicht habt ihr bessere Ideen? Klar, alles ausbauen, und neue Motoren bestellen. Aber das ist mir im Moment zu viel weitere Arbeit. Falls die Lego-Teile langfristig funktionieren kann man die Konstruktion auch so einfach belassen. Im Herbst wird dann dafür die Wärmematten-Ansteuerung umso wichtiger. In jedem Fall würd ich mich über Hinweise und Anregungen freuen! :)

  • Vor noch nicht all zu langer Zeit habe ich einen, ich nenne es mal Schiebemotor im Netz gesehen. Sah aus wie eine kleine Hydraulik mit gut 30 cm hub.
    12 Volt elektrischer Antrieb.


    Der Preis lag auch so zwischen 30 und 40 euro. Dachte da noch, wenn ich mir mal ein paar Hühner anschaffe, wäre das eigentlich ideal.


    Es kann eigentlich nur bei Ebay, Aliexpress oder Amazon gewesen sein. Ich erinnere mich aber nicht mehr, wie es benannt war.


    Habe nochmal google bemüht. Unter Actuator kommen etliche Ergebnisse.


    Beispiel:


    http://www.ebay.de/itm/DC12V-3…%3D27%26sd%3D111970277356


    http://www.ebay.de/itm/DC24V-2…%3D27%26sd%3D111970277356


    Andere Sache. Braucht man wirklich Wärmematten? In der Verwandtschaft gab es früher immer Hühner, aber keiner der Ställe hatte diesen Luxus und früher waren die Winter strenger, zumindest im Rhein-Main Gebiet.


    Ich denke, zwei Holzplatten mit Styropor dazwischen ist schon mehr als was ich früher gesehen habe.

    Edited once, last by rmjspa ().

  • Interessant :)


    Ich hab vor zwei Wochen auch ein automatisches Hünerstall-Türl mit einem RPi gemacht :)
    Eine vertikale Schiebetüre, die wir jahrelang manuell hochgehängt haben. Aber besonders im Sommer wollen die Biester natürlich nicht reingehen.
    Ab jetzt macht eben ein RPi das Licht an und später die Türe zu und das Licht wieder aus.
    Ich hab mir einen Getriebemotor besorgt bei Conrad und eine ca. 2cm dicke Welle (Besenstiel) dranngebaut. Das Ganze gibt eine Winde und die hebt und senkt das Türl in 8 Sekunden - schön gemütlich.
    Programmiert hab ich das Ding in python - C++ war mir dafür ein bisschen zu überdimensioniert ;)


    Gruß
    Franz

  • Hi,


    unsere Hühner leben in einem ungeheizten Stall, auch bei Minustemperaturen, bisher ohne Probleme und gesund und munter


    Unsere Hühnerklappe (wurde bereits in den ersten beiden Links beschrieben)
    http://www.forum-raspberrypi.d…-2-0?pid=215967#pid215967
    http://www.forum-raspberrypi.d…mera?pid=160889#pid160889
    wird durch einen gebrauchten Rolladen mit gebrauchten Rolladenmotor (Rohrmotor) realisiert.


    Einfach, robust und zuverlässig.
    Gesteuert wird von FHEM über Intertechno-Funkschalter auf einem (unterfordertem) RasPi, welcher übrigens abends auch das Licht eine dreiviertel Stunden vor dem Sonnenuntergang an- und nach dem schließen der Klappe wieder ausschaltet.


    Gruß Bracew

  • Hallo ... danke für eure Rückmeldungen! :)


    @ Wärmematten: Ich bin mir auch nicht sicher, ob wir welche brauchen. Unser Stall ist wirklich sehr klein, liegt in der Luft und speichert in der Nacht absolut keine Wärme. Ich hätte mir gedacht, dass man zumindest harte Minustemperaturen (ab -5°) vermeiden sollte. Bei uns in Innsbruck gibt es die halt doch regelmäßig. Aber vielleicht reicht ja auch wirklich Styropor ...


    rmjspa & Bracew: Wie steuert ihr den Motor an? Mit einem Relais, wo du die Stromstärke für eine gewisse Zeitspanne anlegst? Aber wie steuert man dann die Richtung?


    sd582 : Welchen Motor, welche Ansteuerung und was für eine Welle hast du verwendet? Meinst du mit "Welle" eine Übersetzung oder einfach einen Hohlzylinder wo du das Seil fest machst?


    @ schnasseldag: Du hast den Link vergessen?

    Edited once, last by tschakaa ().

  • Die Rollladenrohrmotoren, die ich kenne haben einen Nullleiter und einmal Phase für "Auf" und eine Phase für "Zu". 230 Volt. Du schaltest dann mit einem Relais entweder Phase 1 oder 2 für eine bestimmte Zeit. Ausserdem gibt es Endabschalter an den Motoren.


    Die Idee finde ich auch gut, vor allem wenn Du ein Alurolladen nimmst, gegen den Marder.


    Bei den von mir verlinkten Actuatoren müsstest Du recherchieren. Ich sehe auf den Bildern 2 Drähte, also sollten sie durch Wechsel der Polarität zwischen "Auf" und "Zu" umschalten.


    Ich habe noch keine Hühner, würde aber diese Actuatoren der Einfachheit halber bevorzugen.


    Bezüglich der Minustemperaturen, denke ich es ist eher von Vorteil wenn der Stall klein ist.


    Überleg mal, es gibt so viele Vogelarten die bei uns überwintern. Im freien, und dass macht denen auch nichts aus.


    Nur eines darfst Du nicht machen, dass Styropor einfach von innen auf das Holz kleben. Die Hühner lieben daran herumzupicken. Du kannst auch zwei Wände mit Nut und Feder erstellen und dazwischen Isolierwolle einfügen. Möglichkeiten gibt es da viele.

  • Hallo


    >> sd582 : Welchen Motor, welche Ansteuerung und was für eine Welle hast du verwendet? Meinst du mit "Welle" eine Übersetzung oder einfach einen Hohlzylinder wo du das Seil fest machst?


    Am Bild ChickenGuard.jpg (so hab ich meinen fleißigen Helfer genannt) sieht man rechts unten den Getriebemotor mit Alurohr als Wellenverlängerung. Über das Alurohr ist ein Stück Rechenstiel geschoben, welcher den passenden Durchmesser für die Winde hat.


    Im Kasten oben ist der RPi und ein 12V Netzteil für den Motor und die kleine Lampe unter dem Motor. Das alte iomega Netzteil versorgt den RPi. Und da ich in der Ecke Probleme mit WLan hatte, hat der ChickenGuard noch ein PowerLan bekommen.


    Am Bild Getriebemotor.jpg sieht man gut das Typenschild des Motors. Zur Entstörung habe ich noch einen Filter, den ich noch von einem Modellflugzeug hatte, angelötet.


    Der Motor wird über eine H-Brücke angesteuert, die ich um ca. 5 oder 6 Euro fertig gekauft habe. Da es sich um eine Doppel-H-Brücke handelt, verwende ich die zweite Brücke gleich zum Einschalten der Lampe.
    Diesen hier: "https://www.marotronics.de/Motortreiber-L298N-Dual-H-Bruecke-Motor-Treiber"


    Der könnte theoretisch auch gleich den RPi versorgen, wobei der 5V Regler aber schnell ziemlich warm wird. Ich habe mich dann doch für die extra Versorgung entschieden.


    Gruß
    Franz


  • @ schnasseldag: Du hast den Link vergessen?


    Nein, hab' ich nicht. Ich hab' auch keine Hühner. Mir kam die Idee nur, weil ich früher (also vor mehr als einen viertel Jahrhundert :) ) mal mit einer Ständerbohrmaschine und 3 Antennenmotoren eine Art Kopierbohrmaschine für Leiterplatten bauen wollte. Hab's aber nie umgesetzt... Die Idee des Rolladenmotors finde ich allerdings erheblich professioneller!

  • Hi tschakaa,


    der Rolladenmotor wird von einem Intertechno-Funk-Jalousieschalter:
    https://www.amazon.de/Intertechno-Funk--Jalousieschalter-CMR-Bewegende/dp/B0030GCKBI/ref=sr_1_1?ie=UTF8&qid=1468266431&sr=8-1&keywords=intertechno+cmr-500 (Affiliate-Link)
    gesteuert.
    Schaltplan:
    https://www.google.de/url?sa=t…6SmXvQDzAjEjOhO4iBaVbtXnA
    Dieser bekommt seine Befehle über einen am RasPi-GPIO angebaute Antenne, ähnlich diesem Bild
    http://www.einplatinencomputer…2/rpi2_443mhz-810x456.jpg
    und sinngemäß zum Teil nach dieser Anleitung:
    http://www.gtkdb.de/index_36_2261.html
    Die Software welche steuert ist FHEM:
    http://fhem.de/fhem_DE.html


    Gruß Bracew

  • Wir haben letztes Wochenende die Klappen wieder umgebaut. Sowohl die Innen- als auch Außentüre besteht jetzt aus einem ca.250x250x1mm Alublech. Dadurch sind die Elemente jetzt so leicht, dass sie ohne Übersetzung hochgezogen werden können. An der Unterkante haben wir Holzleisten montiert, sodass Raubtiere das Blech nicht ohne weitres nach oben schieben können.


    Die Türöffnung funktioniert jetzt - nur folgendes bereitet uns noch Kopfzerbrechen:


    • Wenn man die Scripts in BlueJ ausführt muss man eine andere Zeit angeben als wenn man das kompilierte Script im Shell ausführt! Wie kann das sein? 60 Sekunden im Bluej sind nur ca. 40 Sekunden im Shell!*
    • Gestern Abend wurde die Türe nicht ganz geschlossen. Seit Samstag hatte das öffnen/schließen Problemlos funktioniert - wie kann das sein? Ein Faden wird die gleiche Zeit (ca.60 Sekunden) aufgerollt und dann wieder abgerollt. Entweder es gibt einen Konstruktionsfehler - oder irgendetwas stimmt mit pi4j / java nicht - wie oben beschrieben.


    *) Mit dieser Scriptvorlage wird der Motor für 50 Sekunden angesteuert:
    http://www.savagehomeautomatio…ntrol-breakout-board.html
    Hier ein Beispiel für 50 Sekunden - wie kann die Zeit in BlueJ anders sein als im Shell?

    • System.out.println(" Motor FORWARD for 50 seconds.");


    • motor.forward(50000);

    Edited once, last by tschakaa ().

  • Hier ein Foto von der neuen Türöffnung. Und typisch - während wir gearbeitet haben machens sich die gefliederten Freunde bequem! :shy:



    Nachdem die Öffnung nun doch nicht immer richtig funktioniert möchten wir den Motor auch manuell ansteuern. Hab Ihr irgendwelche Ideen dazu? Ich dachte an ein Wireless Keyboard und dem Java KeyListener. Damit könne beim drücken/gedrückt Halten einer bestimmten Taste der Motor eingeschalten werden, oder?

  • Geht das nicht einfacher?


    Ein Umschalter Automatik / Manuel.


    Automatik = Strom kommt vom Pi
    Manuel = Strom kommt von einem Taster


  • Geht das nicht einfacher?


    Ein Umschalter Automatik / Manuel.


    Automatik = Strom kommt vom Pi
    Manuel = Strom kommt von einem Taster


    Je nachdem was einfacher ist - Bei dieser Variante müsste ich wieder an die Verkabelung ran, die mittlerweile recht komplex ist (2 Motoren, externe Stromversorgung, Wärmesensor). Ich dachte / hoffte, dass das nicht so schwierig sein kann in Java ein Programm zu schreiben, dass Funktion X ausführt wenn Taste Y gedrückt wird?

    Edited once, last by tschakaa ().

  • Moin,


    erstmal vorrab, ich bin total begeistert von deinem Projekt. Ich bin natürlich auch nur darauf gestoßen, weil ich sowas ähnliches gerade an meinem zukünftigen Hühnerstall realisieren möchte.


    Ich habe bisher mit meinem Pi nur einen Kiosk-PC erstellt, der nun bei uns auf der Arbeit ein Infoterminal mit aktuellen Veranstalltungen versorgt. Also was das scripten anbetrifft, komme ich schon sehr gut zurecht.


    Bei deinem Projekt fehlen mir so ein bischen die Details zur Umsetzung. Ich weiß, dass ich z.B. für einen Lichtsensor ein Script brauche und für einen Schrittmotor das gleiche. Aber wie bekomme ich die einzelnen Sensoren und Aktoren dazu, bei Ereigniss XY zum Beispiel den Motor anzusteuern. Sprich also die Interaktion untereinander.


    Ich wäre super dankbar, wenn du oder ein anderer mir da auf die Sprünge helfen könntet.


    Achso zu meinem Projekt noch zu sagen.


    Ich möchte die Hühnerklappe mittels Schrittmotor über einen Lichtsensor (Sonnenauf- und untergang) steuern

    Edited once, last by idnak ().