Die beelogger-Multi Sketche unterstützen bis zu sechs Waagen an einem beelogger-Solar ab Version 3.0 oder beelogger-Universal ab Version 1.0 mit allen Sensoren. Der Programmcode kann mit und ohne Nutzung eines EE-Prom verwendet werden. Auf den Bienenzähler muss auf den aus Gründen des Energieverbrauchs verzichtet werden.
Das beelogger-Team leistet bei Fragen gerne Unterstützung.
Unbedingt vor dem Laden dieser Sketche die Testprogramme für den beelogger und der Sensoren zum Funktionstest aller Komponenten durchführen.
Die Multi-Sketche ermöglichen die Messung der Batteriespannung sowie die Einstellung eines Weckintervalls über die integrierte Echtzeituhr. Der beelogger-Solar stellt auch die Spannung des Solar-Moduls als Messwert zur Verfügung. Zwischen den Messungen wird das komplette System in einen sehr stromsparenden Schlafmodus mit einem Verbrauch von nur 8uA versetzt.
Die Multi Sketche sind in Ausführungen für Aufbauten mit bis zu sechs Waagen an einem beelooger verfügbar:
– WLAN, GSM und LTE -_MULTI
– LORA auf dieser Seite
Hinweise zur Sensorkonfiguration in den Multi-Sketchen:
In den Multi-Sketchen sind zahlreiche Sensortypen verfügbar und können komfortabel zugeordnet werden. Das beelogger-Projekt benötigt ein diverse Biblotheken, die als Datei zu Verfügung stehen. Die Konfiguration ist in einer systemabhängigen “WLAN / GSM /LTE _MULTI_config.h” enthalten. Die Einstellungen zur Debug-Option, Pinbelegung oder Detailkonfiguration der Sensoren (I2C-Adressen) finden sich in der “beelogger_config.h“.
- Sketche haben optionale Debug-Informationen eingebaut, die über das Debug-Flag aktiviert werden können. Im Dauerbetrieb sollte das Debug-Flag auf “0” gesetzt sein.
1 |
#define myDebug 0 // 0 / 1 Debug via Serial Monitor |
Es stehen diverse Sensoren konfigurierbar zur Verfügung.
Hinweis: Der I2C-Bus ist in seiner Leitungslänge sehr eingeschränkt. Je nach Anzahl der I2C-Sensoren, Leitungslängen und Aufbau der Verdrahtung kann es Instabilitäten des beeloggers kommen. In ungünstigen Fällen “hängt der beelogger und sendet keine Daten. Insbesondere bei Systemen mit 3 und mehr Waagen sollten I2C-Sensoren zur Beutenüberwachung erst nach längerem Probebetrieb verwendet werden. |
Damit ein Sensor für Temperatur, Feuchte oder Luftdruck vom Sketch abgefragt wird, muss dieser aktiviert werden.
Der Sensor muss danach einer Aufgabe zugewiesen werden, damit die Messwerte übertragen werden.
Hinter dem Sensor ist die zugehörige Sensornummer (von 1-9) für die Zuweisung angegeben.
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 |
//---------------------------------------------------------------- // Sensorkonfiguration // 1. Sensor für die Abfrage durch den Sketch aktivieren // 2. aktive Sensoren für Temperatur/Feuchte in der Sensormatrix zuordnen // 3. Sensor für Temperatur Wägezelle festlegen //---------------------------------------------------------------- #define Anzahl_Sensoren_DHT 0 // Mögliche Anzahl: '0','1','2' --- Nr 1+2 ---- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_Si7021 0 // Mögliche Anzahl: '0','1' --- Nr 3 ----- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_SHT31 0 // Mögliche Anzahl: '0','1','2' --- Nr 4+5 --- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_BME280 0 // Mögliche Anzahl: '0','1','2' --- Nr 6+7 --- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_DS18B20 0 // Mögliche Anzahl: '0','1','2' --- Nr 8+9 --- (Nur Temperatur) // '3','4' --- Nr 8+9 --- (im Wert Luftfeuchte) // 2. Sensormatrix, hier kann die Zuordnung der Sensoren geändert werden // Nr 1 - 9 aus Liste oben auswählen, wenn kein Sensor gewünscht ist einfach "0" angeben // wenn kein Sensor für die Aussentemperatur gesetzt ist, wird automatisch der Temperatursensor der RTC verwendet #define Aussenwerte 0 // 0 oder Nr. 1 - 9 // Sensor Beute 1 #define Beute1 0 // 0 oder Nr. 1 - 9 // Sensor Waage / Beute 2 #define Beute2 0 // 0 oder Nr. 1 - 9 // Sensor Waage / Beute 3 #define Beute3 0 // 0 oder Nr. 1 - 9 // 3. Temperatur Wägezelle (Duo, Tripple, Quad usw. // Sensor, der die Temperatur der Wägezelle erfasst; vorbelegt der erste DS18B20 // für Systeme mit einer Waage identisch zum Sensor Aussenwerte eintragen #define Temp_Zelle 8 // 0 oder Nr. 1 - 9 |
In diesem Beispiel werden die Werte vom DHT-Sensor der Beute 1 zugeordnet, während die Aussenwerte ihre Daten vom ersten SHT31-Sensor beziehen.
– Zunächst werden die vorhandenen Sensoren für die Verwendung aktiviert.
1 2 3 4 5 6 7 8 9 10 11 |
#define Anzahl_Sensoren_DHT <strong> 1 </strong> // Mögliche Anzahl: '0','1','2' --- Nr 1+2 ---- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_Si7021 0 // Mögliche Anzahl: '0','1' --- Nr 3 ----- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_SHT31 1 // Mögliche Anzahl: '0','1','2' --- Nr 4+5 --- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_BME280 0 // Mögliche Anzahl: '0','1','2' --- Nr 6+7 --- (Temperatur + Luftfeuchte) #define Anzahl_Sensoren_DS18B20 0 // Mögliche Anzahl: '0','1','2' --- Nr 8+9 --- (Nur Temperatur) - Im Anschluss kann man die jeweilige <em>Sensornummer</em> einfach der entsprechenden Messstelle zuordnen. |
– die Sensoren werden ihrer Aufgabe zugeordnet
1 2 3 4 5 6 7 8 9 10 11 12 |
#define Aussenwerte 4 // 0 oder Nr. 1 - 9 // Sensor Beute 1 #define Beute1 1 // 0 oder Nr. 1 - 9 // Sensor Waage / Beute 2 #define Beute2 0 // 0 oder Nr. 1 - 9 // Sensor Waage / Beute 3 #define Beute3 0 // 0 oder Nr. 1 - 9 // Sensor Waage / Beute 4 #define Beute4 0 // 0 oder Nr. 1 - 9 #define Temp_Zelle 4 // 0 oder Nr. 1 - 9 |
Hinweis: Bisherige Sketche verwenden den ersten DS18B20 oder den Aussentemperaturwert für die Temperaturkompensation automatisch.
Als zusätzlicher Sensor kann ein Lichtsensor BH1750 konfiguriert werden.
1 |
#define Anzahl_Sensoren_Licht 0 // Mögliche Anzahl '0','1 |
Zusätzliche Sensorwerte: Ab Webserverskript Version M.07 ist die Übertragung weiterer Sensorwerte möglich. Neben dem Messwert Luftdruck eines BME280 ist der Messwert eines Niederschlagsmessers sowie ein Sensorwert für beliebige Erweiterungen vorgesehen.
1 2 3 4 5 6 7 8 9 |
//---------------------------------------------------------------- // erweiterte Sensoren //---------------------------------------------------------------- #define Anzahl_Sensor_Luftdruck 0 // Mögliche Anzahl: '0','1' --- Aux[1] ---- (Luftdruck von BME280) #define Hoehe_Standort 0.0 // Höhe des Standorts über NN in Meter für Korrektur des Messwertes Luftdruck #define Anzahl_Sensor_Regen 0 // Mögliche Anzahl: '0','1' --- Aux[2] ---- (Regenmesser, erfordert Umbau des beelogger und zusätzliche INO) #define Anzahl_Sensor_xyz 0 // Mögliche Anzahl: '0','1' --- Aux[3] ---- (beliebige Erweiterung) |
Des weiteren sind Anzahl der Waagen sowie die Kalibrierparameter die Wägeelemente / HX711 und für die Spannungsmessung einzutragen.
1 |
#define Anzahl_Sensoren_Gewicht 1 // Mögliche Anzahl: '0','1','2','3','4','5','6' |
1 2 3 |
// Kalibrierwerte für die Wägezellen const long Taragewicht[6] = { 10, 10, 10, 10, 10, 10 }; // Hier ist der Wert aus der Kalibrierung einzutragen const float Skalierung[6] = { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 }; // Hier ist der Wert aus der Kalibrierung einzutragen |
1 2 3 |
// Kalibrierwerte für die Spannungsmessung Akku const long Kalib_Spannung = 1000; // Hier muss der Wert aus der Kalibrierung eingetragen werden, sonst funktioniert der Programmcode nicht const long Kalib_Bitwert = 100; // Hier muss der Wert aus der Kalibrierung eingetragen werden, sonst funktioniert der Programmcode nicht |
Schwarmalarm: Parametrierung der automatischen Sendefunktion bei Gewichtsänderung für beelogger mit EE-Prom. Achtung dieser Wert ist in der beelogger_config.h enthalten.
1 2 3 4 5 |
//---------------------------------------------------------------- // Änderung Gewicht in Kilogramm bei der Daten versenden erfolgt //---------------------------------------------------------------- const float Alarm_Gewicht = 1.0; //---------------------------------------------------------------- |
Im nächsten Schritt sind die Zugangsparameter für Provider im Mobilfunk-Netz oder die WLAN-Daten anzugeben.
GSM / LTE – Zugangsinformationen:
1 2 3 4 5 6 |
// Name des Zugangspunktes des Netzwerkproviders const char APN[] PROGMEM = {"APN-Name"}; // Benutzername zum APN des Netzwerkproviders const char APN_Benutzer[] PROGMEM = {"APN-Benutzer"}; // Passwort zum APN des Netzwerkproviders const char APN_Passwort[] PROGMEM = {"APN-Passwort"}; |
Für die Anmeldung beim Mobilfunk-Provider ist APN-Benutzer und APN-Passwort bei LTE notwendig.
Wird die Abfragemöglichkeit für den Standort über die Mobilfunk-Funktionen gewünscht, muss diese im Sketch aktiviert werden.
1 |
#define StandortBestimmung 0 // soll der Standort des beeloggers vom Server aus abgerufen werden können? 0=nein 1= ja |
WLAN – Parameter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//---------------------------------------------------------------- // WLAN Parameter // WLan Daten unbedingt nach Verfügbarkeit und Stärke eintragen (stärkstes in Nr. 1) // Hinweis: ESP-Testsketch zeigt alle Feldstärken an //---------------------------------------------------------------- #define Anzahl_AP 1 // Mögliche Werte: '1','2' // Zugangspunkt Nr. 1 Daten = vorrangiger/primärer Zugangspunkt const char Access_Point1[] PROGMEM = "WLAN-Name_1"; // Passwort des Zugangspunktes Nr. 1 const char AP_Passwort_1[] PROGMEM = "WLAN-Passwort_1"; // Zugangspunkt Nr. 2 Daten const char Access_Point2[] PROGMEM = "WLAN-Name_2"; // Passwort des Zugangspunktes Nr. 2 const char AP_Passwort_2[] PROGMEM = "WLAN-Passwort_2"; |
Einstellung Webserver
Danach ist noch der Webserver und das beelogger_log.php -Skript passend zu der Anzahl der Waagen sowie das Passwort für die beelogger_log.php einzutragen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// Domainname zum Webserver mit beelogger-Skript // Länge maximal 30 Zeichen const char serverName[] PROGMEM = "community.beelogger.de"; // GET mit Verzeichnis auf dem Webserver und PHP-Skript für den jeweiligen beelogger // Mit Anzahl_Sensoren_Gewicht // 1 - Bsp: "GET /USERX/beeloggerY/beelogger_log.php?" // 2 - Bsp: "GET /USERX/DuoY/beelogger_log.php?" // 3 - Bsp: "GET /USERX/TripleY/beelogger_log.php?" // 4 - Bsp: "GET /USERX/QuadY/beelogger_log.php?" // 5 - Bsp: "GET /USERX/PentaY/beelogger_log.php?" // 6 - Bsp: "GET /USERX/HexaY/beelogger_log.php?" const char beelogger_pfad[] PROGMEM = {"GET /USERX/SystemY/beelogger_log.php?"}; // "USERX" und "SystemY" ersetzen // Passwort vom Webserver-Skript const char Passwort[] PROGMEM = {"Log"}; // hier dein beelogger-log - Passwort |
Der Anschluss der Waagen mit den Wägezellen an die HX711 ist vorgegeben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Anschluss / Konfiguration Wägezellen------------------------------------------------------- // mit Anzahl_Sensoren_Gewicht 1 // HX711(1) Kanal A = Wägeelement(e) Waage1; Serverskript: beeloggerY // mit Anzahl_Sensoren_Gewicht 2 zusätzlich: // HX711(1) Kanal B = Wägeelement(e) Waage2; Serverskript: DuoY // mit Anzahl_Sensoren_Gewicht 3 zusätzlich: // HX711(2) Kanal A = Wägeelement(e) Waage3; Serverskript: TripleY // mit Anzahl_Sensoren_Gewicht 4 zusätzlich: // HX711(2) Kanal B = Wägeelement(e) Waage4; Serverskript: QuadY // mit Anzahl_Sensoren_Gewicht 5 zusätzlich: // HX711(3) Kanal A = Wägeelement(e) Waage5; Serverskript: PentaY // mit Anzahl_Sensoren_Gewicht 6 zusätzlich: // HX711(3) Kanal B = Wägeelement(e) Waage6; Serverskript: HexaY |
‘beelogger-GSM’ unterstützt alle Sensoren. Es können Systeme mit bis zu sechs Waagen an einem beelogger aufgebaut werden. Die Messwerte der Sensoren werden vom beelogger mit einem GSM-Modul (SIM800L) über das Mobilfunknetz direkt an einen Webserver gesendet. Beim beelogger-Solar ist hierfür die Verwendung des GSM-Shields mit spezieller Schaltung zur Trennung des SIM800L-Moduls von der Stromversorgung notwendig.
Bei GSM wird die Verwendung des EE-Prom empfohlen; weitere Informationen zu EE-Prom.
Version | Release Notes |
GSM_MULTI_210108 |
– neue Standortfunktion benötigt SIM800L Firmware 1418B05SIM800L24 – Checksumme EEProm-Daten |
GSM_MULTI_210128 |
– ServiceSchalter Update, für alle die vergessen den Schalter zurück zu setzen |
GSM_MULTI_210217 |
– Berechnung Nutzung für 32kB EE-Prom angepasst GSM MULTI Version 17.02.2021 Hinweis: Benötigt aktuelle beelogger-Arduino-Libs |
Achtung Softwareupdater: Die Multishields bis Version 2.5 und Lochrasteraufbauten nach alter Anleitung weisen eine andere Pinzuordnung für den SIM800L auf. Bitte Hardware anpassen. TX = Pin 9 unverändert; RX = Pin 8 (alt Pin 10). Alternativ beelogger-config.h passend konfigurieren. |
‘beelogger-LTE’ unterstützt alle Sensoren. Es können Systeme mit bis zu sechs Waagen an einem beelogger aufgebaut werden. Die Messwerte der Sensoren werden vom beelogger mit einem LTE-Modul (SIM7600E) über das Mobilfunknetz direkt an einen Webserver gesendet.
Bei LTE wird die Verwendung des EE-Prom empfohlen; weitere Informationen zu EE-Prom.
Version | Release Notes |
LTE_MULTI_200808 |
– erster LTE-Multi-Sketch SIM7600E mit SSL Übertragung |
LTE_MULTI_210118 |
– Checksumme EEProm-Daten |
LTE_MULTI_210128 |
– ServiceSchalter Update, für die, die den Schalter gesetzt lassen |
LTE_MULTI_210217 |
– Berechnung Nutzung 32KB EE-Prom angepasst Hinweis: Benötigt aktuelle beelogger-Arduino-Libs |
beelogger-WLAN
‘beelogger-WLAN’ unterstützt alle Sensoren. Es können Systeme mit bis zu sechs Waagen an einem beelogger aufgebaut werden. Die Messwerte der Sensoren werden vom beelogger per WLAN-Modul über einen Router an einen Webserver gesendet.
Zur Überbrückung von Ausfallzeiten der WLAN-Verbindung wird die Verwendung des EE-Prom empfohlen; weitere Informationen zu EE-Prom.
Version | Release Notes |
WLAN_MULTI_210108 |
– Checksumme EEProm-Daten |
WLAN_MULTI_210118 |
– Abfrage WLAN Signalpegel überarbeitet |
WLAN_MULTI_210128 |
– Service Schalter Update, für die, die den Schalter gesetzt lassen |
WLAN_MULTI_210217 |
– Berechnung Nutzung 32KB EE-Prom angepasst Hinweis: Benötigt aktuelle beelogger-Arduino-Libs |