2016-03-28 4 views
0

Я использую эту команду в терминале, чтобы показать температуру, обнаруженную моим датчиком. cat /sys/bus/w1/devices/28-000005330085/w1_slave | grep "t=" | awk -F "t=" '{print $2/1000}' На самом деле, мой html-файл возвращает граф, который его ось представляет собой случайные числа. Я хочу заменить эти цифры данными, переданными моим датчиком, но я не знаю, как! это мой HTML файл со случайными числамиКак отправить данные с датчика температуры в файл html?

<!DOCTYPE HTML> 
 
<html> 
 
\t <head> 
 
\t \t <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 
\t \t <title>Highcharts Example</title> 
 

 
\t \t <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
 
\t \t <style type="text/css"> 
 
${demo.css} 
 
\t \t </style> 
 
\t \t <script type="text/javascript"> 
 
$(function() { 
 
    $(document).ready(function() { 
 
     Highcharts.setOptions({ 
 
      global: { 
 
       useUTC: false 
 
      } 
 
     }); 
 

 
     $('#container').highcharts({ 
 
      chart: { 
 
       type: 'spline', 
 
       animation: Highcharts.svg, // don't animate in old IE 
 
       marginRight: 10, 
 
       events: { 
 
        load: function() { 
 

 
         // set up the updating of the chart each second 
 
         var series = this.series[0]; 
 
         setInterval(function() { 
 
          var x = (new Date()).getTime(), // current time 
 
           y = Math.random() * 40 ; 
 
          series.addPoint([x, y], true, true); 
 
         }, 3000); 
 
        } 
 
       } 
 
      }, 
 
      title: { 
 
       text: 'Live random data' 
 
      }, 
 
      xAxis: { 
 
       type: 'datetime', 
 
       tickPixelInterval: 150 
 
      }, 
 
      yAxis: { 
 
       title: { 
 
        text: 'Value' 
 
       }, 
 
       plotLines: [{ 
 
        value: 0, 
 
        width: 1, 
 
        color: '#808080' 
 
       }] 
 
      }, 
 
      tooltip: { 
 
       formatter: function() { 
 
        return '<b>' + this.series.name + '</b><br/>' + 
 
         Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' + 
 
         Highcharts.numberFormat(this.y, 2); 
 
       } 
 
      }, 
 
      legend: { 
 
       enabled: false 
 
      }, 
 
      exporting: { 
 
       enabled: false 
 
      }, 
 
      series: [{ 
 
       name: 'Random data', 
 
       data: (function() { 
 
        // generate an array of random data 
 
        var data = [], 
 
         time = (new Date()).getTime(), 
 
         i; 
 

 
        for (i = -19; i <= 0; i += 1) { 
 
         data.push({ 
 
          x: time + i * 1000, 
 
          y: Math.random() 
 
         }); 
 
        } 
 
        return data; 
 
       }()) 
 
      }] 
 
     }); 
 
    }); 
 
}); 
 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 
<script src="https://code.highcharts.com/highcharts.js"></script> 
 
<script src="https://code.highcharts.com/modules/exporting.js"></script> 
 

 
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div> 
 

 
\t </body> 
 
</html>

ответ

0

После того, как ваш клиент читает файл HTML, то из вашего сервера, и он будет загружен со всей информацией, которая существовала в момент нагрузки (например, ваши данные могут быть заполнены сервером (PHP?), считывая файл, написанный вашим датчиком, но это не будет динамически обновляться в браузере - если вы не напишете функцию (JavaScript), чтобы получить информацию из время от времени. Например, внутри вашего

setInterval(function() { 
          var x = (new Date()).getTime(), // current time 
           y = Math.random() * 40 ; 
          series.addPoint([x, y], true, true); 
         }, 3000); 

Вы можете написать функцию ajax, чтобы получить последнюю точку с сервера. Ваш датчик может записывать временные данные в файл, который часто считывается сервером в результате вызова ajax. Вы также можете использовать websockets для обновления данных локальной страницы для каждого обновления датчика.

+0

я использую django !! – 2mesfe

+0

Это не имеет значения. Как бы то ни было, вам нужно записать данные датчика в файл, а в коде Django вы можете написать функцию для чтения такого файла при запросе страницы, загружая исходные точки данных (вместо случайных). После этого у вас должна быть другая конечная точка («сервер»), которая читает тот же файл по запросу браузера. Как вы это сделаете, это зависит от структуры вашего сервера. Я ничего не знаю о Django, но вы должны посмотреть на функции файловой системы. – noderman

+0

Например, возможно, вы можете написать код для выполнения этой команды 'cat/sys/bus/w1/devices/28-000005330085/w1_slave | grep "t =" | awk -F "t =" '{print $ 2/1000}' 'и передать результат ответа сервера в результате запроса браузера - и написать больше кода в браузере для обработки этого ответа. – noderman

Смежные вопросы