Archivo de la etiqueta: Low Code Programming

Presentación del Curso: Raspberry Pi y Node-RED para IoT

Título: “Raspberry Pi y Node-RED para IoT”

Motivación

En la industria conectada, cada vez se está haciendo más popular el uso de Node-RED debido a su estabilidad, continuo desarrollo y aportaciones externas que hacen de ella una herramienta de programación utilizada para conectar dispositivos de hardware, APIs y servicios de internet.

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 una empresa explorar y ampliar las soluciones que ofrece.

Raspberry Pi es un ordenador de placa reducida, ordenador de placa única u ordenador de placa simple (SBC) de bajo costo muy popular en la industria conectada y con gran apoyo de la comunidad. Es el complemento perfecto para Node-RED en el entorno de trabajo.

Este curso es una introducción práctica para aprender a manejar Raspberry Pi y para aprender a programar en en entorno de IoT/Industria 4.0/digitalización incluso para quien no está familiarizado con la programación por código.

Este curso surge de diversas conversaciones con gente de empresas, alumnos de los cursos de Arduino y especialmente personal del Think TIC en los últimos años donde se ha habla de la necesidad de que las pequeñas y medianas empresas puedan acceder a las ventajas de soluciones IoT o Industria 4.0 con herramientas sencillas de usar y de bajo coste.

Curso: https://www.larioja.org/thinktic/es/cursos-eventos/cursos-comenzados-completos/curso-raspberry-pi-node-red-iot 

Gracias a las herramientas libres/Open Source es posible democratizar el IoT y la industria 4.0. Antes se necesitaba muchísimo dinero no solo en HW y licencias de SW, sino en consultores que hacen un diseño a medida y realizan la integración de los sistemas, ahora no solo el SW libre y el HW libre y barato, sino que la comunidad da soporte a las dudas, hace documentación y tutoriales, así como librerías para facilitar el trabajo.

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.

Propuesta Formativa

Este curso está diseñado para que cualquier trabajador cualificado de una empresa pueda introducir el concepto de IoT y la automatización de tareas  aplicado al sector en que trabaje, usando tecnologías libres y pueda ver resultados rápidos y con una inversión económica mínima.

El curso se basa en la programación mediante Node-RED que es una programación por flujos.

Este curso está enfocado a profesionales cualificados de diversos sectores que deseen hacer una aplicación de IoT en sus empresas y pueda montar un piloto de IoT en sus instalaciones, así como realizar tareas de automatización.

