Problem about communication between arduino uno and arduino wifishield

Hello everyone. I have a problem about communication between Arduino uno board and Arduino wifi shield.

I want to use my computer to control the movement of the Arduino robot through wifi. Currently, I have already established a wifi system between Arduino wifi shield and my computer. But the problem is that the robot does have any reactions after the wifi shield received the commands from my computer.

This is my code:

#include <SPI.h>
#include <WiFi.h>
#include <WiFiUdp.h>
#include <Servo.h>

const int E1 = 5; // number of the PWMA pin for right wheel
const int M1 = 4; // number of the DIRA pin for right wheel
const int E2 = 6; // number of the PWMB pin for left wheel
const int M2 = 7; // number of the DIRB pin for left wheel

int status = WL_IDLE_STATUS;
char ssid[] = "KONGWE"; //  your network SSID (name)
char pass[] = "LSM104323";    // your network password (use for WPA, or use as key for WEP)

unsigned int localPort = 2390;      // local port to listen on

char packetBuffer[255]; //buffer to hold incoming packet

WiFiUDP Udp;

void setup() {
  //Initialize serial and wait for port to open:
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while (true);

  String fv = WiFi.firmwareVersion();
  if ( fv != "1.1.0" )
    Serial.println("Please upgrade the firmware");

  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:
  Serial.println("Connected to wifi");

  Serial.println("\nStarting connection to server...");
  // if you get a connection, report back via serial:

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if (packetSize)
    Serial.print("Received packet of size ");
    Serial.print("From ");
    IPAddress remoteIp = Udp.remoteIP();
    Serial.print(", port ");

    // read the packet into packetBufffer
    int len =, 255);
    if (len > 0) packetBuffer[len] = 0;

    char val =;
    if (val != -1)
      switch (val)
        case 'w': // move forward
          digitalWrite(E1, HIGH);
          digitalWrite(M1, HIGH);
          digitalWrite(E2, HIGH);
          digitalWrite(M2, HIGH);
          analogWrite(E1, 200); 
          analogWrite(E2, 200); 
      delay (3000);
    else {  //stop
      digitalWrite(E1, LOW);
      digitalWrite(M1, LOW);
      digitalWrite(E2, LOW);
      digitalWrite(M2, LOW);
      analogWrite(E1, 0);
      analogWrite(E2, 0);

  void printWifiStatus() {
    // print the SSID of the network you're attached to:
    Serial.print("SSID: ");

    // print your WiFi shield's IP address:
    IPAddress ip = WiFi.localIP();
    Serial.print("IP Address: ");

    // print the received signal strength:
    long rssi = WiFi.RSSI();
    Serial.print("signal strength (RSSI):");
    Serial.println(" dBm");

Below is the result from serial monitor. For this result I input ‘w’ in my computer to make robot move forward. The robot should move but it doesn’t.

Attempting to connect to SSID: KONGWE
Connected to wifi
IP Address:
signal strength (RSSI):-74 dBm

Starting connection to server...
Received packet of size 2
From, port 56984

__2.ino (3.12 KB)