Inbetriebnahme der Datenübertragung per MQTT und TinyGSM-Bibliothek über SIM800-Modul auf ESP8266

Hallo zusammen,

ich probiere schon seit einiger Zeit das SIM800 Modul zum laufen zu bringen.

Die Kommunikation klappt im Zusammenspiel mit nem ESP8266 - sprich ich kann das Modem mit AT Befehlen abfragen.

Allerdings reseted/restartet das SIM800 Modul sich regelmässig wenn es zum einbuchen ins Netz kommt.

Meine Zielkonfiguration wäre es mittels eines LIPO 18650 zu betreiben und per Solar zu laden (aber das ist eine andere…Leidensgeschichte)

Nach diversen Recherchen bin ich soweit gekommen, zu verstehen das das SIM800 Modul beim Einbuchen bzw. Senden deutlich mehr Strom zieht und sich damit auch das Resetet bzw. Restarten erklärt.

Zumindest @clemens & @Kasper027 scheinen schon Erfolg/Erfahrung https://community.hiveeyes.org/t/feature-requests-open-hive/637/3 und https://community.hiveeyes.org/t/probleme-beim-datentransfer-uber-sim800-modul-per-mqtt/612 mit dem SIM800 zu haben.

Hat jemand einen Tipp, wie man das schaltungstechnisch im Detail korrekt löst ?

Vielen Dank vorab.
Stefan

Hi! You need to:

  1. make sure your wires from the battery to the modem are as short as possible, and as thick as possible.
  2. add one or two big decoupling capacitors as close to the modem as possible - + of the cap to VCC (battery input), - of the cap to GND. Capacitor voltage needs to be from 6.3V and up, capacitance should be at least 300uF. It’s best if you get an SMD tantalum capacitor - if you get an electrolytic capacitor with leads, you can also try and solder it onto the yellow big capacitor that’s likely already present on the breakout
  3. use a proper holder for the 18650 - holders with a coiled spring in one end might not be as good for the current requirements of the GSM modem as is required to avoid resets.

Do these things in this order, after each thing, check if your problem is resolved - if not, proceed to the next point.

2 Likes

Hi @CRImier,

Thank you very much for the hints.

Indeed, I used only those tiny breadboard cables and a coiled spring based holder for the 18650
for my test setup.

So I’ll modify my setup and test again.

Was für ein SIM800-Modul hast du denn? So etwas?

Und wie versorgt du es mit Strom? Welche Stromquelle und wie angeschlossen?

Wie sind die Pins des ESP angeschlossen? Direkt? Oder mit Spannungsteilern? Die Pins sind nicht alle 3,3V-tolerant!

Was für ein SIM800-Modul hast du denn? So etwas?

Genau das abgebildete SIM800L Modul

Und wie versorgt du es mit Strom?

Direkt mit nem 18650 im Battery Halter (mit Feder) -

images

Wie sind die Pins des ESP angeschlossen? Direkt?

Ja - verwende (bisher nur) RX/TX zusätzlich zur Stromversorgung.
GND teile ich mit dem ESP

Der ESP wird über Serial mit Strom versorgt, da ich ja für meine Tests den Seriellen Monitor der IDE benötige.

Die Stromversorgung sollte passen 3,7 V, das ist ein LiPo, oder? Werden so 2500 bis 3500 mAh sein, direkt angeschlossen ist wichtig, nicht die 3,3 V-Schiene des ESP.

Welchen ESP verwendest du? Einem “nackten” oder ein Dev-Board? Welche lib verwendest du?

Wenn du die Hardware -Pins TX und RX des ESP fürs debuggen und gleichzeitig fürs Modem verwendest gibt es Konflikte und das Modem kann nicht funktionieren.

Die 3,3V der GPIO-Pins des ESP würde ich nicht direkt anschließen. Das verträgt das oben abgebildete Modul nicht auf Dauer.

Entweder du verzichtest aufs debuggen oder nutzt eine per Software simulierte zweite Serielle Schnittstelle mit der Soft Serial-lib.

Die Stromversorgung sollte passen 3,7 V, das ist ein LiPo, oder?

Ja, ist ein 3,7 V Lipo

Welchen ESP verwendest du?

Einen Wemos D1 mini

Die TinyGSM Lib

Hier war ich in meiner Beschreibung wohl ein wenig schlampig.
Am ESP benutze ich die beiden PINS D7 & D8 für die Kommunikation mit dem SIM Modul.
Die Stomversorgung des ESP läuft über USB, worüber ich gleichzeitig den Output auf der Seriellen Konsole der IDE betrachte und auch die AT - Befehle sende.
Aus den Beispielen der TinyGSM Lib, verwende ich die Soft Serial Schnittstelle für die Kommunikation zwischen ESP & SIM800

#include <SoftwareSerial.h>
SoftwareSerial SerialAT(D8, D7);

Bin inzwischen auch über das PDF gestolpert in dem der Spannungsteiler dargestellt ist,
Würde ich dann angehen wenn ich mit dem Modul an sich weiter komme, oder meinst Du es würde mir das Leben erleichtern,?

