krijg een ander sensor nummer in mijn url

Hardware / electronica onderwerpen
Berichten: 2
Geregistreerd: 12 Apr 2020, 19:44

krijg een ander sensor nummer in mijn url

Berichtdoor peerke71 » 10 Feb 2022, 19:25

Goedemiddag,

ben aan proberen om met mijn esp32 wifi 8 sensor gegevens te versturen naar een server
nu zit ik met een uitdaging dat ik het sensor adres wel in de seriële printer krijg maar in de url komt een ander nummer te staan

kan iemand mij op weg helpen waar ik de fout in ga ?


[code2=]
void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
byte serienr;
float celsius, fahrenheit ;

if ( !ds.search(addr)) {
Serial.println("No more addresses.");
Serial.println(" DS18x20_Temperature_test_meerdere_sensoren ");
Serial.println();
ds.reset_search();
delay(6000);
return;

}

for( i = 0; i < 8; i++) {
}

if (OneWire::crc8(addr, 7) != addr[7])
{
Serial.println("CRC is not valid!");
return;
}
Serial.println();


ds.reset();
ds.select(addr);
ds.write(0x44, 0); // start conversion, with parasite power on at the end

delay(6000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad

for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
Serial.println ("data") ;

// Serial.println (addr);

// Convert the data to actual temperature
// because the result is a 16 bit signed integer, it should
// be stored to an "int16_t" type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s)
{
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else
{
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}


celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;

String urll ="1http://-------------.php?";
Serial.print(urll);
Serial.print("serial=");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX); // het juiste sensor adres
}
Serial.print("&");
Serial.print("temperature=");
Serial.println(celsius);



// url versuren
if (client.connect(server, port)) {


// Serial.print("connected ");
//Create a URL for the request
String url = "http://-------------.php?";
url += "serial=";
for( i = 0; i < 8; i++) {
//Serial.write(' ')
url += (addr[i], HEX);
}

//url += (serienr); //****sensor adres (1616161616161616) komt niet in url*****
url += '&';
url += "temperature=";
url += (celsius);

Serial.println(url);
//Make a HTTP request:
client.print(String("POST ") + url +" HTTP/1.1\r\n" +
"Host: " + server + "\r\n" +
"Connection: close\r\n\r\n");
client.println();

Serial.println("> Request sent");
} else {
// if you didn't get a connection to the server:
Serial.println("connection failed");
}
//einde url versturem


}[/code2]

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: krijg een ander sensor nummer in mijn url

Berichtdoor shooter » 11 Feb 2022, 11:06

url += (addr[i], HEX);

dit mag niet zo, want een getal moet je netjes omzetten in een tekst
paul deelen
shooter@home.nl

Berichten: 2
Geregistreerd: 12 Apr 2020, 19:44

Re: krijg een ander sensor nummer in mijn url

Berichtdoor peerke71 » 11 Feb 2022, 19:42

shooter schreef:url += (addr[i], HEX);

dit mag niet zo, want een getal moet je netjes omzetten in een tekst



Dank voor de reactie
(sensor adres (1616161616161616) komt niet in url)dit is een onjuist adres bij de eerste aanroep/print krijg wel het juiste adres


ok dan ga ik me daar verder in verdiepen, weet allen nog niet wat je bedoeld :-)

Terug naar ESP Hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten