82. Arduino MKR1000 y el protocolo I2C




La Tecnología para todos show

Summary: ¿Por qué queremos conectar dos Arduinos? Puede haber varias razones para conectar dos o más Arduinos entre si, ampliar las entradas/salidas analógicas y/o digitales, dar más funcionalidad a nuestro proyecto pero quizás, la más interesante sea poder utilizar Arduino MKR1000 como enlace WiFi. Todo esto lo podemos hacer mediante el protocolo I2C de una manera muy sencilla. Esta semana me ha llegado una pregunta de un oyente y alumno del Campus, Javier Tallón. Me preguntaba cómo conectar un Arduino MEGA a una red WiFi. El había adquirido un módulo ESP8266 pero no encontraba la manera de poder conectar estos dos dispositivos por su dificultad. Su idea es poder controlar varias líneas de media potencia de su casa. El problema es que no tiene mucha experiencia en programación y, en cuanto nos salimos de tecnologías plug and play como Arduino, es cuando empezamos a sufrir. No me malinterpretes, el módulo ESP8266 es un dispositivo muy bueno, barato y que nos da un rendimiento y funcionalidad excelente. La pega es que hay que tener conocimientos medios de programación, comunicación y electrónica. Por lo tanto mi respuesta fue clara, si realmente quieres hacerlo sin dolores de cabeza, compra un Arduino MKR1000. Esto si que es tecnología plug and play, solo tienes que ver el curso donde explico cómo lo puedes configurar, con solo dos lecciones está listo para usar. La otra cuestión es cómo comunicar un Arduino MKR1000 con un MEGA. Esto lo podemos hacer muy fácilmente gracias al protocolo de comunicación I2C, pero esto lo veremos más adelante. Ahora lo que veremos es una comparativa extraída del blog Pensando con Lógica de Jorge Aranda. Hace tiempo escribió un artículo donde explica las diferencias técnicas técnicas entre estos dos dispositivos cuando trabajan de manera autónoma es decir, sin conectar el ESP a una placa de Arduino. Aquí te voy a hacer un resumen: Precio ESP: aprox 6€ MKR1000: 31€ Tamaño El Arduino MKR1000 es 3 veces mayor que un módulo ESP. Ojo con esto si queremos hacer un proyecto final pequeño. Alimentación ESP: 3,3V - 12 mA MKR1000: 5V - 7 mA Frecuencia del reloj (importante para la velocidad de procesado del código) ESP: 80 MHz MKR1000: 48 MHz Memorias Flash / SRAM / EEPROM ESP: 512 Kb / 64 Kb / No tiene MKR1000: 256 kB / 32 Kb / No tiene Pines digitales/analógicos ESP: 11 Digitales (11 PWM) + 1 analógico MKR1000: 8 Digitales (4 PWM) + 7 analógicos Programación ESP: es más complicado de programar, necesitamos conectar a un puerto USB/Serie a través de otros componentes, necesita alimentación y configurar el entorno de desarrollo. MKR1000: a través del IDE de Arduino configurándolo y con el lenguaje nativo de Arduino. Yo no voy a entrar en el debate de si uno es mejor que otro, dependerá de los requisitos técnicos de nuestro proyecto. Si que puedo decir que es recomendable tener conocimientos medios de electrónica, programación y comunicación para enfrentarse a un módulo ESP. Si lo que queremos hacer es que el módulo ESP se utilice como enlace para conectar a la red WiFi, lo podemos hacer a través del monitor serie, haciendo las conexiones pertinentes y con comandos AT. La solución propuesta a Javier es utilizar el Arduino MKR1000 como un enlace WiFi. Para ello tenemos que conectar los dos Arduinos mediante el protocolo de comunicaciones estándar I2C, del cual ya te he hablado en el artículo donde explico como hacerlo. Gracias a este protocolo no solo podemos conectar uno o varios Arduinos, también podemos añadir al bus de comunicación sensores y otros dispositivos como una pantalla LCD. Recurso del oyente El recurso del oyente nos lo ha enviado Javier Tallón. Se trata de un sistema para gestionar nuestros dispositivos domóticos, Domoticz. Es un software de código abierto escrito en C++, muy ligero y multiplataforma, se puede ejecutar en Raspberry Pi, Windows, Linux, Mac OS X e incluso en un servidor NAS de Synology. El core o corazón trabaja con un proceso en background. No nos enteramos ni que...