Como crear una red wifi sin congestiones gracias a dispositivos Alexa


Eero es una marca de dispositivos de red y enrutadores Wi-Fi adquirida por Amazon en 2019 que destaca por su enfoque en la creación de sistemas de Wi-Fi domésticos simples y efectivos para mejorar la conectividad en el hogar.

El sistema Eero generalmente consta de varios puntos de acceso (llamados Eero Beacons o Eero Pro) que se distribuyen en toda la casa para crear una red Wi-Fi de malla. Estos puntos de acceso trabajan juntos para proporcionar una cobertura Wi-Fi más uniforme y fuerte en comparación con un solo router, siendo el objetivo final pues eliminar las zonas muertas y proporcionar una experiencia de red más estable en toda la casa, todo ello sin eliminar ni reemplazar el router de casa básicamente por el soporte de tecnologia WI-FI6 y WI-FI-7.

Wi-Fi 6, también conocido como 802.11ax, es la última generación de estándares de Wi-Fi que fue introducida para mejorar la eficiencia y el rendimiento de las redes inalámbricas. Fue lanzado oficialmente en 2019 y trae consigo varias mejoras con respecto a las generaciones anteriores, como Wi-Fi 5 (802.11ac).

Aquí hay algunas características clave de Wi-Fi 6:

  • Mayor Velocidad: Wi-Fi 6 ofrece velocidades de transferencia de datos más rápidas en comparación con Wi-Fi 5. Esto es beneficioso especialmente en entornos con múltiples dispositivos conectados simultáneamente.
  • Mayor Capacidad: Mejora la capacidad para manejar un mayor número de dispositivos conectados al mismo tiempo, lo que es útil en hogares u oficinas con una gran cantidad de dispositivos Wi-Fi.
  • Mejora de Rendimiento en Entornos Congestionados: Introduce tecnologías que mejoran el rendimiento en entornos con muchos dispositivos inalámbricos, como la tecnología OFDMA (Acceso Múltiple por División de Frecuencia Ortogonal).
  • Mayor Eficiencia Energética: Wi-Fi 6 incorpora tecnologías que reducen el consumo de energía de los dispositivos conectados, lo que puede ser beneficioso para la duración de la batería en dispositivos móviles.
  • Mejora en la Cobertura: Ofrece una mejor cobertura, lo que significa que la señal puede llegar más lejos y penetrar mejor a través de paredes y obstáculos.
  • Seguridad Mejorada: Wi-Fi 6 incluye mejoras en la seguridad, como el protocolo WPA3, que proporciona un mayor nivel de protección para las conexiones inalámbricas.

En caunto al estándar Wi-Fi 7 aún no había sido oficialmente lanzado o ratificado por la Wi-Fi Alliance, la organización que supervisa los estándares Wi-Fi. Por lo tanto, no se pueden proporcionar detalles específicos sobre Wi-Fi 7 en términos de características y especificaciones exactas. Dicho esto, la evolución de los estándares de Wi-Fi es continua, y es probable que Wi-Fi 7 sea la próxima generación después de Wi-Fi 6 (802.11ax). Se espera que Wi-Fi 7 ofrezca mejoras adicionales en velocidad, capacidad, eficiencia energética y rendimiento en entornos densos con múltiples dispositivos conectados. Según el fabricante en cuanto a la tecnología Wi-Fi 7 hace el simil de que es como pasar de una autopista de red de tres carriles (Wi-Fi 6) a una autopista de seis carriles, duplicando la cantidad de tráfico que puede soportar su red proporcionando menor latencia, mayor capacidad y más eficiencia para todos sus dispositivos.

La tecnología de malla permite que los dispositivos se conecten al punto de acceso más cercano, optimizando la señal y mejorando la velocidad y la cobertura en comparación con un solo enrutador central. Además, el sistema Eero incluye una aplicación móvil que permite a los usuarios gestionar y controlar su red de manera más fácil..

