kostenloser Webspace werbefrei: lima-city


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

Login zum Webhosting ohne Werbung!