beelogger

beelogger … Test & Kalibrierung

Zum Test der Sensoren bzw. der Sensorkonfiguration sowie der Sleep-Funktionen beim beelogger und zur Kalibrierung der Spannungsüberwachung stehen mehrere Sketche zur Verfügung. Hierzu gehören die Einstellung und Alarmfunktion der RTC (Echtzeituhr), der Test des Temperatursensors der RTC, der Sleep-Mode des ATmega, welcher durch den Alarm der RTC über einen Interrupt aufgeweckt wird, das Auslesen der Akku- und Solarspannung, sowie die Akku-Schutzfunktion.

  • System-Check-Sketch: testet Komponenten, Sensoren und konfigurierbar diverse Systemfunktionen,
  • Power- ON/OFF -Test-Programmcode: ermöglicht es die speziellen Funktionen der beelogger für den Sleep-Mode zu testen,
  • ADC-Kalibrierung-Sketch: dient dazu, die fertigungsbedingten Toleranzen der verwendeten Bauteile eines beeloggers bei der Spannungsmessung von Akku und Solarzelle auszugleichen,
  • Waage Kalibriersketch: ermittelt Tarawert und Skalierung,
  • RX/TX-Test-Sketch: ermöglich prüfen der seriellen Anbindung von SIM800L, SIM7600E, ESP8266 oder HC-05 und senden von “AT-“Kommandos,
  • Testsketche für die Kommunikation mittels SIM800L, SIM7600E, ESP8266

Der beelogger-Universal 2.x und der beelogger-SMD darf bei Kalibrierung und Test nicht über den USB-Seriell-Adapter mit Strom versorgt werden. Versorgung über einen geladenen Akku ist unbedingt erforderlich.
Das Ergebnis der Spannungsmessung bzw. Kalibrierung kann beeinflusst werden.
Hinweis: Je nach Ausführung des USB-Seriell-Adapters, kann durch Entfernen des Spannungsjumpers am USB-Seriell-Adapter die Versorgung durch den USB-Seriell-Adapter getrennt werden.

Der beelogger-Universal (Solar) ist bei Kalibrierung und Test mit einer Spannung im Bereich 6-12V zu versorgen.
Der beelogger-Universal einfache Ausbaustufe kann über die USB-Buchse des NANO versorgt werden.

Der Programmcode für den Messbetrieb des beelogger “Arduino Datenlogger mit Stockwaage für Imker” ist unter Programmcode zu finden.

Die System-Setup/-Check Sketche:

System-Setup/-Check 16.01.2024

Hinweis: Die Variante DS3231M-A1 (Beschriftung auf dem DS3231 Chip: erste Zeile: DS3231M; zweite Zeile: xxxxA1; xxxx= Datumscode) kann mit angepasster Bibliothek verwendet werden.

Libraries

Die Versionen für den beelogger sind im Library-Paket enthalten.

 

System-Check und Testprogramm zur Sensorkonfiguration:

Vor weiteren Schritten im Aufbau und Kalibrierung wird empfohlen zu testen, welche Komponenten und Sensoren im System aktiv sind.
Dazu haben wir ein kleines Testprogramm erstellt, welches

– eine Auflistung aller DS18B20 durchführt,
– die Belegung der I2C-Adressen anzeigt und testet,
– Typerkennung BME/BMP; BME680, BMP280 Test in config.h einstellbar
– den HX711 Nummer 1/2 im System testet,
– die DHT 22 testet,
– den beelogger nach dem Systemtest in den Sleep-Mode versetzt,
– und, wenn konfiguriert:
    – nach den Tests die Stromversorgung für die Sensoren/Module eingeschaltet lässt,
    – eine angeschlossene SD-Karte testet.

#define Power_off_at_End    0   // 0 = aus (=LowPower), 1= Power an 

#define Test_SD_Card        0   // 0 = aus,  1= Power an  

