Comunication Wire Bidirectionel ?

Bonjour Tous,

Voici je reprend un vieux sujet qui est mon système d'alarme intrusion !

Pour le moment tous fonctionne bien.

Il se compose d'une sirène extérieur, de 3 détecteurs de mouvement de 2 contacts magnétique ceci pour la détection.

Mon système posséde 2 arduino nano le premier gère le wifi en soft serial, un écran tactile Nextion en RS232 ,et une connexion Wire vers le second qui lui gère une carte sd pour le journal des log.

J'ai raccorder au second un module GSM pour m'informer d'une alarme quant je ne suis pas a mon domicile.

La connexion Wire actuellement sert a ce que le premier Nano "Master" envoie divers info vers le second Nano "SLAVE" pour l’écrire dans le log "SD Card"

Maintenant comme je rajoute le GSM sur le "Slave" second NANO afin de recevoir une alarme l'info d'une intrusion, pourquoi pas l'utiliser pour activer ou desactiver le systeme et ce en remontant l'info du slave vers le Master.

ET C'EST ICI QUE JE COMMENCE A AVOIR DES SOUCIS.

j'ai l'impression qu'il n'est pas possible d'avoir une comunication bidirectionel en wire !!!!

Est ce Juste ???

Bon une partie du probleme residais dans l'alimentation qui n’étais pas suffisamment puissante pour l'ensemble.
Maintenant le systeme est stable.
Me reste le probleme de comunication WIRE bidirectionel.

Voici mon cade dans le Slave qui dois remonter l'info vers le Slave.

READWRITE.ino (7.45 KB)

Wire n'est pas un protocole, c'est un nom de bibliothèque pour gérer l'I2C.
Il existe OneWire qui est un protocole qui ne demande qu'un fil plus la masse, donc ça fait deux. Ce protocole appartient à la société Dallas ( rachetée par Maxim)

Le protocole dont tu parles est l'I2C qui appartient à la société Philips-composants ( maintenant NXP).

Autant employer les bons noms pour éviter les quiproquos.

La bibliothèque Wire gére le mode "master" et le mode "slave" (maitre et esclave), donc ce que tu demandes est faisable.

Il ne peut y avoir qu'un seul maître sur le bus à la fois. Il existe une procédure d'arbitrage dans la norme I2C : c'est le premier maître qui se signale qui gagne.

Dans le protocole I2C le maître envoie une requete à un esclave, si c'est une demande de configuration l'esclave l'effectura, si la requète est une interrogation l'esclave répondra au maître.
Est-ce que ce bidirectionel te convient ?

Par contre si tu as besoin de faire tourner le mode maître parmis les modules, sauf s'il existe d'autres méthodes plus astucieuses que je neconnais pas, il faudra interrompre la liaison I2C en mode maître et la passer en mode esclave dès que les actions seront terminées. Cela laissera la possibilité à un autre maître de prendre la direction du bus.
Je te dis de suite que je n'ai jamais pratiqué la commutation maitre/esclace, c'est comme cela que je commencerai si j'avais à le faire.

bonjour,
tu peux utiliser le maitre pour que le slave lui réponde quelque chose.
jète un oeil ICI

Pouvez vous facilement tirer un nouveau fil entre les 2? Si oui Passez une pin depuis l'esclave à LOW si vous voulez que le maître demande une info particulière à l'esclave, comme ça vous ne changez rien à la communication existante