Verbesserung der Stabilität der BOB-Firmware

Die Darstellung hängt davon ab, wie groß die Temperaturdifferenz im Diagramm ist.
In Deinem Beispiel ( vermutlich Arbeitszimmer ) betrug er nur 20.4 - 19.6 = 0.8 °C.

In meinem Arbeitszimmer 25 -19 = 6 °C
image
Und in meinem Gewächhaus 7.4 - 6.2 = 1.2 °C
image
In der realen Bienenbeute wird es Unterschiede von einigen °C geben. Da braucht man nicht die Temperatur mit einer Auflösung von 1/100 °C anzugeben. So genau messen die Sensoren gar nicht.

Ausserdem entspricht die Darstellung handelsüblicher Thermometer.


Oder hast Du schon ein Thermometer gesehen, das 21.12 °C anzeigt ?

Ja, im wissenschaftlichen Bereich ist das durchaus üblich! ;-) Es geht auch nicht nur um die Anzeige für die Imker*innen, sondern um die wissenschaftliche Auswertung! Es macht keine Sinn, wenn wir alle 10 Sekunden messen, dann die Unterschiede, die wir dadurch ggf. detektieren aber mit einer “zu groben” Rundung wieder wegwerfen, dann können wir auch nur alle paar Minuten messen.

Nochmal: DS18B20 Genauigkeit und Auflösung - Mikrocontroller.net z…B.

Dass es Sinn ergeben kann merkt man, wenn man eine langsame
Temperaturentwicklung beobachtet, beispielsweise die Aussentemperatur.
Diese Sensoren sind zwar nur auf 0,5°C genau, aber das heisst nicht,
dass die Werte in diesem Ausmass rumzittern. Sondern sie bleiben sehr
stabil und bewegen sich praktisch nur in die Richtung der
Temperaturentwicklung.

Es geht nicht nur um die Anzeige! Meinetwegen soll die so bleiben, aber in der Datenbank sollten wir die Temperatur zumindest mit zwei Nachkommastellen abspeichern, sonst machen unsere Messungen im 10-Sekunden-Takt keinen Sinn!

1 Like

Ich probiere das gerade aus:

          # ds18b20tmp = str(round(tmp,1))      # alt
            ds18b20tmp = str(round(tmp,2))      # neu

In den Daten sieht das so aus:


um 11:14:40 sieht man einen CRC-Error bei t_i_4


Im Diagramm kann man nicht wirklich einen Unterschied erkennen
image
In der Stundenansicht

In Gnuplot: y-Achse 16°C bis 20 °C

1 Like

ich habe folgende fixes gemacht (fixed most issues of 03-03-2020: rounding, wrong wifi initialisation,… · Hiverize/FiPy@6829536 · GitHub):

  • rounding mit round-function
  • temp auf 2 digits
  • wlan nur einmal initialisieren
  • NA statt 0.00 für missings in csv
  • generieren von plt nur wnn boolean in settings entsprechend

Außerdem habe ich grob überschlagen, dass die SD-Karte erst nach 28 Jahren logging voll ist.

Irgendwas gibt es ja immer noch zu fixen. Aber wenn ihr heute nachmittag noch mal getestet habt, würde ich die FiPys tatsächlich mal rausschicken. Ich denke sie laufen jetzt ziemlich stabil.

3 Likes

für gnuplot ist anstatt ‘NA’ ein Leerstring besser ’ ’

3 kleine Sachen habe ich gefunden:

  1. BME280
    alt bme280pre = round(bme280val[1],2)
    neu bme280pre = round(bme280val[1]/100,2)
  1. HX711
    alt hx711akt = round(hx711akt*1000, 3) # 3 Dezimalstellen nach Komma
    neu hx711akt = round(hx711akt,3) # 3 Dezimalstellen nach Komma
  1. CSV
    alt test_list = test_list + 'NA, ’
    neu test_list = test_list + ’ , ’ # 4 ’ ’ vor Komma

