Llega la revolución de los porteros automáticos


No siempre estamos cerca para oir la señal de llamada procedente del clásico telefono analógico del intercomunicador de una instalación comunitaria de portero automático (!y mucho menos por supuesto si estamos fuera de casa!). Además quizás sepa que hay nuevos sistemas de videoporteros de nueva generación, pero si hablamos de una instalación comunitaria no siempre es fácil convencer a los vecinos para cambiar el clásico portero automático con soporte de audio por uno nuevo con video y llamada por wifi, pues eso conlleva cambiar la red troncal , la placa de la centralita y por supuesto sustituir los porterillos por los nuevos videoporteros.

Es cierto que existen soluciones para reenviar el audio o el timbre de un porterillo o un interfono (como hemos visto en este blog) , siendo básicamente la mas popular la que se compone de un altavoz que hay que cablear hasta donde deseemos o otra muy común compuesta de un transmisor/receptor de RF (que tampoco es muy eficiente), pero la solución que vamos a ver ( Ring Interfono) , que acaba de salir al mercado, realmente «está a otro nivel» porque permite una serie de facilidades nunca vistas, y eso sin tener que cambiar la instalación comunitaria:

  • Contestar al interfono estés donde esté: da igual quién llegue a su portal, un amigo o el paquete que esperaba pues con el Ring Intercom, estará en casa aunque esté lejos. Reciba notificaciones en tiempo real cuando llamen al interfono de su edificio, hable con la persona que esté al otro lado y dele acceso al edificio, todo desde su móvil ( además todas las funcionalidades del Ring Intercom están disponibles sin suscripción, así que no tendrá que pagar ningún coste adicional ni comprometerse a nada).
  • Añadir funcionalidades a su interfono: hable con las personas que se encuentren en la entrada de su edificio permitiendo abrirles el portal desde su teléfono usando la app de Ring.
  • Conceda acceso a personas de confianza: La funcionalidad de verificación automática de invitados le permite enviar llaves de invitado a través de la app de Ring a los amigos y familiares que elija para que ellos mismos se abran el portal de tu edificio usando sus propios móviles. El propietario siempre tendrá el control sobre quién tiene acceso al edificio y cuándo. Defina si la llave de invitado es válida solo ciertos días u horas o haga que funcione de manera ininterrumpida, gestione el horario de acceso de cada persona, o revoque un permiso de acceso que haya concedido: todo esto en cualquier momento desde la app de Ring.
  • Verificación automática para entregas de Amazon: en efecto puede dejar que Amazon se ocupe de comprobar quién le lleva los paquetes de Amazon a su edificio. Si activa la verificación automática para las entregas de Amazon, el personal de reparto verificará su identidad a través de la app de entrega de Amazon antes de que se le conceda acceso temporal al edificio. El acceso temporal les permitirá entrar al edificio y dejar los paquetes dentro (Amazon trabaja con varios transportistas para garantizar que recibes tus pedidos lo más rápido posible y sólo los artículos enviados por Amazon son compatibles con la verificación automática).

Antes de continuar, destacar nuevamente que esta solución es perfecta para complementar el porterillo tradicional conectado a una instalación comunitaria pero quizás no sea la mas optima por ejemplo si vive en una vivienda unifamiliar con una instalación de audio porque quizás le convenga cambiar la instalación completa por el ring «normal » ( Ring Video Doorbell de Amazon), dispositivo destinado a sustituir al pulsador de timbre exterior, pero que tiene todas las mismas características comentadas anteriormente del Ring Intercom añadiendo soporte de video, resaltando además de requerir una instalación muchísimo més sencilla pues simplemente hay que fijarlo a la pared) .

La instalación

Antes de nada vamos a ver como se realiza  la instalación usando como base un viejo interfono de la marca Fermax 6201 tipo kit   que se vende en Amazon con el modelo de teléfono 80447 (la página web de ring dice que está soportado y compatible  por este dispositivo ring). El interfono solo cuenta con un solo pulsador  de llamada y es típicamente usado en edificios de apartamentos con un panel de muchos vecinos con muchos timbres y compartidos. Otros telefonillo similar a 5 hilos son los  Fermax 3391,pero existen infinidad de modelos similares cuya principal característica es el soporte de los mínimos hilos (Transmisión, Recepción y Timbre).

