Archivo de la etiqueta: relé

Control de acceso con RFID

Las tarjetas RFID nos permiten crear sencillos sistemas de identificación por proximidad.

El lector más común para Arduino es el Mifare MFRC522 (con conexión SPI):

(puede leer tipo tarjetas  o tipo llaveros)

La conexión del módulo a Arduino por SPI sería:

Los bloques para utilizar este módulo en ArduinoBlocks son muy sencillos:

– Iniciar el módulo MFRC522: A parte de las conexiones SPI (11,12,13) debemos indicar los pines donde conectamos el CS (o SS) y el RESET. Esta es la configuración para el esquema de arriba:

-El siguiente bloque devuelve un valor lógico de verdadero si se detecta una NUEVA tarjeta en el lector. El bloque devuelve falso si no se detecta ninguna tarjeta o se ha leído y expulsado la actual (en ese caso si la queremos volver a detectar hay que alejarla y volvera a acercar):

-Cada tarjeta lleva un identificador diferente grabado de fábrica que nos permite identificar a una tarjeta del resto. Con este bloque obtenemos una cadena de texto con el código (hexadecimal) de la tarjeta leída. Si no se puede leer la tarjeta devolverá un text vacio.

IMPORTANTE: Una vez leída la tarjeta se expulsa, por lo que no se volverá a poder leer o detectar como nueva hasta que la alejemos y la volvamos a acercar.

Ejemplo de programa para leer códigos de tarjetas y mostrarlos por la consola serie:

Ejemplo de lectura y visualización por la consola serie:

En este caso el código de la tarjeta leída es: 77bb203b

Podemos hacer un programa para controlar el acceso de las siguiente forma:

Video en funcionamiento:


+Info: www.arduinoblocks.com

Libro oficial ArduinoBlocks:

https://www.amazon.es/s/field-keywords=arduinoblocks

http://www.arduinoblocks.com/shop/libros/7-libro-arduinoblocks.html


TIENDA OFICIAL ARDUINOBLOCKS (proveedor oficial Keyestudio)

CUPÓN 5% DESCUENTOABLOCKS18

 

 

Compartir

¡Conecta tu Arduino al Internet de las cosas! (IoT)

Ya podemos conectar nuestros proyectos de ArduinoBlocks a Internet y controlar y monitorizar remotamente cualquier sensor / actuador que conectemos. Únete al Internet de las Cosas (IoT) con ArduinoBlocks gracias a los bloques que implementan la comunicación MQTT.

Sólo necesitamos una Shield Ethernet (muy económicas) y conectarla a un router para darle conexión a Internet a nuestra placa Arduino.

La red donde conectemos Arduino debe tener un servidor DHCP para asignar automáticamente la dirección IP

IMPORTANTE: La shield Ethernet utiliza los pines: 10, 11,12,13 y el pin 4 si utilizamos la SD que lleva también incorporada la shield.

  • ¿Qué es MQTT?

MQTT es un protocolo de comunicación para redes TCP/IP muy sencillo y ligero en el que todos los dispositivos se conectan a un servidor (llamado “broker“). Los dispositivos pueden enviar (publicar) o recibir (suscribirse) mensajes asociándoles un “topic” (tema).

El “broker” se encarga de gestionar los mensajes y distribuirlos entre todos los dispositivos conectados.

Ejemplo de esquema MQTT con un dispositivo publicando un mensaje y el “broker” los difunde a todos los dispositivos suscritos a ese “topic”:

  • Bloques MQTT en ArduinoBlocks

Iniciar: permite configurar los datos de conexión con el “broker” a utilizar. Por defecto se utiliza el “broker” público y gratuito “iot.eclipse.org“. En caso de utilizar otro “broker” con seguridad debemos indicar el usuario / clave.

La dirección MAC debe ser única en nuestra red local, si no tenemos una facilitada en la EthernetShield podemos dejar la de ejemplo (generada aleatoriamente). El ID de cliente también se genera al azar.

Publicar: Permite enviar un mensaje con un “topic” (Tema) y un valor al “broker” para que difunda el mensaje a todos los suscriptores.

