Análisis de datos con MathWorks y Netduino


Este ejemplo muestra cómo leer datos de temperatura y humedad de ThingSpeak  ( del canal 12397)  , que recoge datos meteorológicos de un  dispositivo de  Iot que perfectamente  puede ser una placa  Arduino , Raspbery Pi o incluso  un Netduino.
La idea es enviar a los datos de temperatura y humedad en el canal de medición de punto de rocío, y calcular con arreglo a estos  datos el punto de rocío  utilizando ThingSpeak™ para visualizar los resultados en su canal.
El punto de rocío o temperatura de rocío es la más alta temperatura a la que se condensa el vapor de agua contenido en el aire, produciendo rocío, neblina, cualquier tipo de nube o, en caso de que la temperatura sea lo suficientemente baja, escarcha.

Este ejemplo  requiere que ya han realizado estos pasos:

  • Iniciar sesión a su cuenta de MathWorks®  o en la cuenta de ThingSpeak  o crear una nueva cuenta de MathWorks .
  • Crear un canal como el canal de medición de punto de rocío.

Leer datos de un canal

Leer la temperatura y humedad en el canal público de WeatherStation campos 3 y 4 y escribir los datos en campos 2 y 1, respectivamente, de su canal de medición de punto de rocío. Punto de rocío es calculado y escrito a campo 3.

Para usar el análisis de   MATLAB®  para leer, calcular y escribir los datos siga los siguientes pasos:

  1. Ir a la pestaña de aplicaciones y haga clic en Análisis de MATLAB.
  2. Haga clic en nuevo. Seleccione la plantilla personalizada y haga clic en crear.
  3. En el campo nombre , escriba.Dew Point Calculation
  4. En el campo de código MATLAB, introduzca las siguientes líneas de código.
    1. Guardar la estación pública canal ID y tu ID de canal de medición de punto de rocío a las variables.
      readChId = 12397;
      writeChId = 677;  % replace with your channel number
    2. Guardar su clave de API de escribir en una variable.
      writeKey = 'F6CSCVKX42WFZN9Y'; % Replace with your channel write key

      Para encontrar su canal ID y Write API Key, consulte información del canal en la pestaña de Mis canales .

    3. Leer los últimos 20 puntos de datos de temperatura con las marcas de tiempo y la humedad en el canal público de la estación meteorológica en las variables.
      [temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20);
      humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);

Calcular el punto de rocío

Agregue el siguiente código MATLAB para calcular el punto de rocío con las lecturas de temperatura y humedad:

  1. Convertir la temperatura de Fahrenheit a Celsius.
    tempC = (5/9)*(temp-32);
  2. Especificar las constantes de vapor de agua () y (presión barométrica). bc
    b = 17.62;
    c = 243.5;
  3. Calcular el punto de rocío en grados Celsius.
    gamma = log(humidity/100) + b*tempC./(c+tempC);
    dewPoint = c*gamma./(b-gamma)
  4. Convertir el resultado a Fahrenheit.
    dewPointF = (dewPoint*1.8) + 32;
  5. Escribir datos en el canal de medición de punto de rocío. Este código entradas todos los datos en una operación e incluye las marcas de hora correcta.
    thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],...
    'TimeStamps',time,'Writekey',writeKey);

    El bloque completo de código aparece ahora como:

    % Enter your MATLAB Code below
    readChId = 12397;
    writeChId = ZZZZZ;              % Replace with your channel number
    writeKey = 'XXXXXXXXXXXXXXXX';  % Replace with your channel write key
    [temp,time] = thingSpeakRead(readChId,'Fields',4,'NumPoints',20);
    humidity = thingSpeakRead(readChId,'Fields',3,'NumPoints',20);
    tempC = (5/9)*(temp-32); 
    b = 17.62;
    c = 243.5;
    gamma = log(humidity/100) + b*tempC./(c+tempC);
    dewPoint = c*gamma./(b-gamma)
    dewPointF = (dewPoint*1.8) + 32;
    thingSpeakWrite(writeChId,[temp,humidity,dewPointF],'Fields',[1,2,3],...
    'TimeStamps',time,'Writekey',writeKey);
  6. Haga clic en Guardar y ejecutar para validar y procesar el código.Cualquier error en el código se indica en el campo de salida .
  7. A ver si el código funcionó con éxito, haga clic en su enlace de canal de Medición de punto de rocío en el panel de Información del canal .

El canal de medición de punto de rocío ahora muestra gráficos con datos de un canal de cada campo.

Código del calendario

