arduinoからデータベースにセンサーデータをアップロードするにはどうすればよいですか?

私は、Arduino UNOにLibeliumシールドを接続して、水のphレベル、温度、...などを測定する多くのセンサーを接続したところです。センサーデータをどのようにデータベース(MySQL)にアップロードするか、どうしてもわかりませんでした。データベース接続のためのコードはありますが、センサーデータをデータベースにアップロードする方法(クエリ)がまだわかりませんでした。

Arduinoにセンサーデータを認識させ、データベースにアップロードしたり、XBee経由で他のArduinoやRaspberry piに送信したりするにはどうすればいいのかが一番の問題点です。

データベース接続のためのコード

void sendData(){

          Serial.println("Connecting...");
          if (my_conn.mysql_connect(server_addr, 3306, user, password)){
            delay(500);
            Serial.println("Starting SQL!");
            Serial.println(INSERT_SQL);
            my_conn.cmd_query(INSERT_SQL);
            Serial.println("Query Success!");
            my_conn.disconnect();
            Serial.println("\n");
          } 
          else {
            Serial.println("Connection failed!");
          }
}

まず、MySQLデータベースにテーブルを作成する必要があります。

CREATE TABLE IF NOT EXISTS `table_log` (
  `log_id` int(11) NOT NULL AUTO_INCREMENT,
  `log_date` date NOT NULL,
  `log_time` time NOT NULL,
  `log_t1` float NOT NULL,
  `log_t2` float NOT NULL,
  `log_t3` float NOT NULL,
  `log_t4` float NOT NULL,
  `log_vbatt` float NOT NULL,
  PRIMARY KEY (`log_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1; 

phpmyadminページで実行することができます(または手動でテーブルを作成します)。上記では、自動インクリメントの ID ('log_id' - 必要)、日付と時刻、4つの温度値、電圧値 (これらは要件に応じて変更してください) のカラムを用意しています。

次に、新しいレコードを作成するためのクエリは、次のようになります。

INSERT INTO `table_log` (`log_id`, `log_date`, `log_time`, `log_t1`, `log_t2`, `log_t3`, `log_t4`, `log_vbatt`) VALUES
    (0, '2016-03-04', '01:53:30', 1.0, 2.0, 3.0, 4.0, 3.0);

この文字列を動的に(実際の値で)作成し、INSERT_SQLの代わりに使用する必要があります。

解説 (0)