Arduino se ha convertido una figura destacada e incluso uno de los impulsores del IoT y no por casualidad, sino que por sus características es un HW con gran capacidad para usar en proyectos de IoT.
Características de Arduino para IoT
- Barato y rápido prototipado.
- HW libre y por lo tanto es modificable para que consuma menos y para hacer un HW final de características industriales.
- Disponibilidad de HW de comunicaciones de todo tipo para conectar con Arduino. Nuevas tecnologías de comunicación llegan antes que para elementos comerciales
- Librerías y SW público para su reutilización o adaptación.
- Flexibilidad en la programación.
- Apoyo de la comunidad.

No en vano cuando se busca IoT (Internet de las cosas) enseguida aparece Arduino. Arduino sirve para recoger datos no solo del entorno sino de máquinas o elementos externos y comunicarnos con Internet, mediante su consumo eléctrico, contactos de alertas externas, su temperatura, su posición, etc…
Arduino nos permite de una forma sencilla y barata poder conectar entre sí elementos cotidianos para manejarlos y añadir sensores a cualquier elemento y en cualquier ubicación.
Qué es Arduino: https://aprendiendoarduino.wordpress.com/2018/04/02/que-es-arduino-7/
Hardware Arduino:
- Placas Arduino: https://aprendiendoarduino.wordpress.com/2017/10/15/placas-arduino-3/
- Shields Arduino: https://aprendiendoarduino.wordpress.com/2017/06/20/shields-arduino-3/
Hardware Arduino IoT
La familia de Arduino MKR son una serie de placas con un factor de forma diferente al de Arduino mucho más pequeño y basados todos en el microcontrolador de 32 bits de Atmel SAMD21. Estas placas están pensadas principalmente para IoT.
MKR Family: https://store.arduino.cc/arduino-genuino/arduino-genuino-mkr-family
Arduino MKRZero
Producto: https://store.arduino.cc/arduino-mkrzero
Primero modelo de la familia MKR y heredero del Arduino Zero.
Arduino MKR1000 WIFI
Producto: https://store.arduino.cc/arduino-mkr1000
Versión para IoT con procesador Atmel ARM Cortex M0+ de 32bits ATSAMW25 que es el mismo procesador que Genuino Zero pero con wifi integrado, chip de cifrado y antena integrada.
El ATSAMW25 está compuesto por tres principales bloques:
- SAMD21 Cortex-M0+ 32bit low power ARM MCU
- WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi (mismo que el wifi 101 shield)
- ECC508 CryptoAuthentication

Arduino MKR WiFi 1010
Producto: https://store.arduino.cc/arduino-mkr-wifi-1010
El MKR WIFI 1010 es una mejora significativa del MKR 1000 WIFI. Está equipado con un módulo ESP32 fabricado por U-BLOX. Esta placa tiene como objetivo acelerar y simplificar la creación de prototipos de aplicaciones de IO basadas en WiFi gracias a la flexibilidad del módulo ESP32 y su bajo consumo de energía.
La placa tienes estos 3 bloques principales:
- SAMD21 Cortex-M0+ 32bit Low Power ARM MCU;
- U-BLOX NINA-W10 Series Low Power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi; and Bluetooth
- ECC508 Crypto Authentication
Actualización firmware bluetooth para Arduino MKR WiFi 1010: http://forum.arduino.cc/index.php?topic=579306.0
La librería para controlar el bluetooth es:
Arduino MKR FOX 1200
Producto: https://store.arduino.cc/arduino-mkrfox1200
Arduino anunciado en abril de 2017. En una placa de desarrollo pensada para el IoT con conectividad Sigfox. Comparte muchas características con otras placas de la familia MKR como em microcontrolador SAM D21 32-bit Cortex-M0+.
Incluye un módulo ATA8520 con conectividad sigfox de amplia cobertura y bajo consumo capaz de funcionar durante 6 meses con dos pilas AA. También incluye una suscripción por dos años a la red Sigfox: http://www.sigfox.com/en
Web: https://blog.arduino.cc/2017/04/18/introducing-the-arduino-mkrfox1200/
Más información sobre el Arduino MKRFOX1200 en el artículo: https://www.aprendiendoarduino.com/2018/03/05/arduino-mkrfox1200/

