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-Programmcode: 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-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.

Die System-Setup/-Check Sketche:

System-Setup/-Check 25.07.2022

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 14.05.2022

beelogger-Universal mit Arduino Nano

 Suche One-Wire-Bus, I2C-Bus

Looking for 1-Wire devices... (i.e. DS18B20)
at Pin: D3
Found '1-Wire' device with address:
0x28, 0xFF, 0xAB, 0x84, 0xA1, 0x16, 0x05, 0xF8

One-Wire scan done.

I2CScanner ready!
starting scanning of I2C bus from 0x8 to 0x77...
addr: 0x40 found: SI7021 
addr: 0x57 found: EE-Prom 
addr: 0x68 found: DS3231 
I2C scan done
 
 HX711 Nummer 1:    gefunden.
   Datenbits: FFFD6801  (Beispiel !)

 DHT 22 Nr.1: 
   DHT nicht installiert oder fehlerhaft 
 DHT 22 Nr.2: 
   DHT nicht installiert oder fehlerhaft 

Low Power aktiv.
Sleep forever! 

Hinweis: Nach dem Test den Akku vom beelogger trennen.

Programmcode im Setup-Sketch-Paket.

 

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 = 0; //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.

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

beelogger Kalibrierung ADC 12.04.2022
 
 beelogger mit Arduino (Pro Mini / Nano)  
 
Starte Uhrbaustein:
Uhrbaustein initialisiert.

Datum und Uhrzeit aktuell im Uhrbaustein: 
1.10.2020 12: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 Akku vom beelogger trennen.

Programmcode im Setup-Sketch-Paket.

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.).

Die Batterie CR2032 (Universal) für den DS3231 (=RTC) muss für den Test eingelegt sein, da auch die RTC während der Schlafphase von der Stromversorgung getrennt wird, um eine weitere Stromeinsparung zu erreichen.
Beim beelogger-SMD kann alternativ kann mit Hilfe der Lötfelder, wie unter Aufbau beschrieben, der Batterieanschluss der RTC mit dem LiIon-Akku verbunden werden. (Nicht für LORA oder SD-Karten Syseme). Dann darf keine Batterie eingebaut werden.

beelogger Solar RTC Lipo

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 und es wird nach der Messung der Akkuspannung ein alternatives Intervall für den Test verwendet.

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

beelogger Power-ON/OFF-Test 12.04.2022 

beelogger mit Arduino Pro-Mini 

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

beelogger-System Datum und Uhrzeit: 18.04.2022 12:21:26 
Temperatur ueber Sensor in RTC: 23.75

Batterie: ADC-Bitwert= 2011 6.52 V
Solarspannung: ADC-Bitwert= 103 0.33 V


Teste Power ON:
Weckintervall: 1 Minute(n)
Wakeup at: 12:22

Sleep-Modus mit Power-ON gestartet, bitte warten ... 
i.O.

beelogger-System Datum und Uhrzeit: 18.04.2022 12:22:26

Batterie: ADC-Bitwert= 2012 6.52 V
Solarspannung: ADC-Bitwert= 104 0.34 V

Teste Power OFF:
Weckintervall: 2 Minute(n)
Wakeup at: 12:24

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


Power - ON / OFF Test erfolgreich!


beelogger-System Datum und Uhrzeit: 18.04.2022 12:24:26

Batterie: ADC-Bitwert= 2012 6.52 V
Solarspannung: ADC-Bitwert= 104 0.34 V

Teste Power OFF:
Weckintervall: 2 Minute(n)
Wakeup at: 12:26

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

Power - ON / OFF Test erfolgreich!

------------------- Test beendet

Hinweis: Nach dem Test den Akku vom beelogger trennen.

Programmcode im Setup-Sketch-Paket.

 

Waage Kalibrierung:

Die Kalibrierung des HX711 mit den Wägezellen ist hier beschrieben.
Programmcode im Setup-Sketch-Paket.

 

 

SIM800, SIM7600E, ESP8266 Testsketche:

Beschreibung und Downlad des

 

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

Dieses kleine Testprogramm prüft die serielle Verbindung zwischen dem AT-Mega und dem SIM800,SIM7600 bzw. ESP8266 Anschluss. 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.

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

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

Hinweis: Nach dem Test den Akku vom beelogger trennen.

Programmcode im Setup-Sketch-Paket.

 

Testprogramm für EE-Prom und Interrupt Niederschlagsmesser:

Dieses kleine Testprogramm prüft ein optional vorhandes EE-Prom bei Adresse 0x53 oder 0x57 auf Größe und gibt den Zählerstand eines Niederschlagsmessers (Interrupt an D3) aus.

Hinweis: Nach dem Test den Akku vom beelogger trennen.

Programmcode im Setup-Sketch-Paket.

 

 

Der komplette Programmcode für den Arduino Datenlogger mit Stockwaage für Imker ist unter Programmcode zu finden.