Communication RS232 et ARDUINO.

Bonjour, 

mon projet consiste à recevoir des informations d'état d'une machine communicant en RS232 ( par exemple un message d'erreur venant de sa part ) puis d'envoyer cette trame par SMS vers mon téléphone.

 
Pour cela je possède une ARDUINO MEGA 2560, d'un module GSM TC35 qui possède un max232 et bien sur de la machine en question.

Au niveau envoie de SMS tous es parfait, j'arrive à recevoir des messages pré-programmés donc rien ne cloche.

Cependant la ou je bloque c'est pour récupérer des caractères venant de la machine par le biais du RS232, je sais que je doit utiliser le Serial cependant étant vraiment nouveau dans le monde ARDUINO je préfère venir demander.

Niveau HARDWARE, j'ai brancher les masses TC35/ARDUINO ensemble, RXD0 du TC35 vers 52 Arduino et TXD0 du TC35 vers 50 de Arduino, au niveau du branchement j'ai visiter quelque site internet et je j'ai observé que l'on doit brancher RX -> TX et TX -> RX cependant lorsque je branche comme cela mon TC35 ne veux plus fonctionner.

[u]Mes questions sont les suivantes : [/u]

Comment brancher câbler mon TC35 à ARDUINO en utilisant le max232 du TC35 pour recevoir une trame arrivant de la machine ?

Par quel méthode puis-je lire une trame ? 

Merci pour vos futures réponses. En général je ne poste jamais sur les forums mais il y a un début à tous.

Cordialement Tryade.

Il faudrait utiliser la librairie softwareserial.

Oui peut être en utilisant un

if (Serial.available() > 0)
Qui attend une donnée dans le buffer puis un Serial.read() ?

Bonjour
tu a deux equipements en RS232
Il te faut donc 2 modules convertisseurs RS232/TTL , il semble que tu en ai déjà un directement avec ton TC35
il te faut un autre max232 pour exploiter ce qui arrive de ta machine (ou voir si sur le TC35 si il reste des portes de libres sur le max232.
dèja est tu sur et certain que ta machine transmets des datas en RS232 sans gestion de controle de flux ?

Bonjour,

Ta carte arduino mega possède 4 port série.
Utilise un des ports série pour connecter ton GSM (pas TX et RX qui sont utilisés pour le chargement du programme)
TX1 (pin 18) <-> RXD0 (ou R0)
RX1 (pin 19) <-> TXD0 (ou T0)

Utilise Serial1 pour y accéder.

remarque: Les balises code c'est pour le code. Les utiliser pour le message rend le message illisible.

Artouste:
...
tu a deux equipements en RS232
...

Bonjour Artouste,

Je ne pense pas que notre ami soit connecté en RS232. Il doit être connecté en TTL via les sorties TTL de son module et non via le max 232.
Comme beaucoup il assimile liaison série et RS232

kamill:
Bonjour Artouste,

Je ne pense pas que notre ami soit connecté en RS232. Il doit être connecté en TTL via les sorties TTL de son module et non via le max 232.
Comme beaucoup il assimile liaison série et RS232

bonsoir kamill
peut etre , mais c'est lui qui evoque un max232 8)
il faudrait savoir ce qu'est "sa" machine

Bonsoir et merci pour vos réponses,

je suis bien connecté en TTL avec le module, la machine en question est un partisol, sur le module TC35 j'ai un TXD0 et RXD0 et 2 autres TX et deux autres RX.

Tryade:
Bonsoir et merci pour vos réponses,

je suis bien connecté en TTL avec le module, la machine en question est un partisol, sur le module TC35 j'ai un TXD0 et RXD0 et 2 autres TX et deux autres RX.

quel modele exactement ?
rapidement regardé l'interface serie est une vraie RS232 donc convertisseur rs232/ttl obligatoire pour l'interface avec l'arduino.
Pas sur que ce soit une bonne solution d'essayer de "recuperer" une voie sur le TC35 (encore que ...)
un simple adaptateur "pas onereux" genre ça fera l'affaire.
ce dont il faut déjà que tu sois certain , c'est que ton portisol sort de la data sur son tx sans "controle/gestion" de flux

Merci pour ta réponse pour le modèle je te le dit demain je n'arrive pas ouvrir ton lien !

Concernant la gestion des flux comment puis-je savoir s'il le contrôle ?

Tryade:
Merci pour ta réponse pour le modèle je te le dit demain je n'arrive pas ouvrir ton lien !

Concernant la gestion des flux comment puis-je savoir s'il le contrôle ?

désolé pour le lien c'est corrigé (l'editeur a des difficulté avec les liens )
pour la gestion de flux/controle/dialogue , il faut savoir si il y a en permanence en sortie de ton portisol les "datas" qui t'interesse.
Je suppose que tu a la doc d'exploitation de ton modele ?
tu trouveras certainement la reponse dedans

En effet il y a des parties de la trame qui m'intéresse par exemple la T° extérieur et d'autre informations qui surviennent quant il y a des erreurs donc pas de flux constant.

concernant le module je le possède donc je vais utiliser celui-la !

Pour le code c'est simplement utiliser le serial et lire le serial ?

Tryade:
En effet il y a des parties de la trame qui m'intéresse par exemple la T° extérieur et d'autre informations qui surviennent quant il y a des erreurs donc pas de flux constant.

concernant le module je le possède donc je vais utiliser celui-la !

Pour le code c'est simplement utiliser le serial et lire le serial ?

alors tu a pas mal de chose en main pour avancer/lever des doutes
La premiere chose à faire est déjà de ragarder demain si la sortie RS232 du partisol "crache de l'info pertinente en permanence ... ou pas "
Il y a une DB9 dessus ?
attention au cable que tu va utiliser entre ton adaptateur rs232/ttl et le partisol (eventuels problemes de/absence de croisements)
Dans ta doc tu dois avoir une info concernant le debit du partisol.
comme tu a une mega , utilise simplement dans un premier temps l'exemple 04-communications ---->multiserialmega

Je reviens vers vous, donc j'ai fait les test et j'ai d'abord utiliser Hyperterminal du PARTISOL vers mon Ordinateur pour voir un peu ce que je le partisol envoie comme information voici ce qu'il m'envoie.

09:58:54 , 17/12/15 , 3 , 0 , 4 , 5 , 0
09:58:57 , 17/12/15 , 3 , 0 , 4 , 5 , 0
09:59:00 , 17/12/15 , 3 , 0 , 4 , 5 , 0
09:59:03 , 17/12/15 , 3 , 0 , 4 , 5 , 0
09:59:06 , 17/12/15 , 3 , 0 , 4 , 5 , 0
09:59:09 , 17/12/15 , 3 , 0 , 4 , 5 , 0
09:59:12 , 17/12/15 , 3 , 0 , 4 , 5 , 0

C'est tous à fait ce que je souhaite recevoir. j'ai donc testé de brancher le RS232 vers ARDUINO via l'adaptateur RS232 et aucun signal, je ne reçois strictement rien.

Je pense que mon code est bon, je vais regarder du côté du câble voir si c'est bien câblé. Si vous avez des conseils je suis preneur.

Une question sur la prise male du câble RS232 j'ai RxD en 2 et TxD en 3 et sur la prise femelle j'ai RxD aussi en 2 et TxD aussi en 3, je pense que mon problème viens de la, je doit les croisier il me semble.

Tryade:
Une question sur la prise male du câble RS232 j'ai RxD en 2 et TxD en 3 et sur la prise femelle j'ai RxD aussi en 2 et TxD aussi en 3, je pense que mon problème viens de la, je doit les croisier il me semble.

bonjour
c'est ce que j'expliquai plus haut
avec le rs232 il y a essentiellement 2 causes de "çamarchpa" :grin:

  • probleme de cable (croisement)
  • probleme de gestion de flux

leve déjà le doute pour ce qui est du croisement

oui, il faut croiser rx et tx

Est ce que je peux utiliser que la GND le RX et le TX sur le câble RS232 ou est ce que je doit quand même tous rebrancher ?

Tryade:
Est ce que je peux utiliser que la GND le RX et le TX sur le câble RS232 ou est ce que je doit quand même tous rebrancher ?

C'est ce que l'on cherche à determiner
si avec un simple croisement entre 2 et 3 sur les DB9 , tu recupere les ,infos sur arduino , c'est tout bon
si tu ne recuperer rien , c'est qu'il y a de la gestion de flux/signaux en plus
tu a la doc de ton partisol concenant la partie communication RS232 ?

Oui j'ai la doc je vais te donner le lien tous de suite et les numeros de pages.