Suscribir: Permite suscribirse a un “Topic” (Tema) para recibirlo. ArduinoBlocks lo asocia a una variable, de forma que cuando se reciba el valor desde la conexión para ese “topic” se actualizará automáticamente el valor de la variable dentro del programa Arduino (sólo funciona con la suscripción a “topics” con valores numéricos)

Estado de la conexión: Permite obtener el estado de la conexión, si está conectado al “broker” o no.

  • ¿Qué “broker” MQTT utilizo para mis proyectos?

iot.eclipse.org (puerto: 1883, sin usuario ni clave)

Es un broker público. Tenemos que tener en cuenta que no es una opción segura pues nuestro mensajes son compartido con todos los dispositivos que utilicen este “broker“. Se utiliza para prueba o fines docentes. Los “topics” deben ser lo más personalizados posibles para evitar entrar en conflicto con otros dispositivos que pudieran utilizar el mismo “topic“:

Ejemplo de "topic": "AB/juanjo/p1/led"

Otro “broker” público muy utilizado para pruebas es:

broker.hivemq.com (puerto: 1883, sin usuario ni clave)

Podemos ver en tiempo real el funcionamiento de éste último:

http://www.mqtt-dashboard.com/

Por otro lado tenemos algunos “brokers” con acceso por usuario/clave que nos permiten un uso limitado con cuentas gratuitas y un uso más intensivo con cuentas de pago, como por ejemplo:

www.cloudmqtt.com

Después de registrarse se facilitan los datos de conexión (servidor, puerto, usuario, clave). Con la modalidad "Cute Cat" tenemos un límite de 10 dispositivos conectados y 10Kb/s de datos que será suficiente para nuestros proyectos.
  • EJEMPLOS

Ejemplo 1 – Envío de la temperatura y humedad cada 5 segundos

Arduino lee la temperatura y humedad del sensor DHT11 y la publica cada 5 segundos con el topic: “AB/temperatura” y “AB/humedad

Desde un dispositivo móvil (por ejemplo Android con la aplicación MQTT Dashboard) conectándonos al mismo “broker” y suscribiéndonos a los mismos  topics “AB/temperatura” y “AB/humedad” recibimos la información… ¡desde cualquier lugar del mundo!

Montaje y programación:

http://www.arduinoblocks.com/web/project/3504

Visualización en aplicación móvil “MQTT Dashboard” y “MQTT Dash” (Android)

 

Ejemplo 2 – Control de led RGB

Montaje y programación:

http://www.arduinoblocks.com/web/project/3505

Control desde aplicación móvil “MQTT Dashboard” (Android):

En funcionamiento:

Ejemplo 3 – Control de relé + monitorización del nivel de luz con LDR

Montaje y programación:

http://www.arduinoblocks.com/web/project/3506

Control y monitorización con aplicación móvil “MQTT Dashboard” (Android):

Video del último ejemplo en funcionamiento:

  • Clientes MQTT para dispositivos móviles:

MQTT Dashboard (Android)

MyMQTT (Android)

MQTT Dash (IoT, SmartHome)

MQTT Tester (iPhone)

  • Enlaces de interés:

https://github.com/mqtt/mqtt.github.io/wiki/public_brokers

https://geekytheory.com/que-es-mqtt

https://en.wikipedia.org/wiki/MQTT

https://github.com/mqtt/mqtt.github.io/wiki

https://es.wikipedia.org/wiki/Internet_de_las_cosas

https://es.aliexpress.com/store/product/1pcs-Arduino-Shield-Ethernet-Shield-W5100-R3-UNO-Mega-2560-1280-328-UNR-R3-W5100-Development/428351_32709442003.html

+Info, ejemplos y proyectos resueltos en el libro oficial:

Compartir

Encendido automático con sensor de movimiento y nivel de luz

Cada vez necesitamos ahorrar más en la factura de la luz, para ello podemos automatizar nuestros sistemas de iluminación sobre todo de zonas de paso como pasillos, escaleras o aseos.

Con este sencillo sistema vamos a automatizar el encendido para que se produzca sólo cuando se detecta movimiento de una persona.

