Хорошо, поэтому этот код по какой-то причине не вставляет данные в мою таблицу.Код работает, я не получаю никаких ошибок, но он просто не работает.Я впервые работаю с Arduino и SQL вместе
У меня подключен датчик температуры и влажности DH11, который действительно дает хорошие результаты
#include "dht.h"
#define dht_apin 2 // Analog Pin sensor is connected to
#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(127,0,0,1);
char user[] = "root";
char password[] = "";
char INSERT_DATA[] = "INSERT INTO arduino_test.temperature (temperature, humidity, time) VALUES (%f, %f, NOW())";
char query[128];
char temperature[10];
EthernetClient client;
MySQL_Connection conn((Client *)&client);
dht DHT;
void setup(){
Serial.begin(9600);
while (!Serial); // wait for serial port to connect
Ethernet.begin(mac_addr);
Serial.println("Connecting...");
if (conn.connect(server_addr, 3306, user, password)) {
delay(1000);
}
delay(500);
Serial.println("DHT11 Humidity & temperature Sensor\n\n");
delay(1000);
}//end "setup()"
void loop(){
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
DHT.read11(dht_apin);
Serial.print("Current humidity = ");
Serial.print(DHT.humidity);
Serial.print("% ");
Serial.print("temperature = ");
Serial.print(DHT.temperature);
Serial.println("C ");
sprintf(query, INSERT_DATA, 1, DHT.humidity, DHT.temperature);
cur_mem->execute(query);
delete cur_mem;
delay(2000);
}
У меня есть база данных с именем "arduino_test""и таблица температур внутри него
CREATE TABLE `temperature` (
`ID` int(11) NOT NULL,
`temperature` float NOT NULL,
`humidity` float NOT NULL,
`time` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `temperature`
ADD PRIMARY KEY (`ID`);
ALTER TABLE `temperature`
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
Мой MySQL установлен на 127.0.0.1 (он же localhost) и работает на порте 12088
Просто, чтобы сложить, мой цикл заканчивается после первоговремя по какой-то причине