-2

リアルタイムのセンサー データを記録している MySQL データベースがあります。私のテーブルには、ID (自動インクリメント)、TimeStamp、および SensorData があります。複数のセンサー (圧力、温度など) を記録し、それらをすべて SensorData 列に保存しています。スペース区切りです。したがって、次のようになります。

33.5 108.3 443.2 44.2 779.553

この情報をウェブサイトにリアルタイムでプロットしたいと思います。これまでのところ、Flot をセットアップしており、DB にクエリを実行して結果を返しますが、SensorData 列を解析する方法がわからないため、各センサーのプロットを作成できます。

SQL サーバーにデータを送信しているデバイスは変更できないため、常に 1 つの列に複数のセンサー エントリが表示されます。私が現在Flotに使用しているコードは次のとおりです。

<html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Flot Examples</title>
    <link href="layout.css" rel="stylesheet" type="text/css">
    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="js/flot/excanvas.min.js"></script><![endif]-->
    <script language="javascript" type="text/javascript" src="js/flot/jquery.js"></script>
    <script language="javascript" type="text/javascript" src="js/flot/jquery.flot.js"></script>
 </head>
    <body>
    <h1>Apex HiPoint, LLC</h1>

    <div id="placeholder" style="width:600px;height:300px;"></div>

<?php

    $server = "www.freesql.org";
    $user="un";
    $password="pw";  
    $database = "testdb";

    $connection = mysql_connect($server,$user,$password);
    $db = mysql_select_db($database,$connection);

    $query = "SELECT Id, TME FROM SData";
    $result = mysql_query($query);

    while($row = mysql_fetch_assoc($result)) 
    {
        $dataset1[] = array($row['Time'],$row['SensorData']);
    }
?>


<script type="text/javascript">
$(function () {
    var dataset1 = <?php echo json_encode($dataset1); ?>;

    $.plot($("#placeholder"), [ dataset1 ]);
});
</script>
 </body>
</html>

したがって、ここでの私の最終的な目標は、複数のプロットを含む 1 つの Web ページを作成することです。RealTime のセンサーごとに 1 つのプロット。15 ~ 30 秒の更新で問題ありません。また、データベースの構造を変更することはできないため、すべてのセンサー データはその 1 つのレコードに含まれています。私はphp、mysql、およびこれらの他のグッズが初めてなので、理解してください。

ご協力いただきありがとうございます!

4

1 に答える 1

1

各センサーデータの間に常に単一のスペースがあることがわかっている場合は、MySQL からシリーズデータを選択して、センサー列の値を単一のスペースに分割し、必要なチャートシステムに送信できます。MySQL に分割機能が組み込まれているかどうかはわかりませんが、それを確認します (SQL Server にないことはわかっています)。

于 2012-12-12T16:30:09.347 に答える