Beispiel der Monitorausgabe:

System Check 15.04.2023

beelogger-Universal mit Arduino Nano 
Pin A2 high
Pin D4 high

HX711 Nummer 1: found.
databits: FFFFDA79

DHT 22:

DHT at pin: 5
* DHT not found or not installed.
DHT at pin: 6
* DHT not found or not installed.

Looking for 1-Wire devices... (i.e. DS18B20)
at Pin: D3

Found device with address:
0x28, 0xAA, 0x07, 0xEE, 0x52, 0x14, 0x01, 0x3D
One-Wire scan done.

DS18B20 ?
1 : [C]: 21.12

I2C-Scanner:
scanning of I2C bus from 0x8 to 0x77...
found at addr: 0x57
found at addr: 0x68
I2C scan done

EE-Prom
is present at: 0x57
1, 2, 3, 4, 
EE-Prom: 4 kByte

DS3231
reset alarms
temperature from DS3231: 22.5°C
time in DS3231: 17.4.2023 12:22:23 

Testing Com.-Modul
AT

OK
found

AT+GMR
AT version:1.7.4.0(May 11 2020 19:13:04)
SDK version:3.0.4(9532ceb)
compile time:May 27 2020 10:12:17
Bin version(Wroom 02):1.7.4
OK

Low-Power activ.
Sleep forever!

Hinweis: EEProm muss erkannt werden und minimal 4kB Speicher haben!
Nach dem Test ohne “Power_off_at_End” den Akku vom beelogger trennen um Entladung zu vermeiden.

 

ADC-Kalibrierung-Programmcode für beelogger

Da die Akkuspannung für eine Software-Funktion zum Akku-Schutz verwendet wird, ist die Kalibrierung zwingend notwendig, damit der Test- und Haupt-Programmcode lauffähig ist.
Alle elektronischen Komponenten des beeloggers mit seinen Spannungsreglern, Widerständen und dem ATmega unterliegen fertigungsbedingten Toleranzen. Um diese Toleranzen bei der Messung der Spannung von Akku und Solarzelle möglichst gut zu kompensieren, muss diese Kalibrierung für jeden beelogger durchgeführt werden.
Ein Wechsel des Akku erfordert keine neue Kalibrierung.
Der Spannungsteiler an PIN A6 bestehend aus 1MOhm und 470kOhm (beelogger-SMD B-R1 und B-R2) wird mit diesem Sketch kalibriert.

Für die Ermittlung der Solarspannung werden die gleichen Werte zur Berechnung verwendet, da diese Messung ohnehin nur eine Momentaufnahme darstellt und auch keine weiteren Auswirkungen auf den Programmablauf hat.

Der Akku muss für diese Messung gut geladen sein.
Der Wert für die Variable ‘Kalib_Spannung’ sollte mit einem möglichst hochwertigen Multimeter erfasst werden.
Gemessen wird die Spannung des Akkus an den Anschlussklemmen der beelogger Platine und im Sketch in Millivolt eingetragen werden.

int Kalib_Spannung = 1000; //Hier ist der mit Multimeter gemessene Wert der Akkuspannung in Millivolt einzutragen

Der Wert der Variable ‘Kalib_Bitwert’ wird über den Kalibrier-Programmcode ermittelt. Dieser Wert gibt die mit allen Toleranzen gemessene Akku-Spannung durch den beelogger wieder. Liegt der ‘Kalib_Bitwert’ außerhalb des erlaubten Bereichs wird eine Fehlermeldung angezeigt.
Der Programmcode zur Kalibrierung initialisiert auch den RTC-Baustein DS3231.

Bevor der Kalibrierung-Programmcode aufgespielt wird, muss die Spannung des Akkus in Millivolt in der Variable ‘Kalib_Spannung’ hinterlegt werden.

Beispiel einer Ausgabe des ADC-Kalibriersketch am seriellen Monitors (9600 baud): 