AP-Konfiguration OK
OLED-Anzeige OK
CSV-Datei OK

Anzahl der Nachkommastellen muss noch diskutiert werden

1 Like

oh ja, danke!
ist gefixt.

1 Like

@Diren kannst du in

default_settings.json
settings_preset_clemens.json
settings_preset_didi.json

"initial_time": 1556805688,

zu

"initial_time": 946684800,

ändern, s. change initial_time in settings to 2000-01-01 by ClemensGruber · Pull Request #26 · Hiverize/FiPy · GitHub

vielleicht am einfachsten händisch, da sich zwischenzeitlich die Dateien oben geändert haben.

In den log-Dateien haben wir immer noch cycle stehen, obwohl nichts gespeichert wird, sondern da immer 0000 steht. Entweder komplett rausnehmen oder tatsächlich die cycles eintragen, wir haben die ja in einer Variable.

2020-03-04 16_14_51-BEEP _ Bienenmonitor - SeaMonkey

sollte gefixt sein.

1 Like

Danke! Die cycles erscheinen jetzt korrekt in der log-Datei. Druck nun auch “schön” ohne Nachkommastellen.

Bei mir tauch aber – wieder mal – der Luftdruch nicht bei der Tachoanzeige bei bee-observer auf. Der astronomisch hohe Wert vor dem fix, s. screenshot oben, tauchte da auf, nun (wieder) nicht. Braucht der für beep Nachkommastellen damit er angezeigt wird?

Komisch ist das logging des Gewichts auf SD, manchmal mit einer Nachkommastelle, manchmal mit drei und auch mit sieben, woran kann das liegen?

                                                    ||
                                                    \/

 24, 2020-03-04,  17:29:05,  21.59, 1005, 40.48, 0.9940001,  20.44, 20.0, 19.69, 19.75, 19.69, 18.31,  
 25, 2020-03-04,  17:29:10,  21.59, 1005, 40.48, 0.9940001,  20.44, 20.12, 19.69, 19.75, 19.75, 18.31,  
 26, 2020-03-04,  17:29:15,  21.59, 1005, 40.48, 0.991,  20.44, 20.12, 19.75, 19.75, 19.75, 18.38,  
 27, 2020-03-04,  17:29:20,  21.6, 1005, 40.47, 0.9969999,  20.5, 20.12, 19.75, 19.75, 19.81, 18.38,  
 28, 2020-03-04,  17:29:25,  21.61, 1005, 40.49, 0.9969999,  20.5, 20.19, 19.81, 19.88, 19.81, 18.38,  
 29, 2020-03-04,  17:29:30,  21.6, 1005, 40.51, 1.0,  20.5, 20.19, 19.81, 19.88, 19.81, 18.38,  
 30, 2020-03-04,  17:29:35,  21.6, 1005, 40.51, 0.9940001,  20.5, 20.19, 19.81, 19.88, 19.88, 18.38,  
 31, 2020-03-04,  17:29:40,  21.61, 1005, 40.49, 0.995,  20.56, 20.19, 19.81, 19.88, 19.88, 18.44,

Da ist beim Runden des Gewichts etwas noch nicht in Ordnung, ich bin dabei.

1 Like

@clemens Du hast Recht. In der Anzeige fällt es nicht weiter auf.


Ich habe den DS18B20 t_o in Eiswasser getaucht und mir den Temperaturverlauf bei 0 °C angesehen ( grüne Kurve ).

Der DS18B20 löst in 1/16 °C auf. Würde man auf 1/10 °C runden, wäre Information weg. Ausserdem erkennt man, daß er 0.2 °C zu wenig anzeigt - Talsohle ist schmelzendes Eis → 0.0 °C

Um 10:30 habe ich beim BME280 von 1 auf 2 Nachkomma umgestellt:


Der Unterschied ist deutlich.


Nur am Gewicht muss noch gearbeitet werden

3 Likes

Hi @MKO,

