Arduino Yún + Wiegand

Bonjour, je travaille sur un projet personnel d'ouverture de porte à partir d'Arduino Yún et d'un lecteur de bagde Wiegand HID R10.
Pour le moment je cherche juste à faire en sorte que 2 lecteurs branchés sur les interruptions 0,1,2 et 3 se déclenchent quand je passe mon badge devant l'un ou l'autre. Les lecteurs sont alimentés par un transfo qui me sort du 12v DC (l'arduino ne délivrant pas assez de puissance).

Lors du test avec un seul lecteur, tout fonctionnait bien et j'avais l'identifiant du badge en retour dans le Serial. Avec les 2 lecteurs, celui branché sur les pins 0 et 1 (RX et TX) s'allume, beep au passage de badge, mais ne renvoie rien.

Après beaucoup de recherche j'ai vu que ces pins étaient importantes pour l'envoi et la réception de données entre linino (linux embarqué) et le microcontrôleur et qu'il était possible de les utiliser si on met pas Serial.begin et Bridge.begin dans le code (à confirmer).

C'est un peu confus et je ne vois pas comment utiliser les 2 lecteurs (un de chaque côté de la porte) si un seul lecteur est reconnu avec les interruptions sur les pin 2 et 3.

Voilà le code.

#include <Wiegand1.h>
#include <Wiegand2.h>
#include <Console.h>

WIEGAND1 wg1;
WIEGAND2 wg2;
char buf[6];
char* bit_reader;

void setup() {
  Bridge.begin();
  Console.begin();
  pinMode(13,OUTPUT);
  Serial.begin(57600);  
  wg1.begin();
  wg2.begin();
  
  while(!Console){
    //Connexion par le port réseau
    ;
  }
  Console.println(F("Start"));
  Serial.println(F("Start"));

}

void loop() {
  
  if(wg1.available()){
    bit_reader = lecture1();
    Console.println(bit_reader);
    digitalWrite(13, HIGH);   
    delay(3000);                
    digitalWrite(13, LOW);
    Serial.println(bit_reader); 
  }
  if(wg2.available()){
    bit_reader = lecture2();
    Console.println(bit_reader);
    digitalWrite(13, HIGH);   
    delay(3000);                
    digitalWrite(13, LOW);
    Serial.println(bit_reader); 
  }
 
}

char* lecture1(){
    int i_buf = 0;
    i_buf = sprintf(buf, "0%i",wg1.getCodeCarte());
    buf[i_buf] = '\0';
    bit_reader = buf;
    return bit_reader;
}

char* lecture2(){
    int i_buf = 0;
    i_buf = sprintf(buf, "0%i",wg2.getCodeCarte());
    buf[i_buf] = '\0';
    bit_reader = buf;
    return bit_reader;
}

Si quelqu'un voit une solution à mon problème ... il est le bienvenue :slight_smile:

Bonjour,

j'ai finalement résolu mon problème en branchant les 2 lecteurs sur la même interruption, je perds l'info' de savoir quel badge a été activé mais au moins ça fonctionne.

J'aimerais à présent réaliser la mise à jour de mon programme à distance. La board est branchée avec un câble RJ45. J'ai commencé par activer le détail de la compil' et de l'upload sur l'IDE mais je ne trouve pas comment le soft fait pour téléverser sur mon port réseau.

l'objectif étant, à terme d'avoir plusieurs Yún et de les mettre tous à jour en même temps par le réseau.

Est-ce que quelqu'un connait le fonctionnement de l'IDE pour téléverser en réseau ?

Bonne journée !

Alexandre