Forum: Mikrocontroller und Digitale Elektronik Arduino + GSM-GPRS-GPS-Shield


von sabine h. (anungslos)


Lesenswert?

Hallo Zusammen

habe folgendes Problem:
Ich habe das Aruduino Mega2560 Entwicklerboard und das 
GSM-GPRS-GPS-Shield mit dem Telit GE864Quad.

Es soll ein Programm auf den ATmega, das über den Telit eine 
GPRS-Verbindung aufbaut und anschliessend die GPS-Daten (welche 
ebenfalls vom GSM-GPRS-GPS-Shield kommen) an einen Webserver sendet.

Ich bekomme kein funktionstüchtiges Programm hin, welches die 
GPRS-Verbindung über AT-Befehle aufbaut.

Der Webserver ist aufgesetzt und horch auf ein bestimmtes Port (Das 
Programm hierfür wurde von mir in Java

geschrieben). Getestet mit einem Terminalprogramm. Das Funktioniert!

Aber es scheint so als würde ich einfach unfähig sein, ein Programm für 
eine GPRS-Verbindung zustande zu bringen.
Habe mir auch einige Testprogramme aus dem INTERNET geladen welche ich 
auch nicht zum laufen gebracht habe.

Das Testprogramm für das versenden einer SMS mit den GPS-Daten über eine 
GSM-Verbindung funktioniert einwandfrei.

Hat vielleicht schon jemand damit Erfahrung oder vielleicht hierfür auch 
schon ein Programm in petto?
Ich würde nur gerne eine GPRS-Verbindung zustandebringen.

Bräuchte einfach nur den richtigen Ansatz.

lg Sab


(Mir ist klar das ahnungslos mit "h" geschrieben wird, war ein 
Tippfehler, welchen ich nicht mehr rückgängig machen konnte)

von Harald N. (harald_)


Angehängte Dateien:

Lesenswert?

Hi Sabine, hast du das Kit unter dem Link hier?
http://www.gsm-modem.de/M2M/m2m-apps/gsm-gprs-gps-shield-for-arduino-board-duemilanove-atmega328/

Ich vermute mal, dass die Parameter für die GPRS Verbindung nicht 
stimmen.
Welcher Provider? Welche APN? Welches Passwort? Funktioniert die 
SIM-Karte in deinem Handy? Kannst Du mit der SIM-Karte auf Google 
zugreifen?

Gruss
Harald

von sabine h. (anungslos)


Lesenswert?

hi Harald, es ist genau das Modul, mit dem Bild (nicht das, welches im 
Link angezeigt wird).

Die Daten des Providers sollten in Ordnung sein (Austria Provider 
(A1)APN:A1.net / User:ppp@a1plus.at / PW:ppp). Die SIM-Karte die ich 
verwende ist normalerweise in einer Datenkarte, welche ohne Probleme 
über HSDPA/UMTS/EDGE/GPRS eine Datenverbindung aufbaut.

der Arduino-Compiler ist auch nicht gerade sehr hilfreich bei der 
Fehlersuche. Jetzt habe ich überlegt hierfür den Compiler zu welchseln. 
Z.B. ARV-Studio. Da erkennt man auch welche Schnittstellen und UARTs 
verwendet werden.

Vielleicht muss hardware-Technisch noch etwas umgelötet werden.?

Hast du vielleicht einen Source-Code den ich vielleicht testen könnte um 
eine GPRS-Verbindung mit dem Modul zustande zu bringen?
Irgenwie habe derzeit eine "Entwicklerblockade".

Ich habe mir auch ein zweites Modul besorgt um ausschliessen zu können, 
das es an einer defekten Hardware liegt. Leider keine Änderung.

Übrigens danke für deine Rückmeldung.

Liebe Grü0e
Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

bin noch nicht ganz sicher wo Dein Problem beginnt:
Ich vermute das Du Kommandos an das Modul schicken kannst und 
Rückmeldungen bekommst!?

Wenn dem so ist kannst Du bitte mal deine Kommandosequence und die 
dazugehörigen Rückmeldungen posten?

Parallel dazu suche ich mal, ich habe irgendwo ein Beispiel gesehen, 
habe aber da ich ein anderes Modul bestellt habe das nicht gesichert :-( 
Sorry.

Grüße
Frank

von Frank S. (franksanderdo)


Lesenswert?

Das Telit Easy IP User Guide haste denke ich mal!?

Grüße
Frank

von Harald N. (harald_)


Lesenswert?

Hi Sabine, wir fangen mal klein an.

AT gibt dir ein OK?

AT+CGDCONT=1,"IP","deine APN"
AT#PASSW="dein Passwort"
AT#USERID="deine User ID"
AT#SGACT=1,1<cr>

Liste fast aller APNs:
http://www.flexispy.com/Mobile%20APN%20Setting%20to%20use%20GPRS.htm

Mobilkom A1 / a1.net / ppp@a1plus.at / [blank] / 194.48.124.200 / 
194.48.139.254

Wenn die Karte in deinem Handy geht sollte die auch mit dem GE864 
funktionieren. Ausnahme waren sogenannte SIM-Karten der 3. Generation.

Geht die Karte in einem uralten Handy? Kannst du das Modul über einen 
RS232-Adapter mit deinem PC verbinden?

Ich vermute der Arduino hat keine Handshakeleitungen- Dann musst die mit 
ATK=0 das Hardwarehandshake abschalten.

Schau mal hier ein:
http://tinkerlog.com/2009/05/15/interfacing-arduino-with-a-telit-gm862/comment-page-2/#comment-268325
Alex Weber hat sein GM862-GPS vor Jahren bei mir gekauft. Sein Quellcode 
ist offen. Er macht über GPRS einen HTTP-Request.

Ich habe wenn du möchtest nur viel mehr für dich. Kannst mir ja eine 
Email senden harald.naumann (at) gsm-modem.de

von anungslos (Gast)


Lesenswert?

Hallo Frank

Ich verwende dieses Modul
http://www.gsm-modem.de/M2M/m2m-componets/arduino-mega-gsm-gps/

folgende Infos habe ich mir natürlich organisiert:
Link zum PDF Telitbaustein selbst, welches auf dem Modul verbaut ist
http://www.telit.com/en/products/gsm-gprs.php?p_id=12&p_ac=show&p=11
http://www.antrax.de/de/support?coID=17#arduino

ich denke, mein Problem ist der Compiler.

von Harald N. (harald_)


Lesenswert?

Für den Einsatz des GSM/GPRS/GPS-Shields auf dem Arduino Mega2560 sind 
vier Signale an den Stiftleisten umzuverdrahten. Eine Umbauanleitung, 
ist im Download. http://www.antrax.de/de/news?coID=73

Vorschlag: Erst mal nur AT senden und auf ein OK warten und dann SMS und 
danach GPRS.

von anungslos (Gast)


Lesenswert?

Hallo Harald

jetzt "weis" ich auch wer du bist :-)....wuste doch, das ich den Namen 
schon irgendwo gelesen habe :-)...