Utilizaremos  la aplicación TimeControl para programar el cálculo del punto de rocío en el código de analisis MATLAB programando este  para leer los datos de la estación cada 30 minutos y calcular el punto de rocío

Estos son los pasos a seguir:

  1. Desplácese hasta la parte inferior de la página de MATLAB análisis cálculo de punto de rocío. Haga clic en TimeControl para abrir la aplicación MATLAB análisis pre-seleccion en el campo de acciones y el cálculo del punto de rocío como la ejecución de código.
  2. Nombre de su nuevo TimeControl Dew Point TC
  3. Elegir recurrentes en el campo de frecuencia .
  4. Elegir el minuto en el campo de la repetición .
  5. Seleccione 30 en el cada — minutos campo.
  6. Mantener el Tiempo de inicio en el valor predeterminado.
  7. Verificar que la acción es, y el código a ejecutar es el.MATLAB AnalysisDew Point Calculation
  8. Haga clic en Guardar TimeControl

Nota:Configurar un TimeControl para escribir datos en el canal utiliza mensajes disponibles en su cuenta de ThingSpeak. Esta acción puede agotar eventualmente mensajes disponibles, que se traduce en rechazo del canal de alimentación de actualizaciones. Asegúrese de que los datos que escribes a un canal de no se superponen en el dominio del tiempo como hace uso innecesario de los mensajes.

Visualizar medida de punto de rocío

Se puede utilizar la aplicación visualizaciones de MATLAB para visualizar los datos de punto de rocío medido, la temperatura y la humedad de tu canal de medición de punto de rocío. Este ejemplo utiliza la función Mostrar todos los puntos de tres datos en una única visualización.thingSpeakPlot

Ir a aplicaciones > MATLAB visualizacionesy haga clic en nueva para crear una visualización.

Alternativamente, usted puede hacer clic en Visualización de MATLAB en su punto de vista del canal de medición de punto de rocío.

Seleccione la plantilla personalizada y haga clic en crear.

  1. Nombre de la visualización «Punto de rocío.»
  2. Crear variables para su ID de canal de medición de punto de rocío y su clave de API de lectura. Sustituya los valores en el código con tu canal ID y la clave de API de lectura.
    readChId = 677
    readKey = '36LPYCQ19U37ANLE'
  3. Leer datos de los campos de canal y obtener los últimos 100 puntos de datos para:
    • Temperatura: De campo 1
    • Humedad: Del campo 2
    • Punto de Rocío: de campo 3
      [dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],...
          'NumPoints',100,'ReadKey',readKey);
  4. Parcela los datos x y y las etiquetas, un título y una leyenda.
    thingSpeakPlot(timeStamps,dewPointData,'xlabel','TimeStamps',...
        'ylabel','Measured Values','title','Dew Point Measurement',...
        'Legend',{'Temperature','Humidity','Dew Point'},'grid','on');

    El código se verá similar a este código:

    % Enter your MATLAB code below
    readChId = ZZZZZ              % Your Channel ID                 
    readKey = 'XXXXXXXXXXXXXXXX' %Your Read API Key
    [dewPointData,timeStamps] = thingSpeakRead(readChId,'fields',[1,2,3],...
        'NumPoints',100,'ReadKey',readKey);
        thingSpeakPlot(timeStamps,dewPointData,'xlabel','TimeStamps',...
        'ylabel','Measured Values','title','Dew Point Measurement',...
        'Legend',{'Temperature','Humidity','Dew Point'},'grid','on');
  5. Haga clic en Guardar y ejecutar. Si su código MATLAB no tiene errores, la salida de trama es similar a la trama que se muestra a continuación:

 

¿Que es Moteino?


Moteino es una plataforma de desarrollo totalmente compatible con Arduino por lo que podremos utilizar una gran variedad de librerías disponibles . Es inalámbrica de baja potencia basada en el popular chip ATmega328p utilizado en el Arduino-UNO, lo que lo hace 100% compatible con el IDE de Arduino (entorno de programación).Es del tamaño de una tarjeta de memoria y permite establecer una conexión inalámbrica bidireccional de una forma muy fácil y sencilla.

Respecto al nombre no es mágico , lo cierto es que viene del funky correspondiendo a la suma  de Mote+ ino

Para la programación, se necesita un adaptador FTDI externo para cargar los sketchs, con las ventajas de un menor costo y un tamaño más pequeño.Como vamos a  ver la variante MoteinoUSB incluye el convertidor de serie USB.

Los Moteinos son compatibles y se pueden comunicar con cualquier otra plataforma Arduino o de desarrollo que utilice los populares transceptores HopeRF RFM69 o LoRa. Moteino también viene con un chip de memoria flash SPI opcional para programación inalámbrica o registro de datos.

 

