Hallo ich bin ein Anfänger wenn es um Arduino geht. Ich suche ein script mit dem ich folgendes machen kann:
Wenn Eingang x auf High dann schreibe in die mysql db eine 1. wenn eingang x auf low schreibe in db 0.
Einfache Erweiterung auf mehrere Eingänge.
Direktes Mysql ohne php
Für jeden eingang eigne spalte
Ich habe es schon mit dem Mysql connector und dem bastic_insert versucht aber da bekomme ich immer ein Connection faild hoffe da hat jemand eine idee oder ein scrpit wie ich das schaffen kann.
Die Lib. hab ich schon entdeckt aber sie noch nicht zum laufen bekommen bei dem basic_insert bekomme ich immer die fehlermeldung das er sich nicht verbinden kann auf meinen lokalen mysql server.
Tommy56:
Hast Du dem Benutzer in der DB-Administration bei Host % (=alle) oder wenigstens die IP Deines Arduino gegeben? Normalerweise steht da localhost drin.
Gruß Tommy
Ja der Benutzer hat alle rechte geht aber trotzdem nicht.
Bekomme immer noch folgendes:
#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(192,168,2,106); // IP of the MySQL *server* here
char user[] = "root"; // MySQL user login username
char password[] = "-"; // MySQL user login password
// Sample query
char INSERT_SQL[] = "INSERT INTO test_arduino.hello_arduino (message) VALUES ('Hello, Arduino!')";
EthernetClient client;
MySQL_Connection conn((Client *)&client);
void setup() {
Serial.begin(115200);
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);
}
else
Serial.println("Connection failed.");
}
void loop() {
delay(2000);
Serial.println("Recording data.");
// Initiate the query class instance
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
// Execute the query
cur_mem->execute(INSERT_SQL);
// Note: since there are no results, we do not need to read any data
// Deleting the cursor also frees up memory used
delete cur_mem;
}
Das Create-Statement gibst Du aber direkt an die DB, nicht über den Arduino.
"recorded timestamp" kenne ich nicht.
Warum baust Du die Tabelle nicht selbst nach Deinen Bedürfnissen auf?
Für den Timestamp könnte man z.B. ein Feld Zeitpunkt vom Typ Timestamp verwenden und als Defaultwert "CURRENT_TIMESTAMP" eintragen oder im Insert als Value NOW().
Mit dem ENC28J60 kann es mit der MySQL-Lib evtl. schon eng mit dem Speicher werden, da dieses Teil vieles im Speicher des Arduino abhandelt, was der W5100 intern regelt. Dieses Teil ist die schlechtest mögliche Version der Ethernetanbindung.
ElEspanol:
Dann hast du die falsche lib. Für das modul ksnnst du nicht die normale nehmen, die ist für den W5100
Nimm die UIPEthernet von Norbert, die ist befehlskompatibel mit der normalen
Wenn ich die UIPEthernet Lib nehme funktionier der mysql_connector aber nichtmehr richtig bekomme nur noch fehlermeldungen bei dem basic_insert script.
Ich nehme immer ein php Script und füge ein Passwort mit als Parameter an. Bringt zwar nur bedingt was, da kein https, aber besser als gar nichts. Und wenns falsch ist, braucht der Server ja nicht zu antworten.
Man kann mit php Skript auch einfacher testen.
SCraft5k:
Wenn ich die UIPEthernet Lib nehme funktionier der mysql_connector aber nichtmehr richtig bekomme nur noch fehlermeldungen bei dem basic_insert script.
Dann musst Du Dir wohl ein anderes Ethernetshield/-modul mit dem W5100 kaufen oder die Fehlermeldungen analysieren. Hast Du die Ethernet.h raus genommen?