beelogger Kalibrierung ADC 10.03.2022
 
 beelogger mit Arduino (Pro Mini 3,3V/8MHz)  
 
Starte Uhrbaustein:
Uhrbaustein initialisiert.

Datum und Uhrzeit aktuell im Uhrbaustein: 
10.03.2023 09:25:54


die mit dem Multimeter gemessene Akkuspannung: 3.92 V
der gemessene digitale 'Bitwert': 1468

Die mit dieser Kalibrierung ermittelte Akkuspannung betraegt:3.92 V

 Die Zeile für die Konfiguration:

const long Kalib_Spannung =  3920;    // Hier ist der Wert aus der Kalibrierung einzutragen
const long Kalib_Bitwert  =  1469;    // Hier ist der Wert aus der Kalibrierung einzutragen

Hinweis: Nach dem Test den System-Check Sketch mit Sleep-Mode und Power-Off laden oder den Akku vom beelogger trennen um Entladen des Akku zu minimieren.

Die so ermittelten Kalibrierwerte (hier Beispielwerte) werden in der Konfiguration weiterer Sketche benötigt:

const long Kalib_Spannung = 3920; // Hier ist der Wert aus der Kalibrierung einzutragen 
const long Kalib_Bitwert = 1469; // Hier ist der Wert aus der Kalibrierung einzutragen

 

Power – ON/OFF -Test-Programmcode für beelogger-Universal und beelogger-SMD

Der Power-ON/OFF-Test-Programmcode ist mit einem Intervall von zwei Minuten vorkonfiguriert. Die Werte aus der ADC-Kalibrierung sind im Sketch einzutragen. Die RTC wird mit der Uhrzeit aus dem Programmcode initialisiert, die automatisch während der Compilierung im Rahmen des Uploads auf den ATmega hinterlegt wird. Damit die Uhrzeit im RTC korrekt eingestellt werden kann, muss die Uhrzeit im PC stimmen.

Der Test-Programmcode verwendet weder Sensoren, noch eine Kommunikation (Mobilfunk, WLAN, LORA, etc.).

Der DS3231 (Echtzeituhrbaustein) muss für den Test mit Spannung versorgt sein. Entweder über die Batterie CR2032 oder eine Verbindung wie unter “beelogger-Universal Beschaltung und Aufbau” beschrieben. 
Beim beelogger-SMD kann alternativ kann mit Hilfe der Lötfelder, wie unter Aufbau beschrieben, der Batterieanschluss des DS3231 mit dem LiIon-Akku verbunden werden.

Die RTC verfügt zudem über einen eingebauten Temperatursensor. Sofern kein oder nur ein Temperatursensor aktiviert ist und keine andere Konfiguration vorgenommen wurde, liefert die RTC im Haupt-Programmcode die Temperaturdaten, welche auch für die Temperaturkompensation der Stockwaage verwendet wird.

Ohne die Werte der Kalibrierung für die Spannungsmessung wird eine zu kleine Batteriespannung ermittelt. Dadurch greift der Programmcode zum Schutz des Akkus. Dadurch wird ein alternatives (langes) Intervall für den Test verwendet.

Ausgabe Power-ON/OFF-Test im seriellen Monitors (9600 Baud):

beelogger Power-On-Off-Test 27.03.2023

beelogger-Universal mit Arduino Nano 

... teste: Uhr(DS3231)
          ADC-Kalibrierwerte
          und Power - ON / OFF

Starte Uhrbaustein:
 beelogger-System Datum und Uhrzeit: 27.3.2023 20:23:51
 Temperatur ueber Sensor in RTC: 22.75

 Batterie:        ADC-Bitwert= 1308 4.02 V
 Solarspannung:   ADC-Bitwert= 1 0.00 V


Teste  Power ON: 
Weckintervall: 1 Minute(n)
Wakeup at: 20:24:51
Sleep-Modus mit Power-ON gestartet, bitte warten ... 
 i.O.