El modelo principal, el Moteino R4, se basa en un microcontrolador ATmega328 junto con un transmisor RFM69 que emite en el rango de los 915Mhz.

 

Moteino fue diseñado para ser una plataforma de desarrollo compacta, altamente personalizable y asequible, adecuada para IoT, domótica y proyectos inalámbricos de largo alcance. Estas son algunas de las características que distinguen a Moteino:

  • Diseño modular pequeño y ligero que se adapta a recintos minúsculos
  • Las configuraciones flexibles permiten el uso de varios transceptores inalámbricos
  • Verdadera potencia ultrabaja : con solo ~ 2uA alcanzable en el modo de suspensión profunda, AVR Moteinos permite que los proyectos con batería, como los sensores inalámbricos de movimiento / entorno, funcionen durante años. El modo de suspensión de Watchdog está en ~ 6uA (activación periódica). El nuevo 8Mhz Moteino permite el modo de sueño 100nA más bajo posible. ¡El nuevo MoteinoM0 basado en SAMD21 Cortex M0 + duerme a solo ~ 8uA!
  • Las radios sub-Ghz y LoRa producen un rango mucho más largo que las bandas de 2.4Ghz
  • Programable de forma inalámbrica(OTA) : puede volver a flashearlo sin cables, cuando se implementa en ubicaciones difíciles (solo con radios RFM69)
  • Fácil de usar desde el familiar IDE Arduino, muchos ejemplos de código brindados para ayudarlo a comenzar
  • asequible: las antenas monopolo de cable de costo cero producen un excelente rango de RF para proyectos inalámbricos completos. Con los pads del conector u.FL / IPEX y SMA puede conectar cualquier otra antena externa con mayor ganancia
  • Visite el foro de proyectos de usuario para ver cómo las personas están usando Moteinos
  • Consulte la plataforma de automatización doméstica de LowPowerLab : proyecto Moteino IoT Gateway

 

Este es el Pinout:

 

 

 MoteinoUSB

Moteino-USB incluye el chip USB-serial FTDI. Técnicamente, un MoteinoUSB es la combinación de un adaptador FTDI y un Moteino regular. Se puede programar y alimentar a través del conector USB, pero también se puede ejecutar desde una batería (pin VIN ) igual de bien:

 

 

 

 

MoteinoMEGA

 

El MoteinoMEGA utiliza el microcontrolador Atmega1284p. Aún funciona a 3.3V / 16Mhz pero tiene 128KB de flash interno (frente a 32KB en Atmega328p), 16KB de RAM (vs 2KB), 4KB EEPROM (vs 1KB), 2x puertos serie de hardware, 8x patillas PWM y muchas más patillas GPIO. Todavía es un tablero pequeño de apenas 1.0 × 2.0 «y amigable para el tablero. Viene con el mismo cargador dearranque DualOptiboot, por lo que es capaz de programación inalámbrica «OTA», y puede tomar hasta 16V de entrada en los pines VIN (regulados por MCP1703).

Para cargar bocetos en MoteinoMEGA, primero deberá instalar el Moteino Core . Esto define el mapa de pines y otras definiciones de núcleo importantes que permiten programar el MEGA desde el IDE de Arduino. Una vez hecho esto, debe tener un nuevo objetivo de placa en Herramientas> Tarjetas llamadas MoteinoMEGA

Moteino MEGA, que es el hermano pequeño del clásico Arduino MEGA, ofreciendo muchos más pines para conectar otros dispositivos. Este sistema está pensado para aplicaciones de bajo consumo y también permite crear varias redes de sensores y nodos interconectados. Con el módulo transmisor RFM69 se puede llegar a cubrir distancias de hasta 300 metros en campo abierto.

Moteino con antena de rastreo (868-915Mhz)

También hay dos variantes especiales de Moteino con antenas de PCB integradas, disponibles para Moteino y MoteinoMEGA . Las antenas PCB están sintonizadas para las bandas 868-915mhz y tienen un rendimiento excelente dado su tamaño compacto. Además de la antena de PCB, son idénticos y funcionan igual que los Moteinos normales.

 

Transceivers

Los transceiver soportados por Moteino son los siguintes :

Aqui  podemos   sus  Datasheets

 

IMPORTANTE: Los módulos RFM69 no son LoRa y no son compatibles con los módulos RFM95/RFM96. Además los módulos RFM95/RFM96 necesitan de una librería de terceros.

 

Demostración en video  de soldadura de los  pines y de los cables de la antena:

 

 

 

.

Web Moteino: https://lowpowerlab.com/guide/moteino/