Schalten Sie diese Anwendung auf Arduino geführt.
Diese Anwendung auch in Ihrem LAN arbeiten.
Hardware erforderlich:
1: Arduino Uno
2: Arduino Ethernet Shield
3: RJ45-Kabel
4: LED
5. android-Handy
Software erforderlich: 1:Ecllipse Ide mit Android Developement Android SDK einrichten.
2: Arduino 2.0
Schritt 1: Arduino-Board Mac- und IP-zuweisen
LADEN SIE DIESES PROGRAMM AUF ARDUINO.
ÄNDERN SIE AUCH IHRE MAC- UND IP-NETZWERK NACH.
/*
UDPSendReceive.pde:
Diese Skizze UDP Meldungszeichenfolgen erhält, gibt sie an den seriellen port
und sendet eine "anerkennen" Zeichenfolge zurück an den Absender
Eine Verarbeitung Skizze ist im Preis inbegriffen, am Ende der Datei, das zum Senden
und empfangenen Nachrichten zum Testen mit einem Computer.
21. August 2010 erstellt
von Michael Margolis
Dieser Code ist in der Public Domain.
*/
< SPI.h > #include / / benötigt für Arduino-Versionen später als 0018
#include < Ethernet.h >
< EthernetUdp.h > #include / / UDP-Bibliothek von: Bjoern 30.12.2008
#include < SoftwareSerial.h >
Geben Sie eine MAC-Adresse und IP-Adresse für Ihren Controller unten.
Die IP-Adresse werden abhängig von Ihrem lokalen Netzwerk:
Byte Mac [] = {0x90, 0xA2, 0xDA, 0x0D, 0x8B, 0x8F};
IP-Adresse Ip (192, 168, 1, 105);
IPAddress ip1 (192, 168, 1, 101);
EthernetServer server(8032);
unsigned Int LocalPort = 8032;
Boolesche eingehende = 0;
lokaler Port Abhören
Puffer für das empfangen und senden von Daten
Char PacketBuffer [UDP_TX_PACKET_MAX_SIZE]; Puffer, eingehende Paket enthalten,
Char ReplyBuffer [] = "anerkannt"; eine Zeichenfolge, die zurück zu senden
Eine EthernetUDP-Instanz, lassen uns senden und empfangen von Paketen über UDP
EthernetUDP Udp;
void setup() {}
Starten Sie das Ethernet und UDP:
Ethernet.Begin(Mac,IP);
UDP.Begin(localPort);
pinMode(2,OUTPUT);
Serial.Begin(9600);
}
void loop() {}
/*
EthernetClient Client = server.available();
Wenn (Client) {}
eine HTTP-Anforderung endet mit einer Leerzeile
Boolesche CurrentLineIsBlank = True;
während (client.connected()) {}
Wenn (client.available()) {}
Char c = client.read();
Wenn Sie bis zum Ende der Zeile bekommen haben (erhielt einen Zeilenumbruch
Zeichen) und die Zeile ist leer, die HTTP-Anforderung beendet wurde,
So können Sie eine Antwort senden.
liest die URL-Zeichenfolge ab $ zum ersten Leerzeichen
Wenn (eingehende & & C == "") {}
eingehenden = 0;
}
Wenn (c == '$') {}
eingehenden = 1;
}
Überprüft, ob die URL-Zeichenfolge $1 oder $2
If(Incoming == 1) {}
Serial.println(c);
Wenn (c == 'a') {}
Serial.println("on");
DigitalWrite (2, HIGH);
Int rd=digitalRead(2);
Delay(10);
Server.Write("on");
Delay(10);
Serial.println(RD);
}
Wenn (c == 'b') {}
Serial.println("off");
DigitalWrite (2, LOW);
Int rd=digitalRead(2);
Delay(10);
Server.Write("off");
Serial.println(RD);
Delay(10);
}
}
Wenn (c == '\n') {}
Sie gerade eine neue Zeile beginnen.
CurrentLineIsBlank = True;
}
ElseIf (c! = '\r') {}
Sie haben ein Zeichen in der aktuellen Zeile bekommen.
CurrentLineIsBlank = False;
}
}
}
Geben Sie die Web-Browser Zeit zum Empfangen von Daten
Delay(10);
Client.Stop();
}
*/
Wenn Daten vorhanden ist, lesen Sie ein Paket
Int PacketSize = Udp.parsePacket();
Serial.println(packetSize);
If(packetSize)
{
Serial.Print ("Received Paket Größe");
Serial.println(packetSize);
Serial.Print ("von");
IP-Adresse Remote = Udp.remoteIP();
für (Int ich = 0; ich < 4; i ++)
{
Serial.Print (Remote [i], DEC);
Wenn (ich < 3)
{
Serial.Print(".");
}
}
Serial.Print (", Port");
Serial.println(UDP.remotePort());
Lesen Sie das Paket in 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);
}
senden Sie eine Antwort auf die IP-Adresse und Port, die uns das Paket gesendet, die, das wir erhalten
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(); * /
}
/*
Verarbeitung von Skizze mit diesem Beispiel ausgeführt
=====================================================
Verarbeitung von UDP-Beispiel zum Senden und empfangen von String-Daten von Arduino
Jede Taste, die "Hallo Arduino" Nachricht senden
Import hypermedia.net.*;
UDP Udp; die UDP-Objekt definieren
void setup() {}
UDP = neue UDP (dies, 6000); Erstellen Sie eine neue Datagramm-Verbindung auf Port 6000
UDP.log (True); <--Ausdruck die Verbindungsaktivität
UDP.Listen (True); und wartet auf eingehende Meldung
}
void draw()
{
}
void keyPressed() {}
String-Ip = "192.168.1.177"; die remote IP-Adresse
Int Port = 8888; die Ziel-port
UDP.Send ("Hello World", Ip, Port); die zu sendende Nachricht
}
leere Empfangsdaten (Byte []) {/ / <--Standard-Handler
Leere erhalten (Byte []-Daten, IP-String, Int Port) {/ / <--erweiterte Handler
für (Int ich = 0; ich < data.length; i ++)
Print(char(Data[i]));
println();
}
*/