iot:vollautomatische_katzenwaage:programmversion_0.5
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
iot:vollautomatische_katzenwaage:programmversion_0.5 [10.04.2021 17:39] – Frickelpiet | iot:vollautomatische_katzenwaage:programmversion_0.5 [18.05.2023 12:34] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Vollautomatische Katzenwaage - Programmversion 0.5 ====== | ====== Vollautomatische Katzenwaage - Programmversion 0.5 ====== | ||
- | Bis einschließlich [[iot: | + | Bis einschließlich [[iot: |
+ | |||
+ | Das Einfachste wäre, diese Grenzwerte auf der Basis der Mittelwerte der letzten Messungen auf der Waage zu berechnen. Das Problem ist allerdings, dass Leonie hin und wieder eine der beiden Waagen viele Tage nicht benutzt. Die Daten auf dieser Waage würden dann also nicht aktualisiert. Nähme Leonie nun aufgrund eines Krankheitsschubs innerhalb weniger Tage stark ab könnte es passieren, dass dass die andere Waage Leonie nicht mehr erkennt. Jetzt könnten die Grenzwerte freilich größer gewählt werden. Aber der Sinn der Übung ist ja, die Grenzwerte möglichst klein zu halten. | ||
+ | |||
+ | Daher wird die Berechnung der Mittelwerte nicht auf den Waagen durchgeführt, | ||
+ | |||
+ | Programmversion 0.5.1 ruft dafür alle 10 Minuten die Mittelwerte vom Server ab und stellt sie in der zweiten Zeile des Displays dar. Außerdem wird angezeigt, wie viel Zeit seit dem letzten erfolgreichen Abruf der Daten vergangen ist. | ||
+ | |||
+ | Programmversion 0.5.3 ruft die Daten vom Server ab, bevor die Zuordnung einer Messung zu einer katze erfolgt. Messungen, die keiner Katze zugeordnet werden können werden nicht mehr verworfen, sondern mit der cat_id = 99 gesendet. | ||
PHP-Skript zur Abfrage der Gewichtsmittelwerte für Leonie und Leslie basierend auf den letzten 10 Messungen: | PHP-Skript zur Abfrage der Gewichtsmittelwerte für Leonie und Leslie basierend auf den letzten 10 Messungen: | ||
Zeile 13: | Zeile 21: | ||
#Es werden die Daten abgefragt | #Es werden die Daten abgefragt | ||
- | $statement = $pdo-> | + | $statement = $pdo-> |
- | | + | |
$statement-> | $statement-> | ||
$results = $statement-> | $results = $statement-> | ||
Zeile 25: | Zeile 33: | ||
?> | ?> | ||
</ | </ | ||
- | Tags: #Arduino | + | |
+ | Arduino-Code für die Abfrage der Daten vom Server: | ||
+ | < | ||
+ | if (WiFi.status() == WL_CONNECTED) { | ||
+ | |||
+ | // Daten von iot.frickelpiet.de/ | ||
+ | if (client.connect(server, | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | |||
+ | // Send HTTP request | ||
+ | client.println(F(" | ||
+ | client.println(F(" | ||
+ | client.println(F(" | ||
+ | if (client.println() == 0) { | ||
+ | | ||
+ | Serial.println(F(" | ||
+ | | ||
+ | } | ||
+ | else { | ||
+ | // Check HTTP status | ||
+ | char status[32] = {0}; | ||
+ | client.readBytesUntil(' | ||
+ | if (strcmp(status, | ||
+ | | ||
+ | Serial.print(F(" | ||
+ | Serial.println(status); | ||
+ | #endif | ||
+ | } | ||
+ | else { | ||
+ | // Skip HTTP headers | ||
+ | char endOfHeaders[] = " | ||
+ | if (!client.find(endOfHeaders)) { | ||
+ | #ifdef DEBUG | ||
+ | Serial.println(F(" | ||
+ | #endif | ||
+ | } | ||
+ | else { | ||
+ | // Allocate JsonBuffer | ||
+ | // Use arduinojson.org/ | ||
+ | const size_t bufferSize = JSON_ARRAY_SIZE(1) + JSON_OBJECT_SIZE(3) + 60; | ||
+ | DynamicJsonBuffer jsonBuffer(bufferSize); | ||
+ | |||
+ | // Parse JSON object | ||
+ | JsonArray& | ||
+ | if (!root.success()) { | ||
+ | #ifdef DEBUG | ||
+ | Serial.println(F(" | ||
+ | #endif | ||
+ | } | ||
+ | else { | ||
+ | // Extract values | ||
+ | JsonObject& | ||
+ | weight_leonie_avg = root_0[" | ||
+ | weight_leslie_avg = root_0[" | ||
+ | |||
+ | #ifdef DEBUG | ||
+ | Serial.print(" | ||
+ | Serial.print(" | ||
+ | #endif | ||
+ | |||
+ | } | ||
+ | dataReceived = true; | ||
+ | lastDataReceived = currentMillis; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | // Disconnect | ||
+ | client.stop(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Beobachtungen: | ||
+ | * Ein " | ||
+ | {{tag> |
iot/vollautomatische_katzenwaage/programmversion_0.5.1618069197.txt.gz · Zuletzt geändert: 18.05.2023 12:16 (Externe Bearbeitung)