Finde ich einfach toll, dass du mir helfen möchtest.

habe mir damals die beiden Komponenten einzeln und nicht als fertigen 
Bausatz gekauft. Diesen Umbau habe ich schon lange vor dem vorhanden 
sein einer Umbauanleitung durchgeführt.
Kurz "gesagt", es handelt sich hier um 4 umgeleitete "Schnittstellen".

die SMS kann ich schon problemlos versenden. GPRS ist ein Problem.

Habe einen Source-Code und einige Header-Files, wo die Arduino-SW nicht 
compelieren kann.

der Fehler dürfte in den Headers liegen. bekomme folgende 
Fehlermeldungen:
In file included from 
J:\arduino-0021\hardware\arduino\cores\arduino/WProgram.h:10,
                 from GSMGPRS.cpp:12:
J:\arduino-0021\hardware\arduino\cores\arduino/wiring.h:110:24: error: 
macro "digitalRead" requires 2 arguments, but only 1 given
In file included from 
J:\arduino-0021\hardware\arduino\cores\arduino/WProgram.h:14,
                 from GSMGPRS.cpp:12:
J:\arduino-0021\hardware\arduino\cores\arduino/HardwareSerial.h:63: 
error: conflicting declaration 'HardwareSerial Serial2'
J:\arduino-0021\libraries\GSMGPRS/serial.h:106: error: 'Serial2' has a 
previous declaration as 'SerialPort Serial2'
J:\arduino-0021\hardware\arduino\cores\arduino/HardwareSerial.h:64: 
error: conflicting declaration 'HardwareSerial Serial3'
J:\arduino-0021\libraries\GSMGPRS/serial.h:110: error: 'Serial3' has a 
previous declaration as 'SerialPort Serial3'

Könnte den Source-Code von mir und die Headers auf deine andere 
Email-Adresse als Attachment senden, wenn du Zeit hast dir diese 
durchzusehen :-)

Gruß Sabine

von Harald N. (harald_)


Lesenswert?

Hallo Sabine, mein Blog findest du hier: http://www.gsm-module.de bzw. 
www.gsm-module.de/M2M . Im richtigen Leben werde ich für das helfen 
sogar bezahlt. Ich sehe das hier als Training. Ich weiß nicht, wie oft 
ich das Thema in den letzten 15 Jahren schon erklärt habe.

Im Moment bastele gerade an mein Layout vom Blog etwas rum. Es soll noch 
schöner werden.

Mir Sourcecode zu senden ist wir Perlen vor die Säue werfen. Ich kann es 
evtl. nicht lesen. Ich baue dir Antennen selber, aber mit Code schreiben 
habe ich vor ca. 20 Jahren aufgeführt. .

Wenn SMS geht ist GPRS nicht mehr weit.
AT+CGDCONT=1,"IP","deine APN"
AT#PASSW="dein Passwort"
AT#USERID="deine User ID"
AT#SGACT=1,1<cr>

Schau mal hier rein:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267318675/2
Du musst mit AT&K=0 das Hardwarehandshake abschalten. Ansonsten bekommst 
du ein Connect aber es fließt kein Byte, da das Modem meint das der 
Arduino nicht empfangsbereit ist.
Siehe auch http://de.wikipedia.org/wiki/Datenflusssteuerung
und
http://arduino.cc/en/Reference/SoftwareSerialExample

Schick mir mal deine Kontaktdaten (Email und Tel). Ich habe noch ein 
paar Ideen, welche ich hier nicht veröffentlichen möchte.

von anungslos (Gast)


Lesenswert?

Hi Harald

Danke für die Hinweise, die meisten kenne ich natürlich. Bevor ich um 
Hilfe rufe versuche ich es selbst die Lösung zu finden.

kann es sein, dass der Leitungsweg vom Shield bzw. zum Shield bei GPRS 
ein anderer ist als bei GSM? Müsste ich vielleicht andere Pins 
Ansprechen als die, welche aus den Unterlagen hervorgehen.

Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

Du hast da mehrfach Deklarationen in deinem Programm.
Schick bitte mal das Programm (im Zweifel als PM) dann gehe ich das 
durch.

Grüße
Frank

von Harald N. (harald_)


Lesenswert?

