0% encontró este documento útil (0 votos)
107 vistas19 páginas

Taller IoT. Conectando Dispositivos Con Arduino - Aprendiendo Arduino

Cargado por

Luis Crespo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
107 vistas19 páginas

Taller IoT. Conectando Dispositivos Con Arduino - Aprendiendo Arduino

Cargado por

Luis Crespo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

26/12/2019 Taller IoT.

Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Descargar PDF Manual


Para ver los manuales, descargue aquí.

AtoZManuals.com ABRIR

Taller IoT. Conectando Dispositivos con Arduino


El objetivo de este taller es poner en práctica lo visto en la charla http://www.aprendiendoarduino.com/iot-conectando-dispositivos-con-arduino/
(http://www.aprendiendoarduino.com/iot-conectando-dispositivos-con-arduino/) y demostrar lo sencillo que es hacer una prueba de concepto de un
proyecto IoT para conectar a Internet cosas.

En las tres horas que dura el taller vamos  a hacer pequeñas pruebas de conexión de Arduino con diversas plataformas de una forma guiada, pero dejando a
cada uno de los participantes que puedan hacer pruebas por su cuenta y puedan “jugar” un poco con los elementos conectados.

Temperatura y Humedad -
Equipos HWGroup
Anuncio Soluciones para monitoreo de
Anuncio ambientes, instalaciones y equipos.…
etherpower.net

Saber más

Un proyecto IoT sencillo llevaría más tiempo y de dejaremos para futuros cursos.

El código usado en el taller está disponible en https://github.com/jecrespo/aprendiendoarduino-iot (https://github.com/jecrespo/aprendiendoarduino-iot)

Y se puede descargar desde: https://github.com/jecrespo/aprendiendoarduino-iot/archive/master.zip (https://github.com/jecrespo/aprendiendoarduino-


iot/archive/master.zip)

SW Taller IoT
Última versión del IDE de Arduino instalada https://www.arduino.cc/en/Main/So ware (https://www.arduino.cc/en/Main/So ware)

Para los que trabajen con el ESP8266, instalar el soporte Arduino para ESP8266 https://github.com/esp8266/Arduino (https://github.com/esp8266/Arduino)

Para los que usen XBEE instalar XCTU: https://www.digi.com/products/xbee-rf-solutions/xctu-so ware/xctu (https://www.digi.com/products/xbee-rf-
solutions/xctu-so ware/xctu)

Código del taller: https://github.com/jecrespo/aprendiendoarduino-iot (https://github.com/jecrespo/aprendiendoarduino-iot) y descarga


