Suche auf lima-city
-
in: Verbindung Arduino mit mysql
geschrieben von reith
Herzlichen Dank, es funtioniert. -
in: Verbindung Arduino mit mysql
geschrieben von reith
Herzlichen Dank für die Tips.
Die Datenbankanbindung funktioniert, aber leider werden nur Nullwerte in die DB geschrieben. Ich fürchte das hat mit den Datentypen zu tun, aber ich habe keine Lösung für das Problem gefunden.
Auf http://www.xively.com habe ich eine Plattform gefunden wie ich meine Daten uploaden und Darstellen kann.
Das Listing meines nur teilweise funktionierenden Sketch.
#include "SPI.h" #include "Ethernet.h" #include "sha1.h" #include "mysql.h" /* Setup for Ethernet Library */ byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress server_addr(212, 83, 45, 132); /* Setup for the Connector/Arduino */ Connector my_conn; // The Connector/Arduino reference const int analogPin = A0; const int analogPin1 = A1; char user[] = "USERXXXXXX"; char password[] = "XXXXXXX"; char INSERT_SQL[] = "INSERT INTO db_XXXXXX_1.test VALUES ('Label4','Label5')"; int Label4 = 0; int Label5 = 0; void setup() { pinMode(analogPin, INPUT); pinMode(analogPin1, INPUT); /* Ethernet.begin(mac_addr); Serial.begin(9600); delay(1000); Serial.println(Label4); Serial.print("server is at "); Serial.println(Ethernet.localIP()); Serial.println("Connecting..."); if (my_conn.mysql_connect(server_addr, 3306, user, password)) { delay(500); my_conn.cmd_query(INSERT_SQL); Serial.println("Query Success!"); } else Serial.println("Connection failed.");*/ } void loop() { Label4 = analogRead(analogPin); Label5 = analogRead(analogPin1); Ethernet.begin(mac_addr); Serial.begin(9600); delay(10000); Serial.println(Label4); Serial.println(Label5); Serial.print("server is at "); Serial.println(Ethernet.localIP()); Serial.println("Connecting..."); if (my_conn.mysql_connect(server_addr, 3306, user, password)) { delay(500); my_conn.cmd_query(INSERT_SQL); Serial.println("Query Success!"); } else Serial.println("Connection failed."); }
-
in: Verbindung Arduino mit mysql
geschrieben von reith
Ist es möglich mit dem Arduino-Board direkt Daten an den mysql-Server von Lima-city zu senden und wie müsste dann der Sketch ausehen? Leider bin ich mit den eigenen Versuchen nicht erfolgreich gewesen.
Vielen Dank für die Unterstützung! -
in: Steuerung mit Arduino
geschrieben von reith
Danke für die Antwort. Ich habe das Problem gelöst indem ich den "Heben - Ausgang" auslese und mit den "Endschalter - unten" verknüpfe.
Derzeit verwende ich einen Versuchsaufbau mit einer Arduino UNO und einem LCD KeypadShield um die Programmierung zu lernen. Die Analogen Signale simuliere ich mit Potis.
Später wird für die Wasserpegelwerte (Vor.- bzw. Nach Rechen) eine Drucksonde, die 4-20mA ausgibt verwendet. Das mA Signal werde ich mit einem 250Ohm Widerstand umwandeln. Mit dem Ausgängen werde ich Optokoppler ansteuern.
Als Eingänge benötige ich:
Start Einzeldurchlauf
Hacke oben
Hacke unten
Störung-Motorschutz gelöst
Störung-Schlaffseil
Als Ausgänge:
Hacke senken
Hacke heben
Störung
Mir ist bewusst das ich mit diesem Versuchsaufbau zuwenige I/O habe, daher werde ich später ein serielles LCD Display verwenden.
Da die Rechenreinigungshacke in eine Richtung etwa eine Minute unterwegs ist, möchte ich diese Zeitdauer überwachen um einen möglichen Schaden zu verhindern. Dazu fehlt mir leider noch eine Idee.
Nachfolgend meine Code: Ich würde gern die Zeit zwischen "unterer Endlage(12) und oberer Endlage(2)"überwachen und an der "OUTPUT Störungs_LED(13) ausgeben.
#include <LiquidCrystal.h> //Sample using LiquidCrystal library LiquidCrystal lcd(8, 9, 4, 5, 6, 7); const int analogInPin = A1; // Istwert vor Rechen const int analogInPin2 = A2; // Istwert nach Rechen const int analogInPin3 = A3; // Sollwert Pegeldifferenz const int diffPin = 11; // OUTPUT Pegeldifferenz_LED const int defaultPin = 13; // OUTPUT Störungs_LED const int obenPin = 2; // INPUT obere Endlage const int untenPin = 12; // INPUT untere Endlage const int hebenPin = 3; // OUTPUT Heben int sensorValue = 0; // Eingabewert Poti vor Rechen int sensorValue2 = 0; // Eingabewet Poti nach Rechen int outputValue = 0; // Ausgabewert Poti vor Rechen int outputValue2 = 0; // Ausgabewert Poti nach Rechen int defButton = 0; // Rückgabe Zustand Störung int buttonState0 = 0; // Rückgabe Zustand untere Endlage int buttonState1 = 0; // Rückgabe Zustand obere Endlage int potiDiff = 0; // Eingabewert Poti Pegeldifferenz Sollwert int diffValue = 0; // Ausgabewert Poti Pegeldifferenz Sollwert int hebenState = 0; // Rückgabe Zustand Heben void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); lcd.begin(16,2); pinMode(diffPin, OUTPUT); //OUTPUT Pegeldifferenz_LED pinMode(defaultPin, OUTPUT); //OUTPUT Störungs_LED pinMode(obenPin, INPUT); pinMode(untenPin, INPUT); pinMode(hebenPin, OUTPUT); } void loop() { // Heben buttonState0 = digitalRead(untenPin); buttonState1 = digitalRead(obenPin); hebenState = digitalRead(hebenPin); if (((buttonState0 == HIGH) || (hebenState == HIGH))&&(defButton == LOW)&&(buttonState1 == LOW)) { // turn LED on: digitalWrite(hebenPin, HIGH); } else { // turn LED off: digitalWrite(hebenPin, LOW); } // Auslesen des Störungsausgang defButton = digitalRead(defaultPin); // Abfrage Störung if ((outputValue-125 < 0) || (outputValue2-125 < 0) || (outputValue-125 > 495) || (outputValue2-125 > 495)) { digitalWrite(defaultPin, HIGH); } else { digitalWrite(defaultPin, LOW); } // Abfrage Pegeldifferenz if ((outputValue - outputValue2 >= diffValue) && (defButton == LOW)) { digitalWrite(diffPin, HIGH); } else { digitalWrite(diffPin, LOW); } // Auslesen der Analogen Eingänge sensorValue = analogRead(analogInPin); sensorValue2 = analogRead(analogInPin2); potiDiff = analogRead(analogInPin3); // Analoge Eingänge zu Analoge Ausgänge umrechnen outputValue = map(sensorValue, 0, 1023, 0, 625); outputValue2 = map(sensorValue2, 0, 1023, 0, 625); diffValue = map(potiDiff, 0, 1023, 0, 50); Serial.print("Vor Rechen = " ); Serial.print(outputValue); Serial.print("\t Nach Rechen = "); Serial.print(outputValue2); Serial.print("\t Differenz = "); Serial.println(outputValue - outputValue2); // "Diff. und VR" ins Display schreiben lcd.setCursor(0,0); lcd.print("Diff. VR"); // Ausgang Analogwert vor Rechen schreiben lcd.setCursor(11,0); if (((outputValue-125)>=0) && ((outputValue-125) < 495)) { lcd.println(outputValue-125); } else { lcd.println("???"); } // "cm" schreiben lcd.setCursor(14,0); lcd.print("cm"); // Pegeldifferenz schreiben lcd.setCursor(0,1); lcd.println(diffValue); // "cm" schreiben lcd.setCursor(2,1); lcd.print("cm"); // "NR" schreiben lcd.setCursor(7,1); lcd.print("NR"); // Ausgang Analogwert vor Rechen schreiben lcd.setCursor(11,1); if (((outputValue2-125)>=0) && ((outputValue2-125) < 495)) { lcd.println(outputValue2-125); } else { lcd.println("???"); } // "cm" schreiben lcd.setCursor(14,1); lcd.print("cm"); }
Danke im Voraus für einen guten Tip -
in: Steuerung mit Arduino
geschrieben von reith
Ich arbeite an einer Rechenreinigungssteuerung mit einer Arduino UNO. Ich stehe jetzt vor dem Problem das ich einen Ausgangszustand bis zum Eintreffen eines anderen Ereigniss speichern kann.
zB. wenn Rechenreinigungshaken unten ankommt, gibt ein Endschalter der Steuerung zurück, dass der Hacken unten ist.
Jetzt soll der Hacken gehoben werden (der untere Endschalter geht wieder auf AUS) bis ein anderer Endschalter meldet das der Hacken oben ist.
Kann mir bitte jemand einen Tip geben. -
in: Visual Basic-Unterdrückung Fehlermeldung
geschrieben von reith
Danke für die Tipps, sie haben aber leider nicht geholfen. Ich habe jetzt versucht
Catch ex As Exception ' MsgBox(ex.Message)
die MsgBox(ex.Message) zu löschen. Das Programm steht zwar für ein paar Sekunden, aber es funtioniert. Ich fürchte, dass das nicht seher sauber ist, aber für meine Zwecke reicht es.
Herzlichen Dank für die Denkanstösse! -
in: Visual Basic-Unterdrückung Fehlermeldung
geschrieben von reith
Ich bin leider noch ein "Brustschwimmer" in der Visual Basic Programmierung daher kann ich deine Antwort leider nicht verstehen. Das wäre mein Code zur Datenbankanbindung
Private Sub Timer5_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer5.Tick Dim con As New Odbc.OdbcConnection Dim cmd As New Odbc.OdbcCommand Dim anzahl As Integer con.ConnectionString = "Provider=MSDASQL;" _ & "Driver={MySQL ODBC 5.1 Driver};" _ & "Server=xxx;UID=xx;password=xxx;" _ & "database=wasser" cmd.Connection = con cmd.CommandText = "insert * from daten" Try con.Open() cmd.CommandText = _ "insert into daten" & _ "(Label4, Label5, Label6, Label7, TextBox1) " & _ "values ('" & _ Label4.Text & "', '" & _ Label5.Text & "', '" & _ Label6.Text & "', '" & _ Label7.Text & "', '" & _ TextBox1.Text & "')" anzahl = cmd.ExecuteNonQuery() If anzahl > 1 Then MsgBox("Daten angefügt") End If Catch ex As Exception MsgBox(ex.Message) End Try con.Close() End Sub
Seht ihr einen offensichtlichen Blödsinn? -
in: Visual Basic-Unterdrückung Fehlermeldung
geschrieben von reith
Ich habe ein Visual Basic Programm geschrieben um automatisch, alle Stunden, Daten zu einer MySQL Datenbank zusenden. Wenn jetzt aus irgendeinen Grund (Internetverbindung unterbrochen,...) die Verbindung nicht klappt, erhalte ich folgende Meldung:
ERROR[HY000][MySQL][ODBC 5.1 Driver]Unknown MySQL server host'.....
ERROR[HY000][MySQL][ODBC 5.1 Driver]Unknown MySQL server host'.....
solange ich die Meldung nicht mit OK bestätige werden keine weiteren Daten mehr gesendet.
Dazu meine Frage: Kann man diesen Fehler unterdrücken bzw. ignorieren?
-
in: Projekt mit K8055, VB und Lima-City DB
geschrieben von reith
Danke, mit dieser Kritik kann ich was anfangen. Ich gelobe Besserung. -
in: Projekt mit K8055, VB und Lima-City DB
geschrieben von reith
Entschuldigung, aber ich würde gerne eine kurze Erlärung haben. Damit Greenhorn´s, wie ich,wissen was sie falsch machen und solche Fehler nicht wiederholen. -
in: Projekt mit K8055, VB und Lima-City DB
geschrieben von reith
Von mir selbst gelöscht