> kann es sein, dass der Leitungsweg vom Shield bzw. zum Shield bei GPRS
> ein anderer ist als bei GSM? Müsste ich vielleicht andere Pins
> Ansprechen als die, welche aus den Unterlagen hervorgehen.

Die Wege zu GPS und GSM sind nicht gleich. Das GSM-Modul ist am UART 
ohne Handshakeleistungen RTS und CTS. Daher musst du mit AT&K=0 due 
Flusskontrolle deaktivieren. Das GPS-Modul ist am SPI-Bus.

Ich würde mich ersrt mal auf das GSM-Modul konzentrieren.
Gruss
Harald

von Frank S. (franksanderdo)


Lesenswert?

Moin Harald,

sorry, aber ich glaube ihr zwei habt euch da mistverstanden:
Sabine fragte ob GP"R"S und GSM unterschiedliche Schnittstellen 
benutzen.

Darf ich mal blöd und OT dazwischen fragen. Wo genau ist da der 
Unterschied?
Ich dachte immer GSM sagt was über die Frequenzen aus und GPRS ist eines 
der Protokolle die auf GSM laufen. Stimmt das so?

Korrigier mich, aber GPRS und SMS werden im gleichen Telit GE864 
behandelt, also 1 Schnitstelle (UART) !?

Grüße
Frank

von Harald N. (harald_)


Lesenswert?

Hi Frank, GPRS ist eine Erweiterung von GSM. Ich bin schon etwas älter 
und mache Funk seit ca. 25 Jahren und GSM und GPS seit etwas 15 Jahren. 
Als ich anfing gab es nur SMS und nicht einmal CSD (Circuit Switched 
Data = Modemruf).

GPRS und SMS laufen physikalisch auf dem gleichen UART. Logisch kann man 
das mittels CMUX (logisch gemulitplexter UART) trennen. Dazu musst du 
aber Treiber in C auf deinem uC einbinden. Das lassen wir mal lieber bei 
Sabine weg.

SMS arbeitet im Kommadomode. Im Kommadomode wir bei einem Modem das 
Handshake nie benutzt. Nie stimmt nicht ganz. Siemens war vor Jahren mal 
so schlau GSM-Modem mit Handshake im Kommadomode zu bauen. Da alle 
lernfähig sind, sollte es sowas nicht mehr geben, es sei denn ein 
chinesisches Unternehmen weißt seine Entwickler an was zu 
entwickeln=kopieren. Die kopieren immer gründlich, d.h. die kopieren die 
Fehler mit und packen noch eigene oben drauf. ;-)

Sobald CSD oder GPRS ein Connect haben sind die Handshakeleitungen 
aktiv. Wenn man nicht vorher mit AT&K=0 die Flusskontrolle abschaltet, 
bleibt das Modul stehen und wartet auf die Flankenänderung an der 
Handshakeleitung. Da die nie kommt bleibt das Modul an der Stelle in 
alle Ewigkeit stehen.

Schaut mal gegen 11:00 in mein Blog unter www.gsm-module.de . Ich habe 
wieder mal ein sehr interessantes Thema.

Gruß aus Neustadt am Rübenberge
Harald

von Frank S. (franksanderdo)


Lesenswert?

Hallo Harald,

super Erklärung, danke!!

Zu Sabines Problem:

Ich vermute aus der Beschreibung das es da 2 Probleme gibt:
1. Der Compiler meckert diverses Zeugs an was doppelt definiert wurde.
2. Die Nummer mit dem Handshake umschalten

Da Du sagtest Du evtl. Kummer den Code zu lesen, kann ich euch anbieten 
das ich mir das anschaue und die doppelten Definitionen raus fummele. 
Damit solltet ihr euch auf das wesentliche konzentrieren können.

Grüße aus Saudi
Frank

von Harald N. (harald_)


Lesenswert?

> super Erklärung, danke!!
Gerne geschehen. Ich erzähle seit ca. 15 Jahren die gleiche Geschichte. 
Ein Freund fragte mich vor 8 Jahren warum ich kein Buch schreibe. Ich 
denke darüber nach.

Ich würde die AT-Behle finden und könnte auch noch bestimmen ob die 
richtig sind, aber andere logische Fehler würden mir 100% entgehen. Wenn 
du den Part übernimmst wäre das toll.
Ich mache übrigens jede Woche etwas zum Thema drahtloses M2M unter 
http://www.gsm-module.de öffentlich und freue mich über jede 
Weiterempfehlung.
Gruß
Harald

von Frank S. (franksanderdo)


Lesenswert?

Harald Naumann schrieb:
> Ich mache übrigens jede Woche etwas zum Thema drahtloses M2M unter
> http://www.gsm-module.de öffentlich und freue mich über jede
> Weiterempfehlung.

Bin schon am stöbern und lesen ;-)

Da ich selber aus einem ganz anderen Bereich komme (E&I Montage und SPS 
Programmierung) betreibe ich zwar einige GSM Teilnehmer, leider habe ich 
nie genauer geschaut was da drin passiert.
Mal schauen ob ich da was dran ändern kann ;-)

Grüße
Frank

von anungslos (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute

Mit solch einer schnellen und Informativen Reaktion habe ich nicht 
erwartet :-).

Danke nochmals.....

Also nun "In medias res":

Lieber Frank,
ich habe dir hier nun zwei Files angehängt.
Das eine Programm, welches über GSM die SMS problemlos sendet. 
(inkl.Header)
Vielleicht müsste ich nur im GSM_GPS_Shield.cpp unter "void 
GSM::sendSMS...." die GSM-SMS send befehle mit den GPRS + gewünschten 
AT-Befehle ersetzen.

