Publicado por el 17 octubre, 2015 2 comentarios
Dificultad mediaComplejidad media
CC BY-SA 4.0

Gracias a los módulos inalámbricos de transferencia de datos como el módulo WiFi ESP8266, podemos enviar datos de forma sencilla a MySQL puesto que podemos realizar peticiones GET al servidor web.



Al igual que en otros tutoriales, la técnica consiste en realizar una petición GET a un servidor, en la cual le mandamos el valor de la LDR, el servidor ejecuta un código PHP y este último código enlaza con la base de datos almacenando el valor que le enviamos desde la electrónica.

Usamos una LDR y un potenciómetro en forma de divisor de tensión y su punto medio lo conectamos al pin analógico 1 del microcontrolador, que es el pin 7. ESP8266 lo conectamos a los pines digitales 3 y 4 que corresponden con los pines físicos 3 y 2 del micro. Alimenta el micro en el pin 8 y masa en el 4.

NUNCA SE TE OLVIDE QUE ESP8266 FUNCIONA A 3.3 VOLTIOS, no lo conectes a 5 voltios.

LDR a MySQL con ESP8266

LDR a MySQL con ESP8266

Es muy importante que tengas claro que dependiendo del módulo de comunicaciones que estés usando, la petición GET se hace de una forma o de otra, en este caso usando el módulo ESP8266 con su configuración de fábrica, las peticiones las haremos mandando comandos AT por puerto serie al modulo.

También recordar que el código PHP con el que estoy haciendo el tutorial no es el código ideal para enlazar con la base de datos, por ejemplo podríamos usar PDO que es mucho más seguro, pero puesto que este tutorial es sobre el microcontrolador y el módulo WiFi para no complicarnos mucho usamos un PHP sencillo.


 

Código PHP

<?php
$conexion = mysql_connect("localhost", "TuUsuario", "TuContraseña");
mysql_select_db("proyectos",$conexion);
mysql_query("INSERT INTO 'var'('valor') VALUES ('" . $_GET['valor'] . "')", $conexion);
?>

 



 

Código Attiny85 para ESP8266

#include <SoftwareSerial.h>

SoftwareSerial serie(3, 4);

void setup() {
serie.begin(9600);
}

void loop() {
serie.println("AT+CIPSTART=\"TCP\",\"192.168.1.172\",80");
delay(3500);
serie.println("AT+CIPSEND=28");
delay(3500);
serie.print("GET /ejemplo.php?valor=");
serie.println(analogRead(1));
delay(8000);
}
Sobre el autor
Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en enrique.rinconingenieril.es
Artículos relacionados
Deja un comentario