Charla: “Arduino, Raspberry Pi y Node-RED en la Industria 4.0”

Título: “Arduino, Raspberry Pi y Node-RED en la Industria 4.0”

Resumen Charla: “Recoger, automatizar, digitalizar y conectar datos industriales (OT) a sistemas IT, puede ser una tarea compleja dada la falta de estándares, múltiples formatos de datos y protocolos propietarios.

Gracias a las herramientas Open Source es posible democratizar el IoT y la Industria 4.0. Tenemos a nuestro alcance un conjunto de herramientas HW y SW, así como documentación y aporte de la comunidad Open Source, que permiten a cualquier empresa desde una pyme a una gran multinacional, pueda digitalizar sus procesos.”

Evento: Encuentro Maker Estella. 14 de mayo de 2022 a las 11:30

Web: https://encuentromaker.dictelweb.org/

Contenido

  • Introducción
  • Arduino en la Industria 4.0
  • Raspberry Pi en la Industria 4.0
  • Convergencia IT y OT en la Industria 4.0
  • Node-RED en la Industrial 4.0
  • Demo

Introducción

Objetivo: Mostrar es uso de tecnologías Open Hardware y Open Software en entornos Industriales como facilitadores de la Industria 4.0 y digitalización de procesos industriales. Alternativa y complemento a los PLCs, HMIs y Scadas y su aproximación al edge computing y cloud computing.

Definiciones:

  • Arduino es un dispositivo programable como un ordenador, un móvil, un tablet o un PLC, es decir, se puede cambiar el comportamiento o la funcionalidad del dispositivo mediante unas órdenes en un lenguaje concreto que es capaz de ser interpretado por el dispositivo y seguir esas órdenes con el fin de realizar una tarea automática o resolver un problema.
  • Raspberry Pi es un ordenador de placa única (SBC) de bajo costo desarrollado en el Reino Unido por la Raspberry Pi Foundation. Se ha convertido en un hardware muy popular debido a su bajo coste y gran potencia ampliamente utilizado en proyectos IoT e Industria conectada.
  • Node-RED es una herramienta de programación que se utiliza para conectar dispositivos de hardware, APIs y servicios de internet. Es un entorno de programación de bajo código (low code). Dado que la mayoría de dispositivos para industria 4.0 posibilitan realizar un programa de control con la herramienta de Node-Red, el dominio de dicha herramienta permite explorar y ampliar las soluciones que ofrece a la empresa que lo use.
  • Industrial 4.0 es la digitalización de los procesos productivos en las fábricas mediante sensores y sistemas de información (IT) para transformar los procesos productivos y hacerlos más eficientes.

Makers en la Industria 4.0

  • Automatización
  • Eficiencia energética
  • Robots & Drones
  • Vehículos autónomos
  • Impresión 3D y CNC
  • Electrónica conectada a Internet
  • Ingeniería y Ciencia (STEM)

Naitec https://www.naitec.es/conocimiento/areas-de-conocimiento/

Este tipo de plataformas son perfectas para el ciudadano desarrollador (Citizen developer), se trata de un usuario corporativo que quiere desarrollar internamente sus propias aplicaciones, pero, o bien no cuenta con conocimientos técnicos ni de codificación previos o bien necesita una aplicación con resultados y entrega rápida y bajo coste.

Los datos industriales de la fábrica o de cualquier proceso operativo son ahora un impulsor importante de las iniciativas de big data. Los beneficios de enviar datos de tecnología de operaciones (Operations Technology – OT) a big data (IT) y aplicaciones empresariales (ERP) incluyen una gestión de recursos mejorada para reducir los costos y lograr un rápido retorno de la inversión.

Hasta ahora, recopilar datos de OT y enviarlos a sistemas de IT no ha sido rentable, requiere un código personalizado, no es fácilmente escalable y puede crear una serie de enredos de tecnología patentada que dejan a las empresas con datos en silos a los que no pueden acceder fácilmente.

Convergencia IT y OT – Industore Global

Automatizar procesos y tareas proco creativas y mecánicas es otro de los objetivos de la Industria 4.0

Muchas empresas no dan el salto de digitalización porque la inversión inicial puede ser muy alta al necesitar contratar a una empresa externa o herramientas profesionales, pero quién mejor que el personal de la propia empresa que es quien mejor conoce los procesos internos, gracias a la tecnología abiertas, es posible con una pequeña inversión económica y una formación centrada en la digitalización de los procesos.

