beelogger

beelogger-SIM800L Testprogrammcode

 

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

beelogger-Solar 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.

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, Tripple, 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 09.07.2021: 

Datum und Uhrzeit aktuell im Uhrbaustein: 
09.07.2021 8:41:3

Temperatur RTC: 22.50°C

Initialisiere Modul ... RX= 8

ADC-Bitwert= 1508
 Batterie [V]: 4.10


----
 LED auf SIM800L blinkt?
----

 Weiter mit w


Initialisiere Modul ... 
i.O.

SIM800L Modul Informationen:

SIMCOM_Ltd

SIMCOM_SIM800L

Revision:1418B05SIM800L24

SIM800L Versorgung in:  %, milliVolt
                       86,4092

Verbinde zum Netzwerk internet.eplus.de ... 

 einen Moment bitte...

Mobilfunkanbieter: E-Plus

Signalstaerke: -70 dB

 Lat,Lon ?
  ...
50.yy,7.2x

0,  Lon:  ,Lat:     ,...
0,7.2xx,50.yy,550,20/09/07,08:42:07

Start CIP i.O.

Initialisiere Internetverbindung ... 
community.beelogger.de
GET /DeinUserName/beeloggerY/beelogger_log.php?

TCP!
 
Daten senden Paket:  1  von 2
HTTP OK
15Quittung: 
1602528145T15Bok *

Datum und Uhrzeit aktuell im Uhrbaustein: 
09.07.2020 8:42:25

Test erfolgreich!

Signalstaerke: -70 dB

TCP!
 
Daten senden Paket:  2  von 2
HTTP OK
15Quittung: 
1602528153T15Bok *

Datum und Uhrzeit aktuell im Uhrbaustein: 
07.09.2020 8:42:43

Test erfolgreich!

Modul wird abgeschaltet

Test beendet

Hinweise:

  • Die Firmwareversion wird auf Fähigkeit zur Standortbestimmung getestet.
    Der GSM-Test-Sketch versucht bei passender Firmware eine Abfrage des Standorts durchzuführen.
    Bei einer Ausgabe von 0, 0.00, 0.00, Datum Uhrzeit konnte der SIM800 die Position nicht abfragen.
  • 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-Solar Shield einbauen

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 09.07.2021
Die Abfrage der Standortfunktion im SIM800L funktioniert nur mit Firmwareversion 1418B05SIM800L24 und der Bibliothek Version 22,  enthalten im beelogger-Library-Paket

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 komplette Programmcode für den Arduino Datenlogger mit Stockwaage für Imker ist unter Programmcode zu finden.