beelogger

Debug-Ausgabe/Arbeitsschalter

Funktionsweise des beelogger-Universal-Sketch:

Nach einem Reset werden grundsätzliche Parameter, wie z.B. die Batteriespannung, der DS3231 und aktuelle Gewichte abgefragt, Setup().

Danach geht das System in den zyklischen Ablauf:  Messen und Senden, Loop().

Der ATmega schaltet die Spannung für die Sensoren usw. ein, führt die Messungen durch und versendet entsprechend der Konfiguration die Daten.

Er programmiert den DS3231 mit einer Alarmzeit, schaltet das System ab und geht in den Lowpower-Mode.
Dabei ist der Interrupt 0 aktiviert (D2).
Systeme mit Regenmesser haben zusätzlich den Interrupt 1 (D3) aktiv.

Mit einem Alarm betätigt der DS3231 über den SQW-Ausgang den Interrupt Eingang des ATmega.
Der ATmega wird dadurch in den Normalbetrieb versetzt.

Die Loop() wiederholt sich immer weiter.

Weitere Informationen:

Beim ersten Start wird eine Testsendung durchgeführt und die Systemzeit sowie Mess- und Sendezyklus vom Server abgefragt.
Die Uhrzeit für den DS3231 holt sich das System immer wieder mit der Quittung auf die Aussendung der Daten vom Server.
So ist die Uhrzeit immer aktuell, selbst wenn der DS3231 Abweichungen hat.
Darüber erfolgt auch ggf. eine Sommer-/Winter-Zeitumstellung.

Debug-Ausgabe:

Die hier gezeigten Ausgaben wurden beim Neustart eines beelogger-SMD (mit BME280, DS18B20 und HX711 mit Waage) erzeugt:
Dazu muss in der beelogger-config.h Debug aktiviert sein; dies soll beim beelogger-SMD nur im Testbetrieb.

LTE_M_211224
Bat. [V] 4.04
Sol. [V] 0.46

EE-in use: 4032
96
W 1 [kg] 6.42

Loop
Bat. [V] 3.90
Sol. [V] 0.45

DS18B20
[C]: 25.00
BME280
[hPa]: 1020.43
[C]: 24.67
[%RH]: 38.19

W 1 [kg] 6.41

2000/01/01_00:00:07,25.0,24.6,,38.2,,6.41, 3.90,0.45,0.00,1020.4,,23.4

LTEon
internet.eplus.de
community.beelogger.de
GET /_Dein_Account_Name/beelogger1/beelogger_log.php?
2000/01/01_00:00:07,25.0,24.6,,38.2,,6.41, 3.90,0.45,0.00,1020.4,,23.4
Q:1640870424T20A
cls:ok
send 1

wakeup 14:20
Nr:0 nextsend: 15h send-cyc: 1h Interval: 20min t-on: 39s sw: 0 report:1 snd_dly:2

Hier die Erläuterung zu den Ausgaben Schritt für Schritt:

 Sketchablauf: Debugausgabe im ‘Monitor’ der Arduino-IDE: Erläuterung:
Beginn: Setup() LTE_M_211224 Typ und Versionskennung des Sketch.
Diese wird beim Senden von Daten mit zum Server übertragen.
  Bat. [V] 4.04
Sol. [V] 0.46
Messwerte von Akku- und Solarzellenspannung;
Hinweis: beide Werte können je nach Systemzustand anders sein.
  EE-in use: 4032
96
EE-Prom: Vom Sketch genutzter Speicherbereich, hier 4032 von 4096Byte;
96 Datensätze können zwischengespeichert werden.
Hinweis: beide Werte können je nach Systemkonfiguration anders sein.
  W 1 [kg] 6.42 Waage Nummer 1 initialisiert; Gewicht gemessen 6,42 kg
Ende Setup()    
    Nachstehender  Ablauf/Ausgabe erfolgt zyklisch vom System im Abstand des konfigurierten Messzyklus:
Beginn Loop() Loop System “Setup”-Routine abgeschlossen, “Loop” gestartet
  Bat. [V] 3.90
Sol. [V] 0.45
Messwerte von Akku- und Solarzellenspannung;
Hinweis: beide Werte können je nach Systemzustand anders sein.
  DS18B20
[C]: 25.00
BME280
[hPa]: 1020.43
[C]: 24.67
[%RH]: 38.19
Messwerte der Sensoren DS18B20 und BME 280
  W 1 [kg] 6.41 Waage Nummer 1: Gewicht gemessen 6,41 kg
  2000/01/01_00:00:07,25.0,24.6,,38.2,,6.41, 3.90,0.45,0.00,1020.4,,23.4 Datensatz mit den Messwerten erzeugt und im EE-Prom abgespeichert.
Das Datum kann beim ersten Start des Systems bzw. des DS3231 nicht aktuell sein.
Nur wenn Daten zu senden sind:    
Beginn Sendevorgang: LTEon Hinweis: nachstehende Ausgaben können bei WLAN/GSM leicht abweichen.
LTE-Modul eingeschaltet
  internet.eplus.de LTE- Modul erfolgreich initialisiert.