Arduino en la Industria 4.0

Arduino es una plataforma ampliamente usada por aficionados (makers), pero también es muy usada en en ámbito profesional como prototipado, robótica, fabricación, eficiencia energética, domótica, IoT, comunicaciones, DAQ, monitorización, etc…

Arduino - Wikipedia

Ventajas de uso de HW libre  en la industria:

  • Monitorización y captura de datos/parámetros a bajo coste, no solo de instalación sino de mantenimiento y programación
  • El coste por parámetro es mucho más bajo que el habitual
  • Permite hacer ensayo y error de captura de parámetros o monitorizar una zona y luego otra desmontando la anterior
  • Quitar dependencia de proveedores y fabricantes
  • Personalizar y mejora continua más ágil y hacer DIY
  • Mayor productividad, el tiempo desde la idea hasta su puesta en práctica es muy rápido frente a las soluciones tradicionales. 
  • Los HMI y el almacenamiento de datos lo podemos hacer con sistemas IT y hace que tengamos en plataforma web y hacerlo mobile.
  • La relación cliente-proveedor, si usamos una solución propietaria es tu proveedor, pero si usamos tecnologías libres, es una relación de equipo de desarrollo de una aplicación.

Arduino Pro

Web: https://www.arduino.cc/pro

Hardware:

Arduino Portenta Machine Control Enables AI-based IoT for your Industrial  Machinery - Open Cloudware

PLCs basados en Arduino

Autómatas basados en Arduino:

Controllino: Un PLC open source compatible con Arduino - Hacedores.com |  Maker Community

Carcasas para Arduino con carril DIN: https://store.arduino.cc/products/arduibox-open-standard-with-transparent-lid

Y otros que han aparecido y luego desaparecido como winkhel, PLCduino, etc…

Industrial Shields

Fabricante de equipamiento industrial basado en HW libre: https://www.industrialshields.com/

10 Ventajas del Open Source Industrial: https://www.industrialshields.com/es_ES/blog/blog-industrial-open-source-1/post/las-10-ventajas-del-open-source-industrial-229

Gama de productos:

M-DUINO PLC Arduino Ethernet 53ARR I/Os Analog/Digital PLUS
Módulo Arduino Industrial PLUS 21 I/Os Analógico/Digital PLC M-DUINO -  RobotShop

Programación:

Raspberry Pi en la Industria 4.0

Raspberry Pi para la industria: https://www.raspberrypi.com/for-industry/

PLCs y PAC basados en Raspberry Pi:

Programación:

  • Codesys
  • Node-RED

Proyecto OpenPLC:

Industrial Shields

Gama Raspberry Pi PLC basada en Raspberry Pi: https://www.industrialshields.com/es_ES/industrial-plc-pac-raspberry-pi-20211210-lp

Industrial PLC based on Raspberry Pi

Raspberry Pi HMI: https://www.industrialshields.com/es_ES/industrial-panel-pc-10-1-based-on-raspberry-pi

Revolution Pi

Open Source IPC basado en Raspberry Pi: https://revolutionpi.com/

Características:

  • PLC + IPC + HMI + retrofit unit 
  • Normativa industrial: EN61131-2
  • Usa el compute module B+ con hasta 32 GB
  • Crypto chip security chip
  • Lenguajes de programación: Node-RED, CODESYS, Logic.CAD3 y Python (Para CV y ML)
Revolution Pi auseinander gebaut

Productos: https://revolutionpi.com/revolution-pi-series/ 

Módulos Base:

Expansiones:

Software: https://revolutionpi.com/tutorials/software/ 

Ejecutar Docker el RevPi: https://revolutionpi.com/tutorials/docker-auf-revpi-geraeten-verwenden-2/

Tiene un interfaz gráfico de configuración, tanto del HW como del SW

Convergencia IT y OT en la Industria 4.0

Operational Technology o OT es una categoría de sistemas de información y de comunicación para administrar, monitorear y controlar operaciones industriales con un enfoque en los dispositivos físicos y procesos que utilizan.

OT también se ha definido como la tecnología que interactúa con el mundo físico e incluye sistemas de con

Algunos ejemplos de OT incluyen:

  • Controladores lógicos programables (PLC)
  • Sistemas de control industrial (ICS)
  • Sistemas de control de supervisión y adquisición de datos (SCADA)
  • Sistemas de control distribuido (DCS)
  • Sistemas MES (Manufacturing Execution System)
  • Sistemas de control numérico por computadora (CNC)
  • Equipo científico (por ejemplo, osciloscopios digitales)
  • Sistemas de gestión y automatización de edificios (BMS)
  • Monitorización de energía, seguridad y sistemas de protección
  • Sistemas de transporte

