Stellen Sie sich eine solche Situation vor: Es ist 6.00 Uhr an einem Samstagmorgen, Sie liegen gemütlich in Ihrem Bett und schlafen noch tief und fest. Plötzlich hören Sie Ihre Katze an der Tür kratzen, ihr lautes Miauen wird unerträglich und Ihre Katze hat alle Zeit der Welt, Ihnen mitzuteilen, was sie braucht. Wissen Sie, was sie wirklich braucht? Ich weiß es - Ihre Katze will jetzt Futter! Jetzt sofort! Woher ich das weiß? Weil ich irgendwann angefangen habe, meine Katze zu dieser Zeit zu füttern... Und natürlich wurde das zu einer neuen Standardzeit für die Futteraufnahme.
Dieses Szenario hat mich dazu inspiriert, einen Futterautomaten zu bauen, der die morgendliche Katzenfütterung überflüssig macht und die Katze bei Laune hält.
Erste Generation
Die erste Generation des Katzenfutters war eine einfache MVP aus etwas Karton, einem einfachen Servo und ESP WeMos. Mit einem Servo wurde der obere Behälter um 180 Grad gedreht, um das Essen auszugeben.
Ein Mikrocontroller war mit meinem lokalen Wi-Fi verbunden und kommunizierte mit dem Smart Home-Server, auf dem HomeAssistant läuft, über das MQTT-Protokoll. So konnte ich das HomeAssistant-Automatisierungssystem nutzen, um die Fütterung und Futterausgabe über Google Home-Befehle zu planen. Jede Fütterung wurde als ein spezielles Ereignis im Google-Kalender definiert. So konnte ich die Fütterungszeit der Katze leicht kontrollieren und bei Bedarf ändern.
Natürlich stieß diese Generation auf einige Probleme:
- der obere Behälter löste sich manchmal vom Servogriff und verschüttete das gesamte Essen (ich nannte das den "Jackpot-Effekt"),
- es hatte nicht das beste Design,
- begann der Karton zu zerfallen.
Wie bei den meisten MVPs wurde es nur 2 Jahre lang benutzt, bis es kaputt ging.
Zweite Generation
Ich habe beschlossen, dass die nächste Katze Futtermittel sollte:
- aus 3D-gedruckten Teilen gebaut werden,
- Raspberry Pi 3 verwenden,
- eine kleine Kamera haben, um zu beobachten, wie die Katze reagierte und was das Tier tat.
Ich begann den gesamten Prozess mit dem Entwurf von Grundelementen für die Aufteilung der Lebensmittel. Als die Entwürfe dann fertig waren, wurden alle Elemente mit dem Creality Ender-3 und PLA gedruckt.
Teile
Nachdem ich mich vergewissert hatte, dass alles funktionierte, machte ich mich an die Gestaltung und den Druck der restlichen Teile:
Basis für RaspberryPi (Stufe 0)

Es hat spezielle Stellen für Schrauben, um die Installation des Raspberry Pi zu erleichtern. Außerdem befindet sich auf der Vorderseite ein kleines Loch für den einfachen Zugriff auf die SD-Karte des Raspberry Pi.
Schalenhalter
Dieses Kunststoffteil dient zum Aufstellen eines Futternapfes aus Metall (natürlich wurde es mit Goldfäden bedruckt, zum Ruhm und zur Ehre meiner Katze). Er ist mit 2 Neodym-Magneten mit dem Sockel verbunden.

Servohalter (Ebene 1)
Diese Ebene dient dazu, den Servo zu halten, während er das Teil auf der nächsten Ebene dreht. Sie hat auch eine kleine Neigung, um das Essen besser servieren zu können.

Behälter für Rationierungsmechanismen (Ebene 2)
Es handelt sich um eine einfache, allgemeine Wasserwaage, die Lebensmittel aus einem darüber stehenden Behälter portioniert. Sie wird durch den Servo gedreht.

Halterung für Lebensmittelbehälter (Stufe 3)
Dieses Teil dient zum Halten des Lebensmittelbehälters. Es ist das einzige Kunststoffteil, das nicht 3D-gedruckt wurde. Ich wollte den Kontakt mit Lebensmitteln bei 3D-gedruckten Teilen minimieren. Theoretisch enthält transparenter PLA-Kunststoff keine giftigen Schadstoffe, aber ich habe den billigsten Müslispender gekauft und das Teil für den Lebensmittelbehälter genommen, nur um auf Nummer sicher zu gehen. Außerdem sieht er wirklich cool aus.

Gehäuse und Deckel
Die letzten beiden Teile waren das Gehäuse und der Deckel. Nichts Besonderes hier, außer mehr Gold, damit es besser aussieht und die Bewunderung der Katze gewinnt.

Alle Teile

Endmontage

Software
Auf dem Raspberry Pi läuft ein Raspbian, das mit dem Ansible-Spielbuch um diese Dienste zu betreiben:
MotionEye
MotionEye ist eine Open-Source-Software, mit der Sie Ihre eigene private Überwachung aufbauen können. Sie erkennt jede an den Raspberry Pi angeschlossene Kamera. Zusätzlich erhalten Sie eine Bewegungserkennung, einen Endpunkt zum Teilen des Streams und Webhook-Unterstützung.
Servo-Service
Dieser Dienst steuert die Drehung des Servos. Es ist eine einfache Python Skript, das sich mit dem MQTT-Server verbindet, auf dem meine Smart-House-Software läuft, und auf eine Nachricht wartet, um die Rotation auszulösen.
Geführter Dienst
Genau wie der Servo-Service implementiert er ein Protokoll für Lichtquellen, die über MQTT in HomeAssistent.
Automatisierung der Hausassistenten
Und schließlich die HomeAssistant-Automatik, die die Fütterung auslöst.
Sie löst die Ausgabe von Lebensmitteln in zwei Situationen aus:
- wenn die Fütterungszeit im Kalender auftaucht,
- wenn sich die Internationale Raumstation über meinem Heimatort befindet.
Diese Automatisierung Code sieht so aus:
- alias: Füttere die Katze
Auslöser:
- Plattform: Staat
Entity_id: 'binary_sensor.iss'
von: 'aus'
zu: 'ein'
- Plattform: Staat
Entity_id: calendar.cat_feed_schedule
von: 'aus'
zu: 'ein'
Aktion:
- Dienst: script.feed_the_cat
Zusammenfassung
Offensichtlich ist diese Version nicht die letzte. Aber sie erfüllt ihren Zweck - die Katze ist gut genährt und ich habe meine faulen Vormittage 🙂 .
Lesen Sie mehr:
– E-commerce: Neuer Stand des Spiels 2020 (Bericht)
– Wie kann man ein Unternehmen in der Krise führen?
– Ruby-Programmierung. Terminal für Einsteiger - Teil 2