Esta solución para mejorar nuestra cobertura wifi en casa sin prescindir de nuestro router domestico de nuestro proveedor parece muy interesante ¿verdad? El problema de instalar un sistema basado en EEro , como siempre, es el económico o de infraestructura, porque para crear una red en malla necesitamos múltiples dispositivos compatibles con esta tecnología, lo cual supone desplegar, configurar, etc. lo cual lógicamente encarece la adopción de esta solución tecnológica pero ¿Y si existiera algun modo de reducir el numero de dispositivos necesarios? . Pues si cuenta con algun dispositivo de la familia Amazon Echo, ya es posible como vamos a ver a continuación. Además aprovechando el black friday , ciertamente es mucho mas asequible ( de unos 80€ que cuesta habitualmente un solo dispositivo solo, ahroa en Black Friday el precio ronda los 49,99€)


El Echo Dot, con la asistente virtual Alexa, ha facilitado la gestión de dispositivos inteligentes en el hogar mediante una conexión Wi-Fi compartida. Ahora, se presenta un dispositivo igualmente funcional llamado Eero, un repetidor de Wi-Fi que posibilita la conexión entre varios dispositivos, permitiendo una cobertura completa en todos los rincones de la casa. Estos dispositivos trabajan en conjunto para hacer que su hogar inteligente sea más accesible y conveniente. La tecnología de Wi-Fi en malla se extiende por toda la casa para optimizar la conectividad.Eero pues se presenta como un router compacto con una amplia cobertura inalámbrica, ofreciendo conectividad de primera categoría para todo el hogar.

Con la promesa de cubrir hasta 140 metros cuadrados por dispositivo en su versión mínima , brinda la opción de integrarse en sistemas Wi-Fi eero para extender la cobertura. Puede conectar varios dispositivos para eliminar puntos muertos y disfrutar de una experiencia de conexión sin interrupciones, minimizando el buffering. Además, Eero se integra con Apple HomeKit, proporcionando una capa adicional de seguridad para los accesorios de tu HomeKit y facilitando la gestión de dispositivos tanto en casa como en Internet. La tecnología TrueMesh dirige de manera inteligente el tráfico para evitar congestiones y garantizar una conexión confiable.

Pasos a seguir

Bien , si estamos interesados en esta solución, al menos deberemos adquirir un dispositivo ( unos 50€ en Black Friday) , lo cual reducirá sustancialmente el precio de la instalación total gracias al uso combinado de la familia Amazon Echo como extensores, lo cual no hace necesario invertir en múltiples Eeero usando la infraestructura ya existentes de Amazon Echo Dot, Echo Pop, Echo Show, Echo Studio ,etc.

Además, la seguridad de su red será más confiable, y experimentará menos errores, todo a un precio notablemente conveniente. Con una inversión inicial ( que por cierto en Amazon Black Friday suele ser muy ventajoso al ser un producto propio de Amazon ) , y cuidando adecuadamente estos dispositivos, no será necesario reemplazarlos durante muchos años.

Configuración Inicial

Configurar un dispositivo Eero para extender su red Wi-Fi es un proceso sencillo y aquí una guía paso a paso para aprovechar al máximo esta tecnología:

  • Desempaquete su dispositivo Eero y asegúrese de tener todos los componentes necesarios.
  • Conecte uno de los Eero a su router del hogar de su proveedor utilizando un cable Ethernet.
  • No necesariamente tiene que conectarse al router directamente pues si tiene un cableado ethernet por su localización puede usarlo para conectar este ya que estos dispositivos tienen dos conexiones ethernet (uno para el router del hogar y otro para una conexión adicional por cable) .
  • Conecte el Eero a una fuente de alimentación y enciéndalo.
  • Descargue la aplicación Eero desde la tienda de aplicaciones de su dispositivo móvil.
  • Abra la aplicación y regístrese para obtener una cuenta Eero si aún no la tiene.
  • Siga las instrucciones en la aplicación para agregar un nuevo dispositivo Eero a su red.
  • La aplicación le guiará para configurar la red Wi-Fi, asignarle un nombre y una contraseña.
  • Coloque sus otros dispositivos Eero (si los tiene) en ubicaciones estratégicas para mejorar la cobertura.
  • Verifique si hay actualizaciones de firmware y aplíquelas para garantizar un rendimiento óptimo.