Conectar datos industriales a sistemas de IT parece simple, pero en realidad es complejo. Los datos de OT vienen en múltiples formatos de datos, protocolos propietarios y sin información contextual. Está diseñado para operaciones, directamente acoplado a aplicaciones y, a menudo, existe en redes aisladas. IT, por otro lado, IT necesita formatos de datos estándar, objetos de datos, información contextual, seguridad incorporada y metodología de publicación/suscripción para hacer uso de los datos.

Edge Computing se refiere al despliegue de actividades de manejo de datos y de red, hacia fuentes más individuales de captura y/o almacenamiento de datos. Esto significa que, en lugar de tener que acceder a un servidor centralizado o a la nube al capturar datos, la computación perimetral garantiza que los datos se puedan capturar inmediatamente en el perímetro de la planta, edificio o zona.

La capacidad de la computación perimetral industrial (Industrial Edge) para eludir la nube al tomar decisiones también tiene diversas connotaciones que podrían resultar beneficiosas para la fabricación y otros procesos industriales a largo plazo. Algunos de estos beneficios incluyen procesos de toma de decisiones en tiempo real, seguridad mejorada y mayor velocidad analítica. Por lo tanto, se acelera la adopción de modelos de negocio de Industria 4.0 en la industria manufacturera.

Beneficios del Industrial Edge:

  • Rápido y fácil de adaptar a los sistemas existentes
  • Los empleados de la planta sin experiencia específica en TI pueden mostrar datos
  • Fácil de expandir con Docker y altamente escalable gracias a Edge Management
  • Al analizar los datos de uso de la máquina, se pueden evitar tiempos de inactividad no programados
  • Mejor aprovechamiento de nuevos campos de aplicación, p.e. para reconocer anomalías u optimizar la calidad
  • Soporte integral para flujos de trabajo de IA, recopilación de datos, limpieza e integración en entornos de capacitación e implementación y operación de modelos
  • Flujos de trabajo de IA más simples, p.e. mediante el uso de reconocimiento de anomalías para identificar anomalías en el comportamiento de la máquina sin conocimientos de TI expertos
The Industrial Edge Computing Reference Model [25] | Download Scientific  Diagram

Pensar en Cloud y Mobile!!!

Usar los servidores IoT que ha montado Mario ?

Node-RED en la Industrial 4.0

Node-RED se define como Low-code programming for event-driven applicationsUna plataforma de desarrollo Low-Code es aquella que utiliza asistentes gráficos para crear y construir software en vez del enfoque tradicional de escritura de instrucciones secuenciales utilizando un lenguaje de programación.

Node-RED Data Visualization

Node-RED es una herramienta de programación visual (low-code). Node-Red se ha consolidado como framework open-source para la gestión y transformación de datos en tiempo real en entornos de Industry 4.0, IoT, Marketing digital o sistemas de Inteligencia Artificial entre otros. La sencillez de aprendizaje y uso, que  no requiere de grandes conocimientos de programación, su robustez y la necesidad de bajos recursos de cómputo ha permitido que hoy en día se encuentre integrado en prácticamente la mayoría de dispositivos IOT e IIOT del mercado, así como equipos Raspberry, sistemas cloud o equipos locales.

How to Import a Node-RED Flow. – Sensetecnic Developer – Hosted Node-RED

Tanto Node-RED en la industria se podría incluir como herramienta de programación en cualquiera de estas categorías:

  • PLC – automatizar procesos
  • PAC – protocolos avanzados
  • IPC – Industrial PC
  • HMI – Dashboard Node-RED
  • Scada – Lógica programada + Dashboard
  • Edge Gateway
  • Edge Controller
Node-RED en la Industria | Aprendiendo Arduino

PLCs y PACs con Node-RED

Empresas que usan Node-RED:

Node-RED como pegamento IT y OT. Node-RED se está utilizando para permitir la integración OT-IT. Ahora los usuarios pueden conectarse a los datos de OT para obtener una única fuente al conectarse a dispositivos de OT de forma nativa.