Ich habe natürlich in dieser Zeit weiter gemacht und sende dir den 
letzten Status des Programms inkl. der Fehlermeldungen welche ich beim 
compelieren bekomme.


Hallo Harald
Dein Beitrag ist sehr informativ und Verständlich, obwohl ich zugeben 
muss, dass ich nicht alles Verstanden habe.

Nun,...für dich hätte ich eine Grafik mit dem Zusatz eines 
Beschleunigungs-Sensors und würde dich bitte, zu kontrollieren ob dieser 
richtig angeschlossen wurde.

Hoffe, dass ZIP-Files nicht "gecanceled" werden.

Danke :-)
Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

da ich heute ein wenig durch die Gegend reisen muss werde ich 
wahrscheinlich erst heute Nacht (im Flieger) drauf schauen können.
Ich melde mich dann ;-)

Grüße
Frank

von Harald N. (harald_)


Lesenswert?

Hallo Sabine,
ich kenne den Sensor nicht. Nimm den vorerst mal aus der Schaltung raus. 
Erst mal Funktion bei GPRS und dann kann es weiter gehen. Ich schaue mir 
das später noch mal an.

Was machst du da überhaupt? Warum machst du das? Ist das für eine 
Studienarbeit?

Ich bin heute zur Weiterbildung auf der Vodafone Roadshow Bluetooth Low 
Energy in Düsseldorf.
https://www.xing.com/app/forum/seoparser/smarthome/termine-und-veranstaltungen-461192/31-5-in-dusseldorf-bluetooth-technology-roadshow-in-kooperation-mit-vodafone-jetzt-kostenfrei-registrieren-36973710/36973710/
und
http://www.navispace.de/de/news/news-einzelansicht/article/navispace-organisiert-die-bluetooth-technology-roadshow-in-europa.html
Ich habe zu Bluetooth Low Energy selber schon Referate gehalten und 
Artikel geschrieben. Tolles spannendes Thema.
Grüße
Harald

von anungslos (Gast)


Lesenswert?

Hallo Frank

Danke für deine Rückmeldung. Wir lesen voneinander.

Gruß Sabine

Hallo Harald

Finde ich interessant, kann derzeit leider nicht bei der Bluetooth 
Technology Roadshow dabei sein.

Bzgl. dessen, warum ich das mache.....Studienarbeit?...nein....ich 
besuche nur eine Schule wo wir ein Projekt wählen durften...und ich 
wählte eben dieses......ich bin fast soweit um dazu "LEIDER" zu sagen 
:-).

Aber es ist einfach Interessant....man lernt einiges dabei....auch wenn 
mir sehr viel an Infos fehlt.

Schönen aufenthalt in Düsseldorf

Gruß Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

sag noch nicht leider, Du bist ja nicht alleine ;-)

Nachdem ich heute einen durchaus witzigen Tag hatte ( Kühler geplatzt, 5 
Stunden in einer Hinterhofwerkstatt bei 40°C im Schatten um das Dingen 
zu reparieren... ) Habe ich mir jetzt mal dein Programm vorgenommen. 
Leider brauche ich da noch ein wenig Information von Dir:

In dem Fehlertext wird von WProgramm.h gesprochen. Darf ich die haben?
Dann gibt es da eine GSMGPRS.cpp, ist das die 
GPRS_funktioniert_nicht.txt?
Wenn nicht, dann hätte ich die auch gerne ;-)

Mit welcher Entwicklungsumgebung arbeitest Du?
(Sollte ich das vorher überlesen haben bitte nicht böse sein ;-) )
Das wüsste ich gerne das ich versuchen kann die bei mir auch zu 
installieren um selber compilieren zu können.

Die guten Nachrichten kommen wie immer am Ende :-D
Die Fehler sehen schlimmer aus als sie sind. Da hast Du irgendwo (ich 
vermute in WProgramm.h) einige Deklarationen eingebaut die es schon gab. 
Da ist der Compiler pingelig ;-) Das bekommen wir raus und dann bekommen 
wir auch das Programm zum laufen.

Grüße aus Saudi
Frank

von sabine h. (anungslos)


Angehängte Dateien:

Lesenswert?

Lieber Frank

Hoffe du hattest zumindest einen guten Flug :-).

Du musst echt die absolute Power haben....nach solch einen Tag noch die 
Kraft zu haben, sich hinzusetzen und sich mein Programm anzusehen :-)).
Echt stark.


Entschuldige, irgendwie ist das gsmGPRS.cpp untergegangen. Hier ist es.

Hier noch der Link zum herunterladen des Compilers .
http://arduino.cc/en/Main/Software

je nach verwendetem Betriebsystem:
Arduino 0022 (release notes), hosted by Google Code:

oder die VorgängerVersion, welche ich verwende:
Arduino 0021 (release notes): Windows, Mac OS X, Linux (32 bit) (hosted 
by Google Code)

Das WProgramm.h (u.a.) ist Standardmäßig im Compiler enthalten.
Es liegt unter "\\arduino-0021\hardware\arduino\cores\arduino".
Habe es dir dennoch dazu angehängt.

Habe heute eine äußerst deprimierende Info von meinem zuständigen 
Professor bekommen. Ich muss nicht wie Anfangs festgelegt das Projekt im 
Juli fertig gestellt haben sondern schon nächste Woche Montag.
Ich arbeite zwar fast Tag und Nacht an dem Projekt aber ich denke es 
nicht bis Montag zu schaffen. Die Note für dieses Projekt ist somit im 
"Eimer".

Wie dem auch sei......ich werde es dennoch beenden. Auch nach dem 
Termin. Egal wie lange es Dauert.

