beelogger

beelogger-Solar-SD /-Universal SD / Bluetooth Programmcode

 

beelogger-SD (mit optionaler Bluetoothdatenübertragung)

‘beelogger-SD’ kann mit dem beelogger-Solar oder beelogger-Universal aufgebaut werden und unterstützt einige Sensoren bis auf den Bienenzähler, auf den aus Energiespargründen verzichtet werden muss, sowie die Einstellung eines Weckintervalls über die integrierte Echtzeituhr. Weitere Sensoren können bei Bedarf integriert werden. Zusätzlich ermöglicht die spezielle Platine des beelogger-Solar die Messung der Solarspannung.

Zwischen den Messungen wird das komplette System in einen sehr stromsparenden Schlafmodus mit einem Verbrauch von nur 8uA versetzt. Die Messwerte der Sensoren werden vom beelogger auf eine SD-Karte geschrieben.

Der Programmcode unterstützt zwei DHT-Sensoren oder zwei DS18B20, einen Lichtsensor und eine Waage.

#define Anzahl_Sensoren_DS18B20 0 // Mögliche Werte: '0','1','2'
#define Anzahl_Sensoren_DHT 0 // Mögliche Werte: '0','1','2'
#define Anzahl_Sensoren_Licht 0 // Mögliche Werte: '0','1'
#define Anzahl_Sensoren_Gewicht 1 // Mögliche Werte: '0','1'

Es ist möglich, einen DHT-Sensor und einen DS18B20 gleichzeitig zu nutzen. Bei Verwendung eines DHT-Sensors und eines DS18B20, ist der DS18B20 der Variable ‘TempIn’ und der DHT-Sensor der Variablen ‘TempOut’ und ‘FeuchteOut’ zugeordnet. In den jeweiligen Funktionen für die Sensoren kann die Zuordnung sowie die Belegung bei zwei gleichen Sensoren im Programmcode einfach konfiguriert werden:

TempIn = Temperatur[0];                                     // Hier kann die Zuordnung der Sensoren geändert werden
if (Anzahl_Sensoren_DS18B20 == 2) TempOut = Temperatur[1];  // Hier kann die Zuordnung der Sensoren geändert werden

TempOut = Temperatur[0];         // Hier kann die Zuordnung der Sensoren geändert werden
FeuchteOut = Luftfeuchte[0];     // Hier kann die Zuordnung der Sensoren geändert werden
if (Anzahl_Sensoren_DHT == 2) {
  TempIn = Temperatur[1];        // Hier kann die Zuordnung der Sensoren geändert werden
  FeuchteIn = Luftfeuchte[1];    // Hier kann die Zuordnung der Sensoren geändert werden
}

In den Variablen TempOut, TempIn, FeuchteIn, FeuchteOut kann anstelle dieser Werte prinzipiell auch jeder andere Messwert, z.B. Luftdruck, eingetragen werden, der in den Datensatz übernommen wird.

Die Kalibrierwerte für die Waage sind hier einzutragen:

const long Taragewicht = -14200; // Hier ist der Wert aus der Kalibrierung einzutragen
const float Skalierung = 22.5; // Hier ist der Wert aus der Kalibrierung einzutragen

Der Programmcode kann eine Temperaturkorrektur der Waagenwerte durchführen.

const float Kalibriertemperatur = 1.0f; // Temperatur zum Zeitpunkt der Kalibrierung
const float KorrekturwertGrammproGrad = 1.0f; // Korrekturwert zur Temperaturkompensation - '0' für Deaktivierung

Für die Messung der Batteriespannung werden diese Werte benötigt:

const long Kalib_Spannung = 6350; // Hier muss der Wert aus der Kalibrierung eingetragen werden, sonst funktioniert der Programmcode nicht
const long Kalib_Bitwert = 1580; // Hier muss der Wert aus der Kalibrierung eingetragen werden, sonst funktioniert der Programmcode nicht

Das Messinterval wird in diesen Werten eingestellt.

#define WeckIntervallMinuten 20 // Standard Weckintervall
#define Intervall_Winter 1 // 0 oder 1, wenn 1 dann Nachts und von August bis März Intervall im Stundentakt
#define AlternativIntervallMinuten 120

Das normale Messinterval wird mit WeckIntervalMinuten konfiguriert. Die Option Intervall_Winter schaltet das normale Messinterval in den Monaten August bis März sowie in der Nacht (18 Uhr bis 6 Uhr) auf einen Ein-Stunden-Takt automatisch umzustellen. Das AlternativInterval wird ausgeführt, wenn die Batteriespannung die Spannung VAlternativ unterschritten hat.