Una vez completada la configuración, podrá disfrutar de una red Wi-Fi mejorada en todo su hogar.

Añadir Amazon Echo como extensores de eero

Si desea agregar dispositivos Amazon Echo como extensores de su sistema Eero (recuerde que debe contar con al menos uno que redirija) , siga estos pasos:

  • Abra nuevamente la aplicación Eero en su dispositivo móvil.
  • Acceda a la herramienta «Discover» dentro de la aplicación Eero.
  • Seleccione la opción «Amazon Connected Home».
  • Habilite la función «Eero Built-in» para establecer la conectividad entre los dispositivos Eero y los Echo.
  • Después de activar esta función, aparecerá en pantalla una lista de los dispositivos Echo compatibles que posea. Desde aquí, seleccione los Echo que desea convertir en extensores de Wi-Fi.

Siguiendo estos pasos, podrá integrar sus dispositivos Amazon Echo como extensores en tu red Eero, ampliando así la cobertura de tu conexión Wi-Fi de manera conveniente y eficaz.

Timbre a distancia por wifi


Hoy en dia es relativamente asequible poder abordar proyectos con un nivel de acabado excepcional usando tecnologia de impresión 3d por ejemplo , y al mismo tiempo emplear componentes muy compactos, económicos y muy sencillos de programar además sin necesidad de soldar nada.

En este post vamos a ver un interesante proyecto de Giovanni Aggiustatutto en su proyecto de timbre a distancia por Wifi , que básicamente se compone de un módulo de micrófono de detección compatible con Arduino y dos módulos compatibles con ESP8266 : uno para la parte de transmisión y otro para la parte de recepción. Además el circuito se completa con dos cajas impresas en 3D , aunque por su tamaño se puede usar cualquier otro soporte.

El resultado desde luego queda totalmente sorprendente como podemos ver en la imagen.

Obviamente este proyecto puede servir para reenviar el timbre a otro lugar gracias a la cobertura wifi, lo cual lo hace muy versatil por ejemplo para extender la llamada del clasico interfono, la llamada de un intercomunicador, la llamada normal de un telefono fijo/inalambrico y como no como sencilla alarma por sonido.

La electrónica de este proyecto, aunque nos pueda asustar, en realidad es bastante sencilla porque todo pasa por el módulo detector que viene ya ensamblado pero que debemos ajustar al nivel de ruido en que sea detectado la señal de timbre que generara un pulso de disparo que será recogido por un ESP8266 y enviado hacia el otro ESP8266 que presentara una alerta.

El AZDelivery KY038 es un módulo de detección de sonido de alta sensibilidad ideal para muchos proyectos y aplicaciones, por ejemplo para sistemas de alarma sonora (como el de este proyecto).

El Modulo de micrófono cuenta con un micrófono de condensador eléctrico y una salida de señal de un solo canal. La señal de salida de bajo nivel se utiliza para la luz de control de sonido. Este módulo utiliza un micrófono en miniatura para detectar los niveles de sonido. Es crucial que dispone de un comparador basado en un CI LM393 con un potenciómetro para ajustar el nivel disparo para producir una salida digital de nivel alto, que es el que utilizaremos para transmitir la señal de alarma.

Componentes

Estos son los componentes del proyecto:

2 mini placas ESP8266 Wemos D1 (en realidad puede usarse también un ESP32 adaptando el código y las librerías correspondientes)
5 LEDs rojos
1 LED verde
6 resistencias de 330 ohmios para los LEDs
1 zumbador fuerte
1 interruptor
1 módulo sensor de sonido Arduino
Conector JST de 3 pines
Cable de JST a puente
Conectores Jumper
Perfboard
Cable
8 insertos roscados M3
8 tornillos M3x12 mm

El circuito