Komm wieder gesund zurück und DANKE nochmals für deinen Einsatz.

Liebe Grüße
Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

Montag schon, ups das wird eng.
Kannst Du bitte kurz den Projektumfang grob beschreiben?
Reicht es wenn wir den GPRS zum rennen bekommen?

Bin jetzt zu KO (soviel zur Power) um noch was Sinnvolles zu tun, ich 
werde morgen vormittag rein schauen.

Lass den Kopf noch nicht hängen. Noch ist nicht Montag ;-)

Grüße
Frank

von sabine h. (anungslos)


Lesenswert?

Lieber Frank

Projektumfang:
Es soll ein Programm auf den ATmega, das über den Telit eine
GPRS-Verbindung aufbaut und anschliessend die GPS-Daten (welche
ebenfalls vom GSM-GPRS-GPS-Shield kommen) an einen Webserver sendet.

Der Webserver ist von mir fertig installiert, konfiguriert und horcht 
schon auf einen Port, durch ein Java-Programm, welches ich schon soweit 
fertig habe. Eine instalierte Datenbank wird ebenfalls mit dem 
Java-Programm befüllt. Soweit funktioniert alles.

Die GPRS-Verbindung ist absolut ausreichend.

Ich denke es ist nur wichtig, dass das Modul eine GPRS-Verbindung 
aufbauen kann. SMS ist laut Prof. leider zu wenig.

Danke dir, das du dir noch die Zeit genommen hast, um mir zu antworten.

Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

so da bin ich dann etwas erfolgreich gewesen heute morgen:

Du hast ein Problem, das die iohelper routinen von der 
Entwicklungsumgebung und die von deinem Programm sich nicht vertragen.
Kannst Du mal versuchen der Umgebung zu sagen das nur der  iohelper vom 
vom GSM Modul genutzt wird ?

Ich vermute das wir das gleiche auch noch mit der serial.h haben. da bin 
ich aber noch am forschen.

Ich habe es leider noch nicht geschafft die Entwicklungsumgebung zu 
laden. Das Netz hier im Hotel ist UAS ;-)
Sobald ich das Dingen hier hab und es dann noch schaffe der Umgebung die 
GSM Bibliotheken bei zu bringen, dann kann ich auch mal compilieren und 
Dir genaueres sagen.

Grüße
Frank

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

so da bin ich wieder:
Also bei der Bibliothek zum IOHelper zum GSM Module möchte ich das Du 
folgendes änderst:
Kommentiere bitte die Zeile wie unten gezeigt aus:
1
...
2
#include <avr/io.h>
3
#define outputLow(port,pin) port &= ~(1<<pin)
4
#define outputHigh(port,pin) port |= (1<<pin)
5
#define toggleOutput(port,pin) port ^= (1<<pin)
6
#define setInput(portdir,pin) portdir &= ~(1<<pin)
7
#define setOutput(portdir,pin) portdir |= (1<<pin)
8
// #define digitalRead(pinPort,pin) ((pinPort>>pin)& 1)//Eg PINB,PB4
9
...

mit dem serial ist es etwas schwieriger, weil ich da noch net 
rausgefunden habe ob wir einfach die serial.h vom GSM ignorieren können 
;-)
Da bin ich gerade dran.

Grüße
Frank

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

so da bin ich wieder:
Bei der SerialPort definition müssen wir leider etwas unsauber arbeiten.
Nach dieser Änderungen kannst Du andere Beispielprogramme welche auf die 
core Bibliothek aufsetzen nicht mehr Compilieren!!
Die ordentliche Lösung wäre aufwändiger und ich kann sie hier nicht 
testen.
Suche bitte in den core Bibliotheken die HardwareSerial.h und ändere 
dort folgendes:
1
...
2
extern HardwareSerial Serial;
3
4
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
5
extern HardwareSerial Serial1;
6
extern HardwareSerial Serial2;
7
extern HardwareSerial Serial3;
8
#endif
9
...

zu
1
...
2
extern HardwareSerial HWSerial;
3
4
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
5
extern HardwareSerial HWSerial1;
6
extern HardwareSerial HWSerial2;
7
extern HardwareSerial HWSerial3;
8
#endif
9
...

Damit lässt sich das Programm dann sauber compilieren und funktioniert 
hoffentlich sogar auf Anhieb ;-)
Sag in jedem Fall bescheid. Wenn es nicht funktioniert bitte mit 
Fehlerbeschreibung dann versuchen wir das zu flicken. Noch ist nicht 
Montag :-P

Grüße
Frank

von sabine h. (anungslos)


Angehängte Dateien:

Lesenswert?

Hi Frank

Sorry, habe Probleme mit dem Server. HDD defekt. Fehlersuche hat länger 
gedauert.

Vielen vielen dank für deine Vorschläge....habe diese, soweit von mir 
Verstanden durchgeführt.
Eine Kurzdoku mit den durchgeführten Änderungen und einer kleinen Frage 
liegt bei :-).

Hoffe nichts vergessen zu habem.
-----------------------------------------------------------------------
Nun treten noch folgende Fehler auf:

In file included from 
G:\arduino-0021\hardware\arduino\cores\arduino\/WProgram.h:14,
                 from 
G:\arduino-0021\hardware\arduino\cores\arduino\WString.cpp:21:
G:\arduino-0021\hardware\arduino\cores\arduino\/HardwareSerial.h:20:1: 
error: unterminated #ifndef
-----------------------------------------------------------------------
In WProgram.h kritisiert der Compiler diesen Eintrag:
#include "HardwareSerial.h"

