Somfy

Pour connecter une télécommande Telis RTS Somfy :

15670535858_e024130a51_o 15832227336_4f84ed88f1_o

Souder pour chaque bouton la patte haut droite de chaque, en connectant celle patte à la masse, le bouton est activé.

La masse est en noir sur le schéma, le +3,3v en orange.

La connexion à la carte Arduino se fait via optocoupleur selon le schéma suivant :

20160405_180242-1

2014-11-24 08.39.53

Un exemple de code :

 /////////////////////////////////////////////  
 /// SOMFY   
 // Saisie via le moniteur série des ordres :  
 // Haut - Milieu - Bas  
 ///////////////////////////////////////////  
 #define Haut  2  
 #define Milieu 5  
 #define Bas  6  
 String s_cmd = "";  
 void setup() {  
  // initialize the digital pin as an output.  
  pinMode(Haut, OUTPUT);  
  pinMode(Milieu, OUTPUT);  
  pinMode(Bas, OUTPUT);  
  //-- initialize serial communications and wait for port to open:  
  Serial.begin(9600);  
 }  
 void loop() {   
  keyhandle();  
 }  
 //////////  
 //-- SOMFY Bouton  
 void SomfyOn(int Pin)  
 { digitalWrite(Pin, HIGH);  
  delay(500);  
  digitalWrite(Pin, LOW);  
 }  
 //////////////----------------------------------------  
 // Acquisition de commande via la console ou le port série  
 //----------------------------------------  
 void keyhandle()  
 { int  i_key;  
  i_key = Serial.read();   
  if (i_key == 8 or i_key == 127)  
  {  
   int i_cl = s_cmd.length() - 1;  
   s_cmd = s_cmd.substring(0, i_cl);  
   Serial.write(8); Serial.write(32); Serial.write(8); i_key = 0;  
  }  
  if (i_key > 64 and i_key < 90) {  
   i_key += 32;   
  }  
  if (i_key >= 32) {  
   s_cmd = s_cmd + char(i_key);  
   Serial.write(i_key);  
  }  
  if (i_key == 13) {  
   CLI_exec();  
  }  
 }  
 //----------------------------------------  
 // Traitement des commandes retourne OK ou ERROR  
 //----------------------------------------  
 int CLI_exec()  
 {  
  int i_ret = -1;  
  s_cmd.toUpperCase();  
  if (s_cmd == "BAS")  
  {  
   //-- Switch On  
   Serial.println(" : On baisse le volet");  
   SomfyOn(Bas);  
   i_ret = 0;  
  }  
  if (s_cmd == "HAUT")  
  {  
   //-- Switch On  
   Serial.println(" : On ouvre le volet");  
   SomfyOn(Haut);  
   i_ret = 0;  
  }  
  if (s_cmd == "MILIEU")  
  {  
   //-- Switch On  
   Serial.println(" : Touche milieu");  
   SomfyOn(Milieu);  
   i_ret = 0;  
  }  
  if (i_ret == -1)  
   Serial.println(" : ERROR");  
  else  
   Serial.println("OK");  
  s_cmd = "";  
 }  
2 comments on “Somfy
  1. Nico dit :

    Intéressant, merci. Mais quel type d’optocoupleur avez-vous utilisé? Pourquoi ne pas utiliser le 3.3V de l’Arduino pour se passer de la pile de la télécommande?

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories