Я подключил датчик температуры к плате BeagleBone Black [BBB], после интервала в 1 секунду он определяет температуру и передает ее на BBB, а beaglebone сбрасывает ее в базу данных mysql на другом компьютере. Я хочу показать данные температуры в графическом формате. График должен обновляться каждую секунду.
Я пробовал различные библиотеки, такие как c3, canvasJS, но мне не удалось реализовать обновления в реальном времени. Пример данных температуры:
1 : 32
2 : 33
.
. . . so on..
Ниже приведен код canvasJS, который я пробовал.
window.onload = function() {
var dps = []; // dataPoints
var chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Tempreture Input From XBee"
},
data: [{
type: "line",
dataPoints: dps
}]
});
var xVal = 0;
var updateInterval = 1000;
var dataLength = 10; // number of dataPoints visible at any point
var updateChart = function(count) {
$.getJSON("http://localhost/smartfarm/admin/getGraphJson", function(result) {
$.each(result, function(key, value) {
dps.push({
x: xVal,
y: value
});
xVal++;
});
});
dps.shift();
chart.render();
};
// generates first set of dataPoints
updateChart(dataLength);
// update chart after specified time.
setInterval(function() {
updateChart()
}, updateInterval);
}
<div id="chartContainer" style="height: 300px; width:100%;"></div>
Проблема в том, что этот код не смещается, он только добавляет новые точки данных на график, потому что этот график становится слишком сложным для просмотра.