Cómo analizar datos usando Arduino

Arduino es una gran herramienta para recopilar datos. Estos datos se pueden analizar para tomar decisiones, lo que significa que un Arduino puede ser una parte clave de un proceso de toma de decisiones basado en datos. Un Arduino puede recopilar datos de los sensores, almacenarlos y enviarlos a otro dispositivo para su posterior análisis. Escribí esta guía para ayudar a las personas a comprender cómo se puede usar un Arduino como parte de un proceso de análisis de datos.

Para analizar datos con un Arduino:

  • Decide qué medir y conecta sensores al Arduino para medirlo
  • Leer datos de estos sensores
  • Enviar los datos a otro dispositivo para su análisis
  • Analizar los datos y tomar decisiones.
  • Proceso de análisis de datos usando mi Arduino UNO WiFi Rev 2

    Esta guía cubre cómo decidir qué datos recopilar, conectar sensores al Arduino, leer los datos y luego transmitirlos a otro dispositivo para su análisis. Trabajo mucho con datos y es emocionante ver cómo se puede usar un Arduino como parte de un sólido proceso de análisis de datos.

    Paso 1: Decida los datos a recolectar y encuentre sensores para medirlos

    El análisis de datos generalmente comienza con averiguar qué decisiones queremos tomar: ¿Queremos que nuestro automóvil autónomo acelere o frene? ¿Deberíamos traer un paraguas? ¿Necesito agregar más agua a este suelo? etc. Para decidir qué datos recopilar y cómo recopilarlos, debemos comprender el objetivo de nuestro proyecto.

    ¿Qué decisión nos va a ayudar a tomar nuestro Arduino? Comprender la decisión que queremos tomar nos ayuda a determinar qué sensores necesitamos usar para recopilar datos.

    sensor de decisión
    ¿Deberíamos llevar un paraguas? Temperatura, humedad
    ¿Necesito agregar más agua a mi planta? La humedad del suelo
    ¿Deberíamos abrir este grifo? Sensor de flujo de agua
    ¿Qué tan ocupado está este camino? Contar autos usando sensor láser
    ¿Hay alguien detrás de mí? Sensor de movimiento

    Decisiones que podemos tomar y los sensores que influyen en esas decisiones

    Los sensores que he encontrado que funcionan bien con Arduino incluyen:

    • Color
    • La humedad del suelo
    • Temperatura y humedad
    • campo magnético, electricidad, voltaje
    • Movimiento (inclinación, aceleración)
    • Fuego
    • Luz
    • Sonar

    Si necesita más ideas para sensores, consulte mi enorme guía de más de 20 sensores que funcionan con Arduino aquí: revhardware.com/arduino-sensors-uses-costs-connections/

    Estos sensores generalmente se conectan a un Arduino usando pines analógicos, pines digitales, SPI o I2C. Cada sensor vendrá con una hoja de datos (consulte la tienda donde lo compró, la mayoría incluye el PDF en la página del producto). Esta hoja de datos le dirá cómo el sensor informa los datos, normalmente analógico (así que conéctelo al pin analógico) o SPI/I2C (conéctelo a estos pines en su Arduino).

    Para conectar un sensor a un Arduino:

  • Identifique cómo quiere conectarse el sensor al Arduino (normalmente la conexión SPI o I2C, pero también puede ser un pin analógico o un pin digital normal)
  • Conecte el sensor a los pines o encabezados correctos
  • Lea el sensor usando un boceto (vea el Paso 2 a continuación)
  • Es posible conectar múltiples sensores a un Arduino. Una conexión I2C normalmente puede admitir hasta una docena de sensores (en teoría, se pueden conectar 127, pero en la práctica es mucho menos, consulte esta explicación si quiere saber por qué). Personalmente, nunca he tenido problemas para conectar 3-4 sensores al mismo Arduino.

    Paso 2: Lea y recopile los datos

    El siguiente paso, después de conectar los sensores al Arduino, es recopilar los datos.

    Por lo general, he visto dos formas de leer sensores en un boceto: directamente desde un pin analógico o leyendo datos en serie de SPI o I2C. Hay otras formas (por ejemplo, pines digitales), pero estas son las formas más comunes que he visto.

    (foto de pin out de Arduino)

    Para leer desde el pin analógico, consulte el siguiente boceto de muestra:

    #incluye int lectura = 0; int dirección de almacenamiento = 0; configuración vacía () { pinMode (A0, ENTRADA); } bucle vacío () { lectura = lectura analógica (A0); EEPROM.put(dirección de almacenamiento, lectura); direcciónAlmacenamiento += tamaño(int); retraso (500); }

    Este código toma una lectura del pin analógico (donde está conectado el sensor) y luego lo guarda en la EEPROM. Para la mayoría de los proyectos de análisis de datos, probablemente desee transmitir la lectura a través de Wi-Fi o Ethernet, o almacenarla en una tarjeta SD para recopilarla más tarde (consulte el Paso 3 a continuación). Hice este ejemplo breve para que encaje en esta guía.

    Para leer un sensor usando la conexión SPI de Arduino:

  • Incluir la biblioteca SPI.h
  • Llame a SPI.begin() en la función setup()
  • Comunicarse con el dispositivo SPI en la función loop()
  • Encontré SPI un poco más complicado de configurar que leer desde el pin analógico. Consulte este ejemplo para obtener más detalles sobre cómo escribir un boceto que usa SPI. La referencia de la biblioteca Arduino está aquí.

    Para leer un sensor usando la conexión I2C de Arduino:

  • Incluir la biblioteca Wire.h
  • Llame a Wire.begin() en la función setup()
  • En la función loop():
  • Llame a Wire.beginTransmission (dirección) para transmitir al dispositivo con dirección
  • Llame a Wire.write (byte) para enviarle datos
  • Llame a Wire.endTransmission() para dejar de transmitir datos al dispositivo
  • Si bien I2C parece más difícil de usar, encontré que el flujo lógico de un boceto I2C es más claro que SPI. Consulte este ejemplo para ver cómo se usa I2C en la práctica, y la referencia de Arduino para I2C se puede encontrar aquí.

    Después de recopilar los datos, el siguiente paso es enviarlos a algún lugar para su análisis.

    Paso 3: Enviar los datos para su análisis

    Un Arduino utilizado en un proceso de análisis de datos normalmente envía sus datos a otro dispositivo para su análisis. Este dispositivo suele ser una computadora de escritorio o portátil, una Raspberry Pi o la nube.

    Las placas Arduino en general son capaces de enviar datos de las siguientes maneras:

    • Ethernet o Wi-Fi
    • Bluetooth
    • dispositivo de almacenamiento masivo USB
    • Conexión en serie
    • tarjeta SD

    Es posible que algunos de estos métodos no estén disponibles en todos los Arduino (por ejemplo, UNO Rev 3 no tiene Bluetooth incorporado), y algunos se pueden agregar mediante escudos (por ejemplo, un escudo de Bluetooth o un escudo de tarjeta SD). Descubrí que las formas más fáciles de enviar datos desde un Arduino para el análisis de datos son mediante WiFi o una tarjeta SD.

    Si desea saber más sobre qué métodos de comunicación son compatibles con qué Arduino, este es uno de los puntos que cubrí en mi guía sobre el mejor Arduino para personas que comienzan, échale un vistazo aquí: revhardware.com/best-arduino-for -principiantes/

    Envío datos desde mi Arduino a una computadora para su análisis, generalmente usando Ethernet, WiFi o almacenamiento flash (tarjeta SD)

    El envío de datos de sensores desde un Arduino generalmente implica:

  • Guarde los datos del sensor en la memoria de Arduino (consulte el Paso 2 anterior)
  • Abra una conexión a otro dispositivo (por ejemplo, WiFi) o abra un archivo en una tarjeta SD
  • Escribir los datos en la conexión o en el archivo
  • Para obtener detalles sobre cómo usar una tarjeta SD, consulte este ejemplo de un registrador de datos en el sitio web de Arduino. La referencia para la biblioteca de la tarjeta SD se puede encontrar aquí.

    Para obtener detalles sobre cómo usar una conexión WiFi, consulte mi guía WiFi aquí: revhardware.com/arduino-board-wifi-guide/ (desplácese hacia abajo hasta la sección Cómo usar)

    Si bien un Arduino puede realizar tareas de análisis básicas (como filtrar lecturas erróneas), prefiero dejar todo el análisis a una computadora más potente. Mi cerebro de ingeniero siempre me hace buscar las mejores herramientas para el trabajo: un Arduino es excelente para leer datos de sensores, una computadora más poderosa es excelente para analizar datos.

    Paso 4: analizar y visualizar los datos

    Una vez que los datos se envían a otro dispositivo, se pueden analizar y mostrar para la toma de decisiones.

    Las tareas típicas de análisis de datos que se aplican a los datos recopilados por Arduino incluyen:

    • Filtrado de datos: ¿queremos ver datos durante un período de tiempo determinado? ¿Queremos eliminar los valores atípicos?
    • Categorización: agrupar los datos en categorías (aunque generalmente con un proceso de análisis de Arduino, nos encargamos de esto en el Paso 1 cuando decidimos qué sensores íbamos a usar);
    • Correlación: comparar 2 o 3 categorías de datos, incluida la comparación a lo largo del tiempo, para ver si existe alguna relación entre ellos.

    La forma más fácil que he encontrado para analizar estos datos es usar Excel. para usar Excel con datos recopilados por un Arduino, primero guarde esos datos como un archivo CSV, luego abra el archivo en Excel y conviértalo al formato de Excel.

    Las formas alternativas (y más baratas) de analizar datos incluyen:

    • Python, usando la librería Pandas
    • Rubí
    • Directamente en herramientas de visualización como Tableau o Power BI

    Arduino también ofrece su servicio Cloud IoT, que es gratuito al principio y luego cuesta €2 al mes si desea trabajar con algunos dispositivos diferentes. Los detalles de Arduino Cloud IoT se pueden encontrar aquí.

    La visualización de datos utiliza herramientas similares. Las mejores formas de visualizar los datos que provienen de un Arduino incluyen:

    • Dibujar gráficos en Python o Ruby en una computadora
    • Usando Excel
    • Conexión a la nube de Arduino
    • Construyendo un tablero en otro dispositivo (por ejemplo, Raspberry Pi)
    • Conectarse a otro servicio de terceros, como Tableau

    ¿Quiere configurar un tablero de datos usando Raspberry Pi? Escribí una guía sobre cómo comenzar a mostrar datos con Raspberry Pi aquí: revhardware.com/raspberry-pi-dashboards/

    Descubrí que Arduino es una gran herramienta como parte de un proceso de análisis de datos. Es excelente para recopilar datos y enviarlos a otra herramienta para su procesamiento. Arduino hace esto de una manera muy eficiente, eficiente en términos del tiempo que dedica a configurarlo, los costos involucrados e incluso la cantidad de energía que usa (¡no mucha!). Si está interesado en leer más sobre Arduino, consulte todas las excelentes guías que tenemos aquí: revhardware.com/category/arduino/

    Ruben disfruta trabajar con datos, software y electrónica. Analizar datos con Arduino es la superposición perfecta de estos intereses. Ruben comparte su conocimiento aquí con la esperanza de que usted también se entusiasme con el potencial de los usos de estas áreas.