Arduino MKR WAN 1300
Producto: https://store.arduino.cc/mkr-wan-1300
Presentado el 25 de septiembre de 2017 en la maker faire de NY: https://blog.arduino.cc/2017/09/25/introducing-the-arduino-mkr-wan-1300-and-mkr-gsm-1400/
Arduino + LoRa:
- Microcontrolador: http://www.atmel.com/Images/Atmel-42181-SAM-D21_Summary.pdf
- Módulo LoRa: http://wireless.murata.com/RFM/data/type_abz.pdf

Arduino MKR WAN1310
Nueva placa evolución de la MKRWAN 1300: https://store.arduino.cc/mkr-wan-1310
Esta placa mejora el consumo de la anterior y dispone de mayor memoria flash para poder hacer data logging y OTA
Esta tarjeta de código abierto se puede conectar a:
- Arduino Create
- Tu propia red LoRa usando el Arduino Pro Gateway para LoRa
- Infraestructura LoRaWAN existente como The Things Network
- O incluso otras tarjetas que utilizan el modo de conectividad directa
Presentación de la placa: https://blog.arduino.cc/2019/10/10/new-mkr-wan-1310-for-lora-connectivity-comes-with-2mbyte-flash-and-extended-battery-life/
Proyectos: https://create.arduino.cc/projecthub/products/arduino-mkr-wan-1310
Arduino MKR GSM 1400
Producto: https://store.arduino.cc/mkr-gsm-1400
Presentado el 25 de septiembre de 2017 en la maker faire de NY: https://blog.arduino.cc/2017/09/25/introducing-the-arduino-mkr-wan-1300-and-mkr-gsm-1400/
Arduino + GSM:
- Microcontrolador: http://www.atmel.com/Images/Atmel-42181-SAM-D21_Summary.pdf
- Módulo GSM: https://www.u-blox.com/sites/default/files/SARA-U2_DataSheet_%28UBX-13005287%29.pdf
Arduino MKR NB 1500
Producto: https://store.arduino.cc/arduino-mkr-nb-1500
El nuevo estándar Narrow Band IoT, con el ecosistema Arduino fácil de usar. Totalmente compatible con las clases Narrow Band IoT NB y las redes LTE CAT M1.
Arduino MKR Vidor 4000
Producto: https://store.arduino.cc/arduino-vidor-4000 :
El MKR VIDOR 4000 es altamente configurable y potente, y puede realizar procesamiento digital de audio y video de alta velocidad.
El MKR VIDOR 4000 puede configurarlo de la manera que desee; esencialmente puede crear su propia tarjeta controladora.
Viene cargado de hardware y potencial:
- un SRAM de 8 MB
- un chip Flash QSPI de 2 MB – 1 MB asignado para aplicaciones de usuario
- un conector Micro HDMI
- un conector para cámara MIPI
- Wifi & BLE alimentado por U-BLOX NINA Serie W10.
También incluye la clásica interfaz MKR en la que todos los pines son accionados tanto por SAMD21 como por FPGA.
Además, tiene un conector Mini PCI Express con hasta 25 pines programables por el usuario.
La FPGA contiene 16K Logic Elements, 504 KB de RAM embebida y 56 multiplicadores de 18×18 bit HW para DSP de alta velocidad. Cada pin puede conmutar a más de 150 MHz y puede ser configurado para funciones tales como UARTs, (Q)SPI, PWM de alta resolución/alta frecuencia, codificador de cuadratura, I2C, I2S, Sigma Delta DAC, etc.
La FPGA integrada también se puede utilizar para operaciones DSP de alta velocidad para el procesamiento de audio y vídeo. Esta tarjeta también incluye un Microchip SAMD21. La comunicación entre la FPGA y el SAMD21 es directa.

