Zur Kommunikation mit dem SIM7000E Modul wurde als Grundlage die Library von DFRobots verwendet. Darin wurden aber verschiedene Optimierungen und Anpassungen vorgenommen. Ebenfalls modifiziert wurde das Logging. Die komplette Software benötigt 21204 Byte ( 69%) des Programmspeichers und 1256 Byte ( 61%) des Arbeitspeichers.

Folgende Librarys werden verwendet

Sensor Messung

Das messen der Temperaturen ist relativ einfach mittels der bestehenden Library. Alle Temperatursensoren hängen parallel alle an einer Leitung am OneWire Bus.

Beim Messen des Schallpegels im Bienenvolk werden 5000 Messungen gemacht und der Maximalwert und der Mittelwert ermittelt. Die Lautstärken Indikatoren werden folgendermassen berechnet.
Pegel = (Maximum – Mittelwert) – SilenceKorrektur

Beim Messen der Waagen werden 20 Messungen gemacht und der Mittelwert daraus berechnet. Dabei wird die Methode aus der HX711 Library verwendet. (averageValue(MEAS_COUNT);) Das Gewicht wird als Long Wert vom HX711 geliefert und wird mit Offset und Steigung korrigiert und in Kilogramm umgerechnet. Die Temperaturkompensation erfolgt auf der Serverseite beim Empfangen der Messwerte.

Das übermitteln der Daten erfolgt in eine eigene mySQL Datenbank über eine PHP Routine mittels HTTP Post. Zusammen mit der Kunden ID und dem Passwort sind das ca. 70 – 200 Byte an Daten die übermittelt werden.
Folgende Daten werden momentan gemessen und übermittelt.

  • Aussentemperatur
  • für drei Bienenvölker die Temperatur und die Lautstärke und das Gewicht
  • Battery Level in Millivolt der vom SIM7000 Modul gemessen wird
  • die GPS Koordinaten des SIM7000 Moduls

Für die gesamte Messung der Sensoren und dem Transfer in die Datenbank benötigt die Software 80 Sekunden Ohne GPS und max.120 Sekunden mit GPS Messung.

SIM7000E Modul

Das SIM7000E Module wird im Prefered Mode LTE Cat-M betrieben.

Untenstehend das Log Protokoll des Prozessors. Darin sieht man auch wie man mit den AT Commands mit dem SIM7000 kommunizieren muss. Log Protokoll.pdf

Die GPS Koordinaten welche vom SIM7000 Modul ermittelt werden sind in diesem Format

Latitude : 46.8288775
Longitude : 9.3546341

Diese beiden Werte können dann in dieser Form auf Google Maps angezeigt werden.

http://www.google.com/maps/place/46.8288775,9.3546341/@46.8288775,9.3546341,17z/data=!3m1!1e3

Alarmierung

Im Störungsfall kann die Box SMS Alarmmeldungen versenden. Der Schwarmerkennungsalgorithmus wird serverseitig programmiert. Der Server kann dann ein Schwarmalarm an die Box senden als Antwort auf die neusten Daten und die Box versendet dann das SMS.

Box Commands

Nach dem Senden der Messwerte von der Box zum Server liefert der Server eine Antwort zurück. Diese Antwort ist nicht nur OK mit HTTP Statuscode 200, sondern kann auch noch mehrere Box Kommandos beinhalten.
Siehe Beschreibung der Datenbank

Momentan verfügbare BOX_Commands
(Fett = Default nach Arduino Startup)

  • GPS_On : Aktiviert dauerhaft die Messung der GPS Koordinaten
  • GPS_Off : Dektiviert dauerhaft die Messung der GPS Koordinaten )
  • SMS:Text; : Versendet den Text als SMS ( Textabschluss mit ; )
  • SetTara : setzt die Tara der Gewichtsmessung neu (Serverseitig in der Datenbank)
  • DeleteTara : Löscht die Tara (Serverseitig in der Datenbank)
  • FastMeas : Erhöht den Messzyklus ca. alle 3 Min
  • SlowMeas : Setzt den Messintervall auf 1 Stunde

Um diese Befehle abzusetzen kann man auch im Feld draussen beim Bienenstand eine Android App verwendet werden. Wie einfach es ist Android Apps zu erstellen wird hier erklärt.