In WString.cpp gefällt dem Compiler der Eintrag nicht:
#include "WProgram.h"

Habe dir die drei Files noch angehängt.

Du musst der absolute "Oberchecker" sein. Wie geht das 8-)????

Wo bei den Saudis bist du? Was vermutet werden kann aber dennoch die 
Frage.....wss machst du....und dort....Urlaub :-)
...Sonne...Strand...."heiße" Autos (nicht auf heißes Kühlerwasser 
bezogen) ;-)...

Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

Bei der Änderung in HardwareSerial.h hast Du mich mistverstanden ;-)
Da solltest to die "Serial" in HWSerial umbenennen.

Das auskommentieren was Du gemacht hast führt zu Folgefehlern welche 
dann eben genau deine 3 Fehlermeldungen nach sich ziehen.
Wenn ich wieder an meinem Rechner bin schicke ich Dir meine 
HardwareSerials.h mit der ich das Programm ohne Fehler compilieren kann.

Auch wenn es mir schmeichelt, bin ich sicher nicht der Oberchecker. Habe 
nur etwas Erfahrung in der Fehlersuche. Eigentlich spricht diese 
Erfahrung sogar gegen mich. Wenn ich so gut wäre, bräuchte ich keine 
Fehler suchen können ;-)

Die Nummer mit Saudi ist genau umgekehrt. Ich bin seid gestern in D um 
ein par mögliche Arbeitgeber zu treffen. Leben und arbeiten tu ich sonst 
in Saudi. Projektleitung und E&I Montageüberwachung sind mein Geschäft.

Grüße
Frank

von Frank S. (franksanderdo)


Angehängte Dateien:

Lesenswert?

So da isse ;-)

von sabine h. (anungslos)


Angehängte Dateien:

Lesenswert?

Hi Frank

Da sieht man wieder, was Erfahrung ausmacht.
Musst mir einmal schreiben, wie das Leben dort so ist. Finde ich höchst 
Interessant :-).

Schade, derzeit leider keine Zeit darüber zu "plaudern" ....;-).

jetzt sieht es etwas besser aus....nur noch Serial-Fehler-Meldungen

G:\arduino-0021\libraries\GSMGPRSlast\serial2.cpp:21:2: error: invalid 
preprocessing directive #endifVo
G:\arduino-0021\libraries\GSMGPRSlast\serial2.cpp:19:1: error: 
unterminated #ifdef

Ich sehe immer mehr, das wir nichts gelernt haben um ein beliebiges 
Projekt selbstständig abschiessend zu können. So etwas zieht mich echt 
runter.

Wünsche dir das beste und dass das Meeting dein gewünschtes Ergebnis 
bringt. So professionell wie du bist .... :-).

Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

die serial2.cpp wo Du da geschickt hast ist nicht die welche der 
Compiler benutzt.
Such bitte mal auf deinem Rechner nach serial2.cpp. Ich vermute Du wirst 
mehrere finden.
In mind. einer davon steht in Zeile 21:

#endifVo

das ist ein Tippfehler und sollte

#endif

sein. Dannach sollte der Compiler auch durchlaufen.

Das mit dem Quatschen könne  wir ja mal in Ruhe nach dem Montag 
nachholen ;-)

Grüße
Frank

von sabine h. (anungslos)


Lesenswert?

Hallo Frank

Frühaufsteher :-)....Danke...

Habe mir die Fehlermeldung natürlich auch angesehen und festgestellt, 
dass sich auf Zeile 21 kein solcher Befehl befindet.

Habe das richtig File schon gefunden. Werde dieses erst Nachmittag 
weiter verfolgen können.

Liebe Grüße
Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine

Wie jetzt Frühaufsteher??

;-)

von sabine h. (anungslos)


Lesenswert?

Hallo Frank

Ich arbeite noch an den folge Fehlern.
Du bist bestimmt schneller als ich.

Nun treten diese Fehler noch auf.
G:\arduino-0021\libraries\GSMGPRS\gsmbase.cpp: In member function 
'virtual bool GSMbase::turnOn()':
G:\arduino-0021\libraries\GSMGPRS\gsmbase.cpp:241: error: 'DDRA' was not 
declared in this scope
G:\arduino-0021\libraries\GSMGPRS\gsmbase.cpp:241: error: 'PA0' was not 
declared in this scope
G:\arduino-0021\libraries\GSMGPRS\gsmbase.cpp:244: error: 'PORTA' was 
not declared in this scope

Arbeite am Programm und paralell dazu
sehe ich mir gerade ein Guide vom Telit-"Stein" durch.

Bei uns zieht ein Gewitter auf....nicht gut. Wäre nicht das erste 
Unwetter, wo so manch elektrisches Gerät nicht überlebt.

Werde vermutlich bald alles abdrehen müssen. jetzt aber noch nicht.

Wie war dein Meeting :-)?


LG Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

das wundert mich aber jetzt.
Ich habe die Fehler hier net.

ok dann versuchen wir das über Ferndiagnose:

Sei bitte so lieb wärend ich raus suche wo die Dinger eigentlich 
definiert werden:

Ich habe das Gefühl das bei dir die Dateien durcheinander geraten sind.
Stelle bitte sicher das die Dateien welche Du mir geschickt hast mit den 
Änderungen welche wir gemeinsam durchgeführt haben auch wirklich von 
deinem Compiler genutzt werden

Sonst suchen wir uns nen Wolf ;-)

Ich geh mal suchen ob ich auch ohne Fehler was finde ;-)

Grüße
Frank
Meeting war net schlecht, aber noch nicht mit dem gewünschten Ergebnis 
;-)

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

