DS18B20 Address vers variable string

Bonjour,

J’essaye de mettre dans une variable String l’adresse hexa d’un capteur DS18B20
Apres plusieurs test, je reste scotché.
Quelqu’un sait-il comment faire?

Voici une partie du code, Capteur_ID reste vide.

        String Capteur_ID;
	sensors.requestTemperatures();
	numberOfDevices = sensors.getDeviceCount();
	for(int i=0;i<numberOfDevices; i++)
	{       
	  DeviceAddress tempDeviceAddress; // We'll use this variable to store a found device address
	  if(sensors.getAddress(tempDeviceAddress, i))
	  {
                float tempC = sensors.getTempC(tempDeviceAddress);      
		Capteur_ID ="";
		for (uint8_t z = 0,j=0; z < 8; z++)
		{
       			Capteur_ID += (tempDeviceAddress[z],HEX);
                }
                Capteur_ID.toUpperCase();
                String val_temp = "Temp_"+Capteur_ID+":"+ dtostrf(tempC, 3, 1, buffer_temp);	
          }
         }

Merci

Bonjour
ton bout de code n'est pas suffisant pour comprendre ce que tu souhaite.

tu souhaite faire quoi exactement ?
recuperer les adresse onewire de plusieurs DS18B20 , ou injecter des adresses onewire de plusieurs DS18B20

je souhaite récupérer les adresses hexa de plusieurs DS18B20.
Avant j'affichait directement dans la console grâce à : Serial.print(tempDeviceAddress*, HEX);*
mais maintenant je souhaiterait les passer dans une variables string avant de les afficher.

bonjour,
tu peux utiliser sprintf pour ca

exemple de code à la mano

char sonde[10];

sprintf(sonde,"%d-%d-%d",sonde1,sonde2,sonde3);
Serial.print(sonde);
uint8_t adresse[8];
char adresse_formatee_hexa[24];

...

sprintf(adresse_formatee_hexa,
        "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
        adresse[0],
        adresse[1],
        adresse[2],
        adresse[3],
        adresse[4],
        adresse[5],
        adresse[6],
        adresse[7]);

Merci, comment concatener adresse_formatee_hexa avec une variable String?

tu as les exemples avec sprintf

Oui j'ai essayé, pas de probleme avec sprintf mais lorsque je veux concatener cela ne fonctionne pas exemple:

String value; 
uint8_t adresse[8];
char adresse_formatee_hexa[24];

value = "L'adresse est : ";

sprintf(adresse_formatee_hexa,
        "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
        adresse[0],
        adresse[1],
        adresse[2],
        adresse[3],
        adresse[4],
        adresse[5],
        adresse[6],
        adresse[7]);

value = value + adresse_formatee_hexa;
sprintf(adresse_formatee_hexa,
        "la valeur est de : %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
        adresse[0],
        adresse[1],
        adresse[2],
        adresse[3],
        adresse[4],
        adresse[5],
        adresse[6],
        adresse[7]);

Serial.print(adresse_formatee_hexa);

oui mais il me faut mettre "adresse_formatee_hexa" dans une variable string en dehors de sprintf.
J'en ai besoin par la suite afin de l'envoyer via un module rf24:

		char adresse_formatee_hexa[22];
sprintf(adresse_formatee_hexa,
        "%x%x%x%x%x%x%x%x",
        tempDeviceAddress[0],
        tempDeviceAddress[1],
        tempDeviceAddress[2],
        tempDeviceAddress[3],
        tempDeviceAddress[4],
        tempDeviceAddress[5],
        tempDeviceAddress[6],
        tempDeviceAddress[7]);		
String val_temp = "Temp_"+adresse_formatee_hexa+":"+ dtostrf(tempC, 3, 1, buffer_temp);			
char SendPayload[500] ;           
val_temp.toCharArray(SendPayload,500);           
RF24NetworkHeader header(/*to node*/ other_node, /*type*/ 'S');
.....