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
– https://github.com/rocketscream/Low-Power
<LowPower.h>
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)
1 2 3 4 5 |
#define System_with_DS3231 0 // 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
System Check 22.03.2020 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 Info: BH1750 - 0x23, 0x5C Si7021 - 0x40 SHT31 - 0x44, 0x45 AT24C32 - 0x57 DS3231 - 0x68 BME280 - 0x76, 0x77 MCP23017 - 0x20, 0x21, 0x22, 0x23 DHT 1: DHT nicht installiert oder fehlerhaft DHT 2: DHT nicht installiert oder fehlerhaft Sleep forever! |
Hinweis: Nach dem Test den Akku vom beelogger trennen.
System Check 22.03.2020
ADC-Kalibrierung-Programmcode für beelogger-Solar und beelogger-Universal
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.
1 |
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.
Bevor der Kalibrierung-Programmcode aufgespielt wird, muss die Spannung des Akkus in Millivolt in der Variable ‘Kalib_Spannung’ hinterlegt werden.
Der Programmcode zur Kalibrierung initialisiert auch den RTC-Baustein DS3231.
Ausgabe des ADC-Kalibriersketch am seriellen Monitors (9600 baud):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
beelogger Kalibrierung ADC 19.10.2020 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:
1 2 |
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 15.11.2020
Waage:
Die Kalibrierung des HX711 mit den Wägezellen ist hier beschrieben.
Programmcode downloaden:
Kalibrierung Waage 26.01.2021
Power-On-Off-Test-Programmcode für beelogger-Solar und beelogger-Universal
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 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.
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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
beelogger Power-On-Off-Test 06.01.2021 ... teste Uhr(DS3231), ADC-Kalibrierwerte und Power-ON-OFF Datum und Uhrzeit: 06.01.2021 12:09:25 Eingestelltes Weckintervall: 2 Minute(n) Wakeup at: 12:10 Sleep-Modus mit Power-ON gestartet, bitte warten ... Power-ON Sleep wurde beendet. ADC-Wert: 1485 Batteriespannung: 4.11 V Solarspannung: 1.20 V Datum und Uhrzeit: 20.03.2020 12:11:0 Temperatur ueber Sensor in RTC: 21.25 Eingestelltes Weckintervall: 2 Minute(n) Wakeup at: 12:11 Sleep-Modus mit Power-OFF ist aktiviert, bitte warten ... Sleep-Modus mit Power-OFF beendet Power-On-OFF Test erfolgreich! ADC-Wert: 1488 Batteriespannung: 4.12 V Solarspannung: 1.25 V Datum und Uhrzeit: 20.03.2020 12:13:0 Temperatur ueber Sensor in RTC: 21.00 |
Hinweis: Nach dem Test den Akku vom beelogger trennen.
Programmcode downloaden:
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.
Hinweis: Nach dem Test den Akku vom beelogger trennen.
Test RX-TX 24.01.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.10.2020
Der komplette Programmcode für den Arduino Datenlogger mit Stockwaage für Imker ist unter Programmcode zu finden.