Side Project: HaniMandl, halbautomatischer Honig-Abfüllbehälter

Bin gerade dabei einen halbautomatischen Honig-Abfüllbehälter zu bauen, angeregt durch ein paar posings in der Facebook-Gruppe Imkerei und Technik. Eigenbau. Mit den Waagen kennen wir uns ja zu genüge aus. ;-) Dann bauen wir noch einen kleine Servo dran, der den Quetschhahn bedient, wenn das Glas voll ist. und fertig ist der Roboter, so die Theorie. Noch was vergessen? Ach ja, bisserl Elektronik und ein paar Zeilen Code, nicht der Rede wert.

Problem

Honig abfüllen ist manchmal langweilig. Wenn der Honig schon kandiert und zäh ist sitzt man vor dem Loch des Quetschhahns wie die Katze vor dem Mauseloch und wartet ewig bis der letzte Tropfen für genau 350 g im Glas ist. Oder man träumt etwas und es sind 370 g drin. Die 20 g mehr gönne ich jedem, der ein Glas Honig von mir möchte, nur soll der oder die sich nicht ärgern wenn das Glas das erste mal aufgemacht wird und da gleich süßer Seim aussen am Glas runterläuft. Also mit dem Kaffeelöffel wieder etwas Honig raus, Glas auf die Waage und schauen, dass man nun nicht wieder unter 350 g ist. Genauer und vielleicht auch schneller ist da eine kleine, intelligente, never sleeping Maschine

Als geübter Imker macht man das natürlich im Halbschlaf, manchmal aber unter Schlafmangel und wenn man ganz aufgeweckt ist, ist es dennoch als Maker cooler so was robotermäßig machen zu lassen als selbst zu machen.

Konzept und Anforderungen

Funktionieren soll das Ganze mit einer Waage, die kontinuierlich das Gewicht misst während in das Honigglas auf der Waage Honig abgrfüllt wird. Die Waage soll möglichst flach sein, damit Honigglas (ich habe leider sehr hohe) plus Waage unter den Hahn des Honigbehälters passen.

Die Waage gibt das Gewicht an einen Arduino / Microcontroller weiter - irgend einer mit 5 V (damit man mit der gleichen Spannung den Servo betreiben kann) und steuert mit Soll- und Ist-Gewicht den Servo, wenn noch viel im Glas fehlt soll der Quetschhahn weit geöffnet sein, wenn wenig fehtl eine kleinere Öffnung haben und kurz befür das Zielgewicht erreicht ist schließen.

Für die Kontrolle und zum Tarieren, Einstellen des Zielgewichts brauchen wir ein Display und zwei, drei Taster.

Mechanisch soll ein kleiner Modellbau-Servo die Arbeit machen und den Quetschhahn bedienen.

Bauteile

  • Waage
    – was flaches
    – vielleicht baue ich eine kleine, sehr flache Küchenwaage von Ikea oder Saturn / …um
    – Momentan habe ich noch eine Bosche H10 mit 10 kg max. hier liegen und werde diese für Tests nutzen. Produktiv ist die aber zu hoch.

  • Mechanik
    most challenging part würde ich sagen
    – Habe gestern einmal mit einer Waage meinen Quetschhahn “bedient”, der ist sehr fest eingestellt, was man aber mit einem Schraubenschlüssel schnell ändern kann, Jedenfalls zeigte die Waage beim Schließen und Öffnen (noch ohne Honig) etwas unter 1 kg an, d.h. ein Servo mit 5 kg “Kraft” sollte reichen.
    – Der Servo muss irgendwo befestigt werden. Eine Idee ist den Quetschhahn als Widerlager zu nutzen, dann wäre der Kübel frei bewegbar, oder die Unterläche auf dem der Behälter steht, gefällt mir aber nicht so gut.

  • Elektronik
    – 5 V Arduino, zu ersten Tests einen Uno, dann einen Pro Mini, allerdings die 5 V-Version, die ist kompakter und passt besser in ein kleines Gehäuse als der Uno
    – HX711 als Wägezellen-IC
    – 16x2 LCD-Display mit I2C-Anschluss oder was kleineres anderes als OLED
    – 3 bis 4 Taster
    – Gehäuse mit Klarsichtdeckel, alles abwaschbar
    – kein Batteriebetrieb, sondern 5 V vom Netzteil

  • Software
    – die üblichen Bibliotheken
    – HX711
    – LCD-Lib, eine I2C-Version
    – Servo-Lib ist glaube ich Arduino build in

Teil-Prototyp 1 von Clemens

Geht besser, s.u.! :-)

Mechanik: Servoarm mit Quetschhahn verbinden

Für die mechanische Verbindung von Servo über “Servohorn” – weitere Streben – Quetschhahn wäre ein Loch im Quetschhahn vorteilhaft. Marc mat im der Facbook-Gruppe “Bauprojekt Stockwaage” einen billigen Plastik-Quetschhahn verwendet und da ein Loch reingebohrt.

