10-04-2018, 10:43 AM
Buenos días a todos, desde un nuevo forero y proyectista con micros. Senior en Arduino y junior en esp8266/32
Tras el nacimiento del esp8266 abandoné los "hilos" (arduino) en pos de la comunicación wifi.
Tengo ahora un proyecto entre manos: "Domotizar" totalmente la casa. Con el coste del esp8266, pretendo hacer un proyecto 0-hilos. Totalmente sin cables. Allá donde tenga corriente poner un esp8266 (con una minifuente 220Vac-3.3Vdc tipo HLK-PM03), aprovechando el cableado ya instalado (220V) (cada enchufe, cada bombilla, cada interruptor, cada caja de conexiones, en termostatos, en la caldera, en el aire acondicionado, etc..). -En su día hice una red con arduinos conectados por i2c (con un extensor de i2c) a una raspberry-.
Esto implica crear una red de unos 50 esp8266/esp32.
Ahora tengo la disyuntiva de qué protocolo de comunicación usar.
Cuento con un server online (dispongo de un servidor dedicado que trasteo continuamente con él: linus, php, mysql, html5, python, etc).
El propósito es poder tener el control tanto en red local como desde el exterior.
¿Cuál es la jerarquía/topología/estructura que me recomendáis y qué protocolo para tantos dispositivos?
Los dispositivos los hay que pueden ser solo pasivos (sensores) que pueden mandar datos de manera programada cada X tiempo, o consultarles cada X tiempo o bajo demanda y que respondan. Otros son "activos" como interruptores, por lo que al actuar, inmediatamente tienen que comandar alguna acción en otro dispositivo (con la menor latencia posible, como pudiera ser pulsar un interruptor y que se encienda una bombilla. Ej: el pin de un esp se pone a 1, y el pin de otro esp se pone a 1 para comandar un relé que enciende una bombilla, o un pin ADC se pone al 30% y el pin PWM de otro esp se pone al 30%). Otros son los actuadores, que están siempre en "escucha" y cuando les llega una orden actúan. Y otros son combinaciones de estos 3 tipos.
En definitiva todos deberían ser "esclavos/maestros" ¿?.
Estoy barajando varias ideas, pero no se cual es la mejor tanto por límite de conexiones, como por velocidad de comunicación y respuesta:
Topología:
a) Servidor dedicado en Internet, en casa un equipo (esp32/raspberry pi) conectado a mi router de Internet como cliente del dedicado y server de todos los demás repartidos por toda la casa.
Cuando estoy en casa me conecto en local a la ip del esp32 y fuera de casa al dominio del dedicado y que sea totalmente transparente para mí si estoy en casa o fuera.
b) Servidor dedicado en Internet y todos los dispositivos individualmente conectados al router y como clientes del servidor. Cada uno con su conexión individual al dominio del servidor dedicado.
c) Crear más ramificaciones.
c1) Servidor dedicado en Internet, equipo central en casa (esp32/raspberry pi) conectado a mi router de Internet y luego, por ejemplo, un dispositivo por estancia y de ese cuelgan los demás dispositivos (uno en cada enchufe, en cada bombilla, en cada caja de conexiones, en cada ventana)
c2) Servidor dedicado en Internet, y luego, un dispositivo por estancia cada uno de ellos conectado directamente al servidor pasando por el router y de ese cuelgan los demás dispositivos
¿Con la opción b) no "petaré" mi router? ¿con la c2? ¿qué opción pensáis que será la más óptima?
Protocolo:
Tengo en la cabeza varias opciones que conozco:
MQTT, esp-now, websocket.
¿Cual sería la mejor opción? ¿quizás una combinación entre ellas según el nivel de la estructura? ¿se os ocurre otra manera?
Muchas gracias por leerme la parrafada y aportar vuestras ideas.
PD.: Perdón también de antemano si he incumplido alguna norma del foro (tipo o lugar de publicación, etc)
Tras el nacimiento del esp8266 abandoné los "hilos" (arduino) en pos de la comunicación wifi.
Tengo ahora un proyecto entre manos: "Domotizar" totalmente la casa. Con el coste del esp8266, pretendo hacer un proyecto 0-hilos. Totalmente sin cables. Allá donde tenga corriente poner un esp8266 (con una minifuente 220Vac-3.3Vdc tipo HLK-PM03), aprovechando el cableado ya instalado (220V) (cada enchufe, cada bombilla, cada interruptor, cada caja de conexiones, en termostatos, en la caldera, en el aire acondicionado, etc..). -En su día hice una red con arduinos conectados por i2c (con un extensor de i2c) a una raspberry-.
Esto implica crear una red de unos 50 esp8266/esp32.
Ahora tengo la disyuntiva de qué protocolo de comunicación usar.
Cuento con un server online (dispongo de un servidor dedicado que trasteo continuamente con él: linus, php, mysql, html5, python, etc).
El propósito es poder tener el control tanto en red local como desde el exterior.
¿Cuál es la jerarquía/topología/estructura que me recomendáis y qué protocolo para tantos dispositivos?
Los dispositivos los hay que pueden ser solo pasivos (sensores) que pueden mandar datos de manera programada cada X tiempo, o consultarles cada X tiempo o bajo demanda y que respondan. Otros son "activos" como interruptores, por lo que al actuar, inmediatamente tienen que comandar alguna acción en otro dispositivo (con la menor latencia posible, como pudiera ser pulsar un interruptor y que se encienda una bombilla. Ej: el pin de un esp se pone a 1, y el pin de otro esp se pone a 1 para comandar un relé que enciende una bombilla, o un pin ADC se pone al 30% y el pin PWM de otro esp se pone al 30%). Otros son los actuadores, que están siempre en "escucha" y cuando les llega una orden actúan. Y otros son combinaciones de estos 3 tipos.
En definitiva todos deberían ser "esclavos/maestros" ¿?.
Estoy barajando varias ideas, pero no se cual es la mejor tanto por límite de conexiones, como por velocidad de comunicación y respuesta:
Topología:
a) Servidor dedicado en Internet, en casa un equipo (esp32/raspberry pi) conectado a mi router de Internet como cliente del dedicado y server de todos los demás repartidos por toda la casa.
Cuando estoy en casa me conecto en local a la ip del esp32 y fuera de casa al dominio del dedicado y que sea totalmente transparente para mí si estoy en casa o fuera.
b) Servidor dedicado en Internet y todos los dispositivos individualmente conectados al router y como clientes del servidor. Cada uno con su conexión individual al dominio del servidor dedicado.
c) Crear más ramificaciones.
c1) Servidor dedicado en Internet, equipo central en casa (esp32/raspberry pi) conectado a mi router de Internet y luego, por ejemplo, un dispositivo por estancia y de ese cuelgan los demás dispositivos (uno en cada enchufe, en cada bombilla, en cada caja de conexiones, en cada ventana)
c2) Servidor dedicado en Internet, y luego, un dispositivo por estancia cada uno de ellos conectado directamente al servidor pasando por el router y de ese cuelgan los demás dispositivos
¿Con la opción b) no "petaré" mi router? ¿con la c2? ¿qué opción pensáis que será la más óptima?
Protocolo:
Tengo en la cabeza varias opciones que conozco:
MQTT, esp-now, websocket.
¿Cual sería la mejor opción? ¿quizás una combinación entre ellas según el nivel de la estructura? ¿se os ocurre otra manera?
Muchas gracias por leerme la parrafada y aportar vuestras ideas.
PD.: Perdón también de antemano si he incumplido alguna norma del foro (tipo o lugar de publicación, etc)