Arduino + WIZ110SR

Hi, we are working with a WIZ110SR gateway and need some help.

We want to use this gateway to upload to a website the reading of a couple push buttons connected to an Arduino Diecimila. The communication between Arduino and the gateway is done through Arduino's Serial port (TTL 5v) therefore a level shifting circuit had to be used to convert to RS 232 and enter the wiz100SR (I highlight this because the level shifting circuit we are using only shifts level of the Tx and Rx pins of the RS232 interface, and that may the posibility of performing serial configuration on the wiz110SR module. No CTS, RTS, DSR, DTR pins avaliable).

The communication between arduino and WIZ110SR works fine; We were able to connect to the module using windows terminal, send characters, and receive them with the microcontroller, (and vice versa).

Using the configuration tool of WIZ110SR we'll set the web server's address on the "Server IP" box (an apache server, runing locally on PC during testing), and setting the gateway to act as, a client we expect it will establish a TCP/IP connection to the server when powered up. Once the connection is established we'll send HTTP Request in order to pass the variables to a PHP application located on the apache server.

Questions:

As we aren't using Arduino's Ethernet shield nor Arduino's Ethernet Library, should it be possible to send the HTTP Request just using the Arduino command “SerialPrint()” ?

How can we check form Arduino's serial port if the TCP/IP connection was succesful (for example: listen the serial port waiting for certain character sent by the server if the connection is established)?

Is it possible to reset the WIZ110SR from the micro controller (serial command, or by hardware)? (Remember we only have RX and TX pins avaliable)

Thank you in advance.

Sorry I haven't got a WIZ110SR but here are some genral points about serial communications.

should it be possible to send the HTTP Request just using the Arduino command “SerialPrint()”

Yes defiantly.

However you have to make sure that the TX and RX connections into the Arduino are the correct way round. RS232 is a bit ambitious about labelling the input and output pins. The serial output can be labelled TX meaning it is sending data or RX meaning please connect this to an RX. It all depends of it the equipment is designated as DTE or DCE http://en.wikipedia.org/wiki/Data_terminal_equipment

I have had a look at the on line manual for the WIZ110SR an it is quite poor, there is little real information in it.

Try setting up the WIZ110SR with a serial connection from a PC. Check with an oscilloscope what pins the data is sent at. Use this to set the baud rate, make sure the arduino has the same baud rate.

It looks like you don't need any flow control but you might need some static hand shake signals like DSR, check what way the PC pulls what signal when successfully communicating with it. You can always have the other I/O pins acting as hand shaking lines when put through suitable level converters, of course you have to do the hand shaking by hand so to speak.

One problem with serial communications with the arduino is that there is no serial port to do any debugging. Try adding some LEDs (and resistors) to allow you sketch to light them up so you can see where you are in it.

RS232 is a bit ambitious about labelling the input and output pins

He does, of course, mean "ambiguous" (I hope).

He does, of course, mean "ambiguous" (I hope).

Indeed I do.

Dyslexia rules KO

I'd give my right arm to be ambidextrous.

Dyslexia rules KO

I have dailysex too!

Thanks Grumpy_Mike and AWOL.

One problem with serial communications with the arduino is that there is no serial port to do any debugging. Try adding some LEDs (and resistors) to allow you sketch to light them up so you can see where you are in it.

We worked around this by using SoftwareSerial library. Wiz110SR is connected to a SofwareSerial port and we can visualize its output “forwarding” the received variables to the hardware serial port (USB, pins 0,1)

I’ve read that SoftwareSerial has some timing issues but it worked fine so far.

It took some time to get to the appropriate delays needed to restart the module (that’s not SoftwareSerial’s fault anyway?) but finally we got a working code.

This is the code in case someone wants to save some time:

void wizrestart() {
  
delay(3000);
  mySerial.print("+");
  delay(500);
  mySerial.print("+");
  delay(500);
  mySerial.print("+");
  delay(500);
  mySerial.print("<WR>");
  delay (3000);
  
}

In case you use it remember to:

#include <SoftwareSerial.h>

or change “mySerial.print()” for “Serial.print()”