El receptor no puede ser mas sencillo pues básicamente se compone de un pequeño display de 5 leds conectados directamente a los 5 puertos (configurados como salidas digitales del ESP8266) mediante sendas resistencias de 680 ohmios . Además también para que sea perceptible realmente la llamada, usaremos un pequeño zumbador piezoeléctrico de alta potencia conectado también a un puerto del microcontrolador con un interruptor en serie para poder cortar el sonido y no moleste si es persistente porque si lo veremos con una indicación luminosa.

La parte del transmisor es si cabe mas simple pues únicamente se compone del detector de sonido cuya salida se conecta a un pin de entrada digital del ESp8266.

En este punto es importante estudiar la parte que detecta cuando suena algun sonido fuerte como el timbre del teléfono o del interfono, pues para detectar cuando suena el teléfono, se utiliza un módulo sensor de sonido hecho para Arduino, que lleva un pequeño micrófono.

Estos módulos son muy sencillos de usar porque en los pines hay conexiones para la alimentación y una salida digital, que se activa cuando el ruido que escucha el micrófono es superior a un cierto umbral, que fijamos con el potenciómetro. Este micrófono se colocará cerca de la base del teléfono o interfono lo mas cerca del timbre o altavoz interno (en el caso de un telefono convencional) o en caso de un interfono cerca del altavoz del micro teléfono o del zumbador, por lo que activará el timbre adicional cuando haya una llamada.

Montaje

La caja exterior que contendrá la placa transmisora ESP8266 conectada al micrófono será igual que la caja del timbre, pero en la parte trasera tendrá un conector para conectar el micrófono y en la parte delantera sólo tendrá un LED, para indicar cuando se detecta un sonido y es transmitido al otro modulo receptor.

De forma practica soldamos un conector JST de 3 pines en un pequeño trozo de placa perforada , al que conectamos tres cables para 3,3v, GND y la señal digital del módulo del micrófono. Estos tres cables van a los pines correspondientes de la placa.Para conectarle el módulo de micrófono utilizamos un cable JST a jumper, con el conector JST enchufado a la caja que acabamos de hacer y el conector jumper enchufado a GND, positivo y salida digital del módulo de micrófono.

La caja para la placa conectada al receptor es exactamente igual a la del transmisor, para dar continuidad al diseño. El otro ESP8266 configurado como receptor puede ir en una placa de prototipos y encaminar los pines del ESP8266 necesarios para el módulo del micrófono y los LEDs de estado que conectaremos a la placa mediante conectores jumper. Esta vez la resistencia para el LED en la placa, y dos cables directamente entre los dos pines de un LED rojo y los dos puentes correspondientes de la placa. También esta vez pegamos el LED en el soporte del LED, y pegamos también el soporte a la caja. Luego pegamos el conector JST en el agujero del panel trasero de la caja. Al igual que con el timbre, pegamos la placa dentro de la caja con un trozo de plástico debajo, para que el puerto USB quede alineado con el agujero del panel. Como última cosa cerramos la tapa con tornillos M3 atornillados en los agujeros roscados, y podemos decir que también el sensor de sonido está terminado.

ESP-Now

Antes de realizar cualquier conexión eléctrica, primero tenemos que subir el código a las dos placas ESP8266. Para conectar el ESP8266 que estará cerca del teléfono al que está conectado al zumbador y a los LEDs, utilizamos el protocolo de comunicación WiFi ESP-NOW, que es una librería proporcionada por Espressif, el fabricante del chip ESP.

ESP-Now es otro protocolo de comunicación inalámbrica desarrollado por Lexin, que puede permitir que múltiples dispositivos se comuniquen sin Wi-Fi sin usar Wi-Fi. Este protocolo es similar a un bajo consumo de energía de una conexión inalámbrica de 2.4GHz comúnmente común en el dispositivo de ratón inalámbrico debe emparejarse antes de comunicarse. Después del emparejamiento, la conexión entre los dispositivos es continua, punto a punto, y no se requiere un protocolo de apretón de manos. Es una breve transmisión de datos y una tecnología de comunicación rápida no conectada que permite que los controladores de baja potencia controlen directamente todos los dispositivos inteligentes sin conectar enrutadores. Es adecuado para luces inteligentes, control remoto y retorno de datos del sensor.