Mein Abfüller ist ohne Loch im Griff des Quetschhahns. Deswegen habe ich versucht dafür eine Halterung zu bastlen. Der erste Versuch ist aber leider Quatsch, :-( die Mechanik funktioniert nicht gut ohne zweiten Drehpunkt.

Der Ansatz von Marc ist besser. Mal schauen, entweder ich bohre meinen Quetschhahn an oder ich muss mir mit dem Plexiglas noch etwas bauen, d.h. den langen Streifen unter den Löchern für den Servoarm absägen und dann mit einer Schraube als zweites Gelenk beweglich wieder anbauen - wenn die Länge noch reicht. Oder eben den Teil oben nochmal länger neu bohren.

Plexiglas habe ich übrigens mehrfach mit einem Cutter angeritzt und dann über Kante gebrochen, ging ganz gut - zumindest besser als erwartet. Bohren mit normalem HSS ist für 4er Löcher schwierig, bohrt sich leicht fest und reißt dann das Material. Versuche es das nächste mal mit einem Stufenbohrer.

Befestigung ist noch nicht geklärt, aber da gibts ja von Marc schon gute Vorschläge mit Rohrschelle am Quetschhahn.

3 Likes

Update der Teileliste

oder

Code

1 Like

Nich immer nur amaz*n, mal wieder den lokalen Einzelhandel stärken! Servo und Spurstange bekommst Du auch im Laden bei Dir um die Ecke (shop ist unter einer anderen url) :

1 Like

Den Servo, der oben zu sehen ist, einen Ripmax Quartz QZ502, habe ich hier in der Nähe bei https://www.werken-spielen-schenken.de/ schön lokal für um die 20 EUR gekauft. Dazu habe ich noch einen hübschen Servo-Arm von Graupner für 8,50 EUR gekauft. Der Servo bei Amazon kostet mit Servoarm 18 EUR. Kaufe gerne lokal, wenn der Preis halbwegs stimmt. ;-)

Wenn wir den Heltec mit fest verbauten Display verwenden, müssen wir Zeile 36 ändern in

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 15, /* data=*/ 4, /* reset=*/ 16);

Weiter sind damit pin 4,15 und 16 belegt, d.h. wir müssen die Belegung für SERVO_PIN und HX711_SCK ändern.

Siehe dazu ESP32 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials

Prototyp von Martin (Z.)

Martin Zahn aus der FB-Gruppe “Imkerei und Technik. Eigenbau”), hat nach den Vorarbeiten von Marc Vasterling diesen verbesserten Prototypen gebaut, Danke!

… und hier sogar in Aktion!

Lieben Dank auch an Martin Zahn für das placet seine Fotos und Videos hier einstellen zu dürfen!

3 Likes

Moin, besteht die Möglichkeit einen Anschlussplan zur Verfügung zu stellen. Bin mir bei manchen Bauteilen nicht so sicher wo die genau angeschlossen werden. Habe mir zwar die PinMap vom ESP32 ausgedruckt und vom Quelltext versucht Details heraus zulesen. Nur da kommt jetzt der Punkt, ich habe einen 3 Anschluß Poti pin 1 GND pin 2 Eingang pin 3? DISPLAY? 😅

Bekommen die Bauteile alle Strom über den ESP? Oder Zweige ich mir das von einem Kabel immer ab?

DANKE für die Hilfe

@Tobi-H, zum Anschluss des Potis findest du was unter Arduino Analog Input – Schaltplan, Programmcode und Erklärung, der mittlere Kontakt des Potis muss an den input des ESPs. Alle Bauteile – bis auf den Servo! – bekommen Strom vom ESP, und zwar die 3,3 V nicht! die 5 V (falls ein 5V / Vin-Pin auf deinem ESP32-board ist).

Der Servo kann im Anlauf viel Strom ziehen und evtl. dazu führen, dass die Spannung zusammenbricht und der ESP resettet oder andere komische Dinge macht. Marc und Martin haben daher bei FB geschrieben, dass sie zwei Netzeile verwendet haben. Eines für den ESP und eines für den Servo. Wichtig ist dann, dass beide Systeme einen “common ground” haben, d.h. GND von Netzteil 1 mit GND von Netzeil 2 verbunden ist. Hier wirklich aufpassen und Verbindungen doppelt checken, da bei falscher Polung auch schon mal was abrauchen und kaputt gehen kann! Zum Testen habe ich einen kleinen Servo aber auch am 5 V-Anschluss des Heltec WiFi Kit 32 betrieben.

Ersetzung der externen pull down-Widerstände durch interne

Das Schöne am ESP32, ist auch, dass er interne pull ups und pull downs hat, für unsere input-pins habe ich diese nun im code ab Version 0.1.3 aktiviert, damit spart man sich diese beim Zusammenbau:

