Achtung: Der Aufbau von beeloggern mit GSM-Modul wird nicht mehr empfohlen.
Diverse beelogger-Freunde berichteten uns, dass sich bei einigen Providern Veränderungen in der Versorgung mit Datendiensten (Internet) im 2G/GSM-Netz ergeben haben.
Die normalen Telefoniedienste / SMS im 2G-Netz stehen nach unserem Kenntnisstand weiterhin zur Verfügung.
Mit dem Test-Programmcode stellt der beelogger über das SIM800-Modul eine Daten-Verbindung ins Internet her und überträgt Test-Messwerte an den Webserver. Nach mehreren Übertragungen der Messwerte ist der Test beendet und das Modul schaltet sich ab. Sollte es zu einem Übertragungsfehler kommen, wird der Upload wiederholt, bis sich das Modul ebenfalls abschaltet und der Test beendet wird.
Die Voraussetzung hierfür ist ein über das Internet erreichbarer Webserver mit installierten Webserver-Skripten. Zudem wird eine aktivierte SIM-Karte ohne Pin-Code benötigt. Sollte die SIM-Karte einen Pin-Code besitzten, muss dieser über ein Handy zuvor gelöscht werden. Auch muss der Akku vollständig geladen sein.
Die SIM-Karte richtig herum in das Modul schieben. Hierzu muss die SIM-Karte mit der Kontaktseite in Richtung Platine und die abgeschrägte Ecke nach außen zeigen. Die Karte muss soweit eingeschoben werden, bis sie einrastet.
Achtung: Modul nie ohne Antenne betreiben. Dies kann zur Beschädigung führen.
Die Kommunikation des beelogger mit dem SIM800L-Modul erfolgt über eine serielle Schnittstelle mittels AT-Befehlen. Da die vom ATmega zur Verfügung gestellte serielle Schnittstelle über D0 und D1 bereits für die Ausgabe des seriellen Monitors benötigt wird, ist eine zusätzliche virtuelle serielle Schnittstelle über die Standard-Library ‚SoftwareSerial‘ notwendig.
Die Konfiguration des Programmcodes ist sehr einfach und in wenigen Schritten erledigt:
Über die Variable ‚APN‘ (Access Point Name) wird der Name des Zugangspunktes des Netzwerkproviders eingetragen. Sollte diese Information nicht zusammen mit der SIM-Karte zur Verfügung gestellt werden, kann dieser beispielsweise über die folgende Liste nachgeschlagen werden: http://www.lte-anbieter.info/ratgeber/apn/uebersicht.php. Bei einigen Providern ist zusätzlich ein Benutzername und ein Passwort für den Zugangspunkt notwendig. Diese sind ebenfalls über die Liste ersichtlich. Sollten keine weiteren Zugangsdaten benötigt werden, sind die entsprechenden Variablen nicht zu belegen.
// Name des Zugangspunktes des Netzwerkproviders const char APN[] PROGMEM = {"meinAPN"};
Eine einfache Konfiguration wird durch die Nutzung unseres Webservers ermöglicht. Nach dem Anlegen eines kostenlosen und annonymen Accounts können die notwendigen Konfigurationen einfach kopiert und in den Test-Programmcode kopiert werden. Der Test-Programmcode mit GSM verwendet Daten für ein Einzel-Waage-System. DUO, Triple, QUAD werden nicht unterstützt.
// Domainname zum Webserver mit beelogger-Skript const char serverName[] PROGMEM = {"meineDomain.de"}; // Verzeichnis in dem die Webserver-Skripte für den jeweiligen beelogger liegen const char beelogger_pfad[] PROGMEM = {"GET /USERX/beeloggerY/beelogger_log.php?"}; // Passwort vom Webserver-Skript const char Passwort[] PROGMEM = {"!meinPasswort!"}; // default "Log"
Zur korrekten Anzeige der Akkuspannung mit dem ATMega können die Kalibrierwerte eingetragen werden.
int Kalib_Spannung = 1000; // Hier muss der Wert aus der Kalibrierung eingetragen werden int Kalib_Bitwert = 100; // Hier muss der Wert aus der Kalibrierung eingetragen werden
Wenn das SIM800L-Modul mit Strom versorgt wird, bllinkt die rote LED langsam. Sobald sich das Modul mit einem Netzwerk verbunden hat, blinkt die rote LED schnell.
Ausgabe des seriellen Monitors (9600 baud):
GSM Test 21.03.2023:
Teste DS3231 vorhanden? DS3231 gefunden Datum und Uhrzeit aktuell im Uhrbaustein: 20.05.2022 08:54:16 Uhrbaustein initialisiert. Temperatur RTC: 24.75°C Initialisiere Modul ... RX= 8 ADC-Bitwert= 1508 Batterie [V]: 4.10 Bitte Kalibrierwerte Spannungsmessung eintragen! ---- LED auf SIM800L blinkt? ---- Weiter mit w ... SIM800 Init i.O. SIM800L Modul Informationen: SIMCOM_Ltd OK SIMCOM_SIM800L OK Revision:1418B05SIM800L24 OK SIM800L Versorgung in: %, milliVolt 94,4153 OK Verbinde zum Mobilfunknetz ... einen Moment bitte... Mobilfunkanbieter: E-Plus Signalstaerke: -78 dB Verbindung zu internet.eplus.de hergestellt. Signalstaerke: -76 dB Initialisiere Internetverbindung ... community.beelogger.de GET /deinAccount/beelogger1/beelogger_log.php? TCP! Daten senden Paket: 1 von 2 HTTP OK Uhrzeit in DS3231 gesetzt. Datum und Uhrzeit aktuell im Uhrbaustein: 20.05.2022 08:55:16 5Quittung: 1653036916T5B Test erfolgreich! Signalstaerke: -78 dB TCP! Daten senden Paket: 2 von 2 HTTP OK ... Test erfolgreich! wiederhole Senden in 4 Minuten ... Modul wird abgeschaltet Test beendet
Hinweise:
- Die Antwort vom Server „10ok *“ ist abhängig von den Einstellungen in der Webserver-Konfiguration.
- Bei zu geringer Spannung am SIM800 Modul wird eine Information dazu ausgegeben.
- Der Sketch wird bei zu geringem Empfangspegel beendet.
- Bei Verbindungsfehler:
- den Akku / Schaltregler auf ausreichende Spannung kontrollieren
- SIM-Karte auf korrekten Einbau prüfen
- SIM-Karte ohne PIN!
- Kondensator 1000uF auf beelogger-Shield einbauen/nachrüsten
Libraries
Um die Kommunikation mit dem SIM800L über AT-Befehle zu vereinfachen, wird auf eine Library zurück gegriffen. Hierfür steht eine von uns speziell für den beelogger GSM modifizierte Library im beelogger-Library-Paket zum Download bereit. Als Basis hierfür diente die Library von Stanley Huang – http://arduinodev.com.
Programmcode Testprogramm und Libraries
Test Sketch SIM800L: |
ATmega328 (Universal etc.) im Sketch-Paket Test-/Kalibrierung STM32F… im Sketch-Paket |
Bibliothek zu SIM800L | im beelogger-Library-Paket |
Achtung: Die Multishields bis Version 2.5 und Lochrasteraufbauten nach alter Anleitung weisen eine andere Pinbelegung auf. |
Es wird empfohlen, auch den Test-Programmcode mit den Basisfunktionen des beeloggers durchzuarbeiten, um sich mit weiteren wichtigen Funktionen und Variablen für den Haupt-Programmcode vertraut zu machen.
Der Programmcode zum Messbetrieb für den Arduino Datenlogger mit Stockwaage für Imker ist für ATmega328 oder STM32Fxyz für unterschiedliche Konfigurationen mit bis zu vier Waagen pro System verfübgar.