Icono del sitio Home Assistant Fácil

Bootstrap, LM35 y Arduino MKR1000

bootstrap-lm35-mkr1000

Bootstrap, LM35 y Arduino MKR1000 pueden darnos una idea de lo que podemos hacer gracias al módulo WiFi que incorpora esta placa. No me cansaré de decir que se nos avecina una revolución, un cambio en la manera de vivir en las ciudades e interactuar con las cosas y los objetos, donde poco a poco irán cobrando vida y empezarán a comunicarse entre ellos y con nosotros. Aunque el IoT (Internet de las Cosas) no es una novedad, el Arduino MKR1000 pone al alcance de todo el mundo este sector, bienvenido a la era del IoT.

Si no conoces las posibilidades que nos ofrece esta placa o todavía no las has configurado, por favor lee estos artículos de introducción:

Si estás interesado en profundizar en este tipo de dispositivos, mira el curso que está en el Campus de Programarfacil, Crea un dispositivo del IoT.

Conectando los componentes (sin batería)

Lo primero de todo es prototipar así que, debemos conectar los componentes como si fuera un Arduino UNO o MEGA. El material necesario es el siguiente:

Construir el circuito es sencillo, puedes apoyarte en el artículo donde ya hablé de este sensor de temperatura. A continuación te dejo el esquema que he utilizado. Como puedes ver, todavía no existe un modelo para Fritzing del Arduino MKR1000 y he tenido que utilizar una foto.

Una vez montado el circuito empezamos a programar los componentes.

Programando los componentes

Ya hablé hace tiempo de las características de este sensor y cómo utilizarlo con el Arduino UNO. Es exactamente igual, lo único que tenemos que tener en cuenta es que Arduino MKR1000 tiene un voltaje de operación de 3,3V. Esto implica que la fórmula que utilizamos para el Arduino UNO deba ser modificada de la siguiente manera.

Solo he cambiado el valor de referencia, en Arduino UNO es 5V y en Arduino MKR1000 es 3,3V, el resto funcionaría igual.

Esta placa tiene la posibilidad de trabajar con diferentes resoluciones en los pines analógicos, en este caso trabajamos con el valor por defecto que es 10 bits, pero podemos utilizar 8 bits o 12 bits. En estos casos deberíamos sustituir el valor de 1023 por la resolución correspondiente, 255 para 8 bits y 4095 para 12 bits.

He incorporado 3 LEDs, uno rojo que indica que no está conectado a la WiFi, uno verde que indica lo contrario, conexión establecida y un LED azul que marca cuando se hace la lectura de la temperatura a través del sensor LM35.

Todo esto está plasmado en el siguiente código nativo de Arduino, es una adaptación del código original SimpleWebServerWiFi que viene incluido en los ejemplos del entorno de desarrollo oficial de Arduino.

Como ves en el código, en este ejemplo voy a utilizar el Arduino MKR1000 como servidor web, por eso he tenido que meter la web completa dentro del sketch.

Cosas a tener en cuenta:

Para poder ver la web a través de cualquier dispositivo ya sea móvil, tablet o pc, es necesario utilizar el framework Bootstrap. Este framework nos facilita la tarea de hacer responsive nuestra web, siempre y cuando sigamos sus procedimientos.

Te dejo a continuación la web en HTML5, todo este código ha sido incorporado en el sketch de Arduino, está entre las líneas 88 y 173.

Si lo pruebas verás que funciona. La alimentación que estamos utilizando es mediante USB, alimentación de 5V. Si queremos sacar todo el potencial de esta placa deberíamos conectarlo a una batería, esto lo veremos ahora.

Conectando los componentes (con batería)

Aquí es donde realmente sacamos todo el jugo al Arduino MKR1000, cuando creamos un dispositivo totalmente autónomo. Esto lo hacemos gracias a una batería, las características mínimas que debe tener son que suministre 3,7V y una capacidad de 700 mAh. En este caso la que yo utilizo es de 2000 mAh. Una de las capacidades de esta placa es que permite cargar la batería a través de ella. Tiene un LED naranja que nos indica si se está cargando o no.

Pero no todo es tan sencillo como parece. Cuando conectamos una batería, el pin de salida de 5V ya no suministra esos 5V, en ese momento empieza a trabajar con 3,7V, insuficiente para alimentar el LM35 así que hay que buscar una solución. Por la que yo he optado es añadir una pila de 9V que alimente el sensor de temperatura LM35. Te recuerdo que su rango de operación es de 4V a 30V así que no tendremos problema.

El circuito incorporando estos dos elementos sería el siguiente.

Con respecto a la programación no hay que hacer ningún cambio por introducir una batería y una pila a no ser que queramos controlar la vida útil de estos dos elementos. Eso lo dejaremos para otro artículo.

Te dejo a continuación unas fotos del circuito terminado y de la aplicación web tanto en móvil como en PC.

Salir de la versión móvil