beelogger

beelogger-SIM800L Testprogramm

Diverse beelogger-Freunde berichteten uns, dass sich mit der Abschaltung von 3G in Deutschland bei einigen Providern auch Veränderungen in der Versorgung mit Datendiensten im 2G/GSM-Netz ergeben haben.
Daher bitte vor Aufbau eines 2G-Systems vor Ort, z.B. mit einem Smartphone, kontrollieren, ob der vorgesehene Provider/Lieferant der SIM-Karte den 2G-Datendienst (Internet) dort verfügbar hat.
Die normalen Telefoniedienste im 2G-Netz stehen nach unserem Kenntnisstand weiterhin zur Verfügung.

beelogger-SMD mit GSM-Shield, Akku und FTDI-Adapter

beelogger-SMD mit GSM-Shield

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

beelogger_Test_GSM 12.08.2023 
– 12.08.2023 Definitionen Pins angepasst
– 10.12.2022 Konfiguration Pro-Mini automatisiert
– 12.01.2023: Test EE-Prom integriert
– 21.03.2023: Daten Buffer erweitert

Achtung: Die Multishields bis Version 2.5 und Lochrasteraufbauten nach alter Anleitung weisen eine andere Pinbelegung auf.
Bitte Hardware anpassen. TX = Pin 9 unverändert; RX = Pin 8 (alt Pin 10).
Alternativ Sketch passend konfigurieren.

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.