Lo primero a tener en cuenta, antes de lanzarnos a instalar este nuevo dispositivo es buscar el modelo instalado en la web del Ring Intercom donde citan una lista de compatibilidad. Dentro de los porteros automáticos hay multitud de tecnologías y formas. Si tiene un portero analógico de varios hilos, casí seguro que podrá hacer todas las funciones. Esto es abrir y atender la llamada remotamente, que cuando este cerca y llame, se abra automáticamente, incluso silenciar el timbre y que solo le llegue la notificación al telefono (muy útil por la noche o en barrios con jaleo nocturno).Pero….si tienes uno digital, o mixto como el Tegui M72, probablemente, no pueda disfrutar de todas las funciones.


Básicamente el punto de «mayor complejidad » por tanto es conectar el Ring intercom al telefonillo existente , pero lo bueno es que SOLO hay que conectar el ring intercom al telefonillo que hay dentro de casa , no hay que hacer nada en la placa que esta en la calle.

Lo primero que tiene que hacer al recibir el producto es dejar cargando la bateria pues el equipo se alimentara de esta. Como vemos en la foto la bateria tiene un indicador con luz verde y naranja . Cuando se apaga la luz naranja y se queda la de color verde esta completamente cargada ( puede tardar  más de 5 horas según como venga la bateria de cargada).


Una vez introducida la batería, necesitara descargar la aplicación ring en el teléfono explicando que quiere añadir un dispositivo. En este punto necesitara configurar los credenciales de su red wifi mas cercana y seguir el proceso.
Una vez introducidas dichas credenciales nos pide que digamos que dispositivo o modelo de telefonillo tenemos instalado y con esto, la app nos dirá el mazo de cables que tenemos que elegir  de los tres disponibles.

Procederemos en este punto a desmontar la tapa del porterillo ( según el modelo solo llevara un tornillo ) para conectar un pequeño mazo de cable que incluye que servirá para interconectarlo con el ring . Obviamente destacar que estos nuevos cables del mazo se conectan en paralelo con los antiguos manteniendo por tanto el cableado original .

Como ejemplo veremos el fermax 80447 ( uno de los mas usados ) y que usa el mazo de cables tipo A,que suele ser el mas usado, así que en ese caso los otros dos mas que son el B y el C  ya no los utilizaremos (puede ser que incluso que le sobre algun otro cable ,  pero eso no importa pues se lo dice el guiado de la aplicación).

Una vez conectados los colores del cable de ring suministrado con los números de telefonillo, pasa a un test de funcionamiento y de verificación de que puede llamar al timbre , establecer comunicación verbal y finalmente abrir la puerta.


Tenga en cuenta que NO nos debemos , en ningún caso que guiarnos por unir colores iguales ( los del mazo con los existentes en la instalación) . Solo haga caso a los colores del mazo enviado por ring y los números a los que tiene que conectarse pues no tienen el porque coincidir con los colores que utilizó el instalador del interfono en su dia.
En el caso del modelo fermax solo hay 5 cables importantes que son:

  • 4 llamada
  • 6 altavoz
  • 3 tierra/masa/ground
  • 2 micrófono
  • 1 apertura

Estos hilos como vemos en la imagen ya están numerados como 1,2,3 ,4 y 6 en la placa

Como vemos en la imagen los cablezilllos del mazo se conectan en paralelo observando con mucho cuiado el sentido de cada hilo: altavoz, microfono , llamada y tierrra:

Asi es como queda la instalación , donde podemos apreciar como se superpone los cablecillos del interfono con los cablecillos del mazo ( ojo por cierto con le orden de los hilos del mazo qeu puede variar segun el modelo del porterillo)

En las imágenes podemos ver los colores y a los números que tienen que ir (por supuesto deje puestos los que había originalmente).

Una vez hecho esto , conectaremos el mazo al ring, le añadiremos la bateria y ya podemos fijarlo a la pared

!Terminado!

Hemos visto pues que solo hemos tenido que retirar la cubierta frontal del auricular, introducir la marca y seguir las instrucciones de la app de Ring para conectar su Ring Intercom a nuestro interfono existente, de modo que cuando esté conectado, simplemente fijamos el Ring Intercom a la pared y volvemos a colocar la cubierta frontal del auricular y ya solo seguir las indicaciones de la app de Ring para comprobar que todo funciona correctamente. ¡Y listo! Ya podemos disfrutar de todas las ventajas de Ring partiendo de su viejo interfono.

