Я только что подключил экран Libelium для подключения многих датчиков к Arduino UNO, которые измеряют уровень воды, температуру и т. Д. Я действительно не мог понять, как загрузить данные датчика в базу данных (MySQL). У меня есть код для подключения к базе данных, но до сих пор не удалось выяснить, как (Querying) загружать данные датчика в базу данных.
Основная проблема здесь заключается в том, как я могу заставить arduino распознать данные датчика, чтобы загрузить его в базу данных или отправить на другой Arduino или Raspberry pi через XBee.
Код для подключения к базе данных:
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;
You can execute it in your phpmyadmin page (or create the table manually there). Above we have columns for auto-increment id ('log_id' - necessary), date & time, 4 temperature values and voltage value (modify these according your requirements).
Затем запрос на создание новой записи будет выглядеть следующим образом:
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.