Go Down

Topic: Commande de relais par usb/prossessing sous ubuntu (Read 1 time) previous topic - next topic

supperdd

Bonjours je voudrais savoir comment je peux faire pour commander des relais pour un petit projet domotique ...
je vous explique, j'ai un serveur sous ubuntu-server je voudrais y connecter mon arduino uno par usb et le commander via prossesing genre:
un clic sur un bouton de la page web
le serveur le communique a l'arduino
l'arduino active le relais (un certain temps)

mon code fonctionne sous win7 qd j'apuie sur la touche "6" la led de la borne 6 s'allume etc...
mais je ne sait pas comment faire sous linux
avez vous une idée ???

merci d'avance

voila mon code tout dégueu (je ne m'is connais pas du tout )

Code: [Select]



int incomingByte = 0;   // variable pour lecture de l'octet entrant
int relais1 = 6;        // Monté
int relais2 = 7;        // Descente
int relais3 = 8;
int relais4 = 9;
int relais5 = 10;
int relais6 = 11;
int relais7 = 12;
int relais8 = 13;

void setup() {
  Serial.begin(9600);     // ouvre le port série et fixe le débit à 9600 bauds
 
  pinMode(relais1, OUTPUT);
  pinMode(relais2, OUTPUT);
  pinMode(relais3, OUTPUT);
  pinMode(relais4, OUTPUT);
  pinMode(relais5, OUTPUT);
  pinMode(relais6, OUTPUT);
  pinMode(relais7, OUTPUT);
  pinMode(relais8, OUTPUT);
}


/// Allume la LED, en affichant un message
void led_on1() {
  Serial.println("J'allume la LED1");
  digitalWrite(relais1, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off1() {
  Serial.println("J'éteins la LED1");
  digitalWrite(relais1, LOW);    // set the LED off
}


/// Allume la LED, en affichant un message
void led_on2() {
  Serial.println("J'allume la LED2");
  digitalWrite(relais2, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off2() {
  Serial.println("J'éteins la LED2");
  digitalWrite(relais2, LOW);    // set the LED off
}


/// Allume la LED, en affichant un message
void led_on3() {
  Serial.println("J'allume la LED3");
  digitalWrite(relais3, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off3() {
  Serial.println("J'éteins la LED3");
  digitalWrite(relais3, LOW);    // set the LED off
}


/// Allume la LED, en affichant un message
void led_on4() {
  Serial.println("J'allume la LED4");
  digitalWrite(relais4, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off4() {
  Serial.println("J'éteins la LED4");
  digitalWrite(relais4, LOW);    // set the LED off
}


/// Allume la LED, en affichant un message
void led_on5() {
  Serial.println("J'allume la LED5");
  digitalWrite(relais5, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off5() {
  Serial.println("J'éteins la LED5");
  digitalWrite(relais5, LOW);    // set the LED off
}


/// Allume la LED, en affichant un message
void led_on6() {
  Serial.println("J'allume la LED6");
  digitalWrite(relais6, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off6() {
  Serial.println("J'éteins la LED6");
  digitalWrite(relais6, LOW);    // set the LED off
}


/// Allume la LED, en affichant un message
void led_on7() {
  Serial.println("J'allume la LED7");
  digitalWrite(relais7, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off7() {
  Serial.println("J'éteins la LED7");
  digitalWrite(relais7, LOW);    // set the LED off
}

/// Allume la LED, en affichant un message
void led_on8() {
  Serial.println("J'allume la LED8");
  digitalWrite(relais8, HIGH);   // set the LED on
}

/// Eteint la LED, en affichant un message
void led_off8() {
  Serial.println("J'éteins la LED8");
  digitalWrite(relais8, LOW);    // set the LED off
}




void loop() {
  char cmd;
  //relais1
  //commande de volet relais actif pendant 10sec seulement
  //Monter
  if (Serial.available()>0) { // au moins 1 caractère entré ?
    cmd = Serial.read();      // lit un caractère
    switch(cmd) {
      case '6':               // volet droit monte                                      je tape 6 ds le moniteur serie
       led_on1();            //active le relais                                          la led de la borne 6 s'allume
       delay(20000);           //patiente 20seconde que le volet soit haut                j'attend 20sec
       led_off1();             //arrete le relais                                          la led s'eteind
        break;                // sortie du switch{}                                     
     
      case '7':               //volet droit descend
       led_on2();              //active le relais
       delay(20000);           //patiente 20seconde que le volet soit haut
       led_off2();             //arrete le relais
       break;
       
       case '8':               // volet gauche monte
        led_on3();              //active le relais
        delay(20000);           //patiente 20seconde que le volet soit haut
        led_off3();             //arrete le relais
       break;
       
       case '9':               // volet gauche descend
        led_on4();            //active le relais
        delay(20000);           //patiente 20seconde que le volet soit haut
        led_off4();             //arrete le relais
       break;
       
       case '10':               // volet sdb monte
        led_on5();             //active le relais
        delay(20000);           //patiente 20seconde que le volet soit haut
        led_off5();             //arrete le relais
       break;
       
       case '11':               // volet sdb descend
        led_on6();            //active le relais
        delay(20000);           //patiente 20seconde que le volet soit haut
        led_off6();             //arrete le relais
       break;                // sortie du switch{}
       
       case '12':               // volet droit monte
         led_on7();            //active le relais
         delay(20000);           //patiente 20seconde que le volet soit haut
         led_off7();             //arrete le relais
        break;
       
       case '13':               // volet droit monte
         led_on8();            //active le relais
         delay(20000);           //patiente 20seconde que le volet soit haut
         led_off8();             //arrete le relais
        break;
       
       
  }
  }
}
arduino uno ,arduino 1.8.7
HP ProLiant DL580 Generation 4 :proxmox + debian + jeedom
intel Intel Core i7 :xubuntu
raspberry pi b,b+

icare

Bonjour,
Sous linux as-tu les droits d'écriture sur les ports d'entrées / sorties ?
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

supperdd

surement, mais je ne sait pas tres bien comment je doit m'y prendre pour verifier!
arduino uno ,arduino 1.8.7
HP ProLiant DL580 Generation 4 :proxmox + debian + jeedom
intel Intel Core i7 :xubuntu
raspberry pi b,b+

marjun

si jamais tu trouve la solution à ton probleme ailleurs, viens le résoudre ici pour permettre aux autres d'apprendre quelques chose de ce topic.
---------
www.deltadomotique.fr

fdufnews


Bonjour,
Sous linux as-tu les droits d'écriture sur les ports d'entrées / sorties ?
@+

Ce n'est pas nécessaire puisqu'il commande l'arduino par le port série virtuel.

Go Up