Vermutlich würde es das Leben des SIM-Moduls verlängern. ;-)

It might extend its life, but I have a lot of experience using 3.3V GPIO to talk to the SIM800 module, so it might not be as important - and, even if it is, the only line you need to level-shift is ESP TX (modem RX), anyway. Try something like a 100R-1K divider, like this:

ESP TX - [ 100R ] - modem RX - [ 1K ] GND

Ok, aber der Rest hört sich doch gut an. Dann hätte ich ja fast die Sim-Karte in Verdacht. Ist die PIN deaktiviert und der passende AP über den Sketch spezifiziert?

Du verwendest ja einen Wemos D1 mini. Wenn man sich die Pins mal anschaut
https://wiki.wemos.cc/products:d1:d1_mini#pin

steht bei D8, dass da ein pull up [Korrektur, cg] pull down verbaut ist. Versuche mal einem Pin ohne pull up/down.

D8 IO, 10k Pull-down, SS

Actually, UART is idle high and push-pull, so a pullup shouldn’t interfere (a pulldown, on the other hand, could).

Thanks @CRImier I transcribed it wrong in my posting. On D8 is a 10k pull down, I corrected it on my posting before.

@Stefan Ich habe heute einmal versucht das SIM800 an einen ESP8266 anzuschließen was bei mir funktioniert hat. RX (ESP) habe ich direkt angeschlossen und TX (ESP) mit einem 1k / 5k6 Spannungsteiler.

Von den Examples habe ich HttpClient.ino nicht zum Laufen bekommen, die connection hat er gemacht, allerdings nicht die Website ausgegeben. Mit dem Sketch Diagnostics.ino. Vielleicht liegts daran, dass bei HttpClient.ino die ArduinoHttpClient-Lib verwendet wird, bei der anderen nicht.

(Short) Update on this:

Yesterday evening I managed to get the SIM800 to log on to the cellular network and & send an SMS.

The issue seems to be with the power supply, as it was sufficient to establish the connection between ESP & SIM800 modul to exchange AT commands, but not sufficient to log on to the cellular network.

As mentioned this is a test setup, it is installed on bread board with flying wires & a coiled spring based holder for the 18650 LiPo.

This hint was the solution - I inserted the cables from the spring based holder right into the next pin hole of the breadboard nearest to the SIM800 GND & VCC pin and the module managed to logon to the cell network & send an SMS.

For this example it made no difference which PIN D8 or D6 I used, but will go forward with D6 based on your recommendations.

Also I didn’t used a voltage divider for the test.

Next steps will be to establish an HTTP connection - cross fingers!

Thanks you @CRImier & @clemens very much for your guidance!

1 Like

Also, @Stefan hat auch noch etwas herumprobiert und die gleichen Probleme gehabt.

Und genau das war die Lösung, damit läuft HttpClient.ino und auch WebClient.ino aus den examples der TinyGSM-lib. Danke!

1 Like

Und noch ein Update:

Ich hatte schon mal vor einiger Zeit meinen Sketch des Waage Moduls für den potentiellen Einsatz des SIM800 Moduls vorbereitet und wollte einfach mal testen, ob zumindest die Verbindung aufgebaut wird und bin während meiner Tests darüber gestolpert das zwar der http Abruf von Daten noch nicht funktionierte (ich hole mir hier die Daten von weatherungerground von einer Station in der Nähe) aber dafür der MQTT Connect & Übertragung per GPRS!

Waiting for network… OK
Connecting to pinternet.interkom.de OK
Temperaturmessung mit dem DS18B20
Sensoren: 0
Connecting to MQTT broker
Successfully connected to MQTT broker
swarm.hiveeyes.org
read_battery_level: 9
-285
Voltage: 0.07
{“adc_level”:9,“battery_level”:-285,“voltage_level”:0.07,“Temperatur_Sensor1”:-127.00,“Temperatur_Sensor2”:-127.00}MQTT publish succeeded

Die Daten kommen tatsächlich in Grafen an.

Für MQTT verwende ich die Adafruit_MQTT Lib.

Die Buffer Size habe ich schon früher für die Verbindung per WiFi erhöht

1 Like

Schön zu hören! Ich glaube Du bist der erste unter uns, der die TinyGSM Bibliothek benutzt und damit auch noch per MQTT funkt - wunderbar!

Exzellent!

Sag gern Bescheid, falls Du weitere Rückfragen an uns hast oder Du auf Probleme beim weiteren Betrieb stößst. Einstweilen wünschen wir Dir viel Freude bei der Benutzung des Systems.

Hier gibt es ähnliche Berichte zu Strom-Problemen beim ESP32 nur oder “schon” im WLAN-Betrieb.

https://arduino-hannover.de/2018/07/25/die-tuecken-der-esp32-stromversorgung/

Auch hier wird die Lösung @Andreas freuen (running gag) mit dickeren bzw. kürzeren Kabeln konnte man das Problem auch hier lösen!