Node-RED es adecuado para profesionales dedicados al Internet de las cosas Industrial( IIoT) y personal dedicado al diseño y prueba de soluciones para la comunicación de equipos de planta con aplicaciones de IT. Dado que la mayoría de dispositivos IoT para industria 4.0 posibilitan realizar un programa de control con la herramienta de Node-Red, el dominio de dicha herramienta permitiría al equipo IIoT explorar y ampliar las soluciones que ofrece a la empresa que lo use.

Librería de Node-RED: https://flows.nodered.org/

Dashboard Node-RED: https://flows.nodered.org/node/node-red-dashboard

HERE Navigation Routing Dashboard (flow) - Node-RED
PLC HMI using svg dashboard node - Share Your Projects - Node-RED Forum

Demo

Live demo con un ToF y sensor de temperatura, humedad y presión: https://enriquecrespo.com:1880/

Mostrar últimos terremotos en un mapa:

Webapp: https://nodereddeveloper.com:18803/ui/

Tracking con Owntracks:

Dashboard AEMET: https://enriquecrespo.com:18802/

Pulsador temporizado: https://enriquecrespo.com:18802/

Talleres y Charlas

Además del catálogo de cursos también es posible impartir talleres prácticos de entre 3 y 6 horas relacionados con las tecnologías impartidas en los cursos, así como charlas divulgativas en todo tipos de eventos tecnológicos y maker. Para proponer un taller o charla ponerse en contacto a través de aprendiendoarduino@gmail.com 

Si quieres que imparta una charla, ponencia o taller,  si quieres plantearme una colaboración o si tienes cualquier otra idea. No dudes en contactar conmigo en aprendiendoarduino@gmail.com 

Talleres Impartidos y contenido:

Otros posibles talleres o charlas a impartir:

  • Primeros pasos ESP8266
  • Primeros pasos ESP32
  • Introducción a M5stack y M5stick
  • Primeros pasos Raspberry Pi
  • Robótica Educativa
  • Robots Open Source 
  • Domótica en un tarde
  • PLCs basados en Arduino para entorno industrial
  • PLCs basados en Raspberry Pi para entorno industrial
  • Monta tu Scada basado en Arduino (HMI Nextion e Industrial Shields)
  • Qué es The Things Network (TTN)
  • Montaje de un gateway TTN
  • Arduino en la Educación
  • Arduino en la Industria
  • Comunicaciones inalámbricas IoT
  • Iniciación a IoT con Herramientas IoT
  • Node-Red en IoT
  • Monitorización de Energía con Herramientas Libres
  • Digitaliza tu negocio con herramientas libres
  • Y más.. (consulta en aprendiendoarduino@gmail.com)

Si deseas algún otro taller o charla relacionada con el mundo Open Source aplicado al entorno Industrial o cualquier tema maker mándame tu propuesta a aprendiendoarduino@gmail.com.

Arduino y LoRaWAN

Arduino MKR WAN 1300

MKR WAN 1300 es una placa potente que combina la funcionalidad de la conectividad MKR Zero y LoRa. Es la solución ideal para los fabricantes que desean diseñar proyectos de IoT con una mínima experiencia previa en redes que tengan un dispositivo de baja potencia.

La placa MKR WAN 1300 tiene comunicación inalámbrica unido a un diseño de la placa MKR Zero Board, es decir, que tendremos soporte para aplicaciones de 32 bits. La placa cuenta con 256KB de Memoria flash y 32KB SRAM. Puede funcionar con la energía de dos pilas de 1,5V y todo en un tamaño de 67,64 x 25mm. Al tener comunicación inalámbrica, el dispositivo al que se conecte tendrá opción de comunicarse a Internet.

El MKR WAN 1300 usar el módulo Murata CMWX1ZZABZ Lo-Ra module que lleva el transceiver Semtech SX1276:

Más información: https://store.arduino.cc/mkr-wan-1300

Buen artículo para sobre el MKR 1300: http://tinkerman.cat/arduino-mkr-wan-1300/

Moteino

Moteino es una plataforma de desarrollo compatible con Arduino 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).

Para la programación, necesitará un adaptador FTDI externo para cargar los sketchs, con las ventajas de un menor costo y un tamaño más pequeño. 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.

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

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
  • potencia realmente ultra baja: con tan solo ~ 2uA alcanzables en el modo de suspensión profunda, los Moteinos permiten 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
  • Las radios sub-Ghz y LoRa producen un rango mucho más largo que las bandas de 2.4Ghz
  • programable de forma inalámbrica: 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

Pinout:

