En este curso vamos a usar Arduino u otras placas compatible como HW de sensorización y actuación en IoT, pero existen otros microcontroladores o PLCs que haría la misma funcionalidad.
Dispositivos Hardware, son los dispositivos que van a medir y los que van a interactuar con el exterior. El elemento HW programable capaz de interactuar con estos dispositivos es el microcontrolador o el microprocesador.
Hay tres clases de dispositivos IoT:
- Los dispositivos más pequeños son los controladores embedded de 8 bits System-On-Chip (SOC). Un buen ejemplo de este Open Source hardware es Arduino. Por ejemplo: Arduino Uno platform, este tipo de HW no suelen llevar sistema operativo (SO).
- El siguiente nivel son los dispositivos con una arquitectura de 32 bits como los chips de Atheros y ARM. Normalmente estos dispositivos se basan en plataformas de Linux embedded, cómo OpenWRT u otros sistemas operativos embedded (Muchas veces incluyen pequeños routers domésticos y derivados de estos). En algunos casos, no corren ningún SO. Por ejemplo: Arduino Zero o Arduino Yun.
- Las plataformas IoT con más capacidad son los sistemas completos de 32 y 64 bits, también se les denomina Single-Board-Computer (SBC). Estos sistemas, como Raspberry Pi o BeagleBone, pueden correr varios SO como Linux o Android. En muchos casos, estos son Smartphone o algún tipo de dispositivo basado en tecnologías móviles. Estos dispositivos pueden comportarse como Gateways o puentes para dispositivos más pequeños. Por ejemplo: un wearable que se conecta vía Bluetooth a un Smartphone o a una Raspberry Pi, es típicamente un puente para conectarse a Internet.
Además a esta lista de dispositivos podemos añadir los Microcontroladores Industriales o PLCs, softPLCs o cualquier dispositivo que pueda conectar a internet y del que pueda obtener datos como un power meter como http://circutor.com/en/products/metering o un dispositivo con interfaz SNMP.
Otro tipo de HW IoT son los Gateway. Un Gateway IoT es un dispositivo físico o un programa de software que sirve como punto de conexión entre la nube y los controladores, sensores y dispositivos inteligentes. Todos los datos que se mueven a la nube, o viceversa, pasan por el gateway, que puede ser un dispositivo de hardware dedicado o un programa de software. Un gateway IoT también puede denominarse pasarela inteligente o nivel de control.
A estos dispositivos o nos nodos sensores se les lama también motes (short for remote) https://en.wikipedia.org/wiki/Sensor_node
Este es el primer elemento, es que está más cerca de las “cosas” es el HW que se encarga de medir e interactuar con las “cosas” y procesar esos datos. Este dispositivo puede tener conectado otros hardware como:
- Sensores: https://aprendiendoarduino.wordpress.com/2018/04/14/sensores-arduino-3/
- Actuadores: https://aprendiendoarduino.wordpress.com/2016/07/02/actuadores-y-perifericos-de-salida-2/
- Periféricos: https://aprendiendoarduino.wordpress.com/2016/07/02/actuadores-y-perifericos-de-salida-2/
- Transceivers: https://es.wikipedia.org/wiki/Transceptor
Programación de los dispositivos IoT
Un sistema operativo IoT es un sistema operativo diseñado para funcionar dentro de las restricciones propias de los dispositivos de Internet of Things, incluidas las restricciones de memoria, tamaño, potencia y capacidad de procesamiento. Los sistemas operativos de IO son un tipo de sistema operativo integrado, pero por definición están diseñados para permitir la transferencia de datos a través de Internet.
ARM Mbed es una plataforma y un sistema operativo para dispositivos conectados a Internet basado en microcontroladores ARM Cortex-M de 32 bits. Estos dispositivos también se conocen como dispositivos de Internet of Things. El proyecto es desarrollado en colaboración por Arm y sus socios tecnológicos.
- https://www.mbed.com/en/
- Mbed OS: https://www.mbed.com/en/platform/mbed-os/
- Hardware Mbed OS: https://os.mbed.com/platforms/
RTOS sistemas operativos en Tiempo real para sistemas embebidos, generalmente basados en linux.
Buen resumen de lo necesario para saber sobre sistemas embebidos para IoT a nivel de HW http://so-unlam.com.ar/wiki/index.php/PUBLICO:Sistemas_embebidos_e_Internet_de_las_Cosas
Guia para elegir el mejor HW IoT: https://www.ibm.com/developerworks/library/iot-lp101-best-hardware-devices-iot-project/index.html
Hardware IoT
El HW libre por excelencia es Arduino como microcontrolador y Raspberry Pi como microprocesador, con menor potencia física pero mayor potencia de cálculo.
Dentro del HW libre no solo debemos quedarnos con Arduino, sino que existen otros dispositivos, incluso algunos son compatibles y se programan igual que Arduino:
- Arduino: https://store.arduino.cc/
- Arduino familia MKR para IoT: https://store.arduino.cc/arduino-genuino/arduino-genuino-mkr-family y https://store.arduino.cc/arduino-iot-mkr1000-bundle
- ESP8266, HW low cost con wifi: https://www.espressif.com/en/products/hardware/esp8266ex/overview
- ESP32: https://www.espressif.com/en/products/hardware/esp-wroom-02/overview
- NodeMCU: http://nodemcu.com/index_en.html
- Wemos D1 Mini: https://wiki.wemos.cc/products:d1:d1_mini
- Moteino: https://lowpowerlab.com/guide/moteino/
- Artik de Samsung: https://www.artik.io/
- Waspmote: http://www.libelium.com/products/waspmote/ de Libellium
- Particle: https://www.particle.io/
- HW: https://store.particle.io/
- IDE online: https://build.particle.io/signup
- Plataforma online: https://dashboard.particle.io/login
- Más información: https://computerhoy.com/noticias/hardware/electron-kit-desarrollo-arduino-conexiones-gsm-40181
- Geothings: http://geothings.io/
- Un HW muy interesante que tiene su propia plataforma cloud es https://onion.io/
- El software de onion que vale para otro HW es el https://onion.io/cloud
- IoT de Texas Instrument
- RIoTboard: https://www.element14.com/community/community/designcenter/single-board-computers/riotboard
- Goblin 2 https://verse-technology.com/goblin2/
- Gemalto, conectividad IoT:
- http://www.bolsamania.com/nota-de-prensa/mercados/gemalto-acelera-la-innovacion-de-la-iot-con-una-nueva-herramienta-de-prototipado-rapido–2549084.html
- http://www.gemalto.com/brochures-site/download-site/Documents/m2m-connect-shield.pdf
- http://www.gemalto.com/m2m/development/cinterion-connect-shield
- http://www.gemalto.com/iot/iot-connectivity
- http://www.gemalto.com/iot/consumer-electronics
- https://developer.gemalto.com/
- Renexa RX111 MCUs http://am.renesas.com/products/tools/introductory_evaluation_tools/renesas_promo_board/yrpbrx111/index.jsp
- Flutter:
- WavIoT: https://waviot.com/
- Tessel placa IoT con node.js: https://tessel.io/
- Enocean (Ultra low power y power harvesting): https://www.enocean.com/en/
- Empresa navarra que desarrolla HW IoT: http://www.embeblue.com/
- Wisen: https://wisen.com.au/store/talk2/
- Samsung Smartthings http://www.smartthings.com/
Más HW IoT:
- Mejor HW IoT del 2016: https://blog.hackster.io/maker-madness-the-best-iot-boards-of-2016-cfc2382daf64#.zevo0bb27
- IoT Hardware Guide: https://www.postscapes.com/internet-of-things-hardware/
- Hardware IoT companies: https://www.postscapes.com/companies/iot-hardware-companies/
¿Conoces alguna más?
En el caso de HW libre, el siguiente paso es una personalización del HW mediante el diseño de HW como Eagle o Kicad
HW IoT Industrial
En el mundo industrial se está incorporando el IoT con la denominación IIoT (Industrial Internet of Things) ya sea con dispositivos basados en HW libre o los fabricantes de Autómatas están incorporando comunicaciones más abiertas a sus dispositivos.
PLC basado en Arduino: https://www.industrialshields.com/
Artículo de Industrial Shields sobre Arduino como aplicación de PLC: http://blog.industrialshields.com/es/iot-in-industry-improves-reliability-equipment/
PLCs basados en Arduino: https://industruino.com/
PLC basado en Arduino: http://www.winkhel.com/
Carcasa para Arduino y Raspberry Pi en la industria: Arduibox: http://www.hwhardsoft.de/english/webshop/raspibox/#cc-m-product-10145780397
SIMATIC IOT2020: gateway de Siemens basado en Arduino para futuras aplicaciones industriales: http://es.rs-online.com/web/p/kit-de-desarrollo-de-iot/1244037/ y aplicaciones https://www.rs-online.com/designspark/simatic-iot2020.
Simatic IoT 2040: https://w3.siemens.com/mcms/pc-based-automation/en/industrial-iot/Documents/simatic-ioc2040-flyer-en.pdf
Los otros PLCs SBC (Single Board Computer): http://www.infoplc.net/blogs-automatizacion/item/102505-plc-single-board-computer
OpenPLC Project: http://www.openplcproject.com/
Autómatas con MQTT: http://www.unitronics.com/ y modelo nistream https://unitronicsplc.com/unistream-series-unistream5/
ABB PM556, automata de ABB abierto: http://new.abb.com/drives/es/noticias-y-casos-de-exito/impulsa-el-internet-de-las-cosas-los-servicios-y-las-personas