beelogger

beelogger … Kalibrierung & Test

Zum Test der Sensoren bzw. der Sensorkonfiguration sowie der Sleep-Funktionen beim beelogger-Solar und beelogger-Universal (erweiterte Ausbaustufe) 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. Für den Test-Programmcode werden daher keine Sensoren oder Module benötigt.

Der System-Check-Sketch testet Sensoren und konfigurierbar diverse Systemfunktionen.

Der Power-On-Off-Test-Programmcode ermöglicht es die speziellen Funktionen des beelogger-Solar und beelogger-Universal (erweiterte Ausbaustufe) für den Sleep-Mode zu testen.

Der ADC-Kalibrierung-Programmcode dient dazu, die fertigungsbedingten Toleranzen der verwendeten Bauteile eines beelogger-Solar und beelogger-Universal (erweiterte Ausbaustufe) bei der Spannungsmessung von Akku und Solarzelle auszugleichen. 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.

Libraries

<Wire.h> –  in der Arduino-Software bereits enthalten <Sodaq_DS3231.h> –  https://github.com/SodaqMoja/Sodaq_DS3231 <LowPower.h> –  https://github.com/rocketscream/Low-Power

ADC-Kalibrierung-Programmcode für beelogger-Solar und beelogger-Universal (erweiterte Ausbaustufe)

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 eine Kalibrierung für jeden beelogger-Solar durchgeführt werden. Hierfür sind zwei Werte zu ermitteln:

  • Kalib_Spannung
  • Kalib_Bitwert

Für die Variable ‘Kalib_Spannung’ sollte mit einem möglichst hochwertigen Multimeter die Spannung des Akkus direkt gemessen und im Sketch in Millivolt eingetragen werden. Der Akku sollte bei dieser Messung gut geladen und nicht eingebaut sein. 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-Solar wieder. Liegt der ‘Kalib_Bitwert’ außerhalb des erlaubten Bereichs wird eine Fehlermeldung angezeigt.

Kalibrieriert wird mit diesem Sketch der Spannungsteiler an PIN A6 bestehend aus 1MOhm und 470kOhm (beelogger-Solar B-R1 und B-R2). Ein Wechsel des LiIon-Akku erfordert keine neue Kalibrierung.

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 Programmcode zur Kalibrierung initialisiert auch die RTC.

Bevor der Kalibrierung-Programmcode aufgespielt wird, muss die Spannung des Akkus in Millivolt in der Variable ‘Kalib_Spannung’ hinterlegt werden. Wenn der FTDI-Adapter das System zusätzlich mit Strom versorgt, könnte dieser das Ergebnis der Spannungsmessung bzw. Kalibrierung beeinflussen. Daher sollte nach dem Upload und vor der Ausführung des Kalibrierung-Programmcode, VCC des FTDI-Adapters vom beelogger-Solar getrennt werden, damit das System ausschließlich vom Akku versorgt wird.  Die serielle Konsole wird hierbei weiterhin funktionieren. Hinweis: Je nach Ausführung des FTDI-Adapters, kann durch Entfernen des Spannungsjumpers am FTDI-Adapter die Versorgung durch den FTDI getrennt werden.

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

Programmcode downloaden:

ADC Kalibrierung 22.03.2020

 

Waage:

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

 

Power-On-Off-Test-Programmcode für beelogger-Solar und beelogger-Universal (erweiterte Ausbaustufe)

beelogger Solar Testsystem

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 ein Kommunikation (GSM-, WLAN, LORA, etc.).

Die Batterie CR1220 (Solar) / CR2032 (Universal) des 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-Solar kann alternativ kann mit Hilfe der Lötfelder, wie unter Aufbau beschrieben, der Batterieanschluss der RTC mit dem LiIon-Akku verbunden werden. Dann entfällt die Batterie.

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 immer eine zu kleine Batteriespannung ermittelt. Dadurch greift der Programmcode zum Schutz des Akkus und es wird nach der Messung der Akkuspannung keine weitere Aktion mehr vorgenommen. Diese zuvor ermittelten Werte sind somit vor dem Upload einzutragen.

 

Ausgabe Power-On-Off-Test im seriellen Monitors (9600 baud): 

Programmcode downloaden:

Power-On-Off-Test 22.03.2020

 

System-Check und Testprogramm zur Sensorkonfiguration:

Neben den nachstehenden Einstellungen der Sensoren kann es auch notwendig sein zu prüfen welche 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, – die DHT 22 testet,

– den beelogger nach dem Systemtest in den Sleep-Mode versetzt, – und, wenn konfiguriert: – einen separaten Test für den Uhrbaustein DS3231 macht – die schaltbare Stromversorgung abschaltet – eine angeschlossene SD-Karte testet (benötigt SDFat-Bibliothek)

Beispiel der Monitorausgabe:

System Check 22.03.2020

Testprogramm für die serielle Verbindung zum SIM800 oder ESP8266

Dieses kleine Testprogramm prüft die serielle Verbindung zwischen dem AT-Mega und dem SIM800 bzw. ESP8266 Anschluss. Dazu wird das SIM800/ESP8266-Modul ausgebaut und eine Brücke zwischen RX und TX auf der Platine hergestellt. Eingaben über den Arduino-Monitor werden bei intaktem System dorthin zurück übertragen.

Test RX-TX 24.04.2020

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.

EE-PROM_Regenmessertest 31.03.2020

 

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