[Processing] Visualisation température 1-wire

Bonjour,

j'ai en projet d'acquérir et de visualiser en temps réel la température de ma chaine d'acquisition 1-wire (donc des capteurs ds18b20). Mon programme Arduino est completement terminé :

#include <SD.h>                                                                 //Bibliothèques utilisées
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);                                                  //On déclare la présence de bus 1-Wire
DallasTemperature sensors(&oneWire);
DeviceAddress temp1 = { 0x28, 0x06, 0xE0, 0x77, 0x03, 0x00, 0x00, 0xBC };       //Déclaration des adresses des capteurs du bus
DeviceAddress temp2 = { 0x28, 0x87, 0xA9, 0x77, 0x03, 0x00, 0x00, 0x7B };
DeviceAddress temp3 = { 0x28, 0x6F, 0xE4, 0x77, 0x03, 0x00, 0x00, 0xF6 };
File myFile;                                                                    //Variable de la carte SD
int realtime = 1;                                                               //Calcul du temps (en secondes)

void setup(void){
  Serial.begin(9600); //port série                                              //Vitesse de transmission (il faut la même sur le pc, dans la console)
  sensors.begin();
  sensors.setResolution(temp1, 10);                                             //resolution de la mesure (8/10 ou 12 bits)
  sensors.setResolution(temp2, 10);
  sensors.setResolution(temp3, 10);
     
  if (!SD.begin(4)) {                                                           //Initialisation de la carte
    Serial.println("initialization failed!");
    return;
  } 
    myFile = SD.open("test.lvm", FILE_WRITE);                                   //Ecriture de l'entête du fichier avec les noms des capteurs
    myFile.print("\t");
    myFile.print("capteur1\t");
    myFile.print("capteur2\t");
    myFile.println("capteur3\t");
    myFile.close();                                                             //Fermeture du fichier
}

void printTemperature(DeviceAddress deviceAddress)                              //Boucle 1-Wire (à ne pas toucher, mise a part pour modifier l'erreur)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("erreur mesure");
  } else {
    Serial.print("C: ");
    Serial.print(tempC);  }
}
void loop(void)                                                                 //Boucle de mesure et d'écriture
{    
    delay(1000);                                                                 //Fréquence d'acquisition
    sensors.requestTemperatures();                                              //Requete de la température aupres des capteurs
    myFile = SD.open("test.lvm", FILE_WRITE);                                   //Ouverture du fichier
    if (myFile) {
    float temp1 = (sensors.getTempCByIndex(0));                                 //Indexation des mesures (obligatoire sinon erreur d'ecriture)
    float temp2 = (sensors.getTempCByIndex(1));                                 //Rajouter une ligne à chaques nouveaux capteurs et incrémenter la valeur de l'index
    float temp3 = (sensors.getTempCByIndex(2));
    myFile.print(realtime ++);                                                  //Calcul du temps et écriture (en secondes) et incrémentation de la valeur 
    myFile.print("\t");                                                         //Ecriture des mesures sur la carte SD, rajouter une tabulation et une ecriture de la 
    myFile.print(temp1);                                                        //mesure a chaque nouveaux capteurs    
    myFile.print("\t");
    myFile.print(temp2);
    myFile.print("\t");
    myFile.println(temp3);
    myFile.close();                                                             //Fermeture du fichier 
    Serial.println("done");
  } else {
    Serial.println("error opening test.txt");                                   //Erreur d'ouverture du fichier
  }  
  
     
}

Mais je bloque sur la visualisation en temps réel, je me suis penché sur le logiciel "Processing" mais je ne comprends pas vraiment comment il peut communiquer avec mon arduino. Est-ce que ce logiciel vous semble bon pour une visualisation de température ? Sachant que je souhaite par la suite rajouter des options (bouton enregistrer le graphe, afficher les données de temps, utilisation du CPU de l'arduino, affichage de la mémoire restante....).

Si jamais "Processing" vous semble bien, un petit (tout petit) morceau de code serait super pour que je puisse commencer, histoire de bien apprendre :smiley:

Merci d'avance pour vos réponses !

Lykaa

Bonjour,

une petite recherche sur google " arduino processing graph" et on trouve notament : http://arduino.cc/en/tutorial/Graph#.Uxc_387Ieqs
aprés il est possible d'interfacer l'arduino via le port série avec un grand nombre de langage : vb, python etc

Serge

Merci de ta réponse,

je vais etudier de plus prés ton lien, j'ai fouillé le net encore cet aprem et j'ai lu qu'il etait également possible de faire ce que je souhaite sur visual studio express. Je vais donc étudier les deux solutions.

Je laisse le topic ouvert si des gens ont des renseignaments supplémentaires XD

Lykaa

Merci pour le lien :slight_smile:

Mais si les gens boudent ce programme, ils utilisent lequel pour piloter quelques capteurs, avec un graphe ? :fearful:

Lykaa

Salut!

Je comprends mieux à présent, même si ça me donne de moins en moins envie de travailler sur ce logiciel =(
Je vais quand même consulter des tutoriaux pour voir si ce que je souhaite est abordable

Lykaa