Taller SpaceApps 2019 – IOT + MySQL

Volvemos al ataque con una librería muy interesante que nos puede ayudar mucho en nuestros proyectos y que nos facilitará la comunicación de cualquier proyecto basado en microcontroladores  tipo Arduino, (AVR)  ESP8266, ESP32 (espressif), etc para que podamos comunicarnos con un sistema MySQL como si fuéramos un cliente, y ejecutar nuestras consultas contra la base de datos MySQL.

Ingredientes.

  • Una máquina donde alojar nuestros servicios de MySQL, apache y demás
    • Odroid XU4
      • octacore
      • 2 GB RAM
      • eMMC 16 GB
  • Un sistema operativo
    • Debian / ARMBIAN
  • Una base de datos a elegir
    • MySQL
    • MariaDB
    • Añadimos un phpMyAdmin por facilitarnos un poco el acceso a las bases de datos
  • Un microcontrolador con pila de protocolos TCP /IP
    • Arduino + Shield ethernet
    • ESP8266
    • ESP32
  • Libreria MySQL
  • Arduino IDE

 

En este recetario no vamos a entrar en la instalación de Linux, Apache, MySQL, PHP (LAMP), con estos enlaces tendremos todo lo necesario para nuestra prueba.

  • https://www.tecmint.com/install-lamp-with-phpmyadmin-in-ubuntu-18-04/
  • https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian-8

Vamos a usar un módulo ESP8266 con un sabor a WEMOS(LOLIN)D1  R2

Vamos a cocinar nuestro programa

Aquí tenemos nuestros ingredientes.

.- 1 Wemos (LOLIN) D1 R2
.- OLED I2C (0.98») (libreria SSD1306Wire)
.- Giroscopio  I2C (aunque no lo vamos a usar para las pruebas de base de datos)
.- Programa de ejemplo de manejo de bases de datos con el ESP8266 (github de zaragoza maker  space)

El ejemplo está dividido en diferentes apartados, un programa principal (.ino) y diferentes librerías locales (.h)

define.h:

.- Información de a que pines conectamos nuestro bus de datos I2C
.- Información sobre la WiFi a la que me voy a conectar (SSID, PSK)
.- Función para trabajar por tiempos sin usar delay

oled.h

.- Inicializar la pantalla
.- Mostrar mensajes en pantalla (recomendable ver ejemplo que viene con la librería SSD1306Wire)
.- Función de mostrar información por pantalla (debugoled(String msg));

wifi.h

.- Función de conectar a una red WiFi indicada en el define.h

mysql.h

.- Conectar a una base de datos.
.- Ejemplo de la consulta SQL necesaria para introducir los datos

 

Nota:
Importante para trabajar con I2C conocer las direcciones físicas de nuestros dispositivos (usar librería I2Cdetect)

 

 

 

 

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

diez − 5 =

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.