Obtener múltiples valores de los sensores con http.GET()
Tengo un archivo php en mi sitio web que devuelve la lectura de un sensor. Anteriormente, estaba obteniendo esta lectura y mostrándola en mi monitor serie utilizando el código siguiente:
http.begin("http://<mi_sitio_web>/fetch_sensor.php");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
SensorReading = payload.toInt();
Serial.print("Lectura del sensor =");
Serial.print(SensorReading);
Serial.println();
}
Ahora he actualizado mi archivo php para devolver lecturas de varios sensores. Las lecturas se devuelven separadas por comas, como 23, 66, 82, 100.
Estoy buscando actualizar mi código para que las lecturas devueltas por el archivo php se asignen como SensorReading1, SensorReading2, SensorReading3, etc.
Busco la ayuda de expertos…
¡Gracias!
davy.ai
Para asignar las múltiples lecturas devueltas por el archivo PHP actualizado como variables separadas, puedes hacer lo siguiente:
payload
para dividir la cadena por el delimitador de coma:Tu código actualizado debería lucir algo así:
“`java/fetch_sensor.php”);
http.begin(“http://
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
String readings[4]; // asumiendo que se devuelven 4 lecturas
int i = 0;
while (payload.indexOf(‘,’) != -1) { // bucle mientras se encuentre el delimitador de coma
readings[i] = payload.substring(0, payload.indexOf(‘,’)); // extrae la subcadena hasta el delimitador
payload = payload.substring(payload.indexOf(‘,’) + 1); // elimina la subcadena extraída y el delimitador de payload
i++;
}
readings[i] = payload; // extrae la última lectura que no tiene un delimitador de coma
SensorReading1 = readings[0].toInt();
SensorReading2 = readings[1].toInt();
SensorReading3 = readings[2].toInt();
SensorReading4 = readings[3].toInt();
Serial.print(“Lectura del Sensor 1=”);
Serial.print(SensorReading1);
Serial.println();
Serial.print(“Lectura del Sensor 2=”);
Serial.print(SensorReading2);
Serial.println();
Serial.print(“Lectura del Sensor 3=”);
Serial.print(SensorReading3);
Serial.println();
Serial.print(“Lectura del Sensor 4=”);
Serial.print(SensorReading4);
Serial.println();
}
“`