beelogger

beelogger – SD / Bluetooth Programmcode

 

beelogger-SD (mit optionaler Bluetoothdatenübertragung)

‘beelogger-SD’ kann mit dem beelogger-SMD 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-SMD die Messung der Solarspannung.
Zwischen den Messungen wird das komplette System in einen sehr stromsparenden Schlafmodus mit einem Verbrauch von ca. 8uA versetzt. Die Messwerte der Sensoren werden vom beelogger auf eine SD-Karte geschrieben.

 

Konfiguration Bluetooth Adapter Name/Pin:

Wenn der Standard Bluetooth-Adapter-Name “HC-05”  bzw. die Pairing-Pin geändert werden soll, kann der Konfigurationssketch verwendet werden.

Im Konfigurationssketch ist der neue Name und die vierstellige Pairing-Pin einzutragen. Die Baudrate für das Bluetooth-Modul auf 38400Baud eingestellt lassen.

// Hier wird die neue Serial-Baudrate, für den beelogger "38400" 
// Name und Pairing-Passwort (vierstellig, nur Zahlen) angegeben
char BLUETOOTH_SPEED[] = "38400"; //This is the default baudrate that HC-05 uses

char BLUETOOTH_NAME[] = "XY_01";
char PASSWORT[] = "1234";  // vier Stellen

Teilweise benötigen HC-05 Module ein andere Formatierung der Passworteingabe:

char PASSWORT[] = "\"1234\"";  // vier Stellen

Das Bluetooth-Modul ist abgeschaltet. Den Konfigurationssketch in den beelogger laden. Mit dem Monitor die Ausgaben anzeigen und den Anweisungen folgen.

Konfiguration Bluetooth-Modul HC-05.
 
Taster am Modul drücken und Spannung für das Modul einschalten!
Das Modul muss langsam blinken.

 '1' eingeben zum Start.
 
Starte Konfiguration:
Sende: AT
OK

Sende: AT+VERSION
+VERSION:2.0-20100601
OK

Sende: AT+PSWD=1234
OK

Sende: AT+NAME=XY_01
OK

Sende: AT+UART=38400,0,0
OK

Antwortet das Modul mit OK,
dann war der Vorgang erfolgreich.

Jetzt kann der beelogger-SD-Sketch mit aktivierter Bluetooth-Schnittstelle geladen werden und die Datenübertragung zum Rechner oder Smartphone erfolgen.
Beschreibung weiter unten auf dieser Seite.

Datenübertragung zum PC:

via Bluetooth:

Bluetooth Windows Programmoberfläche

Das Programm für die Übertragung zu einem Rechner mit Windows10/Windows11 ist im Download enthalten.
Beim Start bietet das Programm automatisch die Aktivierung der Systemeinstellungen für Bluetooth an, wenn Bluetooth nicht aktiv ist.
Im Feld oben rechts werden im Betriebssystem eingerichteten Geräte angezeigt.
Das Pairing der Geräte erfolgt über die Systemeinstellungen.
Der Button  “BT”  startet die Systemeinstellungen für Bluetooth.

Eine Abfrage verfügbarer Bluetoothgeräte kann über den Button “Geräte?” erfolgen.
Das ausgewählte Gerät wird über den Button “Verbinden” mit dem Programm verbunden.
Dazu erscheint in den grau hinterlegten Feldern eine entsprechende Statusmeldung.
Manchmal funktioniert das Verbinden nicht im ersten Anlauf, vor allem wenn Geräte neu im System eingetragen sind. Ein neues Abfragen der Geräte, sowie Verbinden, oder Beenden sowie Neustart des Programms kann hier Abhilfe schaffen.
Bei erfolgreicher Verbindung ändert die LED des HC-05 Modul den Blinkrythmus.

Es stehen die Funktionen:
“Hole Daten”: Auslesen der Daten von der SD-Karte zum Abspeichern
“Aktuelle Daten”: Anzeige der aktuellen Messdaten
“Setze Uhrzeit”: Einstellen der Uhrzeit im beelogger.
“*” : Neue Datei auf der SD-Karte anlegen

Der Button “Daten speichern” öffnet ein Explorerfenster zum Abspeichern der Daten auf den PC und schlägt einen Namen basierend auf dem Bluetooth-Adapter-Namen vor.
Die Sonderfunktion “Neue Datei auf der SD-Karte anlegen” wird über Eingabe eines “*” in das Sende-Feld und Betätigen des Sende-Button ausgelöst.
Die bisher gespeicherten Daten bleiben auf der SD-Karte erhalten. Neue Messungen werden in der neuen Datei abgespeichert.
Auf diese Weise erfasste Daten können am PC im Browser mit den Offline-Grafik-Tools angezeigt werden.

via serielle Verbindung:

Die Daten von der SD-Karte können über die serielle Schnittstelle des Arduino ( USB oder USB-Seriell-Adapter) mit dem Windows10/Windows11 Programm in einen PC übertragen werden.
Das Programm ist im u.a. Download enthalten. Auf diese Weise erfasste Daten können am PC im Browser mit den Offline-Grafik-Tools angezeigt werden.

 

Android-App, Datenübertragung per Smartphone zum Server mit Nutzung Grafik des beelogger-Server