Los transceiver soportados por Moteino son:

Transceiver Datasheets

Muy buena explicación de los módulos de Adafruit: https://learn.adafruit.com/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-lora-packet-padio-breakouts/overview

Librería para los módulos RFM69: https://github.com/LowPowerLab/RFM69

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.

Más información RFM69:

Uso con Lora: https://lowpowerlab.com/guide/moteino/lora-support/

Librería para los módulos LoRa RFM95 (868-915mhz) and RFM96 (433mhz).: http://www.airspayce.com/mikem/arduino/RadioHead/index.html

Getting started para instalar el soporte y las librerías: https://lowpowerlab.com/guide/moteino/programming-libraries/

Github: https://github.com/LowPowerLab y Librería: https://github.com/LowPowerLab/Moteino

Comprar Moteino:https://lowpowerlab.com/shop/

Moteino weather shield: https://lowpowerlab.com/2016/09/09/weathershield-r2-released/ with a BME280 which includes all Temperature/Humidity/Pressure readings all in 1 sensor.

Moteino PowerShield: https://lowpowerlab.com/guide/powershield/

Gateway LoRa con Moteino + Raspberry Pi:

Dragino

En Dragino http://www.dragino.com/ podemos encontrar Hardware para LoRa: http://www.dragino.com/products/products-list.html

Wiki: http://wiki.dragino.com/index.php?title=Main_Page

La librería recomendada es: https://github.com/matthijskooijman/arduino-lmic, pero puede usarse la librería Radiohead: http://www.airspayce.com/mikem/arduino/RadioHead/

LoRa Shield:

Otro HW LoRa compatible con Arduino

Existen más HW de desarrollo compatible con Arduino con módulos LoRa diferentes:

Gateways LoRa

En las redes LoRaWan un gateway es un dispositivo dentro de la arquitectura de red que recibe los datos transmitidos por un dispositivo de nodo final y que reenvían los paquetes de datos a un servidor de red centralizado. Los datos de un nodo final LoRa pueden ser recibidos por múltiples puertas de enlace (gateway),

Los gateways o puertas de enlace son un puente transparente entre los dispositivos finales y el servidor de red central. Uno o más dispositivos finales se conectan a una o más puertas de enlace, mediante una conexión inalámbrica de un solo salto, usando tecnología RF LoRa™ o FSK, formando así una red en estrella.

Una o más puertas de enlace se conectan al servidor de red central por medio de conexiones IP estándar, formando así una red en estrella. Las comunicaciones entre los dispositivos y el servidor de red, son generalmente unidireccionales o bidireccionales, pero el estándar también soporta multidifusión, permitiendo la actualización de software en forma inalámbrica, u otras formas de distribución de mensajes en masa.

Los gateways son enrutadores equipados con un concentrador LoRa, lo que les permite recibir paquetes LoRa. Por lo general, puede encontrar dos tipos de puertas de enlace:

  • Las pasarelas se ejecutan con un firmware mínimo, por lo que son de bajo costo y fáciles de usar (por ejemplo, The Things Gateway) y solo ejecutan el software de reenvío de paquetes.
  • Gateways que ejecutan un sistema operativo, para el cual el software de reenvío de paquetes se ejecuta como un programa de fondo (por ejemplo, Kerlink IoT Station, Multitech Conduit). Esto le da más libertad al administrador del gateway para administrar su puerta de enlace e instalar su propio software.

Una forma de montar un gateway LoRa barato es con una Raspberry Pi y un hat de Moteino con un módulo LoRa:

Un gateway simple con LoPy: https://www.hackster.io/bucknalla/lopy-lorawan-nano-gateway-using-micropython-and-ttn-a9fb19

Construir un gateway LoRa barato: http://cpham.perso.univ-pau.fr/LORA/RPIgateway.html

Módulos LoRa para conectar un ordenador y haga de gateway: https://www.cooking-hacks.com/waspmote-gateway-sx1272-lora-sma-4-5-dbi-868-mhz y tutorial LoRa gateway Libelium: http://www.libelium.com/development/waspmote/documentation/lora-gateway-tutorial/

Lista de gateways de loriot: https://www.loriot.io/lora-gateways.html

The things gateway: https://www.thethingsnetwork.org/docs/gateways/gateway/

