Bonjour a tous et tout d'abord merci de vos réponses.
Mon projet est de récupérer plusieurs température dans différents silo à céréales.
Comme vous pouvez le voir sur cette modélisation solidworks , il y a plusieurs cellules ou j'installe des capteurs de température.
J'ai donc 4 capteurs de température à installer et a câbler sur 1 carte arduino pour C1/C2/C3.
Et 3 capteurs de température a installer sur 1 carte arduino pour C4.
Boite cellule 4 : 1 carte nano , 3 capteurs DS18B20
Etc...
Chaque boite sera relier par un câble d'alimentation pour établir un bus de terrain qui sera relier a l'armoire électrique.
Je souhaite donc que ces donnés de température soient transmise à 1 carte arduino Maitre qui sera placer dans l'armoire électrique pour que celle ci recupere TOUTES les donnes et ensuite les transmettent à un automate programmable.
J'utilise comme bibliothèque :
OneWire.h
Donc ça c'est pour récupérer les donnes des capteurs de température DS18B20
Maintenant j'en suis a la , je souhaite que toutes les cartes arduino nano qui qui recupere des donnés de ces capteurs DS18B20 les transfère sur 1 carte nano Maitre.
J'utilise les modules RS485 mais je n'ai pas encore commencer le programme pour envoyer les donnés de différentes cartes sur la carte aduino maître.
Les différentes cartes esclaves seront positionnées dans des boîtes de protection à environ 20 m de distance chacune
Je viens de faire un 1er test concluant afin de comprendre comment communiquer entre 2 cartes ( bon ca va vous paraître simple mais j'ai fait communiquer 2 cartes entres elles ) grave a ce code:
Code pour la carte maitre:
#define LED 13 // Declare LED pin
#define MASTER_EN 8 // connected to RS485 Enable pin
void setup() {
pinMode(LED , OUTPUT); // Declare LED pin as output
pinMode(MASTER_EN , OUTPUT); // Declare Enable pin as output
Serial.begin(9600); // set serial communication baudrate
digitalWrite(MASTER_EN , LOW); // Make Enable pin low
// Receiving mode ON
}
void loop() {
digitalWrite(MASTER_EN , HIGH); // Make Enable pin high to send Data
delay(5); // required minimum delay of 5ms
Serial.println('A'); // Send character A serially
Serial.flush(); // wait for transmission of data
delay(1000);
digitalWrite(MASTER_EN , LOW); // Receiving mode ON
}
Code pour la carte esclave :
#define LED 13
#define SLAVE_EN 8
void setup() {
pinMode(LED , OUTPUT); // Declare LED pin as output
pinMode(SLAVE_EN , OUTPUT); // Declare Enable pin as output
Serial.begin(9600); // set serial communication baudrate
digitalWrite(SLAVE_EN , LOW); // Make Enable pin low
// Receiving mode ON
}
void loop() {
while(Serial.available()) // If serial data is available then enter into while loop
{
if(Serial.read() == 'A') // if available data is A
{
digitalWrite(LED , !digitalRead(LED)); // LED Blink
}
}
}
Voilà ceci était un 1er test pour moi pour essayer de voir comment fonctionne une communication entre 2 cartes.
Désormais je souhaite faire ceci avec plusieurs cartes esclaves qui transmettent les données de température par un bus de terrain et 1 carte maitre qui va recevoir ces donnés.
Je ne sais pas si je me suis bien expliquer, je m'excuse d'avance car j'ai peur être du mal a faire comprendre mon projet à l'écrit.
N'hésitez pas à me posez des questions.
Je vous remercie d'avance.