Ir al contenido principal

Tutorial NodeMCU (IX): automatización de la iluminación con sensor de luz

Para este proyecto vamos a emplezar AdaFruit, desarrollando una aplicación que cumpla con las siguientes características:

  • Mediante una LDR conectada a la entrada analógica A0 se mide el nivel de luz en el ambiente.
  • El nivel de luz se muestra en la interfaz de la aplicación.
  • Mediante un slider desde la interfaz se ajusta el umbral de luminosidad.
  • Si el nivel de luz en el ambiente es menor que el ajustado, se activa un LED en la placa.
En definitiva, ajustamos el umbral de luminosidad con el slider, cuya información se enviará a través de un feed a nuestra placa. Si el dato de ese feed es mayor que la lectura del sensor, se iluminará el led; de lo contrario, no se iluminará.

Para ello tendremos que seguir los siguientes pasos:

1. Debemos saber cómo conectar la LDR. Como vemos en la imagen, se necesita una resistencia de 10K para su funcionamiento, estando todo ello conectado a 5V, G y A0.



2. Una vez implementado nuestro dispositivo, nos dirigimos a Adafruit para configurar cada uno de los bloques.

3. Añadimos un "gauge" que nos informará del nivel de luz instantáneo. Lo llamaremos "Luminosidad" y se conectará a un feed creado a tal efecto llamado "sensorluz". Sus valores irán desde el mínimo (0) hasta el máximo (100).

4. Añadimos un "slider" con el que podremos posteriormente ajustar el nivel de luz mínimo deseado.  El feed que utilizaremos será "umbralluz". A este bloque lo llamaremos "Umbral luz", sus valores mínimo y máximo también serán de 0 y 100 y ajustaremos el "Slider step size" a 5 (para que nos deje regular de 5 en 5). El panel en Adafruit quedará algo así:

5. Una vez configurados los bloques en Adafruit, nos vamos a ArduinoBlocks para implementar el programa. Dentro de inicializar añadiremos, como sabemos, el bloque iniciar con los datos de Wifi, broker, puerto y clave. Además, nos suscribiremos al feed "umbralluz" para que nuestro programa sepa el umbral de luz que seleccionamos en cada momento en el slider.

6. Antes de empezar con la información del bucle, debemos explicar un dato imporante. Los feeds envían datos en formato texto, por lo que en nuestro caso el feed "umbralluz" NO ENVÍA UN NÚMERO, sino que envía un texto (aunque en apariencia sea un número, por ejemplo, 95). Por eso, lo primero que tendremos que realizar en bucle será convertir el dato recibido del feed, de texto a número, y darle un nombre a la variable, en mi caso "umbralluznum".

7. También dentro de bucle, añadiremos el bloque "ejecutar cada" para publicar el nivel de luminosidad detectado por el LDR mediante el feed key "sensorluz" que habíamos denominado en Adafruit. Además, si el valor "umbralluznum" es menor que el nivel de luz dectectado por el LDR, se iluminará el LED de la salida D4; de lo contrario, lo apagaremos. En la siguiente imagen, además, aparece la configuración de nuestro sensor DHT11 de humedad y temperatura.



8. Nuestro proyecto estaría finalizado. Podemos probarlo bajando la luminosidad (vale con tapar el sensor con el dedo) y veremos que se enciende el led.


Comentarios

Entradas populares de este blog

Prácticas con FluidSIM

FluidSim es una herramienta de simulación para la obtención de los conocimientos básicos de la neumática y de la hidráulica.

Crucigrama: materiales metálicos

¿Te atreves a contestar este crucigrama sobre los materiales metálicos?

Crucigrama: estructuras

¿Te atreves a contestar este crucigrama sobre el tema de las estructuras visto en clase?