The Things Gateway permite que dispositivos como sensores y computadoras integradas se conecten a internet. Con un proceso fácil de conectar, está creando el aspecto más sustancial de su red de datos IoT. Active la puerta de enlace en solo 5 minutos y cree su propia red local. Con la capacidad de servir a miles de nodos, la puerta de enlace es el componente principal de su red conectada. Esta versión funciona a 868MHz para uso en la UE y 915Mhz para uso en los EE.UU.

Lista de gateways de thethingsnetwork:

Gateway draguino (open wrt): http://www.dragino.com/products/lora/item/119-lg01-s.html

Ejemplo con Dragino para usarlo como gateway (Lora Shield + Arduino Yun Shield):

Más información:

Librería RadioHead LoRa

Una de las librerías más usadas para módulos LoRa con Arduino es RadioHead: http://www.airspayce.com/mikem/arduino/RadioHead/index.html

Proporciona una biblioteca completa orientada a objetos para enviar y recibir mensajes paquetizados a través de una variedad de radios de datos comunes y otros transportes para microprocesadores integrados.

RadioHead consta de 2 grupos principales de clases: driversy managers.

  • Los drivers proporcionan acceso de bajo nivel a un rango de diferentes radios y otros transportes de mensajes paquetizados.
  • Los managers brindan servicios de envío y recepción de mensajes de alto nivel para una variedad de requisitos diferentes.

Cada programa de RadioHead tendrá una instancia de un driver para proporcionar acceso a la radio o transporte de datos, y generalmente un manager que usa ese driver para enviar y recibir mensajes para la aplicación. El programador debe instanciar un driver y un manager e inicializar el manager. A partir de entonces, las funciones del manager se pueden usar para enviar y recibir mensajes.

También es posible usar un driver por sí mismo, sin un manager, aunque esto solo permite un transporte no confiable y sin dirección a través de las funciones del driver.

Se admite una amplia gama de plataformas de microprocesadores.

Unos ejemplos de drivers:

  • RH_RF69 Works with Hope-RF RF69B based radio modules, such as the RFM69 module
  • RH_NRF24 Works with Nordic nRF24 based 2.4GHz radio modules, such as nRF24L01 and others.
  • RH_RF95 Works with Semtech SX1276/77/78/79, Modtronix inAir4 and inAir9, and HopeRF RFM95/96/97/98 and other similar LoRa capable radios. Supports Long Range (LoRa) with spread spectrum frequency hopping, large payloads etc.
  • RH_Serial Works with RS232, RS422, RS485, RS488 and other point-to-point and multidropped serial connections, or with TTL serial UARTs such as those on Arduino and many other processors, or with data radios with a serial port interface. RH_Serial provides packetization and error detection over any hardware or virtual serial connection. Also builds and runs on Linux and OSX.
  • RHEncryptedDriver Adds encryption and decryption to any RadioHead transport driver, using any encrpytion cipher supported by ArduinoLibs Cryptogrphic Library http://rweather.github.io/arduinolibs/crypto.html

Managers, cualquier manager puede usarse con cualquier driver:

  • RHDatagram Addressed, unreliable variable length messages, with optional broadcast facilities.
  • RHReliableDatagram Addressed, reliable, retransmitted, acknowledged variable length messages.
  • RHRouter Multi-hop delivery of RHReliableDatagrams from source node to destination node via 0 or more intermediate nodes, with manual routing.
  • RHMesh Multi-hop delivery of RHReliableDatagrams with automatic route discovery and rediscovery.

Esta librería es compatible entre otros con:

Para los módulos con moteino que se ha usado en la demo, son necesarios los drivers: http://www.airspayce.com/mikem/arduino/RadioHead/classRH__RF95.html

Si se quiere añadir una capa de seguridad debe usarse la clase: http://www.airspayce.com/mikem/arduino/RadioHead/classRHEncryptedDriver.html

Si se quiere usar direccionamiento debe usarse la clase: http://www.airspayce.com/mikem/arduino/RadioHead/classRHDatagram.html

IMPORTANTE PARA MODULOS LORA, la librería está configurada por defecto a 434: Check if you have set the right frequency:After putting the library in the right place, you have to also modify the frequency to the frequency you want to use, the position of this issetFrequency() in the file: arduino-xxx\libraries\RadioHead\RH_RF95.cpp;

Para los módulos RFM95 de moteino debe ponerse: setFrequency(868.0);

He hecho un fork de la librería con la modificación para módulos LoRa: https://github.com/jecrespo/RadioHead

Proyecto LoRa con Moteino