weil Du grade bei GitHub - Hiverize/FiPy aktiv bist (danke!), wollte ich Dich noch auf die power_{up,down}() und die read_median() Funktionen für den HX711 hinweisen. Vielleicht willst Du die auch noch portieren?

Viele Grüße,
Andreas.

@Andreas danke für die Info. hx711.power_down()/.power_up() habe ich bereits bei Kamerun eingebaut . Wie Du mir jetzt zeigst hast Du in der HX711 für deep sleep auch noch weitere verbesserungen für deepsleep.
behalte das erstmal im Hinterkopf.

Aktuell versuche ich mich mit dem Light sleep. Light sleep (firmware >= 1.19) | Pycom user forum Da braucht der wipy nur noch 1,92mA (wenn die LED dabei aus ist und fährt innerhalb von ein paar ms wieder hoch. 0.984s=38mA wach - 4.016s schlaf = 1,92ma. Die Nachteile des Deep Sleep hat er dabei nicht.

Gibt aber aktuell Probleme mit den Buttons. irgendwie werden die interups nicht mehr ausgeführt oder wachen nicht schnell genug auf man muß ein paar mal die buttons Drücken bis er reagiert.
kann aber auch sein das es am Steckbrett liegt. Um SD und die Buttons zu haben mußte ich mangels Didi´s Board darauf zurück greifen.

image

@MKO , wie misst Du den Strom und machst die Bilder?

Das ist mit einem eigenbau China Netzteil DPS5020 gemacht es hat eine USB Schnitstelle, Über das ich es über den PC steuern und die Kurven anzeigen und steuern kann. Für die Fotos nehme ich einfach das Snipping tool von Windows.
Da es bis 20A geht und nicht besonders flott ist, ist die Anzeige nicht so genau.

Mein Universalmeßgerät mit USB HP-90EPC kommt da aber noch weniger mit. zumindest kann ich die Zeitachse nicht steuern.

Hab zwar noch bessere Messgeräte/Netzteile, aber die haben nichts, um Daten auf den PC zu bringen.

ein letzter zu diesem off-topic-Ding (dann verschiebe ich uns lieber woanders zu einem eigenen topic hin):

Dann solltest Du Dir mal QtDMM ansehen: QtDMM (c) Matthias Toussaint . Seit Version 0.9.2 wird Dein MM auch unterstützt, und für diese Version hat der Autor auch einen Win7-Installer gebaut (mingw-runtime erforderlich). - Für Linux baut man sich die Applikation selbst; für Versionen ab 0.9.5 wird Qt5 benötigt (github: GitHub - tuxmaster/QtDMM: Qt5 port of the QtDMM of M.Toussaint).

1 Like

@MKO kannst du mir gerade nochmal auf die Sprünge helfen, es geht um die weiße Platine ohne den “AP-Button”, gibt es hier schon eine Version, die nach einem power down den AP automatisch auf macht? Dachte wir hätten da schon was. Dein GIT-Repo ist gerade “even” zu Hiverize:master. Du hattest da mal was geschrieben, finde es aber gerade nicht. Habe in Berlin nämlich auch einen Imkerkollegen, der ein update für die weiße Platine möchte …

Im aktuellen Hiverize master funktioniert es.
Der AP-Button muß in der Config deaktiviert sein. Bin mir aber gerade nicht sicher, ob er standartmäßig deaktiviert ist.
Zur Not fällt der Fipy auch nach einem Neustart 5 min in den AP falls keine Verbindung hergestellt werden kann.

1 Like

Ja, das war es, ich hatte zuvor eine default_settings.json bei der "button_ap_enabled": false, war auf dem FiPy, dann beim updaten aber mit der default aus dem Repo überschrieben und da steht true drin. Das hatte ich nicht auf dem Schirm! Danke für die Hilfe!

Funktioniert jetzt sehr gut – auch ohne AP-Button, Danke Michael / @MKO! Damit funktionieren die weißen Platinen nun auch mit der aktuellen BOB-Software!