Cette application allumez dirigé sur arduino.
Cette application fonctionne aussi dans votre LAN.
Besoin de matériel :
1: arduino uno
2: arduino ethernet sheild
3: câble RJ45
4: LED
5. Téléphone android
Logiciel nécessite : 1:Ecllipse ide configuration avec Android SDK Adroid de Developement.
2: Arduino 2.0
Étape 1: assignant MAc et IP de la carte Arduino
TÉLÉCHARGER CE PROGRAMME SUR ARDUINO.
ÉGALEMENT MODIFIER VOTRE MAC ET IP SELON VOTRE RÉSEAU.
/*
UDPSendReceive.pde :
Cette esquisse reçoit les chaînes des messages UDP, imprime sur le port série
et une chaîne de « reconnaître » renvoie à l’expéditeur
Une esquisse de traitement est incluse à la fin du fichier qui peut être utilisé pour envoyer
et les messages reçus pour des tests avec un ordinateur.
créé le 21 août 2010
par Michael Margolis
Ce code se trouve dans le domaine public.
*/
#include < SPI.h > / / nécessaire pour les versions de l’Arduino plus tard que 0018
#include < Ethernet.h >
#include < EthernetUdp.h > / / Bibliothèque à partir d’UDP : bjoern 30/12/2008
#include < SoftwareSerial.h >
Entrez une adresse MAC et l’adresse IP de votre contrôleur ci-dessous.
L’adresse IP sera tributaire de votre réseau local :
la mac de Byte [] = {0x90, 0xA2, 0xDA, 0x0D, 0x8B, 0x8F} ;
IPAddress ip (192, 168, 1, 105) ;
IPAddress ip1 (192, 168, 1, 101) ;
EthernetServer server(8032) ;
unsigned int localPort = 8032 ;
booléenne entrant = 0 ;
port local à écouter sur
tampons de réception et envoi de données
char packetBuffer [UDP_TX_PACKET_MAX_SIZE] ; tampon de tenir un paquet entrant,
char ReplyBuffer [] = "a reconnu" ; une chaîne de renvoyer
Une instance de EthernetUDP de nous laisser envoyer et recevoir des paquets UDP
EthernetUDP Udp ;
void setup() {}
Démarrez les services Ethernet et UDP :
Ethernet.Begin(Mac,IP) ;
UDP.Begin(localPort) ;
pinMode(2,OUTPUT) ;
Serial.Begin(9600) ;
}
void loop() {}
/*
EthernetClient client = server.available() ;
Si {(client)
une requête http se termine par une ligne vide
Boolean currentLineIsBlank = true ;
tandis que (client.connected()) {}
Si (client.available()) {}
char c = client.read() ;
Si vous avez obtenu à la fin de la ligne (a reçu un saut de ligne
caractère) et la ligne est vide, la requête http est terminée,
ainsi vous pouvez envoyer une réponse
lit de chaîne de requête URL de $ à premier espace blanc
Si (entrants & & c == "") {}
entrants = 0 ;
}
Si (c == « $») {}
entrants = 1 ;
}
Contrôles pour la chaîne d’URL $1 ou $2
if(Incoming == 1) {}
Serial.println(c) ;
Si (c == « a ») {}
Serial.println("on") ;
digitalWrite (2, haut) ;
int rd=digitalRead(2) ;
Delay(10) ;
Server.Write("on") ;
Delay(10) ;
Serial.println(RD) ;
}
Si (c == « b ») {}
Serial.println("OFF") ;
digitalWrite (2, basse) ;
int rd=digitalRead(2) ;
Delay(10) ;
Server.Write("OFF") ;
Serial.println(RD) ;
Delay(10) ;
}
}
Si (c == « \n ») {}
vous commencez une nouvelle ligne
currentLineIsBlank = true ;
}
ElseIf (c! = « \r ») {}
vous avez obtenu un personnage sur la ligne courante
currentLineIsBlank = false ;
}
}
}
donner le temps de navigateur web pour recevoir les données
Delay(10) ;
client.Stop() ;
}
*/
Si la donnée n’est disponible, lire un paquet
int packetSize = Udp.parsePacket() ;
Serial.println(PacketSize) ;
if(PacketSize)
{
Serial.Print ("paquet reçues de taille") ;
Serial.println(PacketSize) ;
Serial.Print ("de") ;
Distance de IPAddress = Udp.remoteIP() ;
pour (int i = 0; i < 4; i ++)
{
Serial.Print (télécommande [i], DEC) ;
Si (j’ai < 3)
{
Serial.Print(".") ;
}
}
Serial.Print (", port") ;
Serial.println(UDP.RemotePort()) ;
lire le paquet 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) ;
}
Envoyer une réponse, à l’adresse IP et le port qui nous a envoyé le paquet, nous avons reçu
Udp.beginPacket(Udp.remoteIP(),Udp.remotePort()) ;
UDP.Write (« WAHh blocq") ;
Udp.endPacket() ;
}
/ * Udp.beginPacket(ip1,8032) ;
UDP.Write(ReplyBuffer) ;
Udp.endPacket() ;
Delay(400) ;
client.Stop(); * /
}
/*
Croquis d’exécuter cet exemple de traitement
=====================================================
Exemple de traitement UDP pour envoyer et recevoir des données de type chaîne de Arduino
Appuyez sur n’importe quelle touche pour envoyer le message « Bonjour » Arduino
Import hypermedia.net.* ;
UDP udp ; définir l’objet UDP
void setup() {}
UDP = nouvelle UDP (cela, 6000) ; créer une nouvelle connexion de datagramme sur le port 6000
UDP.log (true) ; <--imprimé l’activité de connexion
UDP.Listen (true) ; et attendez le message entrant
}
void draw()
{
}
keyPressed() Sub {}
Chaîne ip = « 192.168.1.177 » ; l’adresse IP distante
int port = 8888 ; le port de destination
UDP.Send ("Hello World", ip, port) ; le message à envoyer
}
vide recevez (byte [] data) {/ / <--gestionnaire par défaut
vide recevez (données de byte [], String ip, int port) {/ / <--gestionnaire d’étendue
pour (int i = 0; i < data.length; i ++)
Print(Char(Data[i])) ;
println() ;
}
*/