SM5100B shield doubts and problems!

Hello mates!

I´m on a project which will be my final paper at University!

First off, my intention is to get some data, which my Mega will receive via Xbee by another arduino, and transmit it via GPRS to a webserver. The first part is being handled by a friend of mine, so I will not discuss about it here. He developed the .aspx page which will be responsible for "getting the data". In other words, everytime I acess the page xxxx/putenergy.aspx?idmed=2&watts=[value] and change the field [value] to the desired value, the latter will be inserted in our sql database.

The main idea would be making the module "visit" that page and everything would be fine, so I suppose I could simply do a POST, isn´t that right?

However, I´m encountering difficulties to get this shield working as I want! There are three problems so far.

1st - I can´t connect using AT+SDATACONF host value as a "www.xxx" name like the example given in the TCP/IP APP Note from the oficial site. It makes the module to reboot.

Starting SM5100B Communication...
ôÐÐ
+SIND: 1

+SIND: 10,"SM",1,"FD",1,"LD",1,"MC",1,"RC",1,"ME",1

+SIND: 11

+SIND: 3

+SIND: 4
 AT+CGATT?

+CGATT: 1

OK
AT+CGDCONT=1,"IP","zap.vivo.com.br"

OK
AT+CGPCO=0,"vivo","vivo", 1

OK
AT+CGACT=1,1

OK
AT+SDATACONF=1,"TCP","www.google.com",80
ÐÐÐèÐ
+SIND: 1

+SIND: 10,"SM",1,"FD",1,"LD",1,"MC",1,"RC",1,"ME",1

+SIND: 11

+SIND: 3

+SIND: 4

2nd - I can solve the above problem by connecting via IP adress. The IP below is from the server which is holding that page which I mentioned earlier. Although I can connect and the server seems to acknowledge the data, I never get the +STCPD:1 confirmation. I don´t know if the sintax of the POST command in the SSTRSEND is right!

Starting SM5100B Communication...
èÐÐ
+SIND: 1

+SIND: 10,"SM",1,"FD",1,"LD",1,"MC",1,"RC",1,"ME",1

+SIND: 11

+SIND: 3

+SIND: 4

AT+CGATT?

+CGATT: 0

OK
AT+CGATT=1

OK
AT+CGATT?

+CGATT: 1

OK
AT+CGDCONT=1,"IP","zap.vivo.com.br"

OK
AT+CGPCO=0,"vivo","vivo", 1

OK
AT+CGACT=1,1

OK
AT+SDATACONF=1,"TCP","187.73.33.212",80

OK
AT+SDATASTART=1,1

OK
AT+SDATASTATUS=1

+SOCKSTATUS:  1,1,0102,0,0,0

OK
AT+SSTRSEND=1,"POST /putenergy.aspx?idmed=2&watts=1042 HTTP/1.0"

OK
AT+SDATASTATUS=1

+SOCKSTATUS:  1,1,0102,48,48,0

OK

3rd - Last but not least. This one is really tricky. It started to happen out of the blue, and now i just can´t get it to happen again. Using the same set of commands and configurations from the 2nd problem, after sending the data, the module would return a CME Error:33 - which does NOT exist in the manual! :~

Could you guys shed light on my problem? I´m really in need of some help here!

Cheers!

Mates, I´ve been searching for the solution to my problems, but I can´t seem to find it! =(

Has nobody encountered some similar problems using this shield?

I´m still in the pursuit of the answer! Hehehe!

During this time, I found that I need do a GET request in order to do what I want! I successfully managed to do the GET request via a Telnet session, using the above statement:

GET /putenergy.aspx?idmed=2&watts=3232 HTTP/1.1
Host: www.abqct.com.br

Although, I just can´t do it using the AT commands!

Pleas guys, any help would be really appreciated!

I´m on the verge of buying other shield/module from other company. Telit most likely! Any suggestions?

Cheers!

Yesterday I spent some more time trying to make it work. I started using SDATATSEND instead of SSTRSEND, due to the fact that, as far as I am concerned it allows me to send data to the server in a transparent way. In other words (correct me if I am mistaken) its almost like a telnet session.

I managed to get an OK message, however as soon as I get it I also get +STCPC?1 , which means that the connection was terminated by the remote host. When in a telnet session the server also closes the connection when the GET/PUT request is done, so, I thought it worked even not receiving the +STCPD?1 confirmation. Yet, I was wrong. The GET request wasn´t successful.

I tried sending simple data (numbers) such as the example found on “SM5100B TCP/IP App Note” pdf, I get the OK message, but I never get the +STCPD?1 confirmation.

These are the commands I´m using after setting up the connection and connecting to the server:

AT+SDATATSEND=1,75<LF><CR>
GET /putenergy.aspx?idmed=2&watts=3232 HTTP/1.1<LF><CR>
Host: http://www.abqct.com.br <LF><CR>
<LF><CR>
<CTRL+Z>

OR

AT+SDATATSEND=1,75<LF><CR>
GET /putenergy.aspx?idmed=2&watts=3232 HTTP/1.1<LF><CR>
Host: http://www.abqct.com.br <LF><CR>
<END OF TRANSMISSION> (this is the 004,BYTE from ASCII table)
<CTRL+Z>

Hey guys! To my mind, now is not a module´s problem anymore! This is the situation:

I decided to run a mini local webserver and monitor the port to see if the module was really connecting and sending data. Guess what? It does connect and send data!!

The problem is that the server is not acknowledging the data, and so nothing happens! Even the server log doesn´t show any love. The wierd thing is that I´m using the same sintax which I´m using to send via Telnet:

GET /index.html HTTP/1.1 
Host: xxxxxx.zapto.org

Could it be header problems?? Does anyone know what it could be???

Hi there, glad to know there's someone out there experimenting with this module! Please do tell me, how do you get it to work?

Compiling the example files is giving me a lot of errors... :( I'm trying to compile the example file from sparkfun.com and the NewSoftSerial library from arduiniana.org EDIT: 1. I hadn't installed the NewSoftSerial Library correctly: http://arduino.cc/en/Reference/Libraries (see "Contributed Libraries") 2. The GSM module was preset (from factory) to a baud rate of 115200. To set it to 9600 (the allowed speed to communicate via SoftSerial), I used this to connect the module directly to a COM port and program it to use the baud rate of 9600 from there on: http://sodoityourself.com/max232-serial-level-converter/ (this shows you how to build a TTL to RS-232 (COM port) adapter, then look for the comments of user 33Warlord here http://www.sparkfun.com/products/9607)

More to YOUR situation, that's really a server issue right? I mean, with your local server you're getting the desired result. Correct? If so, then you should compare the servers in terms of: - domain correctness - are you using the correct domain address? This may seem stupid but did you try to do the same from a browser in your computer? - port forwarding - if you're connecting to a Dynamic IP address, then probably the server is behind a router and so it needs port 80 correctly forwarded. - host limitations - if the site is hosted by a 3rd party, there's the possibility that it's blocking incoming connections from cellular networks' IPs. - software being used - are you using different software components? if yes, then one or more of them could be the cause. imagine for instance that the remote server requires a browser description in order to accept an HTTP request.

Not easy to diagnose when the parameters are this vague.

footswitch

Skullmetal vc conseguiu fazer essa conexão com o GPRS via GET? Se conseguiu poderia me dar uma ajuda? Estou com o seu mesmo problema. Poderia me enviar um e-mail: claudio7bertholdo@hotmail.com Obrigado cara.