Accesorios para Arduinos MKR
- MKR 485 Shield: https://store.arduino.cc/arduino-mkr-485-shield
- MKR CAN Shield: https://store.arduino.cc/arduino-mkr-can-shield
- MKR ETH Shield: https://store.arduino.cc/arduino-mkr-eth-shield
- MKR mem Shield: https://store.arduino.cc/arduino-mkr-mem-shield
- MKR SC Proto Shield: https://store.arduino.cc/mkr-sd-proto-shield
- MKR relay proto shield: https://store.arduino.cc/mkr-relay-proto-shield
- MKR proto shield: https://store.arduino.cc/mkr-proto-shield
- MKR Connector Carrier: https://store.arduino.cc/arduino-mkr-connector-carrier
- MKR2UNO adapter: https://store.arduino.cc/mkr2uno-adapter

Y los IoT Bundles:
- MKR1000 bundle: https://store.arduino.cc/arduino-iot-mkr1000-bundle
- MKR family bundle: https://store.arduino.cc/mkr-family-bundle-for-developers
Nuevos Arduino Nano
En la Maker Faire Bay Area del año 2019, supone un nuevo concepto de placas de pequeño tamaño, económicas y de bajo consumo.
Presentación de las placas: https://blog.arduino.cc/2019/05/17/whats-new-at-maker-faire-bay-area-2019/

Se trata de 4 modelos:
- Arduino Nano Every: https://store.arduino.cc/nano-every
- Pensada para cualquier proyecto
- https://blog.arduino.cc/2019/05/31/getting-started-with-the-new-arduino-nano-every/
- Basada en el nuevo microcontrolador ATmega4809: http://ww1.microchip.com/downloads/en/DeviceDoc/48-pin-Data-Sheet-megaAVR-0-series-DS40002016B.pdf
- Conexión de USB a Serie con ATSAMD11D14A: http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42363-SAM-D11_Datasheet.pdf
- 5V capable y segundo puerto serie
- Arduino Nano 33 IoT: https://store.arduino.cc/nano-33-iot
- Arduno Nano every con conectividad WiFi y BT gracias a un procesador ESP32 adicional. Diseñada para IoT segura gracias al cryptochip ECC608A.
- IMU integrada
- https://blog.arduino.cc/2019/05/24/getting-to-know-the-new-arduino-nano-33-iot/
- Basada en el microcontrolador SAMD21G18A: http://ww1.microchip.com/downloads/en/DeviceDoc/SAMD21-Family-DataSheet-DS40001882D.pdf
- Wifi y BT gracias al procesador NINA W102 basado en el ESP32: https://www.u-blox.com/sites/default/files/NINA-W10_DataSheet_%28UBX-17065507%29.pdf
- 3.3V capable
- Arduino Nano 33 BLE: https://store.arduino.cc/nano-33-ble
- Diseñado para comunicaciones BT y bajo consumo. Wearables.
- Usa el procesador NINA B306, basado en el microcontrolador nRF 52840: https://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.1.pdf
- BT 5.0 e IMU LSM9DS1
- Arduino Nano 33 BLE Sense: https://store.arduino.cc/nano-33-ble-sense
- El mismo Nano 33 BLE con todos los sensores que puedas necesitar
- Usa el procesador NINA B306, basado en el microcontrolador nRF 52840: https://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.1.pdf
- BT 5.0 e IMU LSM9DS1
- LPS22HB reads barometric pressure and environmental temperature.
- HTS221 senses relative humidity.
- ADPS-9960 is a digital proximity, ambient light, RGB and gesture sensor.
- The MP34DT05 is the digital microphoneCrypto keys are managed by the ATECC608A crypto chip.
El nuevo microcontrolador ATmega4809 soliciona las limitaciones de las tarjetas antiguas basadas en ATmega328P, puede añadir un segundo puerto serie de hardware, más periféricos y memoria significa que puede abordar proyectos más ambiciosos. Utiliza un chip USB de calidad para que la gente no tenga problemas de conexión o de drivers. El procesador separado que maneja la interfaz USB también permite implementar diferentes clases de USB, como el Dispositivo de Interfaz Humana (HID), en lugar del clásico CDC/UART.
La nueva arquitectura de fuente de alimentación basada en un convertidor DC-DC de alta eficiencia permite alimentar la tarjeta hasta 21V y accionar periféricos de salida hasta 950mA sin sobrecalentamiento.
Arduino Cloud
Arduino no solo se queda con el HW sino esta preparando un cloud para IoT que pueda usar cualquiera.
Web: https://www.arduino.cc/en/IoT/HomePage
Arduino IoT Cloud permite conectar dispositivos a Internet y a otros dispositivos. Esta herramienta hace que la creación de objetos conectados sea rápida, sencilla y segura.
Aun es una versión beta y solo se puede usar con unos pocos modelos de Arduino, pero puede ser interesante en el futuro.
Actualmente, las tarjetas MKR1000, MKR WiFi 1010 y MKR GSM 1400 son compatibles. En el futuro, el MKR Vidor 4000 y Arduino Uno WiFi Rev2 también serán soportados.
Arduino IoT Cloud es una plataforma de aplicación de Internet of Things fácil de usar. Hace que sea muy sencillo para cualquiera desarrollar y gestionar aplicaciones de IoT, lo que les permite centrarse en la resolución de problemas reales en su negocio o en la vida cotidiana.
Web: https://create.arduino.cc/iot/things

