Arduino Forum

International => Español => Software => Topic started by: amontes0102 on Feb 14, 2020, 11:33 pm

Title: MySql Insert Query-Error de captura en BD
Post by: amontes0102 on Feb 14, 2020, 11:33 pm
Hola a todos.

Estoy desarrollando un proyecto en Arduino UNO en el cual pretendo contabilizar los pulsos de un encoder rotativo y por medio de un push button ejecutar un Insert query que grabe el contador en la BD.

Mi problema se centra en que no puedo encapsular el valor de contador para insertarlo en la BD, actualmente capturo la palabra "Pos",  ya que asi nombre mi variable.

En el monitor serial si puedo imprimir el valor numerico de la variable "Pos"

Alguien puede ayudarme a encapsular el valor para el query?


Code: [Select]

#include <SPI.h>
#include <Ethernet.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>

const int LED1 = 12;
const int LED2 = 13;
int pinA = 6;  // Conectado al CLK on KY-040
int pinB = 5;  // Conectado al DT on KY-040
int Pos = 0; // Es el que indica la posición del encoder
bool C = true;
bool D = true;
unsigned long time;
unsigned long t;

const int boton = 2;
int val;
char INSERT_SQL[] = "INSERT INTO  fxi.counter (counter)VALUES ('%Pos')";  // Sample query

byte mac_addr[] = {  0x90, 0xA2, 0xDA, 0x10, 0xBD, 0x2C };

IPAddress server_addr(192, 168, 0, 101); // IP of the MySQL *server* here
char user[] = "fxi";              // MySQL user login username
char password[] = "4321";        // MySQL user login password

EthernetClient client;
MySQL_Connection conn((Client *)&client);

void setup() {

  // Inicio puerto serie
  Serial.begin (9600);

  // Declaro pines Encoder
  pinMode(boton, INPUT);
  pinMode (pinA, INPUT); // Derecha
  pinMode (pinB, INPUT); // Izquierda
  pinMode (LED1, OUTPUT);
  pinMode (LED2, OUTPUT);

  Ethernet.begin(mac_addr);
  Serial.println("Connecting...");
  if (conn.connect(server_addr, 3306, user, password)) {
    delay(8000);
  }
  Serial.print("Encoder Position: ");
  Serial.println(Pos); // Contador para la posición
}

void loop() {
  if (digitalRead(pinA) == LOW) {
    digitalWrite(LED1, LOW);
    t = time;
    if (C == true) {
      Pos ++;   //pos = pos + 1
      digitalWrite(LED1, HIGH);
      Serial.print("Encoder Position: ");
      Serial.println(Pos);
      C = false;
      D = false;

    }
  }
  if (digitalRead(pinB) == LOW) {
    digitalWrite(LED2, LOW);
    t = time;
    if (D == true) {
      Pos --;   // pos = pos - 1
      if (Pos < 0) {
        Pos ++; // Evito conflicto con Encoder
      }
      digitalWrite(LED2, HIGH);
      Serial.print("Encoder Position: ");
      Serial.println(Pos);
      D = false;
      C = false; // Bloquea la lectura del A porque el B llego primero
      //y sino me entra y pasa a la posición anterior

    }

  }
  if (time - t > 1) { // Tengo que esperar 8 ms para registrar nuevamente
    C = true;
    D = true;
  }

  val = digitalRead(boton);
  if (val == LOW) {
    delay(50);
    if (val == LOW) {
      MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
      cur_mem->execute(INSERT_SQL);
      delete cur_mem;
      Serial.println("Data recorded.");

      delay(1000);
    }
    else Serial.println("Connection failed.");
  }
  time = millis(); // Registra el tiempo en todo el programa
  //y lo usare en las distintas instancias.
}


Title: Re: Arduino UNO + MySql+Encoder
Post by: surbyte on Feb 19, 2020, 02:18 pm
Hay numerosos ejemplos de INSERT a DB de MySQL en este foro.

Solo ve a la LUPA y busca INSERT MySQL y verás lo que te estoy asegurando.
Title: Re: MySql Insert Query-Error de captura en BD
Post by: surbyte on Feb 19, 2020, 03:30 pm
No doble postees.
Este hilo será mezclado con el otro que tienes similar.
Incurrir en nuevos doble posteos puede conducir a sanciones.
Además las imágenes adjuntas deben hacerse visibles siguiendo la guía indicada al final de las normas del foro que mas abajo te indico.
Lee las
Normas del foro (http://forum.arduino.cc/index.php?topic=310951.0).
Title: Re: MySql Insert Query-Error de captura en BD
Post by: amontes0102 on Feb 21, 2020, 07:29 pm
Surbyte:

Maestro, como elimino este post para agregar otro, por favor ayudameeeeeeee!!!
Title: Re: MySql Insert Query-Error de captura en BD
Post by: surbyte on Feb 22, 2020, 12:02 am
Si vas a preguntar por lo mismo sigue aquí. Si vas a preguntar por otro tema ábrelo sin problema.