Conceptos:

  • Raspberry Pi es un ordenador de placa reducida, ordenador de placa única u ordenador de placa simple (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. Adecuado para los equipos 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.

Objetivo

El objetivo de este curso es que el alumno obtenga un conocimiento de la placa Raspberry Pi basada en linux y sea capaz de instalar, configurar y realizar proyectos sencillos usando Node-RED y la programación visual mediante flujos, para su uso en entornos IoT o de automatización.

Al finalizar el curso el alumno será capaz de:

  • Conocer el HW Raspberry Pi
  • Instalar Raspberry Pi OS
  • Conocer comandos básicos de Linux
  • Conocer de forma básica el lenguaje de programación Python
  • Instalar servicios en Raspberry Pi OS
  • Conocer el protocolo MQTT
  • Instalar Node-RED en diversas plataformas
  • Configurar y usar de forma segura Node-RED
  • Usar la programación de flujos de forma eficiente
  • Hacer debug de los programas Node-RED
  • Instalar y utilizar nodos
  • Configurar un dashboard

Palabras Clave:

  • Raspberry Pi
  • Node-RED
  • IoT
  • Automatización
  • Low-Code Programming
  • Edge Computing
  • OT vs IT

Requisitos

Para la realización de este curso no es necesario ningún conocimiento previo. Es recomendable un conocimiento medio de Inglés puesto que gran parte de la documentación está en Inglés.

Metodología

El curso es principalmente práctico donde se empieza a instalar, configurar y usar una Raspberry Pi para posteriormente, programar una serie de retos usando Node-RED instalado en Raspberry Pi interactuando en nodos remotos basados en placas ESP8266 con diferentes shields, que hacen de nodos remotos conectados con protocolo MQTT. También desde Node-RED se interactuará con aplicaciones de terceros.

La duración total del curso es de 30 horas.

Los recursos utilizados para la realización de este curso son:

Además están disponibles otros recursos para ampliar información:

Para realizar las prácticas de este curso se usará el material disponible en el Think TIC que veremos a fondo en un apartado posterior.

Toda la documentación será on-line con el objetivo de mantenerla actualizada y no con un documento físico que se queda obsoleto rápidamente. Después de finalizar el curso toda la documentación on-line seguirá estando disponible de forma pública.

Todo el material entregado es en préstamo y debe cuidarse al máximo, a la hora del montaje de las prácticas se seguirán las instrucciones para evitar dañar los componentes.

Toda la documentación está liberada con licencia Creative Commons.

Reconocimiento – NoComercial – Compartir Igual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Aprendiendo Arduino by Enrique Crespo is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

Organización del curso

El curso tiene una duración total de 30 horas. El curso se celebra del 19 al 29 de abril de 2022 de Lunes a Viernes en horario de 18.00 a 21.00 y el sábado 22 de 10:00 a 13:00. Se hará un descanso de 10-15 minutos aproximadamente a mitad de la sesión.

Al principio de la clase se verán durante 10-15 minutos temas relacionados con el curso propuestos por los alumnos o que hayan surgido durante la clase. Se podrán ver en https://aprendiendoarduino.wordpress.com/2022/04/14/saber-mas-raspberry-pi-y-node-red-para-iot/

Contenido del Curso

Toda la documentación del curso y el código usado es libre y accesible desde https://www.aprendiendoarduino.com/cursos/introduccion-a-raspberry-pi-y-node-red-para-uso-en-la-industria-conectada/

Contenido

  • Presentación del Curso
  • Material del Curso
  • Qué es Raspberry Pi
  • HW Raspberry Pi
  • Instalación Raspberry Pi OS
  • Raspberry Pi en la Industria
  • Conceptos básicos de Linux
  • Programación Básica en Python
  • GPIO
  • Instalación de Servicios en Raspberry Pi OS
  • Edge Computing
  • Uso de Raspberry Pi y Node-RED en la convergencia IT-OT
  • Protocolo MQTT
  • Qué es Node-RED
  • Instalación de Node-RED
  • Configurar y securizar Node-RED
  • Paso a Paso: Instalar, Configurar y Securizar Node-RED en Raspberry Pi
  • Fundamentos Programación Node-RED
  • Uso del Editor de Node-RED
  • Mensajes Node-RED
  • Dashboard Node-Red
  • Nodos de Configuración en Node-RED
  • Nodos Node-RED
  • Debug Node-RED

Presentaciones

  • ¿Nombre?
  • ¿Experiencia con Linux y/o Node-RED?
  • ¿Sector de aplicación o aplicaciones que se quieran hacer?

Contacto

Para cualquier consulta durante el curso y en cualquier otro momento mediante email: aprendiendoarduino@gmail.com

Twitter @jecrespo: https://twitter.com/jecrespom

Y más información sobre el curso y el autor: http://www.aprendiendoarduino.com/acerca-de/

Low Code Programming

Una plataforma de desarrollo de código bajo (Low Code Programming – LCDP) proporciona un entorno de desarrollo que se utiliza para crear software de aplicación a través de una interfaz gráfica de usuario en lugar de la programación informática tradicional codificada a mano. Una plataforma de codificación baja puede producir aplicaciones completamente operativas o requerir codificación adicional para situaciones específicas. Las plataformas de desarrollo de bajo código reducen la cantidad de codificación manual tradicional, lo que permite una entrega acelerada de aplicaciones comerciales. Un beneficio común es que una gama más amplia de personas puede contribuir al desarrollo de la aplicación, no solo aquellos con habilidades de codificación. Los LCDP también pueden reducir el costo inicial de configuración, capacitación, implementación y mantenimiento.

Wikipedia: https://en.wikipedia.org/wiki/Low-code_development_platform

En lugar de utilizar lenguajes de programación complejos, se puede emplear interfaces visuales con lógica básica y capacidades de arrastrar y soltar en una plataforma de desarrollo de código bajo. Los usuarios sin conocimientos avanzados de codificación o creación de software pueden utilizar estas técnicas intuitivas para crear software para varios propósitos, como crear aplicaciones móviles, automatización y comerciales.

Como son una alternativa rápida y sencilla al desarrollo de software convencional, estas plataformas han ganado popularidad. Un marco de bajo código puede ser utilizado por técnicos y «desarrolladores ciudadanos» (desarrollo no profesional) para crear aplicaciones de una amplia variedad para satisfacer las demandas de crecimiento del mercado, simplificar procesos y facilitar la transformación digital.

La necesidad de automatización de software y nuevas aplicaciones para procesos comerciales impone a los desarrolladores de software demandas para crear aplicaciones personalizadas en volumen, adaptándolas a las necesidades únicas de las organizaciones. Las plataformas de desarrollo de bajo código se han desarrollado y se desarrollan como un medio para permitir la creación y el uso rápidos de aplicaciones de trabajo que pueden abordar los procesos específicos y las necesidades de datos de la organización.

Low-code es una forma en que los desarrolladores pueden hacer más. Con low-code, pueden dedicar más tiempo a crear y construir y menos tiempo al trabajo repetitivo. Claro, es divertido aprender el último workframe de JavaScript caprichoso o jugar con un almacén de datos NoSQL de vanguardia, pero mientras pasa tiempo depurando código desconocido, su competidor tiene un MVP frente a los clientes.

Proceso de trabajo con Low-Code:

Existen muchas razones para usar el enfoque low code. Las principales ventajas de este método de desarrollo se pueden resumir de la siguiente manera:

  • Velocidad: puesto que el desarrollo low code no requiere apenas programación manual, los prototipos y las aplicaciones completas se desarrollan más rápidamente, lo cual también aumenta la eficiencia de los programadores profesionales, que pueden así centrar su atención en las funciones esenciales en lugar de tener que buscar fallos en el código.
  • Sencillez: la simplicidad de su uso permite a los usuarios familiarizarse rápidamente con el proceso sin necesidad de muchos conocimientos previos. El código fuente, que convencionalmente debe ser escrito a mano, se genera automáticamente mediante una ordenación intuitiva de elementos. Las modificaciones también pueden implementarse fácilmente a posteriori.
  • Reducción de costes: un efecto directamente relacionado con el ahorro de tiempo es la reducción de costes. Los elementos visuales de las plataformas low code pueden reutilizarse y no necesitan ser redactados de nuevo cada vez. Gracias a la simplicidad de la aplicación, los trabajadores no necesitan costosos cursos para familiarizarse con ella.
  • Flexibilidad: las herramientas flexibles permiten publicar las aplicaciones desarrolladas en el entorno que se desee. Además, el sencillo manejo de las low-code platforms les otorga una gran adaptabilidad. De este modo, los desarrolladores pueden reaccionar rápidamente ante cambios como, por ejemplo, nuevas exigencias del mercado.
  • Mayor calidad: puesto que el desarrollo low code también está pensado para programadores amateurs, ofrece la posibilidad de integrar en él conocimientos especializados de diferentes ámbitos. De esta manera, expertos de diferentes disciplinas pueden actuar como citizen developers (desarrolladores no profesionales) para ayudar a encontrar soluciones creativas, favoreciendo así la entrada de ideas externas y aumentando la calidad del producto final.

Las preocupaciones sobre la seguridad y el cumplimiento de la plataforma de desarrollo de bajo código están aumentando, especialmente para las aplicaciones que usan datos de los consumidores. Puede haber preocupaciones sobre la seguridad de las aplicaciones creadas con tanta rapidez y la posible falta de una gobernanza debida que lleve a problemas de cumplimiento. Sin embargo, las aplicaciones de código bajo también impulsan las innovaciones de seguridad. Teniendo en cuenta el desarrollo continuo de aplicaciones, resulta más fácil crear flujos de trabajo de datos seguros.

Low code programming para Data Scientist: https://medium.com/low-code-for-advanced-data-science/low-code-for-advanced-data-science-a-new-journal-8bebee7ed619 

Lista de Visual Programming Languages: https://en.wikipedia.org/wiki/Visual_programming_language 

Low Code de Microsoft: powerapps

Appian, otra herramienta Low Code:

Las aplicaciones de Low Code van a ser fundamentales en la transformación digital.

Low code está enfocado a aplicaciones empresariales, aplicaciones móvil, webs, automatización, flujo de trabajo, etc… Un ejemplo de Low Code también es wordpress.

Low code permite colaborar entre IT y negocio o IT y producción/industrial

Tipos de aplicaciones de Low code:

  • Canvas – interfaces de usuario para visualizar y poder insertar datos
  • Model/Data Driven – aplicaciones enfocadas a datos
  • Aplicaciones Portal – Para usuarios externos, lo anterior es interno

Informe de Low Code: 

Paradigmas de programación de bajo código:

Más información:

Low Code para IoT

Para obtener el mayor valor de las soluciones de IoT en el sector industrial (o, de hecho, en cualquier contexto), las empresas necesitan soluciones de desarrollo de software que les permitan crear aplicaciones personalizadas adaptadas a sus casos de uso únicos de IoT de forma rápida y eficiente.

Es hora de liberar a TI de todas las tareas de desarrollo mundanas y crear un clima de colaboración tecnológica. Mediante el uso de código bajo, otras unidades de negocio están facultadas para colaborar como socios iguales con el departamento de TI para crear soluciones e implementarlas rápidamente, creando resiliencia y flexibilidad. Los equipos pueden pivotar bajo demanda sin esperar a que el departamento de TI llegue a cada proyecto pequeño, y el departamento de TI puede supervisar los resultados, especialmente cuando estos programas se implementan en toda la empresa.

Low code devuelve la tecnología a su lugar: creando valor para la empresa. A medida que los fabricantes se adaptan a la necesidad de información en tiempo real e innovación rápida, el código bajo podría ofrecer el compromiso que necesitan entre desarrollo y seguridad.

Más información:

Low Code Development Platforms

En lugar de la programación informática convencional codificada a mano, un marco de desarrollo de código bajo ofrece un entorno de programación para crear aplicaciones de software a través de interfaces gráficas de usuario y configuración. Los marcos de creación de bajo código brindan a los clientes de TI la capacidad de incorporar bloques de construcción en flujos de trabajo y aplicaciones. Estos elementos básicos abstraen el código detrás de las acciones y las órdenes, lo que permite a TI crear interfaces y aplicaciones comerciales sin tener que codificarlas a mano.

Según la última estimación de Gartner, Inc., la industria global de tecnologías de desarrollo de código bajo tendrá un valor de 13.800 millones de dólares en 2021, un 22,6 por ciento más que en 2020. A pesar de las continuas campañas de gestión de costes, el auge de la producción remota durante la pandemia de COVID-19 continuará impulsando la adopción de códigos bajos. Se prevé que se expandirá el crecimiento del código bajo como fenómeno social y técnico general. Se prevé que las plataformas de aplicaciones de código bajo (LCAP) seguirán siendo la mayor parte del mercado de tecnología de desarrollo de código bajo en 2022. Por ejemplo, ya ha aumentado un 30% desde 2020 y generó $ 5,8 mil millones en 2021.

Tipos de Low Code Platforms según Forrester:

  • General Purpose
  • Request Handling
  • Process
  • Mobile First
  • Database

Lista de Low Code Development Platforms: https://en.wikipedia.org/wiki/List_of_low-code_development_platforms 

Ejemplos de Low Code Development Platforms:

No-Code Development Platform

No-Code Development Platform: https://en.wikipedia.org/wiki/No-code_development_platform 

La diferencia básica entre Low-Code y No-Code es que el código bajo se dirige a los desarrolladores. Estos sistemas requieren habilidades tecnológicas pero permiten a los codificadores expertos trabajar más rápidamente. Para los codificadores, cuanto más eficientes sean las herramientas para acelerar el progreso tecnológico, mejor.

Por otro lado, no-code se dirige a los usuarios comerciales porque estas plataformas no permiten a los usuarios editar el código manualmente mientras se enfocan en proporcionar la interfaz más segura y fácil de usar posible al extraer información técnica. Cuanto más intuitiva sea la interfaz de usuario, mejor será para los usuarios empresariales.

Dado que están diseñados para construir una amplia gama de soluciones técnicas, los sistemas de código bajo necesitan algo de codificación. La codificación también es una parte vital del proceso de construcción para garantizar que el creador tenga el poder que necesita. Las plataformas sin código, por otro lado, abstraen toda la información tecnológica. Hace que las plataformas sin código sean aún más baratas y fáciles de usar, aunque solo están disponibles para algunos casos de uso.

Más información: https://www.forbes.com/sites/forbescommunicationscouncil/2021/05/07/low-code-versus-no-code-and-the-future-of-application-development/?sh=1249df3e3568