Verbindungsaufbau zum Provider wird gestartet.
  community.beelogger.de Verbindungsaufbau zum Provider erfolgreich.
Verbindung zum Server wird hergestellt.
  GET /_Dein_Account_Name/beelogger1/beelogger_log.php? Verbindung zum Server erfolgreich.
Datenübertragung zu “beelogger1” wird durchgeführt.
  2000/01/01_00:00:07,25.0,24.6,,38.2,,6.41, 3.90,0.45,0.00,1020.4,,23.4 die zu übertragenen Daten werden angezeigt
  Q: 1640870424T20A Datenübertragung erfolgreich, Quittung vom Server erhalten:
Die Quittung besteht aus der aktuellen Zeit, dem serverseitig eingestellten Mess- und Sendeintervall, ggf. weitere Steuerungsinformationen.
Hinweis:
Hier können auch die Serverantworten:
 – PWError   = Passwort für die beelogger_log.php falsch
 – ZeitError  = Datum/ZeitCode in den übertragenen Daten ungültig,
       z.B. 2000/00/00 oder 2022/01/01_45:45:00
Ende Sendevorgang cls:ok
send 1
Serververbindung erfolgreich abgebaut, ein Datensatz übertragen
Hinweis:
Erfolgt die Ausgabe “error” so konnten die Daten nicht übertragen werden.
Ursache kann sein:

  • Fehler in der Sketch-Konfiguration: Provider, Serverdaten
  • Falsches beelogger_Log-Passwort in der Sketch Konfiguration
  • Anzahl konfigurierte Waagen passt nicht zur Serveradresse (z.B.: 4 = Quad1)
  • schlechter Signalpegel oder Störung bei der Übertragung
  • Netz-/Serverausfall
     
  wakeup 14:20 Sketch hat Zeit vom Server übernommen und Schlafzustand vorbereitet.
Um 14:20 soll der nächste Messzyklus durchgeführt werden.
  Nr:0 nextsend: 15h send-cyc: 1h Interval: 20min t-on: 39s sw: 0 report:0 snd_dly:2
  • Nr: 0                 -> Anzahl aktuell im EE-Prom gespeicherte Datensätze
  • nextsend: 15h   -> Stunde für den nächsten planmäßigen Sendevorgang (15:00 … 15:55)
  • send-cyc: 1h     -> Daten Senden im Rhytmus von 1h
  • Interval: 20min  -> Aufwach-/Messinterval ist 20 Minuten
  • t-on: 39s           -> der letzte Aktivphase hat 39 Sekunden gedauert
  • sw:0                 -> Arbeitsschalter inaktiv
  • report:0            -> Im Feld Service wird die Aktivzeit übertragen
  • snd_dly:2          -> Warten auf Sendeintervall, Verzögerung in Anzahl der Messzyklen
  • al:0                    -> Schwarm-Alarm hat ausgelöst, zeigt Anzahl der Sendevorgänge
 System Sleep()   Sketch geht in Schlafzustand, weiteres Verhalten auch abhängig von “Arbeitsschalter”

Inhalte des Datensatz:

2000/01/01_00:00:07,25.0,24.6,,38.2,,6.41, 3.90,0.45,0.00,1020.4,,23.4
– Datum_Uhrzeit, Temperatur Beute 1, Temperatur Aussen, Luftfeuchte Beute 1 (hier ohne Wert), Luffeuchte Aussen, Lichtstärke (hier ohne Wert)
– Gewicht, Akkuspannung, Spannung Solarzelle, “Service”, Luftdruck, Regen (hier ohne Wert), Temperatur beelogger

Arbeitsschalter Blinkcode LED an D13:

  • 1x lang:  Einschalten des Arbeitsschalter erkannt
    • löst Messvorgang aus

      Wenn der Arbeitsschalter weitere 3 Sekunden aktiv ist:

    • 4x kurz:  Sendevorgang wird ausgelöst, “Messwert” Service wird auf “99” gesetzt.
       
  • 2x kurz:   System geht in Schlafzustand (wird nur bei aktiver Debugeinstellung angezeigt)
        Nur in diesem Zustand wird ein Einschalten des Arbeitsschalter erkannt.
     
  • Wenn Arbeitsschalter dauerhaft eingeschaltet ist, wird im voreingestellten Zyklus “USER_INT_TM” gemessen und gesendet.
  • Wird der Arbeitsschalter, ausgeschaltet, wird nach ca. 5 Minuten der normale Mess-/Sendezyklus aktiviert.
     

Beim beelogger-Universal werden an PIN D13 5V geschaltet. Der Strom einer externen LED sollte 20mA nicht überschreiten.
Der Vorwiderstand einer LED hängt von LED-Spannung und LED-Strom ab. Rv[kOhm] = (5[V] – U_Led[V]) / I_Led[mA]
Ab beelogger-Universal Platinenversion 1.13 stehen Lötaugen neben dem NANO für den Anschluß der LED (D13, GND) zur Verfügung.