(https://github.com/jecrespo/aprendiendoarduino-iot/archive/master.zip)

HW Taller IoT

Cada participante usará su portátil con el so ware instalado.

Disponemos de 17 puestos numerados del 1 al 17.

Tipo A (números 1 al 17)


https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 1/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino
Arduino UNO
Aprendiendo
Protoboard
Arduino (https://www.aprendiendoarduino.com/)
Cables conexión
Aprendiendo a manejar Arduino en profundidad
CursosCable
(https://www.aprendiendoarduino.com/cursos/)
USB Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Ethernet Shield
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
LEDs y Resistencias 220 ohms
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
Botón/pulsador
Servo
Sonda Temperatura (TMP36 (https://www.arduino.cc/en/uploads/Main/TemperatureSensor.pdf))
Potenciómetro

Tipo B (opcional)

Arduino UNO (Usado como programador ESP8266)


ESP8266 (usado como microcontrolador)
Protoboard
Cables conexión
Cable USB
LEDs y Resistencias 220 ohms
Botón/pulsador
Potenciómetro

Tipo C (opcional)

Arduino Leonardo
Protoboard
Cables conexión
Cable USB
XBee Shield
Módulo XBee
XBee Explorer (Para programar el módulo XBEE)
LEDs y Resistencias 220 ohms
Botón/pulsador
Potenciómetro

Puesto Gateway (opcional)

Arduino UNO
Ethernet Shield
XBee Shield
Protoboard
LEDs y Resistencias 220 ohms
Botón/pulsador
Potenciómetro

Conexiones:

Botón – Entrada digital pullup — pin 6


Led Rojo – Salida digital — pin 7
Led Verde – Salida digital — pin 8
Sonda de temperatura – Entrada analógica — pin A0
Potenciómetro – Entrada analógica — pin A1
Servo – PWM — pin 9

Esquema:

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 2/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Comunicaciones Taller IoT


Disponemos de tres tipos de conexiones:

Ethernet – Ethernet Shield


Wifi – ESP8266
XBee – XBee shield y un módulo

Conexión Ethernet

El Arduino ethernet shield nos da la capacidad de conectar un Arduino a una red ethernet. Es la parte física que implementa la pila de protocolos TCP/IP.

Está basada en el chip ethernet Wiznet W5100. El Wiznet W5100 provee de una pila de red IP capaz de soportar TCP y UDP. Soporta hasta cuatro conexiones de
sockets simultáneas. Usa la librería Ethernet para leer y escribir los flujos de datos que pasan por el puerto ethernet. Me permitirá escribir sketches que se
conecten a internet usando la shield.

Librería ethernet: http://arduino.cc/en/Reference/Ethernet (http://arduino.cc/en/Reference/Ethernet)

El shield provee un conector ethernet estándar RJ45. La ethernet shield dispone de unos conectores que permiten conectar a su vez otras placas encima y
apilarlas sobre la placa Arduino.

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 3/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Temperatura y Humedad -
Equipos HWGroup
Aprendiendo a manejar Arduino en profundidad
Anuncio Soluciones para monitoreo de
Cursos (https://www.aprendiendoarduino.com/cursos/)
Anuncio Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
ambientes, instalaciones y equipos.…
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) etherpower.net
Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
Saber más

Arduino usa los pines digitales 10, 11, 12, y 13 (SPI) para comunicarse con el W5100 en la ethernet shield. Estos pines no pueden ser usados para e/s genéricas.

Conexión ESP8266

El ESP8266 es un chip Wi-Fi de bajo coste con pila TCP/IP completa y capacidad de MCU (Micro Controller Unit) producida por el fabricante chino Espressif
Systems, con sede en Shanghai.

Características:

32-bit RISC CPU: Tensilica Xtensa LX106 running at 80 MHz*


64 KiB of instruction RAM, 96 KiB of data RAM
External QSPI flash – 512 KiB to 4 MiB* (up to 16 MiB is supported)
IEEE 802.11 b/g/n Wi-Fi
Integrated TR switch (https://en.wikipedia.org/wiki/Duplexer#Transmit-receive_switch), balun (https://en.wikipedia.org/wiki/Balun), LNA
(https://en.wikipedia.org/wiki/Low-noise_amplifier), power amplifier (https://en.wikipedia.org/wiki/RF_power_amplifier) and matching network
(https://en.wikipedia.org/wiki/Matching_network)
WEP (https://en.wikipedia.org/wiki/Wired_Equivalent_Privacy) or WPA/WPA2 (https://en.wikipedia.org/wiki/Wi-Fi_Protected_Access)
authentication, or open networks
16 GPIO pins
SPI (https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus), I²C (https://en.wikipedia.org/wiki/I%C2%B2C),
I²S (https://en.wikipedia.org/wiki/I%C2%B2S) interfaces with DMA (sharing pins with GPIO)
UART (https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter) on dedicated pins, plus a transmit-only UART can be enabled on
GPIO2
1 port 10-bit ADC (https://en.wikipedia.org/wiki/Analog-to-digital_converter)

Los módulos ESP8266 los podemos encontrar en diferentes encapsulados y placas:

En nuestro caso vamos a usar el ESP-01:

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 4/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Pines:

TX (goes to the 3.3V Rx of the UART USB adapter to the PC)


CH_PD (enable/power down, must be pulled to 3.3v directly or via resistor)
RESET
VCC (3.3v power supply)
GND (connect to power ground)
GPIO 2
GPIO 0 (leave open or pull up for normal, pull down to upload new firmware)
RX (goes to the 3.3V Tx of the UART USB adapter to the PC)

Para usar el ESP8266 con Arduino vamos a conectarnos por el puerto serie. Arduino UNO es usado solo como programador. Este es el esquema.

OJO: ¡¡va alimentado a 3.3V!!

El Arduino Core ESP8266 está disponible a través de GitHub: https://github.com/esp8266/Arduino (https://github.com/esp8266/Arduino)

Reference de Arduino core a ESP8266: https://github.com/esp8266/Arduino/blob/master/doc/reference.md


(https://github.com/esp8266/Arduino/blob/master/doc/reference.md)

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 5/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Cortadora Láser de Fibra
Anuncio Cortadoras láser fabricados en
Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/)
China. Obtuvo el certi cado de CE por el…
Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Anuncio
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Bodor® Laser
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
Más información

Debemos instalar el soporte a terceros en nuestro IDE simplemente añadiendo el texto “http://arduino.esp8266.com/stable/package_esp8266com_index.json
(http://arduino.esp8266.com/stable/package_esp8266com_index.json)” en propiedades:

Y luego desde el gestor de tarjetas dar a instalar al soporte para ESP8266.

Conexión XBee

XBee es el nombre comercial del Digi de una familia de módulos de comunicación por radio y están basados en el estándar zigbee, pero digi tiene muchos
Xbee y algunos son zigbee estándar y otros son propietarios o modificaciones del estándar. Existen muchos módulos Xbee basados en el estándar IEEE
802.15.4 (https://en.wikipedia.org/wiki/IEEE_802.15.4)

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 6/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Para programar el módulo XBee necesitaremos el XBee explorer.

XBee Series 1 (también llamados XBee 802.15.4)  – Son la serie más fácil para trabajar, no necesitan ser configurados, pero incluso así se pueden obtener
beneficios de estos módulos. Debido a que son fáciles para trabajar, son los más recomendables especialmente si se está empezando.

Ideal para domótica, Tracker


GPS, Telemetría, Alarmas,…
Anuncio Ideal para domótica, Tracker GPS,
Anuncio Telemetría, Alarmas, Smart City,…
thingsmobile.com

Abrir

Para configurar y usar los módulos XBee es necesario descargar e instalar XBee Configuration and Test Utility (XCTU) que es un so ware multiplataforma que
permite interactuar con los módulos mediante un interfaz gráfico. Esta aplicación incluye herramientas que hacen muy sencillo configurar y probar los
módulos XBee.

XCTU nos sirve para configurar, inicializar, actualizar firmware y testear los módulos XBee, comunicándose por puerto serie a los módulos. Una ventaja de este
so ware es que puedes ver rápidamente un resumen de todos los parámetros del módulo y una descripción de ellos.

Más información y descarga de XCTU: http://www.digi.com/products/xbee-rf-solutions/xctu-so ware/xctu (http://www.digi.com/products/xbee-rf-


solutions/xctu-so ware/xctu)

Los dispositivos XBee se comunican entre ellos a través del aire enviando y recibiendo mensajes. Estos dispositivos no pueden gestionar los datos enviados o
recibidos, sin embargo pueden comunicarse con otros dispositivos a través del interfaz serie.

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 7/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino
Por lo tanto tenemos dos tipos de comunicación en los dispositivos XBee:
Aprendiendo Arduino (https://www.aprendiendoarduino.com/)
Comunicación
Aprendiendo inalámbrica:
a manejar Arduinoesen
la profundidad
comunicación entre los módulos XBee, estos módulos deben ser parte de la misma red y usar la misma frecuencia de
Cursosradio.
(https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Comunicación
Proyectos serie: es la comunicación entre el móduloEmpresas
(https://www.aprendiendoarduino.com/proyectos/) XBee y el(https:/
microcontrolador o el PC a través de un puerto serie.
/www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

En la comunicación inalámbrica los módulos transmiten y reciben información a través de la modulación de las ondas electromagnéticas. Para que se realice
la transmisión ambos módulos deben estar en la misma frecuencia y en la misma red. Esto se determina por dos parámetros:

Channel (CH) es la frecuencia usada para comunicar, es decir, el canal dentro de la red.
Personal Area  Network Identifier (ID) es un identificador único que establece que los módulos están en la misma red.

Un módulo XBee solo recibirá y transmitirá datos a otros XBee dentro de las misma red (mismo ID) y usando el mismo canal (mismo CH).

Vamos a trabajar en modo transparente el módulo XBee funciona de forma que todo lo recibido por el puerto serie es enviado inmediatamente al aire y todo
lo recibido por la radio es se manda tal cual al puerto serie.

En modo transparente para comunicar dos módulos, es necesario configurar la dirección del destino en el módulo que envía datos. Esta dirección se
programa en los parámetros:  Destination Address High (DH) y Destination Address Low (DL).

Configuración de los módulos:

NODO (END
Param COORDINATOR E ect
DEVICE)

CH C C Define la frecuencia a usar. Debe ser la misma en ambos módulos.

ID 2015 2015 Define la red a la que se conecta la radio. Debe ser la misma en ambos módulos.

DH 0013A200 0013A200
DH y DL forma la dirección de destino. Es donde las notificaciones son mandadas cuando cambia el valor del pin.
SL of Se configura como dirección corta de 16 bits.
DL —
Coordinator

Define la dirección corta de 16 bits.

MY 123X 5678
X es el número del kit.

CE 0 1 Coordinator mode

A1 0111b — End Device Association

A2 — 100b association settings

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 8/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Haremos un esquema de comunicación punto a punto. En este modelo un módulo puede comunicarse con un módulo o múltiples módulos que estén en la
misma red. Esta comunicación implica un nodo central coordinador con varios nodos remotos (end devices) conectándose al nodo central.

En el protocolo 802.15.4 los módulos XBee tienen dos roles:

Coordinator, es el nodo central de la red. Inicia la red y permite a otros dispositivos conectarse, puede seleccionar la frecuencia del canal y hace la
sincronización de la red. Para configurar un nodo como coordinador hay que cambiar el parámetro CE (Coordinator Enable) a 1.
End device, es un nodo remoto de la red. Puede comunicarse con el coordinador y con otros end devices de la red. Se puede poner en modo sleep.

En el coordinador, cambiado el parámetro A2 es posible asociar end devices sin que conozcan el canal (CH) y el ID de red (ID) siendo inicializados por el
coordinador.

El nodo usado como coordinador está configurado como un gateway y todo lo que recibe los manda por ethernet.

Plataformas Taller IoT


Una vez todo instalado vamos a conectarnos a diversas plataformas haciendo algunas prácticas con ellas, mandando datos, visualizandolos, enviando
mensajes que se mostrarán por pantalla, analizar los datos, etc…

Plataforma Propia (opcional)

Disponemos de una plataforma muy sencilla de IoT en: http://www.aprendiendoarduino.com/servicios/ (http://www.aprendiendoarduino.com/servicios/)

Esta plataforma es un desarrollo simple que está alojado en un hosting compartido, pero podría estar en una Raspberry Pi.

Desde ella podemos:

Mandar datos desde Arduino o ESP8266 y verlos en tiempo real: http://www.aprendiendoarduino.com/servicios/datos/index.html


(http://www.aprendiendoarduino.com/servicios/datos/index.html)
Visualizar en tiempo real los datos enviados: http://www.aprendiendoarduino.com/servicios/datos/graficas.html
(http://www.aprendiendoarduino.com/servicios/datos/graficas.html)

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 9/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino
Envío de mensajes y visualización: http://www.aprendiendoarduino.com/servicios/mensajes/index.html
Aprendiendo Arduino (https://www.aprendiendoarduino.com/)
(http://www.aprendiendoarduino.com/servicios/mensajes/index.html)
Envío deaSMSs
Aprendiendo y visualización
manejar Arduino en de profundidad
los enviados y estado del envío: http://www.aprendiendoarduino.com/servicios/SMS/index.html
Cursos(http://www.aprendiendoarduino.com/servicios/SMS/index.html)
(https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Todo el código
Servicios de la/www.aprendiendoarduino.com/servicios/)
IoT (https:/ plataforma y Arduino en: Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
Grabar datos y visualizar datos y gráficas: https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/datos
(https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/datos)
Grabar mensajes y visaualizarlos: https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/mensajes
(https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/mensajes)
Mandar SMS y visualizarlos: https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/SMS
(https://github.com/jecrespo/aprendiendoarduino-servicios/tree/master/SMS)

Conexión para enviar datos de temperatura:

Datasheet sonda temperatura: https://www.arduino.cc/en/uploads/Main/TemperatureSensor.pdf


(https://www.arduino.cc/en/uploads/Main/TemperatureSensor.pdf)

Ejercicios propuestos:

Enviar datos de la sonda de temperatura o del potenciómetro y visualizarlos en tiempo real en


http://www.aprendiendoarduino.com/servicios/datos/graficas.html (http://www.aprendiendoarduino.com/servicios/datos/graficas.html)
Mandar un mensaje y visualizarlo en tiempo real solicitando por el puerto serie el nombre y el mensaje.
Mandar un SMS y visualizarlo en tiempo real solicitando por el puerto serie el nº de teléfono y el mensaje.
Modificar el programa de envío de mensaje y SMS para que mande un mensaje fijo al pulsar un botón.
Conectar con la web de aemet y guardar los datos de humedad exterior y sacarlos en una gráfica.

El código de Arduino para usar cada uno de ellos es: https://github.com/jecrespo/aprendiendoarduino-iot/tree/master/00%20-%20Plataforma%20Propia


(https://github.com/jecrespo/aprendiendoarduino-iot/tree/master/00%20-%20Plataforma%20Propia)

Opendata AEMET: https://opendata.aemet.es/centrodedescargas/inicio (https://opendata.aemet.es/centrodedescargas/inicio)

Ideal para domótica, Tracker


GPS, Telemetría, Alarmas,…
Anuncio Ideal para domótica, Tracker GPS,
Anuncio Telemetría, Alarmas, Smart City,…
thingsmobile.com

Abrir

Documentación API: https://opendata.aemet.es/dist/index.html (https://opendata.aemet.es/dist/index.html)

Ejemplos: https://opendata.aemet.es/centrodedescargas/ejemProgramas (https://opendata.aemet.es/centrodedescargas/ejemProgramas)

Solicitar API KEY: https://opendata.aemet.es/centrodedescargas/altaUsuario (https://opendata.aemet.es/centrodedescargas/altaUsuario)

Manejar JSON en Arduino:

Librería ArduinoJson: https://bblanchon.github.io/ArduinoJson/ (https://bblanchon.github.io/ArduinoJson/)


Librería json-streaming-parser: https://github.com/squix78/json-streaming-parser (https://github.com/squix78/json-streaming-parser)
aJson: https://github.com/interactive-matter/aJson/ (https://github.com/interactive-matter/aJson/)
Uso aJson: http://hardwarefun.com/tutorials/parsing-json-in-arduino (http://hardwarefun.com/tutorials/parsing-json-in-arduino)
Uso aJson: http://interactive-matter.eu/blog/2010/08/14/ajson-handle-json-with-arduino/ (http://interactive-matter.eu/blog/2010/08/14/ajson-handle-
json-with-arduino/)

Thingspeak

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 10/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino
ThingSpeak (http://www.thingspeak.com/) es un plataforma de Internet of Things (IoT) (http://www.mathworks.com/solutions/internet-of-things/) que
Aprendiendo Arduino (https://www.aprendiendoarduino.com/)
permite recoger y almacenar datos de sensores en la nube y desarrollar aplicaciones IoT. Thinkspeak también ofrece aplicaciones que permiten analizar y
visualizar tus datos
Aprendiendo en MATLAB
a manejar y actuar
Arduino sobre los datos. Los datos de los sensores pueden ser enviados desde Arduino, Raspberry Pi, BeagleBone Black u otro
en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/)
HW. Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/)
Videos (https://www.aprendiendoarduino.com/videos/)
Canal público: https://thingspeak.com/channels/242341 (https://thingspeak.com/channels/242341)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Ejemplo práctico

Pasos previos:

Darse de alta en la plataforma Thingspeak.


Instalar la librería de Arduino para Thingspeak.
Cargar en Arduino el sketch: https://github.com/jecrespo/aprendiendoarduino-iot/blob/master/01-Thingspeak/datalogger_DHCP/datalogger_DHCP.ino
(https://github.com/jecrespo/aprendiendoarduino-iot/blob/master/01-Thingspeak/datalogger_DHCP/datalogger_DHCP.ino)

Documentación: https://thingspeak.com/docs (https://thingspeak.com/docs)

Crear un nuevo canal: Nodo X, siendo X el número de kit usado.

Los canales guardan todos los datos que una aplicación Thingspeak recoge. Cada canal incluye 8 campos que pueden almacenar cualquier tipo de dato,
además de tres campos para localización del dispositivo y uno para el estado de los datos. Una vez los datos son recogidos en un canal, es posible usarlos con
las apps de Thingspeak para analizarlos y visualizarlos.

Crear tres campos, donde registramos los datos del potenciómetro, la temperatura  y cuando pulso el botón:

temperatura
potenciómetro
botón

API de tablas y canales: API: https://es.mathworks.com/help/thingspeak/channels-and-charts.html (https://es.mathworks.com/help/thingspeak/channels-


and-charts.html)

Aplicaciones de thingspeak (Thingspeak apps): https://thingspeak.com/apps (https://thingspeak.com/apps)

Ejercicio propuesto:

Mandar los datos de las dos entradas analógicas y una digital a un canal de thingspeak.
Crear una visualización de datos con MATLAB
Crear una app con ThingHTTP, que llame a la API de de mensajes de aprendiendoarduino.com:
http://www.aprendiendoarduino.com/servicios/mensajes/grabaMensajes.php
(http://www.aprendiendoarduino.com/servicios/mensajes/grabaMensajes.php) y cada vez que se pulse el botón se mandará un mensaje que podrá
visualizarse en tiempo real en: http://www.aprendiendoarduino.com/servicios/mensajes/index.html
(http://www.aprendiendoarduino.com/servicios/mensajes/index.html)

http://www.aprendiendoarduino.com/servicios/mensajes/grabaMensajes.php?nombre=NOMBRE&mensaje=MENSAJE

Crear un nuevo react que cuando se pulse el botón llame a la regla definida en ThingHTTP para que mande el mensaje.
Ver el resto de apps que ofrece thingspeak

Repositorio: https://github.com/jecrespo/aprendiendoarduino-iot/tree/master/01-Thingspeak (https://github.com/jecrespo/aprendiendoarduino-


iot/tree/master/01-Thingspeak)

Información:

React app: https://es.mathworks.com/help/thingspeak/react-app.html (https://es.mathworks.com/help/thingspeak/react-app.html)


Manual Thinghttp APP: https://es.mathworks.com/help/thingspeak/thinghttp-app.html (https://es.mathworks.com/help/thingspeak/thinghttp-
app.html)

Carriots (opcional)

Carriots es una Plataforma como Servicio (PaaS en sus siglas en inglés) diseñada para proyectos del Internet de las Cosas (IoT) y de Máquina a Máquina (M2M)

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 11/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino
Más información: https://www.carriots.com/que-es-carriots (https://www.carriots.com/que-es-carriots)
Aprendiendo Arduino (https://www.aprendiendoarduino.com/)
Carriots es una plataforma IoT creada en España.
Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Cree(https:/
Proyectos potentes productos y servicios IoT.
/www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Conecte
Servicios fácilmente
IoT (https:/ “sus cosas” al Internet de las Cosas.
/www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/)
Construya Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
sus apps inteligentes con Carriots en 5 pasos.

Pasos:

Conectar Dispositivos
Recopilar Datos
Gestionar Dispositivos y Datos
Construir APPs

Casos de uso: https://www.carriots.com/casos-de-uso (https://www.carriots.com/casos-de-uso)

Pasos previos:

Darse de alta en la plataforma Carriots.


Crear un nuevo dispositivo llamado ArduinoX, siendo X el número de Arduino.

En este caso recibo datos en formato JSON en lugar de crear fields.

Información:

Documentación desarrolladores: https://www.carriots.com/que-es-carriots (https://www.carriots.com/que-es-carriots)


Mandar datos a Carriots: https://www.carriots.com/tutorials/arduino_carriots/arduino_library
(https://www.carriots.com/tutorials/arduino_carriots/arduino_library)
Ejemplo de uso: https://www.carriots.com/tutorials/arduino_carriots/alert_system (https://www.carriots.com/tutorials/arduino_carriots/alert_system)
API carriots: https://www.carriots.com/documentation/api (https://www.carriots.com/documentation/api)
Wizard Listener: https://cpanel.carriots.com/wizards/createlistener (https://cpanel.carriots.com/wizards/createlistener)
Wizard gráficas: https://cpanel.carriots.com/graphs/ (https://cpanel.carriots.com/graphs/)

Ejercicio Propuesto:

Mandar datos del potenciómetro cada 10 segundos a la plataforma mediante MQTT


Mandar el aviso de puerta abierta o cerrada cada vez que cambia mediante API REST.
Visualizar el flujo de datos
Exportar los datos a fichero.
Configurar un listener para que mande un correo al pulsar un botón o al pasar de 700 en el valor leído del potenciómetro. Usar el wizard de listener.
Usar el wizard de gráficas para hacer una gráfica.

Repositorio: https://github.com/jecrespo/aprendiendoarduino-iot/tree/master/02-Carriots (https://github.com/jecrespo/aprendiendoarduino-


iot/tree/master/02-Carriots)

Tutorial de Alerta con Arduino https://www.carriots.com/tutorials/arduino_carriots/alert_system


(https://www.carriots.com/tutorials/arduino_carriots/alert_system)

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 12/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

MQTT y Adafruit IO

MQTT (http://mqtt.org/) son las siglas de Message Queue Telemetry Transport y tras ellas se encuentra un protocolo ideado por IBM y liberado para que
cualquiera podamos usarlo enfocado a la conectividad Machine-to-Machine (M2M).

Está enfocado al envío de datos en aplicaciones donde se requiere muy poco ancho de banda. Además, sus características le permiten presumir de tener un
consumo realmente bajo así como precisar de muy pocos recursos para su funcionamiento.

Estas características han hecho que rápidamente se convierta en un protocolo muy empleado en la comunicación de sensores y, consecuentemente, dentro
del Internet de las Cosas.

Es precisamente el broker el elemento encargado de gestionar la red y transmitir los mensajes.

Para este taller vamos a usar el broker público de Adafruit https://io.adafruit.com (https://io.adafruit.com), pero pueden usarse otros como
https://www.cloudmqtt.com/ (https://www.cloudmqtt.com/)

Dentro de la arquitectura de MQTT, es muy importante el concepto “topic” o “tema” en español ya que a través de estos “topics” se articula la comunicación
puesto que emisores y receptores deben estar subscritos a un “topic” común para poder entablar la comunicación. Este concepto es prácticamente el mismo
que se emplea en colas, donde existen un publicadores (que publican o emiten información) y unos subscritores (que reciben dicha información) siempre que
ambas partes estén subscritas a la misma cola. 

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 13/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Este tipo de arquitecturas, lleva asociada otra interesante característica: la comunicación puede ser de uno a uno o de uno a muchos.

Un “topic” se representa mediante una cadena y tiene una estructura jerárquica. Cada jerarquía se separa con ‘/’. Por ejemplo,
“edificio1/planta5/sala1/raspberry2/temperatura” o “/edificio3/planta0/sala3/arduino4/ruido“. De esta forma se pueden crear jerarquías de clientes que
publican y reciben datos, como podemos ver en la imagen:

De esta forma un nodo puede subscribirse a un “topic” concreto (“edificio1/planta2/sala0/arduino0/temperatura”)  o  a varios (“edificio1/planta2/#”).

MQTT me permite gran escalabilidad. Añadir un nuevo Arduino o un suscriptor es muy sencillo dentro de la jerarquía vista

Un cliente MQTT sencillo (y con limitaciones) para instalar en nuestro PC es MQTT Lens. Uso de MQTT lens: http://www.hivemq.com/blog/mqtt-toolbox-mqtt-
lens (http://www.hivemq.com/blog/mqtt-toolbox-mqtt-lens)

Como habrás imaginado, para conseguir una comunicación MQTT, emplearemos una librería. Existen muchas disponibles gracias a la gran (tanto en tamaño
como en calidad) comunidad que existe alrededor de Arduino.

Una de las librerías más conocidas y la más estable y flexible es Arduino Client for MQTT http://pubsubclient.knolleary.net/
(http://pubsubclient.knolleary.net/) que nos provee de un sencillo cliente que nos permite tanto subscribirnos como publicar contenido usando MQTT.
Internamente, usa la API de Arduino Ethernet Client lo que lo hace compatible con un gran número de shields y placas

Otras Librerías MQTT para Arduino:

https://github.com/i-n-g-o/esp-mqtt-arduino (https://github.com/i-n-g-o/esp-mqtt-arduino)
http://pubsubclient.knolleary.net/ (http://pubsubclient.knolleary.net/)
https://github.com/adafruit/Adafruit_MQTT_Library (https://github.com/adafruit/Adafruit_MQTT_Library)

Ejemplo práctico

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 14/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino
Pasos previos:
Aprendiendo Arduino (https://www.aprendiendoarduino.com/)
Darse deaalta
Aprendiendo en la plataforma
manejar Arduino enAdafruit IO: https://io.adafruit.com (https://io.adafruit.com) una cuenta por grupo de 3 o 4 puestos, de forma que cada
profundidad
Cursosgrupo usa
(https:/ un mismo broker y puedan interactuar entre
/www.aprendiendoarduino.com/cursos/) ellos.
Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
No es
Proyectos necesario
(https:/ crear feeds puesto que se crean automáticamente
/www.aprendiendoarduino.com/proyectos/) al generarlos
Empresas (https:/ desde el programa de Arduino al suscribirse
/www.aprendiendoarduino.com/empresas/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Instalar la librería Adafruit MQTT Library: https://github.com/adafruit/Adafruit_MQTT_Library (https://github.com/adafruit/Adafruit_MQTT_Library)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
Carga en Arduino el sketch: https://github.com/jecrespo/aprendiendoarduino-iot/blob/master/03-
MQTT/Adafruit_MQTT_DHCP/Adafruit_MQTT_DHCP.ino (https://github.com/jecrespo/aprendiendoarduino-iot/blob/master/03-
MQTT/Adafruit_MQTT_DHCP/Adafruit_MQTT_DHCP.ino)

Para usar MQTT en arduino podemos usar varias librerías:

Adafruit MQTT Library: https://github.com/adafruit/Adafruit_MQTT_Library (https://github.com/adafruit/Adafruit_MQTT_Library)


Arduino client for MQTT: http://pubsubclient.knolleary.net/ (http://pubsubclient.knolleary.net/) , github https://github.com/knolleary/pubsubclient
(https://github.com/knolleary/pubsubclient). Note that the library only works with networking libraries that support the Arduino Client interface.

Ejercicio propuesto:

Para ver un ejemplo de MQTT podemos usar el broker gratuito de https://io.adafruit.com/ (https://io.adafruit.com/)
Conectar un potenciómetro y un LED en el Arduino.
Crear un feed con en nombre nodeX-pot y nodeX-led, siendo X el número del kit (no es necesario crearlo, al suscribirse se crea automáticamente)
Crear un dashboard con el nombre nodeX, siendo X el número del kit. Configurarlo con un toggle asociado al feed de LED, un gauge asociado al feed del
potenciómetro y un line chart asociado al feed del potenciómetro.
Comprobar en el dashboard el dato del potenciómetro y encender y apagar el led con el toggle.
Crear un trigger de forma que cuando el valor del potenciómetro sea mayor que 700 encienda el led de uno de los compañeros del mismo broker o
mande un email.
Comprobar que al pulsar el botón se enciende y apaga el led de un nodo remoto. Para ello al pulsar el botón se debe publicar en el topic nodeY-led
siendo Y el número del kit dentro del mismo usuario de adafruit IO.

(https://aprendiendoarduino.files.wordpress.com/2017/03/captura-de-pantalla-2017-03-31-10-46-39.png)

Información:

MQTT y Adafruit IO: https://learn.adafruit.com/mqtt-adafruit-io-and-you (https://learn.adafruit.com/mqtt-adafruit-io-and-you)


Tutorial: https://learn.adafruit.com/adafruit-io (https://learn.adafruit.com/adafruit-io)

Repositorio: https://github.com/jecrespo/aprendiendoarduino-iot/tree/master/03-MQTT (https://github.com/jecrespo/aprendiendoarduino-


iot/tree/master/03-MQTT)

Buscar …

AprendiedoArduino

[email protected] (mailto:[email protected])

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 15/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Aprendiendo a manejar Arduino en profundidad
Cursos (https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
(http://www.aprendiendoarduino.com/)
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)

Redes Sociales

 (https://twitter.com/jecrespom)  (https://www.facebook.com/AprendiendoArduino.by.jecrespom)
 (https://www.linkedin.com/in/enriquecrespo)  (https://www.youtube.com/c/EnriqueCrespo)

Código Cursos en GitHub

(https://github.com/jecrespo)

Repositorio jecrespo (https://github.com/jecrespo)


Prácticas (https://github.com/jecrespo/Aprendiendo-Arduino)
Proyectos (https://github.com/jecrespo/Aprendiendo-Arduino-Proyectos)
IoT (https://github.com/jecrespo/aprendiendoarduino-servicios)

Licencia

(http://creativecommons.org/licenses/by-nc-sa/4.0/)
Aprendiendo Arduino by Enrique Crespo (https://aprendiendoarduino.wordpress.com/) is licensed under a Creative Commons Reconocimiento-NoComercial-
CompartirIgual 4.0 Internacional License (http://creativecommons.org/licenses/by-nc-sa/4.0/).

Etiquetas

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 16/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Arduino (https://www.aprendiendoarduino.com/tag/arduino/) Arduino Day

(https://www.aprendiendoarduino.com/tag/arduino-day/)
Aprendiendo a manejar Arduino en profundidad Artículo (https://www.aprendiendoarduino.com/tag/articulo/) Avanzado
(https://www.aprendiendoarduino.com/tag/avanzado/)
Cursos (https://www.aprendiendoarduino.com/cursos/)Backend Sigfox(https:/
Talleres (https://www.aprendiendoarduino.com/tag/backend-sigfox/)
/www.aprendiendoarduino.com/talleres-arduino/) Cellnex
Proyectos (https://www.aprendiendoarduino.com/proyectos/)
(https://www.aprendiendoarduino.com/tag/cellnex/) Empresas (https://www.aprendiendoarduino.com/empresas/)
Comunicación Serie (https://www.aprendiendoarduino.com/tag/comunicacion-serie/) dragino (https://www.aprendiendoarduino.com/tag/dragino/) ESP8266
Servicios IoT (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
(https://www.aprendiendoarduino.com/tag/esp8266/) Ethernet (https://www.aprendiendoarduino.com/tag/ethernet/) gearbest (https://www.aprendiendoarduino.com/tag/gearbest/) Hardware
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
(https://www.aprendiendoarduino.com/tag/hardware/) HTTP (https://www.aprendiendoarduino.com/tag/http/) IDE

(https://www.aprendiendoarduino.com/tag/ide/) Impresion 3D (https://www.aprendiendoarduino.com/tag/impresion-3d/) Indice

(https://www.aprendiendoarduino.com/tag/indice/) Iniciacion (https://www.aprendiendoarduino.com/tag/iniciacion/) IoT


(https://www.aprendiendoarduino.com/tag/iot/) lenguaje de programación (https://www.aprendiendoarduino.com/tag/lenguaje-de-programacion/) Librerías Arduino
(https://www.aprendiendoarduino.com/tag/librerias-arduino/) LoRa (https://www.aprendiendoarduino.com/tag/lora/) LoRa Gateway (https://www.aprendiendoarduino.com/tag/lora-gateway/)
LoRa Shield (https://www.aprendiendoarduino.com/tag/lora-shield/) LoRaWAN (https://www.aprendiendoarduino.com/tag/lorawan/) makers (https://www.aprendiendoarduino.com/tag/makers/)

makerspace (https://www.aprendiendoarduino.com/tag/makerspace/) MKRFOX1200 (https://www.aprendiendoarduino.com/tag/mkrfox1200/) moteino

(https://www.aprendiendoarduino.com/tag/moteino/) Motor DC (https://www.aprendiendoarduino.com/tag/motor-dc/) Motores (https://www.aprendiendoarduino.com/tag/motores/) nodeMCU

(https://www.aprendiendoarduino.com/tag/nodemcu/) Plataforma IoT (https://www.aprendiendoarduino.com/tag/plataforma-iot/) Presentacion

(https://www.aprendiendoarduino.com/tag/presentacion/) Programación (https://www.aprendiendoarduino.com/tag/programacion/) Proyectos


(https://www.aprendiendoarduino.com/tag/proyectos/) Práctica (https://www.aprendiendoarduino.com/tag/practica/) Raspberry Pi (https://www.aprendiendoarduino.com/tag/raspberry-pi/) RFM95

(https://www.aprendiendoarduino.com/tag/rfm95/) Sigfox (https://www.aprendiendoarduino.com/tag/sigfox/) TCP/IP (https://www.aprendiendoarduino.com/tag/tcpip/) thingspeak

(https://www.aprendiendoarduino.com/tag/thingspeak/) UNB (https://www.aprendiendoarduino.com/tag/unb/) Video (https://www.aprendiendoarduino.com/tag/video/) Wemos D1 mini

(https://www.aprendiendoarduino.com/tag/wemos-d1-mini/) Youtube (https://www.aprendiendoarduino.com/tag/youtube/)

Entradas recientes

Preparación Arduino Day Logroño 2019 (https://www.aprendiendoarduino.com/2019/02/23/preparacion-arduino-day-logrono-2019/)

Top 5 Gadgets Electrónica (https://www.aprendiendoarduino.com/2018/12/31/top-5-gadgets-electronica/)

Top 5 Accesorios Raspberry Pi (https://www.aprendiendoarduino.com/2018/09/02/top-5-accesorios-raspberry-pi/)

Arduino UNO, Nano y NodeMCU ESP8266 a buen precio (https://www.aprendiendoarduino.com/2018/08/16/arduino-uno-nano-y-nodemcu-esp8266-a-buen-


precio/)

Eventos Arduino Day 2018 (https://www.aprendiendoarduino.com/2018/05/11/eventos-arduino-day-2018/)

Archivos

febrero 2019 (https://www.aprendiendoarduino.com/2019/02/)

diciembre 2018 (https://www.aprendiendoarduino.com/2018/12/)

septiembre 2018 (https://www.aprendiendoarduino.com/2018/09/)

agosto 2018 (https://www.aprendiendoarduino.com/2018/08/)

mayo 2018 (https://www.aprendiendoarduino.com/2018/05/)

marzo 2018 (https://www.aprendiendoarduino.com/2018/03/)


https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 17/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


enero 2018 (https://www.aprendiendoarduino.com/2018/01/)

mayo 2017 (https://www.aprendiendoarduino.com/2017/05/)


Aprendiendo a manejar Arduino en profundidad
febrero
Cursos 2017
(https:/ (https://www.aprendiendoarduino.com/2017/02/)
/www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
noviembre
Servicios 2016 /www.aprendiendoarduino.com/servicios/)
IoT (https:/(https://www.aprendiendoarduino.com/2016/11/)
Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
septiembre 2016 (https://www.aprendiendoarduino.com/2016/09/)

agosto 2016 (https://www.aprendiendoarduino.com/2016/08/)

julio 2016 (https://www.aprendiendoarduino.com/2016/07/)

junio 2016 (https://www.aprendiendoarduino.com/2016/06/)

marzo 2016 (https://www.aprendiendoarduino.com/2016/03/)

Categorías

Arduino (https://www.aprendiendoarduino.com/category/arduino/)

Arduino Day (https://www.aprendiendoarduino.com/category/arduino-day/)

Arduino.cc (https://www.aprendiendoarduino.com/category/arduino-cc/)

Arduino.org (https://www.aprendiendoarduino.com/category/arduino-org/)

ARM (https://www.aprendiendoarduino.com/category/arm/)

Artículo (https://www.aprendiendoarduino.com/category/articulo/)

Avanzado (https://www.aprendiendoarduino.com/category/avanzado/)

Bluetooth (https://www.aprendiendoarduino.com/category/bluetooth/)

Bootloader (https://www.aprendiendoarduino.com/category/bootloader/)

C++ (https://www.aprendiendoarduino.com/category/c/)

Charla (https://www.aprendiendoarduino.com/category/charla/)

Comunicación Inalámbrica (https://www.aprendiendoarduino.com/category/comunicacion-inalambrica/)

demo (https://www.aprendiendoarduino.com/category/demo/)

Electrónica (https://www.aprendiendoarduino.com/category/electronica/)

ESP8266 (https://www.aprendiendoarduino.com/category/esp8266/)

Gateway (https://www.aprendiendoarduino.com/category/gateway/)

gearbest (https://www.aprendiendoarduino.com/category/gearbest/)

Hardware (https://www.aprendiendoarduino.com/category/hardware/)

HTTP (https://www.aprendiendoarduino.com/category/http/)

IDE (https://www.aprendiendoarduino.com/category/ide/)

Impresión 3D (https://www.aprendiendoarduino.com/category/impresion-3d/)

Indice (https://www.aprendiendoarduino.com/category/indice/)

Intel Edison (https://www.aprendiendoarduino.com/category/intel-edison/)

IoT (https://www.aprendiendoarduino.com/category/iot/)

Librerías Arduino (https://www.aprendiendoarduino.com/category/librerias-arduino/)

LoRa (https://www.aprendiendoarduino.com/category/lora/)

LoRaWAN (https://www.aprendiendoarduino.com/category/lorawan/)

LPWAN (https://www.aprendiendoarduino.com/category/lpwan/)

maker (https://www.aprendiendoarduino.com/category/maker/)

makerspace (https://www.aprendiendoarduino.com/category/makerspace/)

Microcontrolador (https://www.aprendiendoarduino.com/category/microcontrolador/)

MKR (https://www.aprendiendoarduino.com/category/mkr/)

MKRFOX1200 (https://www.aprendiendoarduino.com/category/mkrfox1200/)

moteino (https://www.aprendiendoarduino.com/category/moteino/)

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 18/19
26/12/2019 Taller IoT. Conectando Dispositivos con Arduino – Aprendiendo Arduino

Aprendiendo Arduino (https://www.aprendiendoarduino.com/)


Motores (https://www.aprendiendoarduino.com/category/motores/)

Pantalla LCD (https://www.aprendiendoarduino.com/category/pantalla-lcd/)


Aprendiendo a manejar Arduino en profundidad
Plataformas
Cursos (https://www.aprendiendoarduino.com/category/plataformas/)
(https://www.aprendiendoarduino.com/cursos/) Talleres (https://www.aprendiendoarduino.com/talleres-arduino/)
Proyectos (https://www.aprendiendoarduino.com/proyectos/) Empresas (https://www.aprendiendoarduino.com/empresas/)
PrácticaIoT(https://www.aprendiendoarduino.com/category/practica/)
Servicios (https://www.aprendiendoarduino.com/servicios/) Videos (https://www.aprendiendoarduino.com/videos/)
Artículos (https://www.aprendiendoarduino.com/articulos/) Acerca de (https://www.aprendiendoarduino.com/acerca-de/)
Presentacion (https://www.aprendiendoarduino.com/category/presentacion/)

Programación (https://www.aprendiendoarduino.com/category/programacion/)

Proyecto (https://www.aprendiendoarduino.com/category/proyecto/)

Puerto Serie (https://www.aprendiendoarduino.com/category/puerto-serie/)

Raspberry Pi (https://www.aprendiendoarduino.com/category/raspberry-pi/)

Sensores (https://www.aprendiendoarduino.com/category/sensores/)

Serie (https://www.aprendiendoarduino.com/category/serie/)

Sigfox (https://www.aprendiendoarduino.com/category/sigfox/)

Sketch (https://www.aprendiendoarduino.com/category/sketch/)

Smart City (https://www.aprendiendoarduino.com/category/smart-city/)

So ware (https://www.aprendiendoarduino.com/category/so ware/)

Taller (https://www.aprendiendoarduino.com/category/taller/)

Udemy (https://www.aprendiendoarduino.com/category/udemy/)

UNB (https://www.aprendiendoarduino.com/category/unb/)

Video (https://www.aprendiendoarduino.com/category/video/)

Wifi (https://www.aprendiendoarduino.com/category/wifi/)

XBee (https://www.aprendiendoarduino.com/category/xbee/)

Youtube (https://www.aprendiendoarduino.com/category/youtube/)

Creado con WordPress (https://es.wordpress.org/) | Tema: Sydney (https://athemes.com/theme/sydney) por aThemes.

Máquina Corte Láser de China

Cortadoras láser fabricados en China. Obtuvo el


certi cado de CE por el precio EXW.
Bodor® Laser

https://www.aprendiendoarduino.com/talleres-arduino/arduino-day-2017/taller-iot-conectando-dispositivos-con-arduino/ 19/19

También podría gustarte