In der Konfiguration sind die für die jeweils genutzte Batterie vordefinierten Wertepaare aus zu kommentieren.

// 12V PB-Akku beelogger-Universal
//const float VAlternativ = 11.9; // Minimale Spannung ab der automatisch das alternative Intervall aktiviert wird
//const float VMinimum = 11.5; // Minimale Spannung ab der keine Messungen und Abspeichern von Daten erfolgt

Der Programmcode wurde speziell für die Platine des beelogger-Solar-SD  bzw. beelogger-Universal entwickelt. Bei Verwendung des Sketch V 1.0 für den beelogger-Universal sind ggf. die Pins in den #define Blue RX/TX zu tauschen.

Vor Verwenden der Sketche Kalibrierung und Test vollständig durchführen.

Version Release Notes  
1.0
  • Initiale Version
 

Juli 2019

  • Ergänzung Debug Information;
    Hinweis: nur im Probebetrieb aktivieren
  • automatische Konfiguration der RX/TX Pins für das BlueTooth-Modul beim beelogger-Solar / -Universal
  • Gewicht auf kg skalierbar
 

Feb 2021

  • neue HX711 Bibliothek
  • Debug-Info ergänzt
Download

Offline-Grafik zur Darstellung der Daten

     
April 2020

 

 

  • Programmcode für bis zu zwei Waagen
  • verbesserte Intervallsteuerung integriert

     

 

Feb 2021
  • neue HX711 Bibliothek
  • Debug-Info ergänzt

    Die Konfiguration erfolgt weitestgehend wie bei den Multi-Sketchen.

Download

Offline-Grafik zur Darstellung der Daten

Folgende weitere Konfiguration der Sketche ist je nach Systemaufbau notwendig.

Neben dem Abspeichern der Daten auf der SD-Karte stehen konfigurierbar die serielle Schnittstelle und das Interface für ein Bluetooth-Modul für den Abruf der Daten zur Verfügung.

#define Serial_DATA  1     // mit oder ohne USB-Datentransfer

#define Bluetooth   1      // mit oder ohne Bluetooth

#define Blue_On     A3     // PIN A3 Bluetooth Aktiv Erkennung

Die Debug-Funktion im Sketch (bzw. beelogger_config.h) kann über

#define Debug 1

eingestellt werden. Achtung: eine aktives Debug-Flag verhindert, dass die Stromaufnahme höher ist als für den Schlafmodus üblich. Mit aktivem Debug wird nach der Bereit-Kennung “*” der Datensatz angezeigt:

*
to SD: 2019/10/17 18:40,,23.50,,,123456,1000.59,12.23,0.00

Die Daten sind Format: Datum/Uhrzeit,Temp.-In, Temp.-Out, Feuchte-In, Feuchte-Out, Lichtstärke Gewicht, Batterie, Solarspannung. Im gezeigten Datensatz fehlen einige Werte. Der Wert Solarspannung hat beim beelogger-Universal nicht relevant.

Dieser Sketch verwendet 57600 Baud auf der seriellen Schnittstelle.

Über die Serielle Schnittstelle kann durch Senden eines Zeichens unmittelbar nach Erscheinen der Bereit-Kennung über den Monitor im beelogger eine Funktion ausgelöst werden. Folgende Zeichen sind möglich: – “*” neuer Dateiname für die Messdaten – “?” Daten von SD-Karte holen – “#” aktuelle Messdaten anzeigen So ist für Testzwecke ein Zugriff auf das Live-Systems über den FTDI-Anschluss möglich. Achtung: Die Nutzung der seriellen Schnittstelle löst im System einen Reset aus. Für den Dauerbetrieb sollte diese Schnittstelle deaktiviert sein.

 

Zum Auslesen der Daten ohne Kartentausch direkt am Bienenstand steht eine Erweiterung mit einem Bluetooth-Modul zur Verfügung. Die grafische Darstellung der Daten kann vor Ort über die Offline-Grafik  oder mit dem Smartphone erfolgen.

Sketch zur Anpassung von Name und Passwort des Bluetooth-Moduls: Download

Windows Programm für Datenabruf über die serielle Schnittstelle:        Download

Die Software für das Abrufen der Daten via Bluetooth unter Windows 10: Download