Después de usar la comunicación ESP-Now, si un determinado dispositivo se apaga repentinamente, siempre que se reinicie, se conecta automáticamente al nodo correspondiente para volver a comunicarse.

ESP-Now admite las siguientes características:

  • Paquete de paquete de transmisión única o paquete de transmisión única sin comunicación cifrada;
  • Uso mixto de equipos de emparejamiento de cifrado y equipos no cifrados;
  • Se pueden transportar datos de carga útil que pueden transportar hasta 250 bytes;
  • Configuración de soporte para enviar una función de devolución de llamada para notificar a la fallas o éxito de envío de envío o éxito de envío de la capa de aplicación.

Del mismo modo, hay algunas restricciones en ESP-Now:

  • Los paquetes de transmisión no son compatibles temporalmente;
  • Hay restricciones en el dispositivo de emparejamiento cifrado, y el modo de estación admite hasta 10 dispositivos de emparejamiento encriptados; el modo híbrido SoftAP o SoftAP + Station admite hasta 6 dispositivos de emparejamiento cifrados en el modo mixto. Los dispositivos de emparejamiento no cifrados admiten varios, y el número total de dispositivos de cifrado no es más de 20;
  • La carga útil efectiva se limita a 250 bytes.

Elegimos esta biblioteca porque es muy fácil de usar configurando ambos ESP como una comunicación unidireccional.

FIRMWARE

En la parte transmisora usaremos los pines 12 (ledPin) y el pin 14 ( pic Pin), respectivamente el pin 12 al que conectaremos el led indicador de detección de sonido y el pin 14 al que conectaremos la salida digital del modulo detector de sonido.

Antes de subir el código a las dos placas, necesitamos saber la dirección MAC de la placa que usaremos como receptor. Para ello, podemos subir el siguiente boceto a través del IDE de Arduino.

#include "WiFi.h"

//#include <ESP8266WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_MODE_STA);
  //WiFi.mode(WIFI_AP_STA);
  Serial.println(WiFi.macAddress());
}

void loop() {
}

Una vez subido el sketch, abrimos el monitor serie y esperamos a que aparezca la dirección MAC de la placa. Esta dirección hay que copiarla de ahí y pegarla en el código de la placa transmisora, antes de subirla.

#include <ESP8266WiFi.h>
#include <espnow.h>

//Aquí es donde se inserta la dirección MAC en el código.
// REPLACE WITH RECEIVER MAC Address (example 34:94:54:8E:13:20)
uint8_t broadcastAddress[] = {0x34, 0x94, 0x54, 0x8E, 0x13, 0x20};


// Structure example to send data
// Must match the receiver structure
typedef struct struct_message {
  bool isRinging;
} struct_message;


// Create a struct_message called myData
struct_message myData;


unsigned long lastTime = 0;  
unsigned long timerDelay = 800;  // send readings timer


int micStatus = 0;


const int micPin = 14;  // D5
const int ledPin = 12;  // D6


// Callback when data is sent
void OnDataSent(uint8_t *mac_addr, uint8_t sendStatus) {
  Serial.print("Last Packet Send Status: ");
  if (sendStatus == 0){
    Serial.println("Delivery success");
  }
  else{
    Serial.println("Delivery fail");
  }
}

void setup() {
  // Set microphone pin as input
  pinMode(micPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);

  // Init Serial Monitor
  Serial.begin(74880);

  // Set device as a Wi-Fi Station
  WiFi.mode(WIFI_STA);


  // Init ESP-NOW
  if (esp_now_init() != 0) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }


  // Once ESPNow is successfully Init, we will register for Send CB to
  // get the status of Trasnmitted packet
  esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
  esp_now_register_send_cb(OnDataSent);

  // Register peer
  esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
}

