Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
- <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <script type="text/javascript">
- //https://robotzero.one
- google.charts.load('current', {'packages':['line', 'corechart']});
- google.charts.setOnLoadCallback(drawPeltierChart);
- google.charts.setOnLoadCallback(drawTempsChart);
- google.charts.setOnLoadCallback(drawHumidityChart);
- var dataPeltier;
- var dataTemps;
- var dataHumidity;
- var peltierClassicChart;
- var tempsClassicChart;
- var humidityClassicChart;
- var peltierDiv;
- var tempsDiv;
- var humidityDiv;
- var peltierOptions;
- var tempsOptions;
- var humidityOptions;
- function drawPeltierChart() {
- dataPeltier = new google.visualization.DataTable();
- peltierDiv = document.getElementById('peltier_div');
- dataPeltier.addColumn('number', "Time");
- dataPeltier.addColumn('number', "Peltier Temperature");
- dataPeltier.addColumn('number', "Fan Speed");
- peltierOptions = {
- title: 'Pelter Temp and Fan Speed',
- width: 800,
- height: 500,
- curveType: 'function',
- theme: 'material',
- animation: {
- duration: 1000,
- easing: 'in'
- },
- series: {
- // Gives each series an axis name that matches the Y-axis below.
- 0: {targetAxisIndex: 0},
- 1: {targetAxisIndex: 1},
- },
- vAxes: {
- // Adds titles to each axis.
- 0: {title: 'Temp (Celsius)'},
- 1: {title: 'Fan Speed'}
- },
- vAxes: {
- 0: {
- ticks:[0, 10, 20, 30],
- },
- 1: {
- ticks:[20, 40, 60, 80, 100],
- }
- }
- };
- }
- function drawTempsChart() {
- dataTemps = new google.visualization.DataTable();
- tempsDiv = document.getElementById('temps_div');
- dataTemps.addColumn('number', "Time");
- dataTemps.addColumn('number', "Air Temperature");
- dataTemps.addColumn('number', "Processed Temperature");
- tempsOptions = {
- title: 'BME Sensor Temperatures',
- width: 800,
- height: 500,
- curveType: 'function',
- theme: 'material',
- animation: {
- duration: 1000,
- easing: 'in'
- },
- vAxis: { ticks:[0, 10, 20, 30, 40]
- }
- };
- }
- function drawHumidityChart() {
- dataHumidity = new google.visualization.DataTable();
- humidityDiv = document.getElementById('humidity_div');
- dataHumidity.addColumn('number', "Time");
- dataHumidity.addColumn('number', "Air Humidity");
- dataHumidity.addColumn('number', "Processed Humidity");
- humidityOptions = {
- title: 'BME Sensor Humidity',
- width: 800,
- height: 500,
- curveType: 'function',
- theme: 'material',
- animation: {
- duration: 1000,
- easing: 'in'
- },
- vAxis: { ticks:[30, 40, 50, 60, 70, 80]
- }
- };
- }
- function updatePeltierChart() {
- peltierClassicChart = new google.visualization.LineChart(peltierDiv);
- peltierClassicChart.draw(dataPeltier, peltierOptions);
- }
- function updateTempsChart() {
- tempsClassicChart = new google.visualization.LineChart(tempsDiv);
- tempsClassicChart.draw(dataTemps, tempsOptions);
- }
- function updateHumidityChart() {
- humidityClassicChart = new google.visualization.LineChart(humidityDiv);
- humidityClassicChart.draw(dataHumidity, humidityOptions);
- }
- var interval = 0;
- setInterval(ajaxCall, 5000); // get data every five seconds
- function ajaxCall() {
- $.ajax({
- type: 'GET',
- dataType: 'JSON',
- cache: false,
- url: 'sensordata.txt', // text file created by PHP script from sensor data
- }).done(function (sensorsData) {
- console.log(sensorsData);
- console.log('temp ' + sensorsData.peltier.peltier_temp);
- console.log('fan ' + sensorsData.peltier.fan_speed);
- numberOfRows = dataPeltier.getNumberOfRows(); // should be the same for all charts
- console.log(numberOfRows);
- if (numberOfRows>10){
- dataPeltier.removeRow(numberOfRows-1);
- dataTemps.removeRow(numberOfRows-1);
- dataHumidity.removeRow(numberOfRows-1);
- }
- dataPeltier.insertRows(0, [[interval, sensorsData.peltier.peltier_temp, sensorsData.peltier.fan_speed]]);
- updatePeltierChart();
- dataTemps.insertRows(0, [[interval, sensorsData.sensor_temp.air_temp, sensorsData.sensor_temp.processed_temp]]);
- updateTempsChart();
- dataHumidity.insertRows(0, [[interval, sensorsData.sensor_humidity.air_humidity, sensorsData.sensor_humidity.processed_humidity]]);
- updateHumidityChart();
- interval += 1;
- });
- }
- </script>
- </head>
- <body>
- <!--Table and divs that hold the pie charts-->
- <table class="columns">
- <tr>
- <td><div id="peltier_div" style="border: 1px solid #ccc"></div></td>
- <td><div id="temps_div" style="border: 1px solid #ccc"></div></td>
- </tr>
- <tr>
- <td><div id="humidity_div" style="border: 1px solid #ccc"></div></td>
- <td></td>
- </tr>
- </table>
- </body>
- </html>
Add Comment
Please, Sign In to add comment