Benutzer-Werkzeuge

Webseiten-Werkzeuge


iot:vollautomatische_katzenwaage

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
iot:vollautomatische_katzenwaage [14.06.2020 18:29] – [Programmierung] Frickelpietiot:vollautomatische_katzenwaage [02.06.2023 08:22] (aktuell) – [Vollautomatische Katzenwaage] Frickelpiet
Zeile 1: Zeile 1:
 ====== Vollautomatische Katzenwaage ====== ====== Vollautomatische Katzenwaage ======
-{{:iot:vollautomatische_katzenwaage:img_1177.jpg?200 |}}Um das Körpergewicht meiner beiden (nun langsam in die Tage kommenden) Katzen Leonie und Leslie automatisch und vor allem regelmäßig zu erfassen, habe ich zwei vollautomatische Katzenwaagen entwickelt und gebaut. Diese werden unter den Katzentoiletten platziert und messen während des Toilettengangs das Gewicht der Katze, die ihr Geschäft erledigt. Da Leonie und Leslie unterschiedliche Körpergewichte haben, können die Waagen automatisch erkennen, welche Katze gerade auf der Toilette ist und das gemessene Gewicht entsprechend zuordnen.+{{:iot:vollautomatische_katzenwaage:img_1177.jpg?200 |}}Um das Körpergewicht meiner beiden Katzen Leonie und Leslie automatisch und vor allem regelmäßig zu erfassen, habe ich zwei vollautomatische Katzenwaagen entwickelt und gebaut. Diese werden unter den Katzentoiletten platziert und messen während des Toilettengangs das Gewicht der Katze, die ihr Geschäft erledigt. Da Leonie und Leslie unterschiedliche Körpergewichte haben, können die Waagen automatisch erkennen, welche Katze gerade auf der Toilette ist und das gemessene Gewicht entsprechend zuordnen.
  
