Im Folgenden möchte ich beschreiben, aus welchen Hardware - und Softwarekomponenten das Projekt besteht und
begründen, warum ich es so und nicht anders aufgebaut habe. Dabei bin ich bemüht, die Technik möglichst einfach
zu erklären. Auch wenn die Imkerei kein Nachwuchsproblem hat, ist meine Erfahrung, dass der Großteil der
Imker im gesetzten Alter ist. Nur wenige arbeiten mit Rechnern, noch weniger befassen sich mit elektronischen
Bauteilen oder programmieren selbst.
Die mir bekannten Systeme decken i.d.R. nur einen isolierten Teilaspekt ab, der ein differenziertes Gesamtbild
unmöglich macht.
Andere, die etwas mehr versuchen, machen oft einen groben wirtschaftlichen Fehler : Sie sind
nicht skalierbar und bleiben damit ein Hobbyobjekt.
Ein Beispiel dafür ist die bereits erwähnte Lösung einer nordhessischen Universität, die im Wesentlichen mit
den Komponenten arbeitet, wie ich sie nachher beschreibe. Die Kosten für die akustische Überwachung eines Volkes
nebst einer kleinen Solarstromversorgung belaufen sich auf ca. € 200.-
Möchte man mehr Völker überwachen, so steigen die Kosten linear mit der Anzahl der Völker : Bei 10 Völkern also € 2000.- !
Sinnvollerweise muss ein solches System aber so konzipiert sein, dass möglichst viele teure Komponenten nur einmal benötigt
werden ( z.B. Rechner und Spannungsversorgung ) und es durch Sensoren ( z.B. Temperatursensoren, Mikrofone und Waagen )
einfach auf zusätzliche Völker erweiterbar ist. Lässt man das bei der Projektierung außer Acht, weil man über
ausreichende finanzielle Mittel verfügt und sich über wirtschaftliche Dinge keine Gedanken zu machen braucht,
kommt dabei eben ein teures Spielzeug heraus, das sich mancher leisten mag, aber auf keinen Fall für alle seine Völker.
Jetzt zur verwendeten Hardware :
Herz und Hirn des Systems ist ein Kleincomputer Raspberry Pi 3 im Scheckkartenformat, das 5 - V - Netzteil habe ich
mir geschenkt. Das Betriebssystem nebst Daten findet Platz auf der abgebildeten Micro - SD - Karte. Von Haus aus hat
der Pi schon 4 USB - Schnittstellen, kann aber natürlich mit Hilfe von USB - Switches erweitert werden.
Netzwerkanbindung per Kabel oder WLAN ( er kann sogar ein eigenes WLAN - Netzwerk zur Verfügung stellen ).
Von WLAN mache ich aber keinen Gebrauch, weil ich den Elektrosmog im Bienenhaus vermeiden möchte. Auch im Haus ist
bei mir WLAN generell abgeschaltet, es sei denn, ich habe Besuch.
Außerdem ein 1 - Wire - Temperatursensor von Maxim / Dallas ( nicht ganz richtig, da es sich um einen DS 2405 handelt,
aber die Bauteile gleichen sich wie ein Ei dem Anderen und es geht mir an dieser Stelle um die Abmaße ).
Die Waage kann über USB angeschlossen werden, weiterführende Details später. Mit der Messgenauigkeit glaube ich,
leben zu können.
Im folgenden Bild die "Akustik - Abteilung". Zu sehen ist eine Logitech USB - Sound - "Karte" ( in der Vergangenheit
waren das tatsächlich Steckkarten ) und ein Mikrofon mit einer möglichst kurzen Peitsche, um Verluste auf der
analogen Seite klein zu halten. Die Länge der anschließenden USB - Verbindung wird nur durch die USB - Spezifikation
begrenzt und hat keinen Einfluss auf die Qualität von Tonaufnahmen mehr. Solche Mikrofon / Soundkarten - Kombinationen
gibt es übrigens aus dem obigen Grund auch vollintegriert. Ein Vorteil der getrennten Lösung ist aber, dass das Mikrofon
herausgezogen und wieder gesteckt werden kann, ohne dass der Rechner davon etwas mitbekommt. Trennt man jedoch die
USB - Verbindung, vergibt der Rechner beim erneuten Stecken möglicherweise eine neue USB - Adresse und kann
anschließend das Mikrofon nicht mehr unter der alten, bekannten ansprechen.
Kommen wir nun zur "weichen Ware" :
In einem kleinen Projekt vorher hatte ich schon einmal mit einem Raspberry Pi 3 gearbeitet und war bei der Wahl des
Betriebssystems bei Windows IoT gelandet, weil ich meine achso geliebte Windowsumgebung nicht aufgeben wollte. Dabei
musste ich aber schon einen Kompromiss machen : Ich konnte nicht mehr in C++ programmieren, sondern es musste
jetzt C# sein. Danach kamen nur noch Hindernisse. Dieses Pseudo - Betriebssystem ist in meinen Augen total vernagelt
und gängelt den Programmierer. Außerdem fehlt noch weitestgehend die Unterstützung, z.B. war es so gut wie unmöglich,
die oben gezeigten Temperatursensoren einzubinden - selbst der Hersteller bot auf Anfrage nichts an. Ich habe dieses
Projekt zwar zu Ende gebracht, mir aber geschworen, nichts mehr unter IoT zu versuchen.
Für dieses Projekt blieb also eigentlich nur Linux ...
Schnell war klar, dass es eine Debian - Distribution für den Raspberry gab : Jessie, der Nachfolger heißt Stretch, dessen Nachfolger Buster
Kostenlos heruntergeladen, ruckzuck auf die SD - Karte geschrieben und ich hatte einen gebrauchsfertigen Rechner !
Wenn ich "gebrauchsfertiger Rechner" sage, meine ich, dass ich sofort eine Internetverbindung hatte, wahlweise über
WLAN oder Kabel, ein komplettes Officepaket und viele andere Dinge mehr. Die Benutzeroberfläche, bisher unter Linux
eher gewöhnungsbedürftig, war mehr als nur akzeptabel. Weitere Softwarepakete konnten unproblematisch aus dem Netz
installiert werden. Von einigen Dingen, die ich nachinstallieren wollte, musste ich feststellen, dass sie
bereits Bestandteil der Installation waren und nur noch aktiviert werden mussten ! Unter anderem eine komplette
Unterstützung des 1 - Wire -Bus ( Temperatursensoren, s.o. ). Dazu ein bereits vorinstallierter VNC - Server, der
es ermöglicht, auf den Raspberry per Fernwartung zuzugreifen. Eine vollwertige Datenbank - MySQL, der Nachfolger heißt
MariaDB - war schnell installiert, ebenso wie der Apache - Web - Server ( diese Seite wird von ihm zur Verfügung gestellt ).
Ein Traum, es gab kein Entkommen mehr ! Wilhelm Tore und Winzigweich Fenster waren Schnee von gestern !
Jetzt fehlte nur noch eine gescheite Programmierumgebung ( ich hatte es mir ja schon lange im Microsoft Visual Studio
bequem gemacht und da sollte ich jetzt raus ?! ). Ich fand Code::Blocks und war begeistert ! Eine Entwicklungsumgebung
für mein geliebtes C++, die es sogar erlaubte, plattformunabhängig zu programmieren, also die erstellten Programme
auch für andere Betriebssysteme zu übersetzen und auf ihnen laufen zu lassen. Woran ich mich bis heute nicht komplett
gewöhnt habe, ist die Erstellung von Benutzeroberflächen. Diese ist bedingt durch die erwähnte Plattformunabhängigkeit
etwas komplizierter. Die gleiche Erfahrung habe ich aber auch schon unter Qt mit dem Qt Designer gemacht, also alles
nur eine Frage der Übung.
Bevor wir weiter machen, fassen wir mal kurz zusammen, was benötigt wird :
Kleinrechner mit Linux - Betriebssystem und einer gescheiten Programmierumgebung
Web - Browser ( Chromium ), mit dem wir surfen können
Web - Server ( Apache ), der uns diese Seiten zur Verfügung stellt, die aber noch auszuschmücken sind
Vollwertige Datenbank ( MySQL bzw. MariaDB )
Zugriff auf diesen Rechner per Fernwartung um dort z.B. zu programmieren
Unterstützung für den 1- Wire - Bus, d.h. eine Liste angeschlossener Temperatursensoren wird automatisch
ohne unser Zutun in einer Datei abgelegt. Für jeden dieser Sensoren existiert dann eine eigene Datei,
in der u.a. die aktuelle Temperatur steht.
Waagen mit einer USB - Schnittstelle. Dahinter verbergen sich eigentlich zwei Treiber, einer auf der Waage und
einer auf dem Rechner, die uns eine serielle RS232 - Schnittstelle vorgaukeln. Diese auszulesen und zu beschreiben
war in den achtziger und neunzigern täglich Brot. Wir sind zuhause !
Eine Wetterstation, die ziemlich blauäugig ausgesucht und gekauft wurde, ohne sich zu vergewissern, dass man
darauf auch zugreifen kann. Tatsächlich gibt es aber eine ( wie alles andere ) kostenlose Software ( weewx ), die nur
heruntergeladen und konfiguriert werden muss. Sie richtet sich automatisch in der Datenbank ein ( erzeugt alle
benötigten Tabellen automatisch ) und beginnt sofort, alle verfügbaren Werte der Wetterstation in regelmäßigen
Abständen in die Datenbank einzutragen, teilweise bereits aufbereitet. Herz, was willst Du mehr !
Mikrofone, mit denen wir relativ einfach Mitschnitte von vorgegebener Dauer erzeugen und als wav - Dateien
abspeichern können. Auf diese können wir eine Fourier - Transformation anwenden und interessante
Frequenzbänder und ihre Veränderung im Zeitverlauf auswerten.
Dreidimensionale Diagramme z.B. für die Darstellung von Frequenzbändern im Zeitverlauf.
Liniendiagramme z.B. für Temperatur - und Gewichtsverläufe
Rundinstrumente z.B. für Wetterdaten
Ein Programm ( Verwalter ), mit dem wir Temperatursensoren, Waagen und Mikrofone erkennen und diese
Bienenvölkern zuordnen können.
Ein Programm, das regelmäßig Werte von Waagen und Temperatursensoren abspeichert und wav Dateien für die
Akustikauswertung erzeugt ( Sammler )
Ein Programm ( Bauer ), das vorhandene Daten so aufbereitet, dass sie u.a. graphisch darstellbar sind.
Web - Server ( Apache ), der uns diese Seiten zur Verfügung stellt.
Das folgende Beispiel visualisiert eine Summe von Sinus - und Cosinusfunktionen und kann mit der Maus fast beliebig
gedreht und mit dem Mausrad in der Größe verändert werden
Graph 3D demo
Liniendiagramme z.B. für Temperatur - und Gewichtsverläufe
Im folgenden Beispiel kann mit der Maus ein Teilbereich markiert und so in das Diagramm hinein gezoomt werden. Ein
Doppelklick auf das Diagramm stellt den Ursprungszustand wieder her.
Geniale, fast beliebig konfigurierbare analoge Anzeigen