beelogger

beelogger-STM32 – Test & Kalibrierung

Zum Test der Sensoren bzw. der Sensorkonfiguration beim beelogger-STM32 und zur Kalibrierung der Spannungsüberwachung stehen mehrere Sketche zur Verfügung. Hierzu gehören das Auslesen der Akku- und Solarspannung, sowie die Akku-Schutzfunktion.

  • System-Check-Sketch: testet µC-RTC, Komponenten, Sensoren und konfigurierbar diverse Systemfunktionen.
  • 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

Der beelogger-STM32 für Bienenzähler wird bei Kalibrierung und Test mit einem Netzteil 5V/1A versorgt.
Der beelogger-STM32 wird bei Kalibrierung und Test mit einem geladenen Akku betrieben.

Hinweis:
Über ein USB-Netzteil mit Mini-USB-Kabel kann das Solar-Charger-Modul zum Laden des Li-Ion-Akkus verwendet werden.
Das Laden des Akku kann auch über die Klemmen der Solarzellen mit einem Netzteil erfolgen. Die Spannung an den Klemmen darf hierbei 6V nicht überschreiten.
Ein voller Akku wird vom Solar-Charger, je nach Bauart, durch Leuchten einer blauen, grünen oder gelben LED, (beschriftet mit OK) angezeigt.

Die Testsketche finden sich im STM32-Sketch-Paket.

Die notwendigen Bibliotheken 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,
– den HX711 Nummer 1 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

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

Beispiel der Monitorausgabe:
STM32 System Check 11.03.2022

STM32F401CE

 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 ohne “Power_off_at_End” den Akku vom beelogger trennen um Entladung zu vermeiden.

Der LORA-Sketch setzt eine ungültige Systemzeit per Default auf den 1.1. 2022.
LORA-Systeme können die aktuelle Uhrzeit mit dem STM32-System-Check als Systemzeit setzen.
Damit diese erhalten bleibt, muss das System weiter über den Akku versorgt werden.
Nach Ermittlung aller Kalibrierwerte im Rahmen der Inbetriebname vor Aufspielen des LORA-Sketch,
daher den System-Test-Sketch laden und ausführen, wenn keine aktuelle Systemzeit gesetzt ist.

Der STM32-System-Check mit Test für die Sensoren ist im Sketch-Paket enthalten.


 

ADC-Kalibrierung-Programmcode für beelogger-STM32

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 Mikrocontroller 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 oder der Solarzelle erfordert keine neue Kalibrierung.
Der Spannungsteiler am Messpin bestehend aus 1MOhm und 470kOhm 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 18.03.2022
  
 
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 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

Der STM32-Kal-ADC-Sketch ist im Sketch-Paket enthalten.

 

Waage Kalibrierung:

Die Kalibrierung des HX711 mit den Wägezellen ist hier beschrieben.
Der STM32-Kalibirerung-Waage-Sketch ist im Sketch-Paket enthalten.

 

Testprogramm für die serielle Verbindung zum SIM800/SIM7600E oder ESP8266

Dieses kleine Testprogramm prüft die serielle Verbindung zwischen dem STM32F… und dem SIM800/SIM7600E bzw. ESP8266 Anschluss. Eingaben über den Arduino-Monitor werden bei intaktem System dorthin zurück übertragen.
Es wird das SIM/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 System-Check Sketch mit Sleep-Mode und Power-Off laden oder den Akku vom beelogger trennen um Entladen des Akku zu minimieren.
Der beelogger_STM32_RX_TX-Sketch ist im Sketch-Paket enthalten.