-Das Ergebnis der Messung wird zum einen auf einem LC-Display angezeigt, zum anderen aber auch über WLAN an meinen Server gesendet und in einer Datenbank gespeichert. Auf meiner [[http://dashboard.frickelpiet.de|IoT-Webseite]] werden die Daten dann grafisch dargestellt. Auf diese Weise lassen sich problematische Entwicklungen frühzeitig erkennen.+Das Ergebnis der Messung wird zum einen auf einem LC-Display angezeigt, zum anderen aber auch über WLAN an meinen Server gesendet und in einer Datenbank gespeichert. Auf meiner [[https://dashboard.frickelpiet.de/pages/catscale_overview.php|IoT-Webseite]] werden die Daten dann grafisch dargestellt. Auf diese Weise lassen sich problematische Entwicklungen frühzeitig erkennen
 + 
 +Leider sind meine beiden Katzen mittlerweile verstorben. Die oben genannte Seite zeigt daher mittlerweile eine "Flatline" an. Das Gewicht insbesondere meiner kranken Kätzin immer im Blick zu haben war sehr nützlich, aber auch beunruhigend und traurig, als es mit ihr zu Ende ging. Die Waagen haben bis zum Schluss tadellos gearbeitet und weit über 20.000 Datensätze gesammelt.
  
 Komponenten: Komponenten:
Zeile 11: Zeile 13:
   * Spannungsregler: 5V Step-Up/Step-Down Voltage Regulator S18V20F5   * Spannungsregler: 5V Step-Up/Step-Down Voltage Regulator S18V20F5
  
-<box 100% round red|**Achtung!**>Die vollautomatische Katzenwaage ist "work in progress"! Alle Angaben sind vorläufig und dokumentieren bestenfalls den aktuellen Stand der Planung, des Aufbaus und der Programmierung. Diese Dokumentation wird laufend aktualisiert.</box>+<box 100% round red|**Anmerkung zum Status dieses Projekts**>Die vollautomatische Katzenwaage ist "work in progress"! Alle Angaben sind vorläufig und dokumentieren bestenfalls den aktuellen Stand der Planung, des Aufbaus und der Programmierung. Diese Dokumentation wird laufend aktualisiert.</box>
  
 ===== Mechanischer Aufbau ===== ===== Mechanischer Aufbau =====
Zeile 21: Zeile 23:
  
 ===== Elektrischer Aufbau ===== ===== Elektrischer Aufbau =====
-Das Kernstück der automatischen Katzenwaage ist die Plattform-Wägezelle H40A von Bosche. Diese wird mit dem SparkFun Load Cell Amplifier verbunden, der wiederum mit einem Lolin D32 verbunden wird. Vor allem für des Debugging bekommt die Kontrolleinheit ein LC-Display von SparkFun spendiert.+Das Kernstück der automatischen Katzenwaage ist die Plattform-Wägezelle H40A von Bosche. Diese wird mit dem SparkFun Load Cell Amplifier verbunden, der wiederum mit einem Lolin D32 verbunden wird. Vor allem für des Debugging habe ich der Kontrolleinheit ein LC-Display von SparkFun spendiert. Dieses Display ist aber auch im täglichen Betrieb eine nützliche Erweiterung, weil man das Gewicht der beiden Katzen im Blick haben kann, ohne jedes Mal die Internetseite aufrufen zu müssen
  
 ==== H40A und SparkFun Load Cell Amplifier ==== ==== H40A und SparkFun Load Cell Amplifier ====
Zeile 41: Zeile 43:
  
 ==== LC-Display ==== ==== LC-Display ====
-{{:iot:vollautomatische_katzenwaage:img_1447.jpg?100 |}} Um den Betriebszustand der Katzenwaage darzustellen wurde ein LDC von Sparkfun verbaut. Das Display zeigt beim Start an, mit welchem WLAN sich die Waage verbindet und welche Programmversion installiert ist. Im Betrieb zeigt das Display das aktuell gemessene Gewicht an, den Betriebsmodus (Taramodus bzw. Erkennungsmodus) sowie das zuletzt gemessene Gewicht für Leonie und Leslie. Es wird außerdem angezeigt, wie oft Leonie und Leslie seit der letzten Toilettenreinigung auf dem Klo waren.+{{:iot:vollautomatische_katzenwaage:img_1447.jpg?100 |}} Um den Betriebszustand der Katzenwaage darzustellen wurde ein LCD von Sparkfun verbaut. Das Display zeigt beim Start an, mit welchem WLAN sich die Waage verbindet und welche Programmversion installiert ist. Im Betrieb zeigt das Display das aktuell gemessene Gewicht an, den Betriebsmodus (Taramodus bzw. Erkennungsmodus) sowie das zuletzt gemessene Gewicht für Leonie und Leslie. Seit [[iot:vollautomatische_katzenwaage:programmversion_0.2|Programmversion 0.2]] wird angezeigt, wie oft Leonie und Leslie seit der letzten Toilettenreinigung auf dem Klo waren. Wenn mehr als drei Toilettengänge registriert wurden, signalisiert die gelbe Hindergrundbeleuchtung die Notwendigkeit einer Toilettenreinigung. Ab [[iot:vollautomatische_katzenwaage:programmversion_0.4|Programmversion 0.4]] wird oben rechts im Display die aktuelle Uhrzeit angezeigt.
  
 Display: HD44780U (kompatibel zu LCD1602); I2C-Adresse des Displays: 0x72 Display: HD44780U (kompatibel zu LCD1602); I2C-Adresse des Displays: 0x72
Zeile 54: Zeile 56:
 https://maxpromer.github.io/LCD-Character-Creator/ https://maxpromer.github.io/LCD-Character-Creator/
 ==== Spannungsregelung ==== ==== Spannungsregelung ====
-Für die Stromversorgung wird ein Pololu Step-Up-Step-Down-Regler (S18V20F5) mit einer Eingangsspannung zwischen 2,9 und 30 Volt und einer Ausgangsspannung von 5 Volt verwendet. Ein Spannungsregler ist nicht unbedingt notwendig, ich baue jedoch in alle Elektronikprojekte einen Spannungsregler ein, um die empfindliche Elektronik vor Überspannung und Verpolung abzusichern. Die Wahl fiel auf diesen Spannungsregler, weil ich auch USB-Netzteile für die Spannungsversorgung nutzen kann.+Für die Stromversorgung wird ein Pololu Step-Up-Step-Down-Regler (S18V20F5) mit einer Eingangsspannung zwischen 2,9 und 30 Volt und einer Ausgangsspannung von 5 Volt verwendet. Ein Spannungsregler ist nicht unbedingt notwendig, ich baue jedoch in alle Elektronikprojekte einen Spannungsregler ein, um die empfindliche Elektronik vor Überspannung und Verpolung abzusichern. (Hier liegen viele 9-Volt-Netzteile für Gitarren- und Bass-Effekte herum, die ebenfalls einen Niedervoltstecker haben, aber dann auch noch eine umgekehrte Polung haben.) Die Wahl fiel auf einen Step-Up-Step-Down-Spannungsregler, damit ich auch USB-Netzteile für die Spannungsversorgung nutzen kann.
  
 Die Waage verbraucht mit einem handelsüblichen 5V-Netzteil ca. 1,1 Watt. Nach Sonnenuntergang ist der Verbauch aufgrund der Helligkeitsregelung der Displayhintergrundbeleuchtung sogar noch geringer (0,8 Watt).  Die Waage verbraucht mit einem handelsüblichen 5V-Netzteil ca. 1,1 Watt. Nach Sonnenuntergang ist der Verbauch aufgrund der Helligkeitsregelung der Displayhintergrundbeleuchtung sogar noch geringer (0,8 Watt). 
 ===== Genauigkeit ===== ===== Genauigkeit =====
-Die Waage tariert sich automatisch, wenn eine Abweichung von +/- 1 Gramm von Null über- bzw. unterschritten wird. Wenn eine Katze die Waage (bzw. das Klo) betritt, hat sie drei Minuten Zeit, ihr Geschäft zu erledigen. Die Sensordaten driften über einen längeren Zeitraum, über die Zeit von drei Minuten aber nur minimal. Daraus ergibt sich eine Genauigkeit von ca. +/- 1,25 Gramm. Problematisch ist allerdings, dass die Katzen nicht absolut still sitzen. Um die besten Messwerte zu finden, werden aus bis zu etwa 1650 Einzelmessungen die 50 aufeinanderfolgenden Messwerte mit der geringsten Standardabweichung von ihrem Mittelwert bestimmt. Deren Mittelwert wird als Gewicht der Katze gespeichert. Bei diesem Verfahren ergeben sich zwischen zwei Messungen nur selten unerklärliche, das heißt wahrscheinlich auf Messfehlern beruhende Abweichungen.+Die Waage tariert sich automatisch, wenn eine Abweichung von +/- 1 Gramm von Null über- bzw. unterschritten wird. Wenn eine Katze die Waage (bzw. das Klo) betritt, hat sie ewta vier Minuten Zeit, ihr Geschäft zu erledigen. Die Sensordaten driften über einen längeren Zeitraum, über die Zeit von vier Minuten aber nur minimal. Daraus ergibt sich eine Genauigkeit von ca. +/- 1,25 Gramm. Problematisch ist allerdings, dass die Katzen nicht absolut still sitzen. Um die besten Messwerte zu finden, werden aus bis zu etwa 2400 Einzelmessungen die 50 aufeinanderfolgenden Messwerte mit der geringsten Standardabweichung von ihrem Mittelwert bestimmt. Deren Mittelwert wird als Gewicht der Katze gespeichert. Bei diesem Verfahren ergeben sich zwischen zwei Messungen nur selten unerklärliche, das heißt wahrscheinlich auf Messfehlern beruhende Abweichungen.
  
 Der Nennkennwert der Wägezelle wird mit 2 mV/V angegeben. Bei einer Betriebsspannung von 5 Volt ist die Spannungsänderung über den gesamten Messbereich also gerade einmal 10 mV. Der HX711 verstärkt dieses Signal um den Faktor 128, also auf 1,28 Volt. Der Nennkennwert der Wägezelle wird mit 2 mV/V angegeben. Bei einer Betriebsspannung von 5 Volt ist die Spannungsänderung über den gesamten Messbereich also gerade einmal 10 mV. Der HX711 verstärkt dieses Signal um den Faktor 128, also auf 1,28 Volt.
Zeile 71: Zeile 73:
   * excretion_weight: das Gewicht der Ausscheidung   * excretion_weight: das Gewicht der Ausscheidung
   * excretion_weight_sd: die Standardabweichung vom Mittelwert der einbezogenen Messwerte   * excretion_weight_sd: die Standardabweichung vom Mittelwert der einbezogenen Messwerte
-  * created_at: automatisch vergebener Zeitstempel+  * created_at: automatisch vom Webserver vergebener Zeitstempel
  
 ===== Internetseite ===== ===== Internetseite =====
Zeile 78: Zeile 80:
 Erläuterungen zur Übersicht: Die Messung des durchschnittlichen Gewichts ist sehr genau. Theoretisch ist eine Genauigkeit von +/- 1,25 Gramm bei jeder Messung möglich. Da die Katzen nicht einhundertprozentig ruhig sitzen, wenn sie ihr Geschäft machen, können praktisch Abweichungen von +/- 15 Gramm zwischen den Toilettengängen beobachtet werden, die nicht erklärt werden können (z.B. durch Futteraufnahme). Im Mittel sollten sich diese Messfehler gegenseitig auslöschen.  Erläuterungen zur Übersicht: Die Messung des durchschnittlichen Gewichts ist sehr genau. Theoretisch ist eine Genauigkeit von +/- 1,25 Gramm bei jeder Messung möglich. Da die Katzen nicht einhundertprozentig ruhig sitzen, wenn sie ihr Geschäft machen, können praktisch Abweichungen von +/- 15 Gramm zwischen den Toilettengängen beobachtet werden, die nicht erklärt werden können (z.B. durch Futteraufnahme). Im Mittel sollten sich diese Messfehler gegenseitig auslöschen. 
  
-Die Zählung der Häufigkeit der Toilettengänge hat zwei Fehlerquellen: Erstens werden Toilettengänge, die kürzer als 25 Sekunden und länger als 180 Sekunden dauern, nicht gezähltAußerdem machen sowohl Leonie als auch Leslie nicht immer ein Geschäftwenn sie auf dem Klo sind. Diese beiden Probleme wirken sich freilich auch auf die Abbildung der Zeiten der Toilettengänge aus. Die Messung der Summe des Gewichts der Ausscheidungen ist ebenfalls von dem ersten Problem betroffenDarüber hinaus muss berücksichtigt werden, dass die Katzen beim Verlassen des Klos Streu "mitnehmen". Die Messungen unterschätzen also das Gewicht der Ausscheidungen. Davon abgesehen ist die Messung des Gewichts der Ausscheidungen sehr genau (+/- 1,25 Gramm / Messung). Messfehler summieren sich aber ggf.+Die Zählung der Häufigkeit der Toilettengänge hat zwei Fehlerquellen: Erstens werden ausschließlich Toilettengänge gezählt, die länger als 15 Sekunden und kürzer als etwa vier Minuten dauern. Zweitens ist die Waagenachdem die Katze die Toilette verlassen hat, für etwa 10 Sekunden aufgrund der Messung der Ausscheidung blockiertBetritt die katze nach dem Verlassen der Toilette diese innerhalb dieser Zeit und erledigt ein zweites Geschäft, wird dieses nicht gezählt. Die Waage wäre dann mit der Tarierung beschäftigt, die so lange nicht gelingt, wie die Katze auf der Toilette ist. Erledigt die Katze zwei Geschäfte (z.B. das große und das kleine), ohne zwischenzeitlich die Toilette für mindestens zehn Sekunden zu verlassen, wird das nur als ein Toilettengang gezähltAb [[iot:vollautomatische_katzenwaage:programmversion_0.2|Programmversion 0.2]] werden ausschließlich Toilettenbesuche gezählt, bei denen auch ein Geschäft erledigt wurde.
 ===== Programmierung ===== ===== Programmierung =====
 Wie bei den meisten meiner Projekte dokumentiere ich in diesem Bereich den Fortschritt der Programmierung der Katzenwaage. Die Links führen zu signifikanten Programmversionen. Wie bei den meisten meiner Projekte dokumentiere ich in diesem Bereich den Fortschritt der Programmierung der Katzenwaage. Die Links führen zu signifikanten Programmversionen.
Zeile 89: Zeile 91:
   * [[iot:vollautomatische_katzenwaage:programmversion_0.3|Programmversion 0.3]]: Viele kleine Verschönerungen der Displayfunktionen   * [[iot:vollautomatische_katzenwaage:programmversion_0.3|Programmversion 0.3]]: Viele kleine Verschönerungen der Displayfunktionen
   * [[iot:vollautomatische_katzenwaage:programmversion_0.4|Programmversion 0.4]]: Viele kleinere Veränderungen und Verbesserungen   * [[iot:vollautomatische_katzenwaage:programmversion_0.4|Programmversion 0.4]]: Viele kleinere Veränderungen und Verbesserungen
 +  * [[iot:vollautomatische_katzenwaage:programmversion_0.5|Programmversion 0.5]]: Kleine Verbesserungen und Datenabruf vom Server
 +  * [[iot:vollautomatische_katzenwaage:programmversion_0.6|Programmversion 0.6]]: Access Point Mode und Web Backend
  
  
Zeile 109: Zeile 113:
  
    
-Tags: #Arduino #ESP32 #Katzen #Katzentoilette #Katzenwaage+{{tag>Arduino ESP32 Internet_Of_Things Katzen Katzentoilette Katzenwaage}}
iot/vollautomatische_katzenwaage.1592152197.txt.gz · Zuletzt geändert: 18.05.2023 09:07 (Externe Bearbeitung)