void loop() {
  if (digitalRead(micPin) == HIGH) {
    micStatus = 1;
    digitalWrite(ledPin, HIGH);
  }

  if ((millis() - lastTime) > timerDelay) {
    if (micStatus == 0) {
      myData.isRinging = false;
      digitalWrite(ledPin, LOW);
    }


    if (micStatus == 1) {
      myData.isRinging = true;
      micStatus = 0;
    }


    // Send message via ESP-NOW
    esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));

Respecto al receptor conectaremos cuatro leds indicadores de presencia de sonido en los pines 12,14,0 y 4 conformando así una especie de vu-meter . Además en el pin 13 conectaremos un led de estado , y para terminar , para que sea de verdad perceptible, en el pin 5 conectaremos un zumbador de alta potencia.

El código de la placa receptora es el siguiente, y puede cargarse sin modificaciones.

#include <ESP8266WiFi.h> 
#include <espnow.h>


// Structure example to receive data
// Must match the sender structure
typedef struct struct_message {
  bool isRinging; 
} struct_message;


// Create a struct_message called myData
struct_message myData;


const int led1 = 12;  // LEDs from the top to the bottom of the device
const int led2 = 14;
const int led3 = 0;
const int led4 = 4;
const int statusLed = 13;
const int buzzer =  5;
const long buzzerTime = 200 ;
long timeFromLastUpdate = 0;
unsigned long previousMillis = 0;
const long interval = 500;


bool produceSound = false;
bool produceLight = false;
bool flag = false;
bool previousFlag = false;
bool hasIncremented = false;
int numberOfBlinks = 10;


// Callback function that will be executed when data is received
void OnDataRecv(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
  memcpy(&myData, incomingData, sizeof(myData));
  Serial.println("Data received!");


  if (myData.isRinging == false) {
    produceSound = false;

    digitalWrite(statusLed, LOW);
    timeFromLastUpdate = millis();
  }


  if (myData.isRinging == true) {
    digitalWrite(statusLed, LOW);
    timeFromLastUpdate = millis();
    //produceSound = true;
    //produceLight = true;


    //numberOfBlinks = 0;
  }
}

void setup() {
  // Set LED and ring pin as output
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(statusLed, OUTPUT);
  pinMode(buzzer, OUTPUT);

  // Initialize Serial Monitor
  Serial.begin(74880);

  // Set device as a Wi-Fi Station
  WiFi.mode(WIFI_STA);


  // Init ESP-NOW
  if (esp_now_init() != 0) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }

  // Once ESPNow is successfully Init, we will register for recv CB to
  // get recv packer info
  esp_now_set_self_role(ESP_NOW_ROLE_SLAVE);
  esp_now_register_recv_cb(OnDataRecv);
}


void loop() {
  unsigned long currentMillis = millis();

  if ((timeFromLastUpdate + 10000) < millis()) {
    digitalWrite(statusLed, HIGH);
  } 


  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;

    flag = !flag;
  }

  callRoutine();
  blinkLeds();
  soundBuzzer();
}


void blinkLeds() {
  if (flag == true && (produceLight == true || numberOfBlinks <= 5) && hasIncremented == false) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    numberOfBlinks++;
    hasIncremented = true;

    produceLight = false;

    Serial.print("on ");
    Serial.println(numberOfBlinks);
  }


  if (flag == false) {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    Serial.println("off");


    hasIncremented = false;
  }
}


void soundBuzzer() {
  if (flag == true && produceSound == true) {
    digitalWrite(buzzer, HIGH);
    produceSound = false;
  }


  if (flag == false) {
    digitalWrite(buzzer, LOW);
  }
}


void callRoutine() {
  if (myData.isRinging == true && previousFlag != flag) {
    produceSound = true;
    produceLight = true;
    numberOfBlinks = 0;
  }


  else {
    previousFlag = flag;
  }
}

Mas información en https://www.instructables.com/Wireless-Loud-Phone-Ringer-Help-Elderly-With-Elect/