diff options
| author | Federico Fissore <f.fissore@arduino.cc> | 2013-05-13 16:58:10 +0200 | 
|---|---|---|
| committer | Federico Fissore <f.fissore@arduino.cc> | 2013-05-13 16:58:10 +0200 | 
| commit | b70954ea256f94afdd941e2c89a086887b496c13 (patch) | |
| tree | bd9fb74f61b1351a32b8b48cef8f04863d9d6df8 /libraries/WiFi/examples/WiFiUdpSendReceiveString | |
| parent | c48c0f9e2cebe0e3ebda7aa5c4f9096b9586ed9e (diff) | |
| parent | 7207108255a772474b322151cb0fd113e8030afe (diff) | |
Merge remote-tracking branch 'arduino/ide-1.5.x' into ide-1.5.x-discovery
Diffstat (limited to 'libraries/WiFi/examples/WiFiUdpSendReceiveString')
| -rw-r--r-- | libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino | 112 | 
1 files changed, 112 insertions, 0 deletions
diff --git a/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino b/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino new file mode 100644 index 0000000..eb11295 --- /dev/null +++ b/libraries/WiFi/examples/WiFiUdpSendReceiveString/WiFiUdpSendReceiveString.ino @@ -0,0 +1,112 @@ + +/* +  WiFi UDP Send and Receive String +  + This sketch wait an UDP packet on localPort using a WiFi shield. + When a packet is received an Acknowledge packet is sent to the client on port remotePort +  + Circuit: + * WiFi shield attached +  + created 30 December 2012 + by dlf (Metodo2 srl) + + */ + + +#include <SPI.h> +#include <WiFi.h> +#include <WiFiUdp.h> + +int status = WL_IDLE_STATUS; +char ssid[] = "yourNetwork"; //  your network SSID (name)  +char pass[] = "secretPassword";    // your network password (use for WPA, or use as key for WEP) +int keyIndex = 0;            // your network key Index number (needed only for WEP) + +unsigned int localPort = 2390;      // local port to listen on + +char packetBuffer[255]; //buffer to hold incoming packet +char  ReplyBuffer[] = "acknowledged";       // a string to send back + +WiFiUDP Udp; + +void setup() { +  //Initialize serial and wait for port to open: +  Serial.begin(9600);  +  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); +  }  +   +  // attempt to connect to Wifi network: +  while ( status != WL_CONNECTED) {  +    Serial.print("Attempting to connect to SSID: "); +    Serial.println(ssid); +    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:     +    status = WiFi.begin(ssid); +   +    // wait 10 seconds for connection: +    delay(10000); +  }  +  Serial.println("Connected to wifi"); +  printWifiStatus(); +   +  Serial.println("\nStarting connection to server..."); +  // if you get a connection, report back via serial: +  Udp.begin(localPort);   +} + +void loop() { +     +  // if there's data available, read a packet +  int packetSize = Udp.parsePacket(); +  if(packetSize) +  {    +    Serial.print("Received packet of size "); +    Serial.println(packetSize); +    Serial.print("From "); +    IPAddress remoteIp = Udp.remoteIP(); +    Serial.print(remoteIp); +    Serial.print(", port "); +    Serial.println(Udp.remotePort()); + +    // read the packet into packetBufffer +    int len = Udp.read(packetBuffer,255); +    if (len >0) packetBuffer[len]=0; +    Serial.println("Contents:"); +    Serial.println(packetBuffer); +     +    // send a reply, to the IP address and port that sent us the packet we received +    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); +    Udp.write(ReplyBuffer); +    Udp.endPacket(); +   } +} + + +void printWifiStatus() { +  // print the SSID of the network you're attached to: +  Serial.print("SSID: "); +  Serial.println(WiFi.SSID()); + +  // print your WiFi shield's IP address: +  IPAddress ip = WiFi.localIP(); +  Serial.print("IP Address: "); +  Serial.println(ip); + +  // print the received signal strength: +  long rssi = WiFi.RSSI(); +  Serial.print("signal strength (RSSI):"); +  Serial.print(rssi); +  Serial.println(" dBm"); +} + + + +  | 