El resultado final , bajo el punto de vista del que suscribe estas líneas es espectacular pues como comentábamos al principio tiene muchas funcionalidades «extra» como la llamada y apertura remota asi como incluso el poder autorizar a el repartidor de Amazon para que abra automáticamente cuando nos vaya a dejar un paquete

La aplicación en resumen está muy bien diseñada y robusta pues convierte un equipo analógico antiguo en un moderno interfono IP remoto.


Por cierto dado la evidente relación de la marca Ring con Amazon, este nuevo dispositivo se puede comprar desde la web al 50% de su valor inicial desde aqui

Monitor de Co2 con sensor mh z19


¿Alguna vez se ha preguntado por qué a menudo se siente somnoliento o incluso cansado por la mañana después de dormir toda la noche? Hay muchas cosas que pueden provocar un sueño de mala calidad,   pero   dada la grave pandemia  al que nos estamos exponiendo  desgraciadamente, también  hay otra razón  contundente: una mayor  exposición a  agentes virulentos al no  estar suficientemente ventilado la estancia .

En efecto , ambas casuísticas citadas  se deben a una concentración inadecuada de dióxido de carbono (CO2) puesto que las personas emiten dióxido de carbono durante la respiración , lo  que implica que   la concentración de CO2 es uno de los principales factores que afectan la calidad del aire y con ello   la exposición a agentes infecciosos.

Por estas razones según los científicos  apuntan que puede ser interesante contar con  un medidor de CO2 para comprender si la concentración de CO2 en nuestro entorno  como afecta la calidad del aire.

Una concentración menor de 800 ppm se considera adecuada, aunque lo ideal es que ronde las 500 ppm. A partir de 800 ppm salta la alerta ya que la ventilación es deficiente, lo que facilita en gran medida la permanencia del virus en el aire, de tal forma que su capacidad de transmisión puede prolongarse durante varias horas.

Estos medidores se pueden comprar ya montados, pero  no dispondremos ningún nivel de mejora ni personalización ni interacción  y los de bajo coste además ofrecen muy poca precisión ,  por lo que vamos a  ver como construir  un medidor real para que entendamos como funciona y de paso podemos pensar en futuras mejoras .

 

La elección del sensor

En un prototipo puede que se vea tentado en usar  sensores del tipo  MQ135 , un sensor de calidad de aire barato) , que detecta NH3, NOx, alcohol, benceno, humo, CO2  y que hemos visto en numerosos proyectos en este blog.

Este  tipo sensores  son  módulos listo para usar para Arduino y Raspberry Pi  gracias a su doble salida analogica   y digital  (para el uso con laRPi se requiere un convertidor AD adicional a no ser que solo necesite la señal de haber superado el umbral  ajustable de disparo de la señal digital ,pero para Arduino la conexión es directa ). 


Los sensores de la serie MQ utilizan un pequeño elemento calefactor con un sensor electrónico-químico por lo que son sensibles a una amplia gama de gases y son adecuados para su uso en interiores. Es cierto que  tienen una alta sensibilidad y un tiempo de respuesta rápido, pero tardan unos minutos en dar lecturas precisas porque el sensor tiene que calentarse.

Estos sensores son  muy fáciles de de usar para medir la concentración de GLP, i-butano, propano, metano, alcohol, hidrógeno y humo en el aire, midiendo concentraciones de gas de 100 a 10000 ppm   siendo ideal para la detección de fugas de gas, alarmas de gas u otros proyectos de robótica y microcontroladores. 

Según el fabricante  en general este tipo de sensores tienen relativa poca precisión incluso después de aplicar la corrección de temperatura y humedad. Además  suelen  tener  un alto consumo de energía (800 mw) y un tiempo de precalentamiento  excesivo lo cual son bastantes inconvenientes para abandonarlo y probar con otro  tipo de sensor.

Hay bastantes sensores de CO2 en el mercado de precios muy variados: MG811 (~ 40 $), MH-Z14 WINSEN (~ 40 $), MH-Z19 WINSEN (~ 30 $), K-30 (~ 85 $), VERNIER CO2-BTA ( ~ 330 $).