Además podemos añadir un sensor de luz ambiente para actuar sólo en caso de nivel de luz bajo.

Sensores/actuadores utilizados:

Módulo de sensor PIR: sensor de movimiento por infrarrojos

El sensor PIR tiene una salida digital y en la mayoría de casos permite ajustar la sensibilidad de distancia y retardo de la detección.

Módulo LDR: nos permite obtener el nivel de luz ambiente conectado a una entrada analógica. (En caso de no tener el módulo de LDR podemos usar una resistencia de 10k y una resistencia LDR conforme en el esquema de montaje):

Módulo de relé: permite controlar el encendido de la luz. El relé hace la función de interruptor:

Montaje:

Programa:

Más fácil imposible!

+Info:

http://www.arduinoblocks.com

https://www.facebook.com/arduinoblocks

https://www.youtube.com/channel/UCoJwWGyd8a2pxzJHFdftXYw

Más información y proyectos resueltos:

http://www.arduinoblocks.com/shop/libros/5-libro-arduinoblocks.html

https://www.amazon.es/ArduinoBlocks-Programaci%C3%B3n-visual-bloques-Arduino/dp/1535513284/

Compartir

Termostato con Arduino Uno, DHT11 y LCD

Termostato con Arduino Uno, sensor DHT11 y  pantalla LCD I2C

Un termostato es un dispositivo que, conectado a una fuente de calor, sirve para regular la temperatura de manera automática, impidiendo que suba o baje del grado adecuado

Con el frío necesitamos controlar correctamente la calefacción de nuestra casa, esto se traduce en comodidad y ahorro energético.

Realizar un termostato con ArduinoBlocks es muy sencillo, vamos a ver las diferentes partes que necesitamos:

  • Obtener la temperatura ambiente con un sensor de temperatura DHT11 conectado al pin digital 3:

  • Potenciómetro para permitir que el usuario pueda fijar la temperatura deseada. Mapearemos el valor del potenciómetro de 0 a 30, para un valor menor de 5 desactivaremos el termostato y con valores entre 5 y 30 el termostato estará operativo (así ahorramos poner un botón de encender y apagar). Conectado al pin analógico A0:

 

  • Módulo de relé para activar la fuente calor (caldera, radiador, calefactor, …). Conectado al pin digital 4:

 

  • LCD con conexión I2C (pines A4 y A5) para mostrar la información:

Esquema de conexiones:

Montaje real con módulos:

Programa por bloques:

El programa por bloques se ha dividido en funciones para dividir los diferentes procesos y ver el funcionamiento más claro.

El programa refresca la información cada 1s, el sensor de temperatura puede sufrir oscilaciones momentáneas por fallo en los contactos de la placa de prototipos, mal conexión de los cables, cambios bruscos en la alimentación (al activarse o desactivarse el relé puede afectar a la alimentación y crear picos que afecten a los componentes). Por este motivo el valor de temperatura se hace una media con el valor anterior para suavizar estos cambios bruscos. En una versión mejorada se podría hacer la media de los últimos 5 valores por ejemplo para mayor precisión, pero así se ha probado y se amortigua bastante bien los posibles saltos bruscos del sensor.

Por otro lado se implementa un sistema básico de histéresis para evitar cambios de estado muy rápidos en el relé cuando estamos en un valor de temperatura ambiente muy próximo al de la temperatura seleccionada. A la hora de procesar y decidir el estado del termostato se añade un grado por arriba como límite para desactivar el termostato y se resta un grado por debajo como límite para activar el tersmotato.

Por ejemplo si seleccionamos 22 grados no se apagará la calefacción hasta superar los 23º y no se activará hasta bajar de los 21º  es decir -1º y +1º de margen

Este margen se puede ajustar según la precisión del sensor y la inercia térmica del tipo de calefacción (si el sistema de calefacción es muy rápido el valor de esta variable será más alto, si no más bajo)

Programa completo:

http://arduinoblocks.com/web/project/616

 

Y recuerda, para dominar ArduinoBlocks tienes disponible el libro oficial en Amazon:

Compartir