beelogger

beelogger … Kalibrierung & Test

Zum Test der Sensoren bzw. der Sensorkonfiguration sowie der Sleep-Funktionen beim beelogger-Solar und beelogger-Universal 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 Komponenten, Sensoren und konfigurierbar diverse Systemfunktionen.

Der Power- ON/OFF -Test-Programmcode ermöglicht es die speziellen Funktionen des beelogger-Solar und beelogger-Universal 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 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.

Der beelogger-Solar 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.
Die serielle Verbindung wird hierbei weiterhin funktionieren.
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 Aufbau 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.

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
Die Versionen für den beelogger sind im Library-Paket enthalten.

 

System-Check und Testprogramm zur Sensorkonfiguration:

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

#define System_with_DS3231  1   // 0 = ohne oder 1 = mit DS3231

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

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

Beispiel der Monitorausgabe:

System Check 02.02.2021

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 8 to 119...
addr: 0x8       
addr: 0x9       	addr: 0xA       	addr: 0xB       	addr: 0xC       
addr: 0xD       	addr: 0xE       	addr: 0xF       	addr: 0x10       
addr: 0x11       	addr: 0x12       	addr: 0x13       	addr: 0x14   
... ... ...
addr: 0x51       	addr: 0x52       	addr: 0x53       	addr: 0x54       
addr: 0x55       	addr: 0x56       	addr: 0x57 found!	addr: 0x58       
addr: 0x59       	addr: 0x5A       	addr: 0x5B       	addr: 0x5C       
addr: 0x5D       	addr: 0x5E       	addr: 0x5F       	addr: 0x60       
addr: 0x61       	addr: 0x62       	addr: 0x63       	addr: 0x64       
addr: 0x65       	addr: 0x66       	addr: 0x67       	addr: 0x68 found!
addr: 0x69       	addr: 0x6A       	addr: 0x6B       	addr: 0x6C       
addr: 0x6D       	addr: 0x6E       	addr: 0x6F       	addr: 0x70       
addr: 0x71       	addr: 0x72       	addr: 0x73       	addr: 0x74       
addr: 0x75       	addr: 0x76 found!	addr: 0x77       	
I2C scan done

Informationen zu typischen I2C-Adressen:
BH1750  -  0x23, 0x5C
Si7021  -  0x40
SHT31   -  0x44, 0x45
AT24C32 -  0x57
DS3231  -  0x68
BME280  -  0x76, 0x77
MCP23017 - 0x20, 0x21, 0x22, 0x23 
  
 DHT 22 Nr.1: 
   DHT nicht installiert oder fehlerhaft 
 DHT 22 Nr.2: 
   DHT nicht installiert oder fehlerhaft 

  
Sleep forever! 

Hinweis: Nach dem Test den Akku vom beelogger trennen.
System Check 01.03.2021
 

ADC-Kalibrierung-Programmcode für beelogger-Universal und beelogger-Solar

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. Damit erfordert ein Wechsel des Akku keine neue Kalibrierung.
Der Spannungsteiler an PIN A6 bestehend aus 1MOhm und 470kOhm (beelogger-Solar 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-Universal / -Solar 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-Solar 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 01.03.2021
 
 beelogger mit Arduino (Pro Mini / Nano)  
 
Starte Uhrbaustein:
Uhrbaustein initialisiert.

Datum und Uhrzeit aktuell im Uhrbaustein: 
1.10.2020 12:25:54


Hinterlegter Wert fuer 'Kalib_Spannung': 3920

Gemessener Wert fuer 'Kalib_Bitwert': 1469

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.

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

Programmcode downloaden:

ADC Kalibrierung 01.03.2021

 

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

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-Solar 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 29.03.2021 

beelogger mit Arduino Pro-Mini 

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

beelogger-System Datum und Uhrzeit: 29.3.2021 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: 29.3.2021 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: 29.3.2021 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 downloaden: Power - ON/OFF -Test 29.03.2021

 

Waage Kalibrierung:

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

Kalibrierung Waage 01.03.2021

 

SIM800, SIM7600E, ESP8266 Testsketche:

Beschreibung und Downlad des

 

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. Eingaben über den Arduino-Monitor werden bei intaktem System dorthin zurück übertragen.
Es wird das SIM800/ESP8266-Modul ausgebaut und eine Brücke zwischen RX und TX auf der Platine hergestellt.
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.

Hinweis: Nach dem Test den Akku vom beelogger trennen.
Test RX-TX 01.03.2021

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.
EE-PROM_Regenmessertest 01.03.2021

 

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