So. nachdem die Datenbank nun fertig eingerichtet ist wollte ich heute mal ein par Testdaten in meine Tabelle schreiben und bin mit dem Ergebnis nur mäßig zufrieden. Es wurden nämlich keine Daten geschrieben.
das ist mein Code den ich verwende (weiter unten nochmal der für den Vorgang relevante teil)
#include <ArduinoWiFiServer.h>
#include <BearSSLHelpers.h>
#include <CertStoreBearSSL.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiGeneric.h>
#include <ESP8266WiFiGratuitous.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFiSTA.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiType.h>
#include <WiFiClient.h>
#include <WiFiClientSecure.h>
#include <WiFiClientSecureBearSSL.h>
#include <WiFiServer.h>
#include <WiFiServerSecure.h>
#include <WiFiServerSecureBearSSL.h>
#include <WiFiUdp.h>
#include <ESP8266WiFi.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
#include <NTPClient.h>
//SensorValues
int humidity,moist,temperature,pressure,light;
//converters
char query[128];
String sendhum,sendmoi,sendtemp,sendpres,sendlig,postdata;
//Sensor Settings
int ID=999;
//Sender
char INSERT_SQL[] = "INSERT INTO GA_MK23.Measurement (ID,Moist,Humidity,Airpressure,Temperature,Light) VALUES (%d,%d,%d,%d,%d,%d)";
//////////////////////////////////////
// WLAN und SQL SERVERDATEN //
//////////////////////////////////////
IPAddress server_addr(192,168,4,10);//
char user[] = "Sensor"; //
char password[] = "ESP8266"; //
//////////////////////////////////////
///////////////////
//NETWORKSETTINGS//
///////////////////
char ssid[] = "GA_MK23";
char pass[] = "1234567890";
// Sample query
WiFiClient client;
MySQL_Connection conn(&client);
MySQL_Cursor* cursor;
void setup()
{
Serial.begin(9600);
Serial.printf("\nConnecting to %s", ssid); //Debug Only
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// print out info about the connection:
Serial.println("\nConnected to network"); //Debug Only
Serial.print("My IP address is: "); //Debug Only
Serial.println(WiFi.localIP()); //Debug Only
Serial.print("Connecting to SQL... "); //Debug Only
if (conn.connect(server_addr, 3306, user, password))
Serial.println("OK."); //Debug Only
else
Serial.println("FAILED."); //Debug Only
// create MySQL cursor object
cursor = new MySQL_Cursor(&conn);
}
void loop(){
//Messure//
light=123;
humidity=300;
moist=87;
pressure=10293;
temperature =23,23;
//start query//
if (conn.connected())
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
//Send Data//
sprintf(query, INSERT_SQL, ID,moist,humidity,pressure,temperature,light);
Serial.print("Send Data: ");Serial.println(sprintf(query, INSERT_SQL, ID,moist,humidity,pressure,temperature,light));
//Wait//
delay (1000);
}
hier nochmal gekürzt
//SensorValues
int humidity,moist,temperature,pressure,light;
//converter
char query[128];
//Sensor Settings
int ID=999;
//command
char INSERT_SQL[] = "INSERT INTO GA_MK23.Measurement (ID,Moist,Humidity,Airpressure,Temperature,Light) VALUES (%d,%d,%d,%d,%d,%d)";
// Sample query
WiFiClient client;
MySQL_Connection conn(&client);
MySQL_Cursor* cursor;
...
void loop(){
...
//Messure//
light=123;
humidity=300;
moist=87;
pressure=10293;
temperature =23,23;
//start query//
if (conn.connected())
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
//Send Data//
sprintf(query, INSERT_SQL, ID,moist,humidity,pressure,temperature,light);
Serial.print("Send Data: ");Serial.println(sprintf(query, INSERT_SQL, ID,moist,humidity,pressure,temperature,light));
//Wait//
delay (1000);
}
mein Output sieht so aus
Connected to network
My IP address is: 192.168.4.3
Connecting to SQL... ...trying...
Connected to server version 5.5.5-10.11.6-MariaDB-0+deb12u1-log
OK.
Send Data: 114
Send Data: 114
Send Data: 114
Send Data: 114
und dann bin ich nochmal uf den Raspi und habe mir mal
SHOW PROCESSLIST
angeguckt, da kam dann das hier raus
Sorry ist grad nur n Foto vom Monitor aber das ging grad nicht anders.
Also er scheint irgendetwas zu schicken aber es sieht so aus als ob er entweder NULL sendet oder vllt passen die Datenformate nicht aufeinander? in meiner Tabelle af der DB sind alle werte INT.
