MySQL

De ArduWiki
Revisión del 18:20 16 jun 2019 de Kike GL (Discusión | contribuciones) (Ejemplo)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Descripción

La librería MySQL de Charles Bell se puede usar para conectar su proyecto Arduino directamente a un servidor MySQL sin usar una computadora intermedia o un servicio web o basado en la nube.

Tener acceso directo a un servidor de base de datos significa que puede almacenar los datos adquiridos de su proyecto, así como verificar los valores almacenados en las tablas en el servidor. Esto también significa que puede configurar su propio servidor MySQL local para almacenar sus datos y eliminar la necesidad de conectividad a Internet. Si eso no es un problema, aún puede conectarse y almacenar datos en un servidor MySQL a través de su red, Internet o incluso en la nube.

Placas aplicables

Sintaxis

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

Métodos

Metodos de MySQL
Método Descripción
connect() Conecta con la base de datos
execute() Ejecuta una consulta
show_results() Muestra el resultado de la consulta
field_struct() Muestra la estructura de la tabla

Comentarios

Advertencias

Ejemplo

#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,1,35);  //IP del servidor MySQL
char usuario[] = "root";              //usuario MySQL
char clave[] = "";                    //Clave usuario MySQL

//Consulta
char query[] = "SELECT campo1 FROM base.tabla WHERE campo2 = 'Lima'";

EthernetClient client;
MySQL_Connection conn((Client *)&client);
//Crea instancia de conexion
MySQL_Cursor cur = MySQL_Cursor(&conn);

void setup() {
   Serial.begin(115200);
   Ethernet.begin(mac_addr);
   Serial.println("Conectando...");
   if (conn.connect(server_addr, 3306, usuario, clave)) {
      delay(1000);
   }else{
      Serial.println("Fallo la conexion.");
   }
}

void loop() {
   row_values *row = NULL;
   long head_count = 0;
   delay(1000);
   Serial.println("1) Demonstrating using a cursor dynamically allocated.");
   // Initiate the query class instance
   MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
   //Ejecutando la consulta
  cur_mem->execute(query);
  //Opcionalmente se extraen los nombres de columna
  column_names *columns = cur_mem->get_columns();

  // Read the row (we are only expecting the one)
  do {
    row = cur_mem->get_next_row();
    if (row != NULL) {
      head_count = atol(row->values[0]);
    }
  } while (row != NULL);
  //Borrando el cursor de memoria
  delete cur_mem;

  // Show the result
  Serial.print("  NYC pop = ");
  Serial.println(head_count);

  delay(500);

  Serial.println("2) Demonstrating using a local, global cursor.");
   // Execute the query
   cur.execute(query);
   // Fetch the columns (required) but we don't use them.
   cur.get_columns();
   // Read the row (we are only expecting the one)
   do {
     row = cur.get_next_row();
      if (row != NULL) {
        head_count = atol(row->values[0]);
      }
   } while (row != NULL);
   // Now we close the cursor to free any memory
   cur.close();

   // Show the result but this time do some math on it
   Serial.print("  NYC pop = ");
   Serial.println(head_count);
   Serial.print("  NYC pop increased by 12 = ");
   Serial.println(head_count+12);
}

Vea también


Referencias externas