Más información sobre Arduino IoT Cloud: https://www.arduino.cc/en/IoT/HomePage
Presentación del Arduino IoT Cloud:
- https://blog.arduino.cc/2019/02/06/announcing-the-arduino-iot-cloud-public-beta/
- https://teslabem.com/blog/arduino-iot-cloud-la-nueva-plataforma/
Getting started con Arduino Cloud:
- https://blog.arduino.cc/2019/02/22/getting-started-with-the-arduino-iot-cloud/
- https://create.arduino.cc/projecthub/133030/iot-cloud-getting-started-c93255
Proyectos con IoT cloud: https://create.arduino.cc/projecthub/products/arduino-cloud
Mejoras en Arduino IoT Cloud:
- https://blog.arduino.cc/2019/05/17/arduino-iot-cloud-aprils-new-features/
- Dynamic Dashboard: https://blog.arduino.cc/2019/05/31/arduino-iot-cloud-dynamic-dashboard/
Librería Arduino IoT Cloud: https://github.com/arduino-libraries/ArduinoIoTCloud
FAQ: https://www.arduino.cc/en/Create/FAQ
Configuración Arduino
Puesta en marcha y comprobación del entorno de programación de Arduino para utilizar en el curso.
Instalación del IDE y blink para comprobar que funciona:
- https://aprendiendoarduino.wordpress.com/2018/04/03/instalacion-software-arduino-2/
- https://aprendiendoarduino.wordpress.com/2018/04/07/ide-arduino-y-configuracion-2/
Programación Arduino
- https://aprendiendoarduino.wordpress.com/2017/10/14/programacion-arduino-7/
- https://aprendiendoarduino.wordpress.com/2017/06/19/estructura-sketch-arduino/
Librerías
Mandar Datos a un Servidor con Arduino
Vamos a conectar Arduino a un servidor para que mande datos y los muestre en una gráfica.
En este caso vamos a mandar cada 5000 ms el valor del potenciómetro, probar a mover el potenciómetro y ver cómo cambian los datos.
También puede sustituirse el potenciómetro por un LDR que nos muestre los datos de luminosidad:

Los datos de mostrarán en esta web: https://www.aprendiendoarduino.com/servicios/datos/index.html
Las gráficas se pueden ver en esta dirección: https://www.aprendiendoarduino.com/servicios/datos/graficas.html
El código en el servidor para recoger datos y mostrar está en: https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/datos
Cargar este firmware en Arduino: https://github.com/jecrespo/Curso-IoT-Open-Source/blob/master/data_logger_temperatura_DHCP/data_logger_temperatura_DHCP.ino
En el código sustituir “X” por el número de Arduino usado y “YY” por el número de Arduino en formato con dos dígitos, es decir, 01, 03, 11, 16, etc…
Ver los datos en:
Pingback: Saber más de IoT 2019… | Aprendiendo Arduino
Pingback: Saber Más Fundamentos IoT para Formación Profesional | Aprendiendo Arduino
Pingback: Diario del Curso IoT, Smart Cities y Node-RED | Aprendiendo Arduino