beelogger-System Datum und Uhrzeit: 27.3.2023 20:24:51 

 Batterie:        ADC-Bitwert= 1308 4.02 V
 Solarspannung:   ADC-Bitwert= 0 0.00 V


Teste  Power OFF: 
Weckintervall: 2 Minute(n)
Wakeup at: 20:26:51
Sleep-Modus mit Power-OFF ist aktiviert, bitte warten ... 
 i.O.

beelogger-System Datum und Uhrzeit: 27.3.2023 20:26:51 

 Batterie:        ADC-Bitwert= 1308 4.02 V
 Solarspannung:   ADC-Bitwert= 0 0.00 V


Teste  Power OFF: 
Weckintervall: 4 Minute(n)
Wakeup at: 20:30:51

Sleep-Modus mit Power-OFF ist aktiviert, bitte warten ... 
 i.O.

>>>>> Power - ON / OFF Test erfolgreich!  <<<<<
................. Test beendet!

 

Hinweis: Nach dem Test den System-Check Sketch mit Sleep-Mode und Power-Off laden oder den Akku vom beelogger trennen um Entladen des Akku zu minimieren.

 

 

Waage Kalibrierung:

Die Kalibrierung des HX711 mit den Wägezellen ist hier beschrieben.

 

SIM800, SIM7600E, ESP8266 Testsketche:

Beschreibung und Downlad des

Optional: Testprogramm Interrupt Niederschlagsmesser:

Dieses kleine Testprogramm gibt den Zählerstand eines Niederschlagsmessers (Interrupt an D3) aus.
Ebenfalls geprüft wird ein vorhandes EE-Prom bei Adresse 0x53 oder 0x57 auf Größe. Dieser Test ist auch im SystemCheck enthalten.

Hinweis: Nach dem Test den System-Check Sketch mit Sleep-Mode und Power-Off laden oder den Akku vom beelogger trennen um Entladen des Akku zu minimieren.

 

 

Optional: Testprogramm für die serielle Verbindung zum SIM800,SIM7600 oder ESP8266

Mit diesem Testprogramm kann bei Bedarf die serielle Verbindung zwischen dem STM32Fxyz und dem SIM800,SIM7600 bzw. ESP8266 Anschluss geprüft werden. Eingaben über den Arduino-Monitor werden bei intaktem System dorthin zurück übertragen.
Es wird das SIM800/SIM7600/ESP8266-Modul ausgebaut und eine Brücke zwischen RX und TX auf der Platine hergestellt.
Im Eingabefeld übermittelte Daten werden mit “Empfangen:” … ausgegeben.
Bei gestecktem ESP/SIM-Modul sind Abfragen wie “AT” (Antwort “OK”) oder “AT+GMR” (Antwort “Firmwareversion”) möglich. Hierbei im Arduino-Monitor im Feld unten die Einstellung “Sowohl NL als auch CR” wählen.

Bei gestecktem ESP8266/SIM800l/SIM7600E-Modul sind Abfragen wie “AT” (Antwort “OK”) oder “AT+GMR” (Antwort “Firmwareversion”) möglich.

Mit aufgestecktem SIM800L und eingesteckter SIM-Karte muss folgende Ausgabe erfolgen:
Die Ausgabe bei einem SIM7600E ist ähnlich.

Empfangen:
RDY
+CFUN: 1
Empfangen:
+CPIN: READY
Empfangen:
Call Ready
Empfangen:
SMS Ready

Mit aufgestecktem ESP8266 muss folgende Ausgabe erfolgen:
Die letzte Zeile “ready” ist entscheidend.

Empfangen:
W2H⸮XF
jEJd⸮M
ready

Hinweis: Nach dem Test den System-Check Sketch mit Sleep-Mode und Power-Off laden oder den Akku vom beelogger trennen um Entladen des Akku zu minimieren.