Paso 1: Asignar IP y MAc a la placa Arduino
Subir este programa a ARDUINO.TAMBIÉN CAMBIAR SU MAC E IP SEGÚN LA RED.
/*
UDPSendReceive.pde:
Este bosquejo recibe cadenas de mensajes UDP, imprime al puerto serie
y envía una cadena de "reconocer" de nuevo al remitente
Un esquema de procesamiento se incluye en el final del archivo que se puede utilizar para enviar
y mensajes recibidos para la prueba con un ordenador.
creado el 21 de agosto de 2010
por Michael Margolis
Este código es de dominio público.
*/
#include < SPI.h > / / necesario para las versiones de Arduino más adelante que 0018
#include < Ethernet.h >
#include < EthernetUdp.h > / / Biblioteca UDP: bjoern 30/12/2008
#include < SoftwareSerial.h >
Introduzca una dirección de MAC y dirección IP para el controlador a continuación.
La dirección IP dependerá de tu red local:
mac de bytes [] = {0x90, 0xA2, 0xDA, 0x0D, 0x8B, 0x8F};
Ip dirección IP (192 168 1, 105);
Dirección IP ip1 (192, 168, 1, 101);
Server(8032) de EthernetServer;
unsigned int PuertoLocal = 8032;
entrada Boolean = 0;
puerto local a escuchar el
búferes de recepción y envío de datos
char packetBuffer [UDP_TX_PACKET_MAX_SIZE]; buffer para paquetes entrantes,
char ReplyBuffer [] = "reconocido"; una cadena a enviar de vuelta
Una instancia de EthernetUDP que nos permiten enviar y recibir paquetes sobre UDP
EthernetUDP Udp;
void setup() {}
Inicie el Ethernet y UDP:
Ethernet.Begin(Mac,IP);
UDP.Begin(localPort);
pinMode(2,OUTPUT);
Serial.Begin(9600);
}
void loop() {}
/*
Cliente EthernetClient = server.available();
Si {} (cliente)
una solicitud http termina con una línea en blanco
Boolean currentLineIsBlank = true;
mientras (client.connected()) {}
Si (client.available()) {}
char c = client.read();
Si has llegado hasta el final de la línea (recibió una nueva línea
carácter) y la línea está en blanco, ha terminado la solicitud http,
para que puedan enviar una respuesta
Lee cadena URL desde $ al primer espacio en blanco
Si (entrada & & c == ' ') {}
entrada = 0;
}
Si (c == '$') {}
entrada = 1;
}
Comprueba la URL string $1 o $2
if(Incoming == 1) {}
Serial.println(c);
Si (c == 'a') {}
Serial.println("ON");
digitalWrite (2, alto);
int rd=digitalRead(2);
Delay(10);
Server.Write("ON");
Delay(10);
Serial.println(RD);
}
Si (c == 'b') {}
Serial.println("OFF");
digitalWrite (2, bajo);
int rd=digitalRead(2);
Delay(10);
Server.Write("OFF");
Serial.println(RD);
Delay(10);
}
}
Si (c == '\n') {}
vas a empezar una nueva línea
currentLineIsBlank = true;
}
else if (c! = '\r') {}
Has conseguido un carácter en la línea actual
currentLineIsBlank = false;
}
}
}
darle tiempo al navegador de web para recibir los datos
Delay(10);
Client.STOP();
}
*/
Si se dispone de datos, leer un paquete
packetSize int = Udp.parsePacket();
Serial.println(packetSize);
if(packetSize)
{
Serial.Print ("paquete recibido de tamaño");
Serial.println(packetSize);
Serial.Print ("desde");
Dirección IP remoto = Udp.remoteIP();
para (int i = 0; i < 4; i ++)
{
Serial.Print (mando a distancia [i], DEC);
Si (i < 3)
{
Serial.Print(".");
}
}
Serial.Print (", puerto");
Serial.println(UDP.remotePort());
Lea el paquete en packetBufffer
UDP.Read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
Serial.println("Contents:");
Serial.println(packetBuffer);
Serial.println(packetBuffer[0]);
{if(packetBuffer[0]=='1')}
digitalWrite(2,HIGH);
} else {} if(packetBuffer[0]=='2')
digitalWrite(2,LOW);
}
enviar una respuesta, a la dirección IP y el puerto que nos envió el paquete recibido
Udp.beginPacket(Udp.remoteIP(),Udp.remotePort());
UDP.Write ("WAHh BHurA");
Udp.endPacket();
}
/ * Udp.beginPacket(ip1,8032);
UDP.Write(ReplyBuffer);
Udp.endPacket();
Delay(400);
Client.STOP(); * /
}
/*
Boceto para ejecutar este ejemplo de procesamiento
=====================================================
Ejemplo de procesamiento de UDP para enviar y recibir datos de cadena de Arduino
presione cualquier tecla para enviar el mensaje de "Hola Arduino"
Import hypermedia.net.*;
UDP udp; definir el objeto de la UDP
void setup() {}
UDP = nuevo UDP (esto, 6000); crear una nueva conexión de datagramas en el puerto 6000
UDP.log (true); <--impresión de la actividad de conexión
UDP.Listen (true); y espere el mensaje entrante
}
void draw()
{
}
{} void keyPressed()
String ip = "192.168.1.177"; la dirección IP remota
int puerto = 8888; el puerto de destino
UDP.Send ("Hola mundo", ip, puerto); el mensaje a enviar
}
void recibir (byte [] datos) {/ / <--controlador predeterminado
void recibir (byte [] datos, ip cadena, int puerto) {/ / <--controlador extendido
para (int i = 0; i < data.length; i ++)
Print(Char(Data[i]));
println();
}
*/