Je sais que l'udp avait déja été conseillé, ainsi que les boucles mais je n'y suis pas parvenu a faire mes modifs.
Mon code C# en entier:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using System.Net.Sockets;
namespace Domohome_v1._0
{
/// <summary>
/// Logique d'interaction pour MainWindow.xaml
/// </summary>
public partial class Gestion : Window
{
Socket _scl = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
public Gestion()
{
InitializeComponent();
try
{
_scl.Connect(System.Net.IPAddress.Parse("192.168.1.177"), 1337);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("9"); // Allumer la cuisine
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button6_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("n");// Eteindre la cuisine
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button2_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("1");// allumer le salon
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button7_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("2");// Eteindre le salon
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button3_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("7"); //Allumer la salle de bain
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button8_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("8"); //Eteindre la salle de bain
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button4_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("3");// allumer la chambre 1
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button9_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("4");// Eteindre la chambre 1
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button5_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("5");// allumer l'entrée
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button10_Click(object sender, RoutedEventArgs e)
{
try
{
byte[] Message = Encoding.ASCII.GetBytes("6");// éteindre l'entrée
int OctetsEnvoyes = _scl.Send(Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button11_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
byte pwm;
pwm = Convert.ToByte(slider1.Value);
byte[] Csharp = {pwm};
int OctetsEnvoye = _scl.Send(Csharp);
textBox1.Text = Convert.ToString (pwm);
}
}
}
Voici mon code Arduino
#include <SPI.h>
#include <Ethernet.h>
/* Détails technique de la connexion ethernet */
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1, 177 };
byte gateway[] = { 192,168,1, 1 };
// Attachement d'un objet "server" sur le port 1337
Server server(1337);
///////////////Décalration du Pin 9/////////////////
int LED = 9;
void setup()
{
// Configuration de la ethernet shield et du server
Ethernet.begin(mac, ip, gateway);
server.begin();
// Mise en sortie des broches (par défaut éteinte)
pinMode(2, OUTPUT); // Salon
digitalWrite(2, LOW);
pinMode(3, OUTPUT); // Chambre 1
digitalWrite(3, LOW);
pinMode(5, OUTPUT);// Entrée
digitalWrite(5, LOW);
pinMode(6, OUTPUT);// Salle de bain
digitalWrite(6, LOW);
pinMode(7, OUTPUT); // Cuisine
digitalWrite(7, LOW);
//////////////////////Mise en sortie du PIN PWM 9///////////////
pinMode(LED, OUTPUT);
}
void loop()
{
byte Csharp;
// Attente de la connexion d'un client
Client client = server.available();
if (client && client.connected()) {
// si le client nous envoi quelque chose
if (client.available() > 0) {
// On regarde ce que le client nous demande
switch(client.read()){
case '1': // allumer le salon
digitalWrite(2, HIGH);
break;
case '2': // éteindre le salon
digitalWrite(2, LOW);
break;
case '3': // allumer la chambre 1
digitalWrite (3, HIGH);
break;
case '4': // éteindre la chambre 1
digitalWrite(3, LOW);
break;
case '5': // allumer l'entrée
digitalWrite (5, HIGH);
break;
case '6': // éteindre l'entrée
digitalWrite(5, LOW);
break;
case '7': // allumer la salle de bain
digitalWrite (6, HIGH);
break;
case '8': // éteindre la salle de bain
digitalWrite(6, LOW);
break;
case '9': // allumer la cuisine
digitalWrite (7, HIGH);
break;
case 'n': // éteindre la cuisine
digitalWrite(7, LOW);
break;
/* case '11': // allumer la chambre 1
digitalWrite (3, HIGH);
break;
case '12': // éteindre la chambre 1
digitalWrite(3, LOW);
break;
*/
////////////////Variateur de tension au PIN PWM 9/////////////////////
Csharp = client.read();
analogWrite(LED, Csharp);
///////////////////////////////////////////////////////////////////////
}
}
}
}