so aus welchem Grund auch immer behauptet dein Compiler (im Gegensatz zu 
meinem) das er die in io.h erledigten Definitionen nicht kennt.
Das wundert mich, weil durch den include der iohelper.h im gsmbase.h 
sollte das erledigt sein.

Du kannst bitte mal versuchen in der gsmbase.h folgende Zeile zu packen:

#include <avr/io.h>

Das könnte helfen, ist aber nicht wirklich ordentlich.

Du hast doch nen Arduino mit atmega 2560 oder?

Grüße
Frank

von sabine h. (anungslos)


Lesenswert?

Hi Frank

danke für die Info, habe nach mehrmaligem compilieren ohne etwas 
geändert zu haben unterschiedliche Fehler.

Scheint ein Fehler im Compiler zu liegen. Werde den Ursprungszustand 
wieder herstellen, die besagten Änderungen durchführen und dir Bescheid 
geben.

Richtig, ich verwende den Arduino Mega 2560.

Sabine

von sabine h. (anungslos)


Lesenswert?

Hi Frank,

alles wieder zurückgesetzt und nach etlichen Sicherstellungen und Tests 
...... nun haben ich noch 2 Meldungen
G:\arduino-0021\libraries\GSMGPRS\main.cpp: In function 'void blink()':
G:\arduino-0021\libraries\GSMGPRS\main.cpp:367: error: 'PB7' was not 
declared in this scope

Das ist richtig, dass dieser PIN (PB7) mit der LED zusammengeschalten 
ist.

Welches Tool verwendest du um die Änderungen in den Files durchzuführen?

Sabine

von Frank S. (franksanderdo)


Lesenswert?

Moin Sabine

Ich nutz Xcode weil ich auf nem MAC am basteln bin.
Da geht aber jeder Texteditor für.

Die Ports sind normalerweise alle definiert.
Ich meine aber das der PortB0 oder so ähnlich benannt ist.
(kann grad net schauen, hab keinen Rechner dabei)

In der Hilfe im Arduino Tool stehen aber die Namen drin.

Grüße
Frank

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine

wollte mal fragen wie es Dir und dem Programm so geht?
Hast Du das Problem mit dem Port beheben können?

Grüße
Frank

von sabine h. (anungslos)


Lesenswert?

Hallo Frank


Danke der nachfrage...

Ich habe das Problem nicht beheben können aber folgendes Festgestellt.

Wenn man mit einem anderen User-Profil sich auf den PC einloggt, bekommt 
man unterschiediche Fehlermeldungen. Sinnlos, so weiter  zu machen.

Der Compiler fragt anscheinded aus dem User-Profil unter den Lokalen 
Einstellungen die temporären Files ab. Als ich diese gelöscht habe, 
waren keine Fehlermeldungen vorhanden. Leider reagierte das Modul nicht 
so, wie es sein sollte.

Werde am Notebook alle User löschen und neu einrichten.

Folgender Abnahme-Status meines Projekts:
erst muss ich sagen, es ist besser gelaufen als erwartet, leider aber 
auch schlechter als gewollt. Damit meine ich aber nicht meinen Note. 
Sondern das das Modul nicht richtig agiert.

Sorry, dass ich mich nicht gleich am Sonntag noch gemeldet habe, musste 
aber noch ein Dokumentation über das gesamte Projekt zusammenstellen. Da 
ich mich sehr viel mit der Modul-Programmierung "gespielt" habe, war für 
die Doku die Zeit etwas kanpp :-)

Ohne dich hätte ich mindestens 2 Jahre gebraucht um soviel in der 
Fehleranalyse zu lernen. So etwas lernt man nicht in der Schule, 
zumindest nicht ordentlich.
Ich weis nicht, ob du überhaupt nachvollziehen kannst wie du mir mit 
deinen Analysen geholfen hast. Und wie schon erwähnt, habe ich wirklich 
viel dadurch gelernt.
Auch durch deine Infos bzgl. der Schnittstellen habe ich gelernt, das 
man zu allererst einmal die Hsrdware mit allen Schnittstellen genau 
kennen muss bevor man überhaupt daran denken kann ein Programm zu 
schreiben.

Ich werden nach dem neu einrichten des Rechners das ganze Programm von 
vorne beginnen und neu schreiben. Denke es jetzt hinzubekommen.

Wie sieht es bei dir auch? Wie laufen die Gespräche ;-)?

Sabine

von Frank S. (franksanderdo)


Lesenswert?

Hallo Sabine,

gut zu lesen das Du das Problem noch ein ganzes Stück weiter eingrenzen 
konntest.
Neugierig wie ich bin wüsste ich gerne welche Note es denn gegeben hat 
;-)

Wenn Du nix dagegen hast, würde ich gerne weiter mit Dir zusammen an dem 
Projekt arbeiten, es hat schon Spass gemacht. Das Compilerverhalten 
finde ich etwas schräg, aber man kann sich da sicher drauf einstellen.

Es freut mich das ich etwas helfen konnte. Auch wenn ich davon ausgehe 
das die 2 Jahre etwas übertrieben sind ;-)

Allerdings glaube ich nicht das Du das ganze Programm neu schreiben 
musst (solltest).
Lass uns die Basis die da ist nutzen und zum laufen bringen.

Schau mal in deine PM ;-)

Grüße
Frank

von Lisa (Gast)


Lesenswert?

Hallo,

ich will den alten Thread nicht unbedingt aufwaermen aber ich stehe 
genau vor dem selben Problem das ich keine GPRS Verbindung mit dem Board 
herstellen kann. Habt ihr das damals noch geloest bekommen?

lg Lisa

von Frank S. (franksanderdo)


