beelogger

EE-Prom für beelogger-Solar und Universal

Die Standard-Sketche des beelogger-Solar und beelogger-Universal senden die erfassten Daten nach jeder Messung via W-Lan oder GSM direkt an den Server.
Bei fehlerhafter Verbindung, z.B. Ausfall des W-Lan, können diese Daten nicht übermittelt werden und gehen verloren.
Eine weitere Anwendung ist die Optimierung der Nutzung der Kosten für die GSM-Verbindung. Viele günstige Tarife rechnen für jede Verbindung als Mindestverbrauch 1kByte ab, obwohl der beelogger nur ca. 100Byte übertragen hat. In einem normalen beelogger-Solar / -Universal mit einer Waage entstehen bei einem Mess-Intervall von 15 Minuten in zwei Stunden ca. 1kB zu übertragende Daten.

Durch die Zwischenspeicherung der Daten im EE-Prom kann ein mehrstündiger Verbindungsausfall überbrückt werden. Sollte der Verbindungsausfall dazu führen, dass die Speicherkapazität des EE-Prom erreicht wird, werden die Daten komprimiert, d.h. jede zweite Messung wird verworfen.

Als Nebeneffekt der Nutzung des EE-Prom tritt eine deutliche Stromeinsparung ein, da die Datenübertragung den größten Anteil am Stromverbrauch des beelogger hat.

Die EE-Prom-Sketche erzeugen den vollständigen Datensatz inklusive Uhrzeit nach der Messung im beelogger. Dieser Datensatz wird im EE-Prom bis zum Versenden zwischengespeichert.
Damit die Zuordnung der Messdaten zur Erfassungszeit funktioniert, muss die Echtzeituhr dauerhaft mit Spannung versorgt werden. Dazu ist beim beelogger-Solar die Speisung über die Batterie zwingend erforderlich. Das Uhr-Modul für den beelogger-universal
Bei Batteriewechsel muss die Uhrzeit, z.B. über den beelogger-Kalibrier-Sketch, neu gesetzt werden.

Die Nutzung des EE-Prom ist sowohl beim beelogger-Solar als auch beim beelogger-Universal (erweiterte Ausbaustufe) möglich. Es können EE-Prom der Größe 4-32 kByte (AT24C32/64/128/256) verwendet werden. Alternativ zu einem EE-Prom kann auch ein F-RAM, z.B. FM24CL64B, verwendet werden. F-RAM zeichnen sich durch deutlich höhere Schreibzyklen aus.
Beim beelogger-Universal ist ein 4kByte-EE-Prom auf dem Uhr-Modul enthalten, so dass die EE-Prom Sketche ohne weiteres eingesetzt werden können.

Der beelogger-Solar kann mit einem EE-Prom erweitert werden. Hierzu gibt es 4 Möglichkeiten:

  • Das Multishield (ab Version 2.2 mit EE-Prom) verwenden.
  • Das bestehende Shield durch Ergänzung eines EE-Prom-Modul erweitern: Das EE-Prom-Modul wird über den I2C-Bus (A4=SDA, A5=SCL) angesteuert und muss auf Adresse 0x57 adressiert werden. Wenn vorhanden, Write-Protect auf “LOW” setzen.
  • beelogger-Solar-Platine (ab Version 4) verwenden.
  • eine EE-Prom-Zusatzplatine (Preis ab 1€ bei Ebay) per Kabel an den i2C-Bus des beelogger anschliessen: auf Adresse 0x57 adressieren. Wenn vorhanden, Write-Protect auf “LOW” setzen.

 
Auf die Verwendung des AT-Mega 328p internen EE-Prom wurde verzichtet, weil es mit 1kB vergleichsweise wenig Kapazität hat. Möglich ist die Nutzung durch Anpassung der Sketche durchaus.

Für den beelogger-Solar mit EE-Prom-Sketch und dem ESP8266 ist auf dem Shield der Reset-Pin des ESP8266 mit Leitung A2 zu verbinden.Anpassung Multishield ESP Reset an A2

Multishield mit Nachverdrahtung ESP-Reset an A2.

 

Konfiguration:

Die EE-Prom Sketche sind in mehrere Dateien (ino, h) aufgeteilt.
Die Konfigurationseinstellungen finden sich in .h-Dateien wie ‘…_config_EE.h’.

Die Sketche sind in der Standardeinstellung so konfiguriert, dass diese für das 4kByte-EE-Prom des Uhr-Modul des beelogger-Universal passen. Dies ist für die meisten Anwendungen, auch beim beelogger-Solar, völlig ausreichend.
Mit den Messdaten eines beelogger mit einer Waage erlaubt ein 4kByte EE-Prom mit 5 Minuten Intervall die Speicherung der Daten über 4 Stunden. Für ein System mit vier Waagen und 2 Stunden Sendezyklus ist dies ebenfalls ausreichend.
Bei einer täglich einmaligen Datenübertragung mit einem Intervall von 5 Minuten wird für einSystem mit einer Waage ein EE-Prom mit 32kByte (256kbit) benötigt; 60/5*24*80Byte = ~23kB.

Es wird empfohlen den Schalter für Arbeiten am Bienenvolk vorzusehen. Durch Betätigung des Schalters (Schließer) für ca. 5 Sekunden wird das Versenden der gespeicherten Messungen ausgelöst und danach das System im Standby gehalten bis der Schalter wieder geöffnet wird.

Mit der voreingestellten Konfiguration sollen im normalen Messbetrieb mit Intervallen unter 30 Minuten alle 2 Stunden die aufgezeichneten Daten gesendet werden. Hierbei ist mit der Grundeinstellung der Konfiguration ein 4kbit EE-Prom ausreichend.
Bei einem konfigurierten Intervall von 30 Minuten und mehr wird auf ein Sendezyklus von 6 Stunden umgeschaltet.

Wird durch ein kurzes Intervall die konfigurierte Kapazität des EE-Prom durch die Anzahl der Messungen (_Num_Measured) erreicht, so wird unabhängig von der konfigurierten Sendezykluszeit das Versenden eingeleitet.

Nachfolgende Einstellungen nur mit Vorsicht anpassen. Ein Fehlkonfiguration kann zum Überschreiten der EE-Prom-Kapazität und damit zum Ausfall des Systems führen.
Sollte ein Sendezyklus unter einer Stunde zwingend notwendig sein, so kann auch über die Einstellung der Messungen pro Übertragung eingegriffen werden.
Hinweis: Dieser Wert hängt von der Länge des Datensatzes (Single, Duo, Triple) ab.

Damit der Effekt der Zwischenspeicherung bei Server-/Netzausfall erhalten bleibt, ist die Anzahl der Wiederholversuche anzupassen. Ansonsten werden Messungen verworfen, wenn die Anzahl der Wiederholversuche erreicht ist.

Die Summe aus ‘Sendewiederholungen’ und ‘Messung pro Übertragung’ muss so gewählt werden, dass die Speicherkapazität des EE-Prom nicht überschritten wird. Erreicht die Anzahl der Messungen wegen Verbindungsausfall diese Summe, so werden die Daten ‘komprimiert’.
Der Speicher bedarf eines Datensatzes errechnet sich wie folgt:

Hier ein Beispiel zu den oben verwendeten Werten

EE-Prom Speicherbedarf bei einen Quad-System ist bis zu 136 Zeichen pro Messung
-> 72 + 4*16 = 136
mit 4kB-EE-Prom: 4096 / 136 = 30 Messungen

30 = 24 (_Num_Measured) + 6 (_Num_Retry)

Weitere Angaben finden sich in der zum Sketch gehörenden Konfigurationsdatei.