deze toepassing inschakelen leidde op arduino.
deze toepassing werkt ook in je LAN.
Hardware vereist:
1: arduino uno
2: arduino ethernet Shield
3: RJ45-kabel
4: LED
5. android telefoon
De software vereist: 1:Ecllipse ide met Android Developement Adroid SDK wilt opzetten.
2: Arduino 2.0
Stap 1: MAc- en IP-aan Arduino board toewijzen
DIT PROGRAMMA UPLOADEN NAAR ARDUINO.
OOK UW MAC- EN IP-VOLGENS UW NETWERK WIJZIGEN.
/*
UDPSendReceive.pde:
Deze schets tekenreeksen met UDP-bericht ontvangt, worden ze afgedrukt op de seriële poort
en stuurt een tekenreeks "erkennen" terug naar de afzender
Een Processing Schets vindt u aan het einde van het bestand dat kan worden gebruikt om te verzenden
en ontvangen berichten voor het testen met een computer.
gemaakt van 21 Aug 2010
door Michael Margolis
Deze code is in het publieke domein.
*/
#include < SPI.h > / / nodig voor Arduino versies later dan 0018
#include < Ethernet.h >
#include < EthernetUdp.h > / / UDP-bibliotheek: bjoern 12/30/2008
#include < SoftwareSerial.h >
Voer een MAC-adres en het IP-adres voor uw controller hieronder.
Het IP-adres zal afhankelijk van uw lokale netwerk zijn:
byte mac [] = {0x90, 0xA2, 0xDA, 0x0D, 0x8B, 0x8F};
IP-adres ip (192, 168, 1, 105);
IPAdres ip1 (192, 168, 1, 101);
EthernetServer server(8032);
unsigned int localPort = 8032;
Booleaanse inkomende = 0;
lokale poort te luisteren op
buffers voor het ontvangen en verzenden van gegevens
char packetBuffer [UDP_TX_PACKET_MAX_SIZE]; buffer te houden binnenkomend pakket,
char [ReplyBuffer] = "toegekend"; een tekenreeks om terug te sturen
Een exemplaar van de EthernetUDP te laten verzenden en ontvangen van pakketten via UDP
EthernetUDP Udp;
VOID Setup {}
Start de Ethernet en UDP:
Ethernet.begin(Mac,IP);
UDP.begin(localPort);
pinMode(2,OUTPUT);
Serial.begin(9600);
}
void loop {}
/*
EthernetClient client = server.available();
Als (client) {}
een http-verzoek eindigt met een lege regel
Boole currentLineIsBlank = waar;
terwijl (client.connected()) {}
Als (client.available()) {}
char c = client.read();
Als u toegang hebt verkregen tot het einde van de regel (ontvangen een newline
teken) en de regel is leeg, de http-aanvraag is beëindigd,
zodat u kunt een antwoord sturen
URL-reeks van $ naar eerste lege ruimte wordt gelezen
Als (binnenkomende & & c == ' ') {}
binnenkomende = 0;
}
Als (c == '$') {}
binnenkomende = 1;
}
Controles voor de URL-reeks $1 of $2
if(incoming == 1) {}
Serial.println(c);
Als (c == 'a') {}
Serial.println("on");
digitalWrite (2, HIGH);
int rd=digitalRead(2);
delay(10);
server.write("on");
delay(10);
Serial.println(RD);
}
Als (c == 'b') {}
Serial.println("off");
digitalWrite (2, laag);
int rd=digitalRead(2);
delay(10);
server.write("off");
Serial.println(RD);
delay(10);
}
}
Als (c == '\n') {}
je begint een nieuwe regel
currentLineIsBlank = true;
}
anders als (c! = '\r') {}
je hebt gekregen een teken op de huidige regel
currentLineIsBlank = false;
}
}
}
de web browser tijd geven om te ontvangen van de gegevens
delay(10);
client.stop();
}
*/
Als er gegevens beschikbaar is, gelezen een pakje
int packetomvang = Udp.parsePacket();
Serial.println(packetSize);
if(packetSize)
{
Serial.Print ("ontvangen pakje grootte");
Serial.println(packetSize);
Serial.Print ("uit");
Extern IPAdres = Udp.remoteIP();
for (int i = 0; ik < 4; i ++)
{
Serial.Print (extern [i], DEC);
Als (ik < 3)
{
Serial.Print(".");
}
}
Serial.Print (", port");
Serial.println(UDP.remotePort());
het pakket in packetBufffer lezen
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);
}
Verzend een antwoord, naar het IP-adres en de poort die stuurde ons het pakket we ontvingen
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(); * /
}
/*
Verwerking van de schets om uit te voeren met dit voorbeeld
=====================================================
Verwerking UDP-voorbeeld voor het verzenden en ontvangen van tekenreeksgegevens van Arduino
Druk op een toets om de "Hallo Arduino"-bericht te verzenden
importeren van hypermedia.net.*;
UDP-udp; de UDP-object definiëren
VOID Setup {}
UDP = nieuwe UDP (dit, 6000); Maak een nieuwe datagram verbinding op poort 6000
UDP.log (true); <--afdruk de verbindingsactiviteit
UDP.listen (true); en wacht op inkomende bericht
}
VOID draw()
{
}
ongeldig keyPressed() {}
String ip = "192.168.1.177"; het externe IP-adres
int poort 8888; = de haven van bestemming
UDP.send ("Hello World", ip, port); het bericht te sturen
}
VOID ontvangen (byte []) {/ / <--standaardhandler
VOID ontvangen (byte [] gegevens, String ip, int poort) {/ / <--uitgebreide handler
for (int i = 0; ik < data.length; i ++)
Print(char(data[i]));
println();
}
*/