Zum Auslesen des beelogger-SD/Bluetooth und Weitergabe der Daten an den beelogger-Server via Android-Smartphone hat ein netter beelogger-Freund eine Android-App erstellt. Damit kann der beelogger-Server mit seiner grafischen Oberfläche für die Daten verwendet werden.
Diese App steht aktuell unter https://github.com/Mauchel1/BeeloggerBluetooth zur Verfügung.

 

Manuelle Datenübertragung zum Smartphone:
Für das Smartphone wird eine Bluetooth-SPP-App benötigt, welche die Daten überträgt und abspeichern zulässt.
Leider verbieten bei aktuellen Android Versionen Sicherheitsvorkehrungen im Betriebssystem das Öffnen der lokalen Dateien. Wer hier Abhilfe weis, darf sich gerne ins Projekt einbringen.
Hier bietet sich die Android-App Bluetooth SPP Pro Version 0.16 von Jerry-Li für Android Version 4 – 6 an. Leider ist diese App nicht mehr über den üblichen Store verfügbar. Die APK-Datei findet sich im Netz. Alternativ kann das Bluetooth Terminal von SONWORKS, auch unter Android 8, verwendet werden.
Durch Senden von Zeichen werden im beelogger Funktionen ausgelöst.
– “*”  neuer Dateiname für die Messdaten, der Name wird im beelogger erzeugt
– “?”  Daten von SD-Karte holen
– “#” aktuellen Messdatensatz anzeigen
Auf diese Weise erfasste Daten können am PC im Browser mit den Offline-Grafik-Tools angezeigt werden.

 

Konfiguration des beelogger-SD/Bluetooth-Sketches

Die Konfiguration der Sensoren erfolgt wie bei den Multi-Sketchen.

Das Messinterval wird in diesen Werten eingestellt:

//Weckintervallsteuerung
#define WeckIntervall_aktiv 1 // Manuelle Intervallsteuerung 0 = inaktiv, 1 = aktiv

#define WeckIntervall_Tag 10
#define WeckIntervall_Nacht 30
#define WeckIntervall_Nacht_Anfang 22
#define WeckIntervall_Nacht_Ende 6

//Weckintervallsteuerung Alternativ- / Winter- Intervall
#define WeckIntervall_Winter_aktiv 1 // Intervall Winter 0 = inaktiv, 1 = aktiv
#define WeckIntervall_Winter 60 // Intervall in Minuten
#define WeckIntervall_Winter_Anfang 9 // Monat Winterintervall Start
#define WeckIntervall_Winter_Ende 4 // Monat Winterintervall Ende
#define AlternativIntervallMinuten 120

Das normale Messinterval wird mit WeckIntervalTag konfiguriert. Des Weiteren ist das Intervall für die Nachtstunden konfigurierbar.
Die Option Intervall_Winter schaltet das normale Messinterval in den Monaten (hier August bis März) auf einen 60-Minuten-Takt um.
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-SMD-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.
Kalibrierwerte eines Systems ( ADC / Waage) und andere Konfigurationsdaten können aus bisher verwendeten Daten übernommen werden.
Neukalibrierung ist erforderrlich für:
– Waage: bei Tausch einer Wägezelle oder HX711
– ADC-Kalibrierung: bei Austausch des ATmega328, z.B. durch Wechsel des NANO/Pro-Mini oder Universal-Platine

Version Release Notes  
15.05.2023
  • BH1750 Adressierung

SD / BT 1-2 Waagen

Programme für Datenabruf über die serielle Schnittstelle (“Waage_USB”) oder via Bluetooth (beelogger_BT”) unter Windows 10/11
sind enthalten.
Die Konfiguration des Sketch erfolgt weitestgehend wie bei den Multi-Sketchen.

Offline-Grafik zur Darstellung der Daten

15.04.2023
  • BME280-/ DHT- beelogger- Libs

16.05.2022
  • DHT Abfrage modifiziert

Feb 2021
  • neue HX711 Bibliothek
  • Debug-Info ergänzt
 
April 2020
  • Programmcode für bis zu zwei Waagen
  • verbesserte Intervallsteuerung integriert
 

Juli 2019

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

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 USB-Anschluss, z.B. mit dem Monitor der Arduino-IDE, möglich.
Achtung: Die Nutzung der seriellen Schnittstelle löst im System einen Reset aus.

Zum Auslesen der Daten ohne Kartentausch bzw. Zugriff auf den USB-Anschluss 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.

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-Datentransfer

#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.

Mit aktivem Debug wird nach der Bereit-Kennung “*” der abgespeicherte 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 sind einige Werte nicht gesetzt.

Achtung: eine aktives Debug-Flag führt zu einer höheren Stromaufnahme als für den Schlafmodus üblich. Die Downloadtools für Windows (Waage_USB, beelogger_BT) arbeiten dann nicht korrekt.
Für den Dauerbetrieb und den Download korrekter CSV-Datendateien muss Debug auf “0” eingestellt sein.
Mit Debug auf “1” wird zusätzliche Debug-Information in die Downloaddateien gespeichert. Dadurch werden diese unbrauchbar bzw. müssen zur Verwendung im Grafiktool nachbearbeitet werden.