Bitte beachten, dass einige pins, nämlich GPIO 34-39 beim ESP32 keine internen pull ups / pull downs haben, diese also nicht verwendet werden können!

“normale” Pins als Vcc / GND nutzen

Auf den boards sind ja immer nur eine beschränkte Anzahl von 3,3 V- und GND-pins. Da muss man abzweigen bzw. Ketten bilden, damit man alle Bauteile versorgen kannst.

Eine Alternative dazu ist “normale” pins als Vcc oder GND zu nutzen! Das geht natürlich nicht für Dinge, die viel Strom fressen oder grounden sollen, für unsere Taster, Schalter und den Poti sollte das aber gut funktionieren und wir können damit nebeneinanderliegende Pins auf dem board für aufgeräumte Steckverbindungen nutzen! Weniger Kabelsalat, weniger Löterei!

Hier ein Beispiel wie das geht:

const int _VCC = 2; 
const int _GND = 6;
    digitalWrite (_VCC, HIGH);  // output 5V for VCC
    digitalWrite (_GND, LOW);   // ground set to 0V
    pinMode (_GND, OUTPUT);     // turn on GND pin first (important!)
    pinMode (_VCC, OUTPUT);     // turn on VCC power
    delay (100);                // short delay to let chip power up

So jetzt muss ich hier noch mal bei den Netzteil fragen, ich nutze zum Beispiel ein USB-Netzstecker und schließe dort das USB-Kabel an was auf Mini-USB endet. (Variante a) 4.75V mit 0.55A oder b) 5V mit total 2.1A)

Servo-Netzteil nutze ich ein 5V mit 3000mA bzw. 15VA mit einen Steckadapter damit ich plus und Minus einzeln nutzen kann(Beispielbild Stecker .

Wie würde ich jetzt einen “common ground” herstellen? Über den GND des ESP oder anders? Habe so etwas noch nie gebaut. Daher die vielen Fragen.

Wiring Diagram

Code dazu, Version v0.1.4.ino

https://github.com/ClemensGruber/hani-mandl/blob/master/hani-mandl_v0.1.4.ino

2 Likes

So schaut der erste Gehäuse-Prototyp aus. Habe ich schon mal gesagt, dass ich Stufenbohrer liebe!

3 Likes

Schickschick :) Aber wieso so viele Knöppe? Zwei Cents meinerseits: Du hast sicher schon an nen Modus mit automagisierten Befüllungsstart gedacht? So a la “oh, da liegt schon seit 2-3 Sekunden nen Gewicht auf der Waage, dass um +/-3 Gramm genauso schwer ist, wie das blätter 500-Gramm-Glas, das Clemens dauernd benutzt …” :) [edit: ja, ein Potential für viel Sauerei :]

Genau so ist das schon implementiert! :-) Mit dem 3-fach-Kippschlater kannst du diesen Automatik-Betrieb wählen, den Handbetrieb / Testbetrieb und das Konfig-Menü aufrufen. Der grüne Kopf ist zum manuellen starten, oder Punkte im Konfig-Menü zu bestätigen. Der rote um zu stoppen und der Poti um im Menü zu navigieren oder Füllmengen oder den Öffungswinkel einzustellen.

Wie du schon schreibst ist im Automatikbetrieb wenig Interaktion nötig, daher hatte ich auch schon mal überlegt das komplette User-Interface per bluetooth oder WLAN zu realisieren, dann würde man sich alle Knöpfe sparen und auch das Display. Jetzt wollte ich aber erst mal das was es schon gibt nachbauen. Und für manche Imker könnte ein BT-pairing auch eine unüberwindbare Hürde sein. Daher hat das Haptische schon auch seine Berechtigung! ;-)

2 Likes

… aber das wäre dann ein Grund, weshalb ich das nicht benutzen wollen würde: wer hat denn Lust, beim Honigabfüllen noch mit dem phone rumzudaddeln?!
Ich möchte da (1-2) Fußtaster dran haben, das wäre Luxus!

Genau, der Not-Aus ist wichtig: da es wegen starrer Servo-Kopplung keinen “manual override” gibt, muß für sofortiges Schließen des Quetschhahns etwas da sein, denn es wird im Falle auch kein Stecker-Ziehen helfen…

Guter Punkt @weef, der Servo hält ja aktiv seine Position, und Zumachen geht dann nur mit dem Taster. Falls das Programm oder die Waage mal spinnt müsste man fürs manuelle Schließen erst mal den Strom abschalten – damit der Servo nicht mehr gegensteuern kann – und dann erst könnte man manuell schließen.

@clemens, @weef, normale Servos steuern eigentlich nicht gegen, so wie das z.B. Schrittmotoren machen. D.h. zur Not kann man mit etwas kraft immer den Servoarm per Hand runterdrücken und so den Auslass schließen. Wenn der ESP neu startet (z.B. bei einem Absturz), schließt der Hebel beim Neustart sowieso. Sauerei hatte ich mit der Abfüllelektronik noch keine ;-)