RS485 Arduino OPTA

Bonjour à tous,

Dans le cadre d’un projet, je souhaite utiliser un Arduino OPTA WiFi pour piloter mon système. J’ai besoin de relever des valeurs de température et d’hygrométrie dans une pièce, et j’ai donc acheté des capteurs compatibles RS485, puisque l’OPTA dispose d’un port de communication adapté.

Cependant, je n’arrive pas à récupérer de données depuis ces capteurs.

Pour vérifier si le port RS485 fonctionne correctement, j’ai tenté un test en loopback : j’ai relié A et B entre eux et j’essaie d’envoyer une donnée que je tente ensuite de lire. Malheureusement, je ne reçois aucun retour.

Quelqu’un aurait-il une idée de l’origine du problème ou des pistes de diagnostic à suivre ?

Merci d’avance pour votre aide !

L’Arduino OPTA dispose d’un port RS485 accessible via la librairie RS485.h (Arduino official). Assurez-vous :

D’avoir bien initialisé la communication :

#include <RS485.h>

void setup() {
  RS485.begin(9600); // ou autre baudrate adapté
}

void loop() {
  RS485.write("Hello");
}

Que la broche de contrôle DE/RE est bien gérée en interne par la librairie. Sinon, il faudra la configurer manuellement.

1 Like

rs-485 is half-duplex, so it can't echo bits.

and since rs-485 is half-duplex, only a single device can transmit at a time ... the sensor will likely need to be queried to send a response.

and because rs-485 is half-duplex, it's transmitter needs to be disabled in order to receive something being transmitted. Better to only enable the transmitter when transmitting someting and using flush() to wait for transmission to complete before disabling the TX.

1 Like

Merci pour vos retours.
Je suis toujours bloqué sur le sujet. Je ne souhaite rien envoyer à partir du port RS485 mais simplement lire des données de capteurs. D'après ce que je comprends de la réponse de @gcjr, je dois donc interroger mes capteurs un par un.

Pour ce qui est des broches DE/RE, je n'ai rien vu dans la doc, je supposais donc que ceux ci étaient directement intégrés en interne. Je devrais peut être me pencher dessus...

J'en profite pour poser la question. J'ai un doute sur mon câblage : je relis A-A, B-B, V+-V+ mais pour le GND j'ai un doute. Il y a un pin GND sur le port rs485 de l'OPTA mais est il nécessaire de ponter vers le V- de l'alimentation ? J'ai vérifier, j'ai bien 24v entre V+ de l'alim et GND du port rs485 mais j'ai cru interpréter de plusieurs code que le pontage est nécessaire ?

As for the DE/RE pins, I didn't see anything in the documentation
rs-485 requires explicitly en/disabling TX

There is a GND pin on the rs485 port of the OPTA

rs-485 doesn't require a common ground connection

1 Like

J'ai trouvé de l'aide sur une ancienne page ouverte sur le sujet : https://forum.arduino.cc/t/arduino-opta-soil-sensor
Je vous laisse le lien ici si de nouvelles personnes venaient à rencontrer ce problème de nouveau.
Merci pour votre aide, je vais pouvoir continuer à avancer maintenant que mon capteur fonctionne !

Je reviens avec une nouvelle question. J'ai maintenant un capteur qui fonctionne mais je n'arrive pas à modifier son adresse esclave pour communiquer avec plusieurs capteurs. J'aimerais ajouter 3 capteurs et donc leurs donner 3 adresses différentes mais je n'y arrive pas. Quelqu'un aurait il une solution pour cela ?
Merci d'avance encore une fois !