In den Multi-Sketchen sind zahlreiche Sensortypen verfügbar. Diese können komfortabel konfiguriert und zugeordnet werden.
Die Konfiguration ist in einer systemabhängigen „Config_Multi.h“ und einer „Config_WLAN / GSM /LTE.h“ enthalten.
Das beelogger-Projekt benötigt diverse Bibliotheken, die als Zip-Datei zu Verfügung stehen.
Hinweise zur Sensorkonfiguration Multi-Sketche in der
Config_Multi.h:
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 2 und mehr Waagen sollten I2C-Sensoren zur Beutenüberwachung erst nach längerem Probebetrieb verwendet werden. DHT-Sensoren haben bei 3,3V Versorgung, wie beim beelogger-SMD, eine maximale Leitungslänge von 100cm. |
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 Zuordnung angegeben.
Überzählig aktivierte Senoren werden vom System nicht an den Server übertragen.
//---------------------------------------------------------------- // 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 - 11; bei Single: 0 oder Nr. 1 - 8; bei DUO: 0 oder Nr. 1 - 9 // Sensor Beute 1 #define Beute1 0 // 0 oder Nr. 1 - 11; bei Single: 0 oder Nr. 1 - 8; bei DUO: 0 oder Nr. 1 - 9 // Sensor Beute 2 #define Beute2 0 // 0 oder Nr. 1 - 11; bei DUO: 0 oder Nr. 1 - 9 // mit drei Waagen #define Beute3 0 // 0 oder Nr. 1 - 11 // mit vier Waagen #define Beute4 0 // 0 oder Nr. 1 - 11 // Temperatur Wägezelle (nur Duo, Triple, 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 // Nr. 0 - 11
In diesem Beispiel werden die Werte vom ersten DHT-Sensor (=Nr.1) der Beute 1 zugeordnet, während die Aussenwerte ihre Daten vom ersten SHT31-Sensor (=Nr.4) beziehen.
– Zunächst werden die vorhandenen Sensoren für die Verwendung aktiviert.
#define Anzahl_Sensoren_DHT 1 // 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 Sensornummer einfach der entsprechenden Messstelle zuordnen.
– die Sensoren werden ihrer Aufgabe zugeordnet
#define Aussenwerte 4 // 0 oder Nr. 1 - 9 #define Beute1 1 // 0 oder Nr. 1 - 9 // Sensor Beute 1 #define Beute2 0 // 0 oder Nr. 1 - 9 // Sensor Beute 2 #define Beute3 0 // 0 oder Nr. 1 - 9 // Sensor Beute 3 #define Beute4 0 // 0 oder Nr. 1 - 9 // Sensor Beute 4 #define Temp_Zelle 4 // 0 oder Nr. 1 - 9
Hinweis: Sketche verwenden den ersten DS18B20 oder den Aussentemperaturwert für die Temperaturkompensation automatisch.
Als zusätzlicher Sensor kann ein Lichtsensor BH1750 konfiguriert werden.
#define Anzahl_Sensoren_Licht 0 // Mögliche Anzahl '0','1
Die Übertragung zusätzlicher Sensorwerte ist möglich. Neben dem Messwert Luftdruck eines BME280 ist der Messwert eines Niederschlagsmessers vorgesehen.
Luftdruckmesswerte zum Vergleich finden sind in den aktuellen Beobachtungswerten des Deutschen Wetterdienstes.
//---------------------------------------------------------------- // erweiterte Sensoren //---------------------------------------------------------------- #define Anzahl_Sensor_Regen 0 // Mögliche Anzahl: '0','1' --- Aux[2] ---- (Regenmesser, erfordert Umbau des beelogger und zusätzliche INO)
Des weiteren sind Anzahl der Waagen sowie die Kalibrierparameter die Waagen / HX711 zu konfigurieren.
Die „Anzahl_Sensoren_Gewicht“ muss zum Server/Serverskript passen, auch wenn eine Waage nicht oder später angeschlossen wird, z.B. 2 = Duo.
Sind keine Kalibrierdaten (Taragewicht 10) eingetragen, wird die Waage vom System ignoriert; d.h. der Sketch läuft auch ohne Waage.
#define Anzahl_Sensoren_Gewicht 1 // Mögliche Anzahl: '1','2','3','4' // Anschluss / Konfiguration Wägezellen------------------------------------------------------- // mit Anzahl_Sensoren_Gewicht 1 // HX711(1) Kanal A = Waage1; Serverskript: beeloggerY // mit Anzahl_Sensoren_Gewicht 2 zusätzlich: // HX711(1) Kanal B = Waage2; Serverskript: DuoY // mit Anzahl_Sensoren_Gewicht 3 zusätzlich: // HX711(2) Kanal A = Waage3; Serverskript: TripleY // mit Anzahl_Sensoren_Gewicht 4 zusätzlich: // HX711(2) Kanal B = Waage4; Serverskript: QuadY
„Y“ ist die Nummer der Konfiguration/Grafik auf dem Serveraccount z.B. beelogger1 , Duo2,
siehe auch weiter unten Einstellung Webserver für den Sketch
// Kalibrierwerte für die Wägezellen const long Taragewicht[4] = { 10, 10, 10, 10 }; // Hier ist der Wert aus der Kalibrierung einzutragen const float Skalierung[4] = { 1.0, 1.0, 1.0, 1.0 }; // Hier ist der Wert aus der Kalibrierung einzutragen
Für die Spannungsmessung und Akkuüberwachung sind die Kalibrierwerte einzutragen und die Grenzwerte des Akkus aktivieren.
// 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
Das Aktivieren der Akkuwerte erfolgt durch Zufügen bzw. Entfernen der beiden „//“ vor den entsprechenden Zeilen:
Hier konfiguriert für einen 6V Blei-Akku.
//Konfiguration Spannungsversorgung // 6V PB-Akku beelogger-Universal const float VAlternativ = 5.9; // Minimale Spannung ab der automatisch das alternative Intervall aktiviert wird const float VMinimum = 5.7; // Minimale Spannung ab der ab der keine Messungen und auch kein Versand von Daten erfolgt // 2x LiIon-Akku beelogger-Universal //const float VAlternativ = 7.6; // Minimale Spannung ab der automatisch das alternative Intervall aktiviert wird //const float VMinimum = 7.5; // Minimale Spannung ab der keine Messungen und auch kein Versand von Daten erfolgt // 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 auch kein Versand von Daten erfolgt
// Li-Ion Akku beelogger-SMD / beelogger - STM32 / Universal-2.x //const float VAlternativ = 3.8; // Minimale Spannung ab der automatisch das alternative Intervall aktiviert wird //const float VMinimum = 3.75; // Minimale Spannung ab der ab der keine Messungen und auch kein Versand von Daten erfolgt
EE-Prom Größe:
Die vom Sketch verwendete Größe des EE-Prom ist auf 4kByte voreingestellt
und kann auf das aktuelle System durch Zufügen bzw. Entfernen der beiden „//“ vor den entsprechenden Zeilen angepasst werden:
#define EEProm_Size 4096 // 4kByte EE-Prom 32kbit (z.B. DS3231 Modul) //#define EEProm_Size 8192 // 8kByte EE-Prom 64kbit //#define EEProm_Size 32768 // 32kByte EE-Prom 256kbit
Hinweise zur Konfiguration LTE/WLAN/GSM in der
– Config_GSM.h oder Config_LTE.h
Im nächsten Schritt sind die Zugangsparameter für Provider im Mobilfunk-Netz oder die WLAN-Daten anzugeben.
GSM / LTE – Providerinformationen:
// Name des Zugangspunktes des Netzwerkproviders const char APN[] PROGMEM = {"APN-Name"};
Bei LTE kann für die Anmeldung beim Mobilfunk-Provider APN-Benutzer und APN-Passwort notwendig sein.
// Benutzername zum APN des Netzwerkproviders const char APN_Benutzer[] PROGMEM = {"APN-Benutzer"}; // Passwort zum APN des Netzwerkproviders const char APN_Passwort[] PROGMEM = {"APN-Passwort"};
– Config_WLAN.h
WLAN-Parameter:
Wir empfehlen für den primären WLAN-Zugang einen Gastzugang des Routers zu verwenden.
//---------------------------------------------------------------- // 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";
Konfiguration Zugang zum Webserver in der
Config_LTE.h / Config_WLAN.h / Config_GSM.h
Der Webserver und das beelogger_log.php -Skript mit Accountname und ‚beelogger-Nummer‘ snd passend zu der Anzahl der Waagen, siehe „Anzahl_Sensoren_Gewicht“, sowie das Passwort für die beelogger_log.php einzutragen.
// 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?" const char beelogger_pfad[] PROGMEM = {"GET /USERX/SystemY/beelogger_log.php?"}; // "USERX" und "SystemY" ersetzen
Beispiel: const char beelogger_pfad[] PROGMEM = {„GET /Accountname/beelogger1/beelogger_log.php?“};
„Y“ ist die Nummer der Konfiguration/Grafik auf dem Serveraccount z.B. beelogger1 , Duo2, Quad1
der gewählte Typ -beelogger/Duo/Quad- muss zu Anzahl_Sensoren_Gewicht passen
// Passwort vom Webserver-Skript const char Passwort[] PROGMEM = {"Log"}; // hier dein beelogger-log - Passwort
Im Sketch für den Webserver einzutragen ist das beeloggerLogPasswort:
Hinweise zur Konfiguration Multi-Sketche in der
beelogger_config.h
Messintervall mit aktivem Arbeitsschalter:
Messzyklus wenn Schalter „Arbeiten am Bienenvolk“ dauernd aktiv; Zeit in Minuten, konfigurierbar in 5 Minuten Schritte
#define USER_INT_TM 30
Bei Duo-, Triple- oder Quad-Systemen sollte der Arbeitsweise angepasst, die Zeit erhöht werden.
Platinenversion 1.x oder 2.x:
Der Sketch wird über eine Einstellung in der beelogger_config.h für die Platinenversion des beelogger konfiguriert:
beelogger Universal Version 1.xy, beelogger_SMD, beelogger_Easy_Plug: die Zeile muss wie folgt sein:
//#define UNI_2X
Platinen Universal Versionen 2.xy: Die beiden Schrägstriche sind zu entfernen.
#define UNI_2X
Einige Einstellungen der Sketchkonfiguration werden über den Arduino Typ Nano, ProMini 3.3V/8MHz, 5V/16MHz gesteuert.
Hinweis: Die Verwendung eines ProMini 3.3V/8MHz auf Universal Platinen kann zu Fehlern im Sketchablauf führen.
Weitere Sketcheinstellungen:
Die Einstellungen zur
- Debug-Option,
- Schwarmalarm,
- Pinbelegung der Sensoren DHT22 / DS18B20
oder - Detailkonfiguration der Sensoren (I2C-Adressen)
- Die 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.
#define myDebug 0 // 0 / 1 Debug via Serial Monitor
Mit aktivem Debug wird der Speicherplatzbedarf des Sketch deutlich erhöht. Sollte der Sketch nicht in den Speicher passen testweise Sensoren aus der Konfiguration nehmen, so dass es passt und der Ablauf kontrolliert werden kann. Für den Mess-/Sendebetrieb alle Sensoren wie vorgesehen konfigurieren, testen und den Sketch mit Debug-Flag auf „0“ erneut laden.
Schwarmalarm: Parametrierung der automatischen Sendefunktion bei Gewichtsänderung.
Achtung: dieser Wert ist in der beelogger_config.h enthalten.
//---------------------------------------------------------------- // Änderung Gewicht in Kilogramm bei der Daten versenden erfolgt //---------------------------------------------------------------- const float Alarm_Gewicht = 1.0; #define SCHWARM_ALARM 1 // 1= aktiviere Senden wenn Schwarmalarm erkannt (0 oder 1) //----------------------------------------------------------------