Bonjour alors j’ai un programme qui me permet d’envoyer des requêtes sur un serveur externe, je l’ai réaliser avec un shield Ethernet.
Le problème c’est que mon chef de stage à décidé de le faire par Wifi au lieu de passer par câble Ethernet.
Pouvez-vous m’aider à à le corriger pour que mon programme marche en WiFi?
#include <SPI.h> // needed for Arduino versions later than 0018
#include <Ethernet2.h>
#include <EthernetUdp2.h> // UDP library from: bjoern@cs.stanford.edu 12/30/2008
#include <Server.h>
#include <Client.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0x90, 0xA2, 0xDA, 0x10, 0x7A, 0x68 };
IPAddress ip(192, 168, 1, 168);
EthernetClient client;
// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char ReplyBuffer[] = "acknowledged"; // a string to send back
// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
// un bouton poussoir connecté à la broche 1
int bouton=8;
int bouton2=4;
const int buttonPin = 8;
const int buttonPin2 = 4;
int buttonState = 0;
int buttonState2 = 0;
int ledpin=13;
int ledpin1=12;
int ledpin2=7;
//---- tableau de l'adresse IP de la carte Arduino
byte ipLocal[] = { 192,168,1,183 }; // le réseau local a numéro 192.168.1.x
//----- tableau de l'adresse de la passerelle ---
//byte passerelle[] = { 192, 168, X, X }; // l'adresse du PC de connexion à internet ou de la box
//----- tableau du masque de sous réseau
//byte masque[] = { 255, 255, 255, 0 }; // idem masque sous-réseau du PC ou de la box : 255.255.255.0
//---- IP du serveur distant de connexion ----
byte server[] = { 192,168,1,149 };
void setup() {
//---- initialise la connexion Ethernet avec l'adresse MAC du module Ethernet, l'adresse IP Locale
//---- l'adresse IP de la passerelle internet et le masque du réseau local
Ethernet.begin(ipLocal);
Udp.begin(9000);
delay(1000); // donne le temps à la carte Ethernet de s'initialiser
Serial.begin(9600);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(ledpin,OUTPUT);
pinMode(ledpin1,OUTPUT);
pinMode(ledpin2,OUTPUT);
}
void loop() {
//---- connexion au serveur distant ----
Serial.println("Connexion vers serveur en cours...");
int testConnexion = true;
if (testConnexion==true); // si la connexion du client a réussi
Serial.println("Connexion au serveur reussie");
int val=digitalRead(bouton);
if(val==LOW){
digitalWrite(ledpin,HIGH);
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2,LOW);
delay(1000);
digitalWrite(ledpin,LOW);
delay(1000);
digitalWrite(ledpin1, LOW);
delay(1000);
digitalWrite(ledpin2,HIGH);
Serial.println("Envoi d'une requete HTTP au serveur");
client.connect(server, 9000);
client.println("GET /run HTTP/1.1");
client.println("Host: 192.168.1.149");
Serial.println("La partie a commencé!");
client.println();
}
int val2=digitalRead(bouton2);
if(val2==HIGH){
Serial.println("Envoi d'une requete HTTP au serveur");
client.connect(server, 9000);
client.println("GET /stop HTTP/1.1");
client.println("Host: 192.168.1.149");
Serial.println("Partie terminée");
client.println();
digitalWrite(ledpin,LOW);
digitalWrite(ledpin1,LOW);
digitalWrite(ledpin2,LOW);
}
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
Udp.write("label: debut");
Udp.endPacket();
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
// check if the pushbutton is pressed.
if (buttonState == LOW);
if (buttonState2 ==HIGH);
// 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 remote = Udp.remoteIP();
for (int i =0; i < 4; i++)
{
Serial.print(remote[i], DEC);
if (i < 3)
{
Serial.print(".");
}
}
Serial.print(", port ");
Serial.println(Udp.remotePort());
// read the packet into packetBufffer
Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
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();
}
delay(10);
}
Ps: adresse ip d’exemples
Merci d’avance!