A la hora de afrontar un proyecto con LoRa para monitorizar un entorno donde no tenemos acceso a una red ethernet/wifi ni toma eléctrica, podemos planteamos usar Moteino como una solución basada en Arduino de bajo consumo y con módulos LoRa integrados.

La primera duda es que módulo de radio o transceiver usar el RFM69 o RFM95:

  • RFM69 no es LoRa usa modulación FSK en lugar de la modulación LoRa
  • RFM95 es LoRa estándar.

RFM69 y RFM95 son módulos de radio para comunicación a larga distancia, donde la velocidad de transmisión no es crítica (no se hace streaming de vídeo). Al usar modulación diferente no son compatibles entre ellos.

Estos módulos de radio vienen en cuatro variantes (dos tipos de modulación y dos frecuencias). Los RFM69 son los más fáciles de usar, y son bien conocidos y entendidos. Las radios LoRa son más potentes, pero también más caros.

Comparativa y explicación de los módulos: https://learn.adafruit.com/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-lora-packet-padio-breakouts

Transceiver Moteino: https://lowpowerlab.com/guide/moteino/transceivers/

RFM69

Módulo basado en SX1231 con interfaz SPI

  • +13 a +20 dBm hasta 100 mW Capacidad de salida de potencia (salida de potencia seleccionable en software)
  • Drenaje de corriente de 50 mA (+13 dBm) a 150 mA (+20 dBm) para transmisiones, ~ 30 mA durante la escucha de radio activa.
  • Las radios RFM69 tienen un alcance de aprox. Línea de visión de 500 metros con antenas unidireccionales sintonizadas. Dependiendo de las obstrucciones, la frecuencia, la antena y la potencia de salida, obtendrá rangos más bajos, especialmente si no tiene línea de visión.
  • Crear redes multipunto con direcciones de nodo individuales
  • Motor de paquete cifrado con AES-128

Guía completa del módulo de radio RFM69: https://learn.sparkfun.com/tutorials/rfm69hcw-hookup-guide

Librería Arduino RFM69: https://github.com/LowPowerLab/RFM69

Completa información RFM69: http://www.hoperf.com/upload/rf/RFM69W-V1.3.pdf

Explicación de librería RFM69 https://lowpowerlab.com/2013/06/20/rfm69-library/

RFM95

Módulo basado en LoRa® SX1276 con interfaz SPI

  • Capacidad de salida de potencia de +5 a +20 dBm hasta 100 mW (salida de potencia seleccionable en software)
  • ~ 100mA de pico durante la transmisión de + 20dBm, ~ 30mA durante la escucha activa de la radio.
  • Las radios RFM9x tienen un rango de aprox. Línea de visión de 2 km con antenas unidireccionales sintonizadas. Dependiendo de las obstrucciones, la frecuencia, la antena y la potencia de salida, obtendrá rangos más bajos, especialmente si no tiene línea de visión.

Estos son radios de paquete LoRa de +20 dBm que tienen una modulación de radio especial que no es compatible con los RFM69 pero que puede ir mucho más lejos. Pueden ir fácilmente a la línea de vista de 2 km utilizando antenas de cable simples, o hasta 20 km con antenas direccionales y ajustes.

Completa información RFM95: http://www.hoperf.com/upload/rf/RFM95_96_97_98W.pdf

Librería: http://www.airspayce.com/mikem/arduino/RadioHead/

SX127x Datasheet – The RFM9X LoRa radio chip itself

Librería: http://www.airspayce.com/mikem/arduino/RadioHead/

Módulos Moteino Usados

Optamos LoRa porque da entre un 50% y 100% más de alcance.

LoRa support for Moteino: https://lowpowerlab.com/guide/moteino/lora-support/

Todo sobre moteino y como programarlo: https://lowpowerlab.com/guide/moteino/

Los moteino a usar con LoRa son los moteinoLR y mejor moteinoUSB-LoRa que ya tiene el interfaz USB:

Para wireless programming necesitas las flash extra: https://lowpowerlab.com/guide/moteino/wireless-programming/

Gateway

Si queremos conectar a Internet los sensores, necesitamos un gateway.

Gateway con Raspberry Pi:

Otra opción de gateway es usar un shield LoRa de dragino:

Productos de dragino: http://www.dragino.com/products/products-list.html

Cloud

Ya tenemos el nodo y el gateway, nos falta el cloud que podemos hacerlo con muchas plataformas IoT.

Thingspeak: https://thingspeak.com/