Los  sensores de CO2 NDIR (infrarrojo no dispersivo) son el   tipo de sensor más común utilizado para medir el CO2, pues  tienen buena precisión y bajo consumo de energía aunque los precios son muy variados.

Un ejemplo de sensor NDIR es el sensor MH-Z19 tiene buenas características y muy buen precio, así que puede ser una buena opción.  Aquí algunos parámetros técnicos del sensor MH-Z19 :

Tensión de trabajo   4,5 V ~ 5,5 V CC
Corriente media   <85 mA
Nivel de interfaz   3,3 V
Rango de medición   0 ~ 5% VOL opcional
Señal de salida   PWM, UART
Tiempo de precalentamiento   3min
Tiempo de respuesta   T90 <90 s
Temperatura de trabajo   0-50C
Humedad de trabajo   0 ~ 95% de humedad relativa
Peso   15 g
Esperanza de vida   > 5 años
Dimensión   57,5 × 34,7 × 16 mm (largo × ancho × alto)

Este sensor e pequeña escala de uso general  utiliza el principio infrarrojo no dispersivo (NDIR) para detectar la presencia de CO2 en el aire, con buena selectividad y dependencia anaerobia, larga vida y cuenta con compensación de temperatura incorporada y al mismo tiempo  salida en serie, salida analógica y salida PWM. Además, tiene un precio contenido (en amazon unos 14€)

Hay varias  variantes de este sensor con diferentes rangos de medición:

  • 0 ~ 10000 ppm
  • 0 ~ 2000 ppm
  • 0 ~ 5000 ppm

Una opción interesante es la primera porque el modelo B es el más extendido y fácil de conseguir,  si bien  un nivel de CO2 superior a 2000 ppm no sería apropiado para un ambiente doméstico. 

Puede ser interesante montar un dispositivo móvil para poder medir el nivel de CO2 donde quiera dentro del hogar , puesto que como el voltaje de trabajo del MH-Z19 es de 4.5 ~ 5.5V DC, puede usarse la salida USB standard  o simplemente  3 baterías AA ) como fuente de alimentación.

 

Respecto a la visualización de los datos una pantalla OLED LCD 0.96 «I2C IIC SPI Serial 128X64 (en amazon unos 9€)  es una buena opción pues  es muy fácil usarla con nuestro Arduino  gracias a la conexión I2C , y claro las librerías gratuitas para Arduino

Para  poderla usar en nuestro proyecto , es importante tener en cuenta que necesitaremos  la biblioteca de controladores oled Adafruit SSD1306

Respecto al conexionado , no puede ser más sencillo, pues conectaremos la alimentación   del sensor ,la pantalla  y nuestro  arduino  a través de un interruptor al polo positivo de   un portapilas de 3 pilas de 1.5V. Obviamente  complementaremos las conexiones de VCC  con las  masa (0v) conectando el  polo negativo del portapilas a las conexiones de 0v del sensor ,la pantalla  y nuestro  arduino.  

El montaje se complementará con las conexiones de datos  del  sensor MH-Z19    y de la pantalla , conectando la salida PWM del  sensor digital  al pin 7 (pin digital 7) de Arduino ,  y las conexiones de datos I2C  de la pantalla a los pines  SDA( pin 19)   y   pin SCL(pin 18) de nuestra placa Arduino. 

 

Medidor de CO2 MH-Z19

Este  es el resumen de elementos básicos de  hw para hacer este pequeño proyecto:

  • Sensor de co2 infrarrojo MH-Z19 (en amazon unos 14€)
  • Arduino Pro Micro  ( o cualquier otra placa Arduino que disponga)
  • Pantalla OLED LCD 0.96 «I2C IIC SPI Serial 128X64 (en amazon unos 9€)
  • Soporte de batería 3 AAA 1.5V 
  • Interruptor

Implementación

Necesitaremos lo siguientes elementos software para implementar este proyecto

Respecto al   proyecto, cuyo código Arduino al completo podemos ver más abajo , de forma  simplificada  este es   su funcionamiento: 

Primero importamos las librerías  para el control de la  pantalla I2C

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

A continuación definiremos las variables, empezando definiendo el pin 7 para el pwm para el sensor de Co2,  constantes, etc   destacando el valor del precalentamiento para el sensor de co2  cuyo valor es de 120 segundos