Lesenswert?

Hallo Lisa,

oha, ich glaube ich habe mich verlesen als ich diene E-Mail bekomme 
habe.
Ich hatte da GPS gelesen.

Ok ich hoffe mal das Du mir net zu böse bist und versuche mit Dir einen 
Weg zu finden.

Welche Entwicklungsumgebung nutzt Du?
Bekommst Du irgendeine Rückmeldung vom Modul?

Wir bekommen das hin ;-)

Grüße Frank

von Lisa (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

entschuldigt die verspätete Antwort.

Ich entwickle auf einem Arduino Uno und dem GPS-GSM-GPRS-Shield. Ich hab 
mal den ganzen Source Code angehängt er compiliert auch ohne Probleme. 
Ich bekomme nur leider keine IP nachdem AT#GPRS=1 und verstehe einfach 
nicht warum :(

Anbei ein kleines Log:

AT
ATE0
AT+IPR=9600
AT#SIMDET=1
AT+CPIN?
AT+CREG?
AT+CGDCONT=1,"IP","internet.t-mobile","0.0.0.0",0,0
AT#USERID=tm
AT#PASSW=tm
AT#GPRS=1

danach passiert einfach nichts mehr.

lg

von Frank S. (franksanderdo)


Lesenswert?

Hallo Lisa,

jut dann wollen wir mal anfangen zu wühlen ;)
Leider schaffe ich es erst am Samstag in den Code zu schauen, aber worab 
hätte ich noch eine Frage:

Aus deinem Log sehe ich das keines deiner Komandos irgendeine 
Rückmeldung bringt.
Sehe ich das richtig?

Weil wenn dem so ist, dann funktioniert die Kommunikation zum Modul noch 
nicht.

Das wäre ein ganz wichtiger Hinweis wo wir suchen müssen ;-)

Grüße
Frank

von Lisa (Gast)


Lesenswert?

Hallo,

response bekomme ich aber sie werden irgendwie nicht seriel geprintet 
nur teilweise... also CREG wird zurueck gemeldet... ich kann auch SMS 
und Telefonate taetigen... ich glaube das einzige Problem ist das GRPS + 
HTML/PHP Request :(

lg Lisa

von Frank S. (franksanderdo)


Lesenswert?

Hallo Lisa,

nich :( sonder :)
Weil das ist schon die halbe Miete!!
Das wir mit dem Modul reden können aber nur einen Teil der Befehle nicht 
umgesetzt bekommen, lässt mich vermuten das wir entweder nicht die 
korrekte Befehlssequenz nutzen, oder die Antwort einfach anders erwarten 
als sie kommt.

Ich werde mich da mal schlaulesen was das Modul erwartet und vergleichen 
wie es ausgeführt wird im Programm ;)

Grüße
Frank

von Frank S. (franksanderdo)


Lesenswert?

Hallo Lisa,

da ich ja auch nimmer der Jüngste bin ;-)
Ich habe gerade mal zurückverfolgt was Harald, Sabine und ich damals 
schon so geschrieben hatten. Dabei bin ich auf Haralds Hinweis gestoßen 
das in Jedem Fall das das wired handshaking abgeschaltet werden muß.

Die wird mit dem Befehl AT&K=0 abgeschaltet.

Neben bei bin ich irgendwie zu plööde.... Ich finde das Manual zu dem 
GSM Modul nicht wieder. Hast Du bitte mal einen Link für mich?

Grüße
Frank

von Frank S. (franksanderdo)


Lesenswert?

Hallo Lisa,

ich hab dann doch die Manuals gefunden... Ich sag ja ich werd alt :-)

Also nachdem ich da etwas Studiert habe, hier mal ein par Dinge die zu 
prüfen sind:
mit AT&V kannst Du nachschauen wie AT&K eingestellt sind.
AT&K kümmert sich und die Fusskontrolle welche normalerweise auf 
HW-FlowControl eingestellt ist. Das Modul hat aber die nötigen strippen 
nicht.

Also bau bitte mal ein AT&K0 in dein Programm ein

Dann sollte dein AT#GPRS=1 eine dieser Rückmeldungen geben:
OK
+IP:xxx.xxx.xxx.xxx
oder ERROR

Spätestens hier wissen wir mehr ;)

Viel Spass und Erfolg beim ausprobieren und lass mich das Ergebnis 
wissen ;-)

Grüße
Frank

von Harald N. (harald_)


Lesenswert?

>AT+CGDCONT=1,"IP","internet.t-mobile","0.0.0.0",0,0

>danach passiert einfach nichts mehr.

> Also bau bitte mal ein AT&K0 in dein Programm ein.

Ist neben Power Down Reset einer der meist gemachten Fehler.
Der Arduino und auch andere uC bedienen die Flußkonrolle nicht und das
Modem wartet, und wartet, und wartet, und wartet ...

Gruß
Harald

von franksanderdo (Gast)


Lesenswert?

Hallo Harald,

hast Du noch was von Lisa gehört?
In jedem Fall schon mal Danke für die Hilfe, ich vermute das Problem 
wurde damit gelöst ;-)

Ohne deinen Hinweis wäre ich da glaub ich auch net drauf gekommen.

Grüße
Frank

von Harald N. (harald_)


Lesenswert?

Hi Frank,
ich habe nichts von Lisa gehört.

Das "Problem" habe ich seit 15 Jahren auf dem Tisch. Ob früher CSD oder 
heute GPRS bzw. all die anderen PacketSwicht arbeitenten Systeme (EDGE, 
UMTS, HSPA, LTE) - die Frage wird immer wieder kommen.

Gruß
Harald

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.