Domotique : mon premier projet... Vive arduino !

Salut !
Alors concernant le code, je suis auto-didacte, et il est sale de chez sale, en fait je me contente d'un résultat qui fonctionne et avec mes études dans un tout autre domaine, je n'ai pas le temps que je voudrais pour pouvoir me perfectionner... Merci donc d'être indulgent :wink:

@mcvovol54 : J'ai tenté un autre projet, mais à base de legos mindstorm nxt. C'est un robot pilotable depuis une appli facebook... Le téléphone reçoit les instructions par le biais de la 3G, et pilote le robot par bluetooth, peut-être que cela peut te donner des idées pour ton hexapode (J'ai vu le projet, ambitieux, et très intéressant :wink: tu peux trouver une vidéo à cette adresse :

Concernant ma gare pilotée par le net

Le script python (qui tourne sur le PC, connecté à l'Arduino en USB par le biais du port com9)

#-*- coding: cp1252 -*-
import urllib
cmd = []
print "connecté"
print "Le programme tourne"
import serial


a = 0
b = 0
c = 0
d = 0
e = 0
f = 0

def recup():
        
                


  
                a1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum1.txt") ## Récup des valables; 1 fichier par led
                
                b1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum2.txt")
                
                c1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum3.txt")
                
                d1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum4.txt")

                e1 = urllib.urlopen("http://www.lucboutier.com/arduino/lum5.txt")

                f1 = urllib.urlopen("http://www.lucboutier.com/arduino/stop.txt")## Cette variable permet de couper le script, sinon, tuer le script sur le PC laisse le port com9 oqp
                time.sleep(1)
                if f1.readline == "STOP\r\n":
                        print 'killed !'
                        ser.close()
                if a1.readline != "":
                        a = a1.readline()
                        if a == "1a\r\n":
                                ser.write("a")

                        if a == "1e\r\n":
                                ser.write("b")
                if b1.readline != "":            
                        b = b1.readline()
                        if b == "2a\r\n":
                                ser.write("c")

                        if b == "2e\r\n":
                                ser.write("d")
                if c1.readline != "":            
                        c = c1.readline()
                        if c == "3a\r\n":
                                ser.write("e")

                        if c == "3e\r\n":
                                ser.write("f")
                if d1.readline != "":              
                        d = d1.readline()
                        if d == "4a\r\n":
                                ser.write("g")
                        if d == "4e\r\n":
                                ser.write("h")

                if e1.readline != '':
                        e = e1.readline()
                        if e == "5a\r\n":
                                ser.write("i")
                        if e == "5e\r\n":
                                ser.write("j")

                recup()
print "ouverture du port"
ser = serial.Serial()
ser.setPort("COM9")
ser.baudrate = 57600
ser.close()
ser.open()
print "port ouvert"
recup()
if (ser.isOpen()):
        recup()

Et le code qui tourne sur le arduino, non commenté

void setup() {                
  Serial.begin(57600); 
  pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
      pinMode(11, OUTPUT);
        pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
    pinMode(8, OUTPUT);
      pinMode(7, OUTPUT);
        pinMode(6, OUTPUT);
                pinMode(2, OUTPUT);
  
}

void loop() {
  if(Serial.available() >= 0){
    switch( byte( Serial.read() )) {
      case 'a':
          digitalWrite(13, HIGH);  
          break;
      case 'b':
          digitalWrite(13, LOW);   // set the LED on
          break;  
      case 'c':
          digitalWrite(12, HIGH);  
          break;
      case 'd':
          digitalWrite(12, LOW);   // set the LED on
          break;  
      case 'e':
          digitalWrite(11, HIGH);  
          break;
      case 'f':
          digitalWrite(11, LOW);   // set the LED on
          break;  
      case 'g':
          digitalWrite(10, HIGH);  
          break;
      case 'h':
          digitalWrite(10, LOW);   // set the LED on
          break;  
          
      case 'i':
          digitalWrite(9, HIGH);  
          break;

      case 'j':
          digitalWrite(9, LOW);   // set the LED on
          break;  
      case 'k':
          digitalWrite(8, HIGH);  
          break;
      case 'l':
          digitalWrite(8, LOW);   // set the LED on
          break;  
      case 'm':
          digitalWrite(7, HIGH);  
          break;
      case 'n':
          digitalWrite(7, LOW);   // set the LED on
          break;  
      case 'o':
          digitalWrite(6, HIGH); 
          break;
      case 'p':
          digitalWrite(6, LOW);   // set the LED on
          break;  
          
      case 'q':
          digitalWrite(2, HIGH);  
          break;
      case 'r':
          digitalWrite(2, LOW);   // set the LED on
          break;  
    }


  }
}