Bonsoir à toutes et à tous,
En espérant que certains d'entre vous aient déjà eu ce problème.
Dans la mémoire de mon ESP32, j'ai un fichier csv ayant trois colonnes. La première est l'index, la deuxième et la troisième représentent les valeurs de deux courbes liées aux index.
Je souhaite créer avec chart.js un graphique sur lequel je peux tracer les deux courbes relatives aux deuxième et troisième colonnes du fichier csv.
J'ai déjà fait le tracé d'une courbe, mais je n'arrive pas à trouver d'exemple montrant comment faire pour tracer les deux courbes sur le même graphique. Voilà ce que j'ai pour une courbe :
<body>
<h1 style="text-align: center;">ESP32 Routeur photovoltaïque</h1>
<canvas id="myChart" width="800" height="300"></canvas>
<script>
const ctx = document.getElementById('myChart').getContext('2d');
const chart = new Chart(ctx, {
type: 'line',
data: {
labels: [],
datasets: [{
label: 'Forme donde',
data: [],
borderColor: 'rgb(75, 192, 192)',
tension: 0.1
}]
}
});
function updateChart() {
fetch('/data')
.then(response => response.text())
.then(data => {
const rows = data.split('\n');
const labels = [];
const values = [];
rows.forEach(row => {
const [label, value] = row.split(',');
labels.push(label);
values.push(parseFloat(value));
});
chart.data.labels = labels;
chart.data.datasets[0].data = values;
chart.update();
});
}
setInterval(updateChart, 5000); // Mise à jour toutes les 5 secondes
</script>
</body>
...
server.on("/data", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(LittleFS, "/Onde2.csv", "text/csv");
});
Et le début de mon fichier cvs (il comporte 72 lignes :
1,-84.05,42.025
2,-65.6,32.8
3,-36.9,18.45
4,-8.2,4.1
5,5.12,-2.56
6,29.72,-14.86
7,53.3,-26.65
8,79.95,-39.975
9,103.52,-51.76
10,126.07,-63.035
11,149.65,-74.825
12,168.1,-84.05
13,192.7,-96.35
...
Merci de votre aide.
Pierre.