#define pwmPin 7        
int preheatSec = 120;
int prevVal = LOW;
long th, tl, h, l, ppm = 0;

Ahora veremos la  parte esencial , cuya principal ocupación es proporcionar el valor de la medida de C02 en la variable ppm 

void PWM_ISR() {
long tt = millis();
int val = digitalRead(pwmPin);

if (val == HIGH) {
if (val != prevVal) {
h = tt;
tl = h - l;
prevVal = val;
}
} else {
if (val != prevVal) {
l = tt;
th = l - h;
prevVal = val;
ppm = 2000 * (th - 2) / (th + tl - 4);
}
}
}

Otra  función  importante es la inicialización de la pantalla OLED , que  conseguiremos al introducirla en la función setup

void setup() { 
Serial.begin(115200);
pinMode(pwmPin, INPUT);
attachInterrupt(digitalPinToInterrupt(pwmPin), PWM_ISR, CHANGE);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x64)
display.setTextColor(WHITE);
}

Dado el intervalo de precalentamiento , es interesante una función que presente la cuenta atrás para que el usuario sea consciente de que es necesario esperar ese intervalo:

void displayPreheating(int secLeft) {
display.setTextSize(2);
display.println("PREHEATING");
display.setTextSize(1);
display.println();
display.setTextSize(5);
display.print(" ");
display.print(secLeft);
display.display();
}

Obviamente tampoco nos puede faltar la visualización del nivel de ppm , que solo se mostrará si es superior  a 1000 ppm ( obviamente podemos ajustar este umbral al valor que deseemos).

void displayPPM(long ppm) {
display.setTextSize(2);
display.println("CO2 PPM");
display.setTextSize(1);
display.println();
display.setTextSize(5);
if (ppm < 1000) {
display.print(" ");
}
display.print(ppm);
display.display();
Serial.println(ppm);
}

Finalmente en el bucle principal  básicamente  borraremos la pantalla y mostraremos la  cuenta atrás  del precalentamiento para finalmente mostrar el nivel de ppm  cada 1000ms.

void loop() { 
display.clearDisplay();
display.setCursor(0,0);
if (preheatSec > 0) {
displayPreheating(preheatSec);
preheatSec--;
}
else {
displayPPM(ppm);
}
delay(1000);
}

 

Para terminar, IhorMelynk nos ofrece el código fuente para Arduino que el mismo cargó en su Arduino:

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

#define pwmPin 7

int preheatSec = 120;
int prevVal = LOW;
long th, tl, h, l, ppm = 0;

void PWM_ISR() {
long tt = millis();
int val = digitalRead(pwmPin);

if (val == HIGH) {
if (val != prevVal) {
h = tt;
tl = h - l;
prevVal = val;
}
} else {
if (val != prevVal) {
l = tt;
th = l - h;
prevVal = val;
ppm = 2000 * (th - 2) / (th + tl - 4);
}
}
}

void setup() {
Serial.begin(115200);
pinMode(pwmPin, INPUT);
attachInterrupt(digitalPinToInterrupt(pwmPin), PWM_ISR, CHANGE);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x64)
display.setTextColor(WHITE);
}

void displayPreheating(int secLeft) {
display.setTextSize(2);
display.println("PREHEATING");
display.setTextSize(1);
display.println();
display.setTextSize(5);
display.print(" ");
display.print(secLeft);
display.display();
}

void displayPPM(long ppm) {
display.setTextSize(2);
display.println("CO2 PPM");
display.setTextSize(1);
display.println();
display.setTextSize(5);
if (ppm < 1000) {
display.print(" ");
}
display.print(ppm);
display.display();
Serial.println(ppm);
}

void loop() {
display.clearDisplay();
display.setCursor(0,0);
if (preheatSec > 0) {
displayPreheating(preheatSec);
preheatSec--;
}
else {
displayPPM(ppm);
}
delay(1000);
}

 

Teniendo esto en cuenta, a la hora de mantener el contacto social los espacios al aire libre se presentan como la mejor alternativa. En espacios cerrados la ventilación es fundamental. No es suficiente con abrir las ventanas 10 minutos cada hora. La ventilación debe ser constante. Por supuesto, en ambos casos la mascarilla sigue siendo un elemento de protección esencial.