Noolite router bypass a través de la aplicación de Android mtrf64 + esp8266 + MQTT Buddy

Desafío


Omita el enrutador noolite y controle la iluminación noolite de forma rápida, eficiente y sin usar un servidor doméstico. Descentralización global y uso total de soluciones en la nube en dispositivos domésticos y cosas de Internet. Que? ....

Hola a todos!

Una vez más, con mis zapatos de bast y la historia de cómo superar el costoso enrutador de noolita, comenzar a controlar la iluminación y no molestar a los tableros de soldadura, los controladores y, en general, quiero encender / instalar la aplicación y funciona sin baile adicional. Sí ... todos escriben sobre eso, pero pocas personas lo hacen, porque a menudo todas las decisiones se basan en instrucciones complejas. Y te mostraré, ahora :) - ¡Muy por delante amigos!

Todos los que compraron unidades de iluminación de noolita se encontraron con los siguientes problemas. Seamos claros:

1. Me quedé, ok! y luego que cómo administrar bloques de moda, y también aparecieron con cifrado y comentarios ( artículo )
2. sí ... quieren una puerta de enlace Ethernet ... para xxx verde ... para administrar - ¡OK! ¿Qué hay de la aplicación? si ...?! buen delantero
3. Empecé a administrar, pero es un poco caro ... es iluminación, quiero algo genial y también quiero guiones, pero ¿dónde puedo conseguirlos? (¡al final, el artículo es una gran bonificación en los escenarios!) también necesita un servidor doméstico :( - todo esto al final conduce a costos y ya ... no es muy económico.

Estos elementos (o similares) también inhiben a los usuarios en la expansión de la automatización del hogar.

La tarea es clara: necesitamos simplificar la vida y hacerla más conveniente; ahora intentemos resolverla recurriendo a métodos radicales. Eliminamos el servidor doméstico, eliminamos la puerta de enlace Ethernet noolite.

(risas del equipo noolite)
Hay unidades de control de iluminación y ... el usuario.
(debe haber una imagen de un usuario en el campo :) con un bloque de noolita)

Para comenzar a administrar estos bloques, primero debemos pensar en las tecnologías utilizadas y luego comprender qué tipo de hardware nos ayudará a hacer esto.

Recientemente, un protocolo de transferencia de datos ha sido muy popular: MQTT: sí, es un protocolo de transferencia de datos genial y muy conveniente. Con un equipo de entusiastas pervertidos, desarrollamos una aplicación para este protocolo que ayuda a los usuarios de Android (compilación de iOS y Windows Phone en el proceso de entrega a los mercados). El enlace a la aplicación al final del artículo, no lo consideres un PR;) - bueno, esto es PR: D - pero necesitamos una buena aplicación que nos ayude a hacer del mundo un lugar más fresco. MQTT es genial, ¡SÍ!

Tomamos el protocolo MQTT - genial. Hay una aplicación para ello, excelente. Ahora atención: la cuestión del relleno :): ¿qué hardware admite MQTT? - SÍ, todos dijeron con una sola voz: por supuesto, ESP 8266.

Cocine aún más el borscht y revuelva los ingredientes agregados, visite el sitio web de noolite y vea lo que tienen en general con los módulos de comunicación ... ¡oh!

Entonces tienen módulos para la comunicación con estos bloques. Solo necesitamos exóticos. Por qué Sí, porque no tenemos un servidor doméstico, nada más que bloques y el concepto de "descentralización". Oh ... tengo ganas de discutir y gritar - oh bueno, karma en mi cabeza - ¡sigamos adelante!

Buscamos, en el sitio, y vemos, 2 módulos: MTRF64 USB y MTRF64, entonces, un USB, el segundo solo UART. Bueno, encontraron una solución :), ya que el USB para computadoras y la fuente de alimentación tiene menos de 5V, y aquí el propio Sr. Uart e incluso 3,3V se adaptaron, hermoso.

Que tenemos
1. bloque noolite SLF-1-300 (bloque con retroalimentación y cifrado)
imagen
(imagen noolite SLF-1-300)

2. Módulo UART MTRF64 (que cuesta menos que USB, ¡debido a la falta de un chip para trabajar con USB! Simplificado al estado "base"))
imagen
(imagen MTRF64 UART)

3. módulo ESP8266
imagen
(imagen ESP8266)

3. solicitud para trabajar con MQTT (MQTT Buddy)
imagen
(foto)

Video


Ahora necesitas simplificar tu vida y darte un código para el alma, exactamente. Quien quiera sentarse y escribir mucho código, especialmente con MTRF64, tiene que subir a los muelles, y allí ... hay muchas cosas útiles ( enlace ), pero necesitamos hacerlo de manera rápida y eficiente. Código abierto de nuestro equipo - bienvenido: D> GitHub

También tenemos que preparar ESP8266, que "lo quemó", sabe, no es difícil: 2 minutos y todo funcionará para usted.

¡Prepárate y despega!


- Puede descargar el firmware del sitio ( https://nodemcu-build.com ), puede tomarlo directamente desde el repositorio de github , que se proporciona con todo el código

- Grabar el comando ESP8266:

sudo python esptool.py --port /dev/ttyUSB0 write_flash -fm dio -fs 32m 0x00000 {your_nodemcu_firmware.bin} 

- Compruebe que esp8266 está conectado como / dev / ttyUSB0
- Verificamos que {your_nodemcu_firmware.bin} haya reemplazado con el nombre de su firmware
- Si no hay esptool (descargar aquí ;))
- Tome la placa de desarrollo ESP8266 - y quémela, ¡"quémela" al máximo!

Ahora, atención, tomamos y descargamos el código terminado: funcionando.

¡Lea antes de completar el código!
- sustituya los datos de su enrutador wifi con login \ pass y sustituya su agente MQTT con login y pass. El código utiliza el corredor MQTT gratuito de cloudmqtt.com. Nuestro equipo ha planteado su agente gratuito, que puede utilizar: mqtt.ximxim.com (mqtt \ mqtt)

Enlace al repositorio de GitHub: mqtt_buddy-mtrf64-noolite-esp8266 : el código fue desarrollado por Dmitry Karaba (¡expreso muchas gracias a él!).
El código se recarga especialmente desde el repositorio cerrado de nuestra empresa XIM, INC - al público abierto para su descarga gratuita.

Asegúrese de reemplazar los datos con su
 -- Credentials SSID = "YOUR SSID NAME" PASSWORD = "YOUR PASSWORD" MQTT_SERVER = "m21.cloudmqtt.com" MQTT_SERVER_PORT = 16487 MQTT_USER = "noo" MQTT_PASS = "noo" 


Rellene el código en ESP8266 a través de la herramienta ESPLORER .

Ahora conectamos esp8266 dev board + MTRF64.
esp8266 D7 rx - MTRF64 TX
esp8266 D8 tx - MTRF64 TX
esp8266 GND - MTRF64 GND
esp8266 3V3 - MTRF64 3V3

imagen
(foto de conexión)

Una vez que haya cargado el código en esp8266, después de reiniciar, no podrá alcanzarlo y cambiar algo (código), debe volver a escribir el firmware nuevamente. Por qué porque, esp8266 cambia automáticamente a la conexión UART9600 y comienza a comunicarse con el módulo MTRF64. El código utiliza una conexión uart alternativa a través de los pines d7 \ d8, los pines principales RX, TX son gratuitos para el trabajo. Puede establecer fácilmente sus condiciones para "interrumpir" la transición a uart9600 para comunicarse con MTRF64, ya que este no era nuestro objetivo y nuestra tarea principal.


Qué hicimos y cómo funciona


El módulo mtrf64 se conecta a través de UART con esp8266, que a su vez se conecta a través de su enrutador y se conecta al agente gratuito MQTT. Por otro lado, usted, como usuario, también se conecta a este agente en la nube a través de una aplicación móvil y comienza a enviar comandos a canales MQTT, que a su vez se "desmontan" sobre la marcha y, según el comando, se transmiten a través del módulo UART MTRF64. Si! ¡así es como nos volvimos geniales y económicos! Si! Es genial cuando te das cuenta de que has construido una cadena lógica clara de tecnologías que funcionan para ti. Gracias;)

Video


Gestión


Yendo más allá: ¿estamos conectados y qué sigue? Cómo gestionar;) - ¡todo es simple! Fusionamos nuestra aplicación MQTT Buddy con Google Play (enlace al final del artículo) y agregamos el broker MQTT allí, por ejemplo, mqttcloud.com. Ahora agregue un nuevo botón para unir el bloque de noolita a MTRF64: ¡hágalos amigos!

Comandos para comunicarse con MTRF64
Dmitry Karaba, desarrollador de código para esp8266 para MTRF64, creó el siguiente formato de comandos MQTT para comunicarse con el módulo.

  -- mqtt_buddy/noolight/<int:channel> -- mqtt_buddy/noolight/<int:channel>/<XX-XX-XX-XX:address> -- mqtt_buddy/noolight/<int:channel>/bind -- mqtt_buddy/noolight/<int:channel>/unbind -- mqtt_buddy/noolight/<int:channel>/devices 

A partir de los temas de MQTT, puede ver que puede trabajar con canales directamente, así como con las direcciones de dispositivos específicos, por lo tanto, puede vincular todos los dispositivos a un canal, pero trabajar con cada uno en una dirección específica. La dirección se puede encontrar en el tema mqtt_buddy / sys cuando se vincula, el módulo responde con la dirección del dispositivo conectado.

Agregue un botón a MQTT Buddy (¡o use su cliente MQTT, consola, python al final con paho!). En MQTT Buddy, haga clic en "+" e ingrese el nombre del botón y el tema.

Agregar un botón de control a MQTT Buddy
mqtt_buddy / noolight / 0 y datos: "on, off o switch"

y marque una casilla: publicar, para que cuando haga clic en el botón, podamos enviar el comando al tema mqtt.

imagen


Video


Agregamos un botón, ahora hacemos el enlace de bloque estándar: haga clic en el bloque, haga clic en el botón de enlace en nuestra aplicación y vea cómo se conecta el bloque al módulo, se apagará el indicador parpadeante en el bloque SLF.

Si desea obtener más información, puede leer los mensajes en el tema: mqtt_buddy / sys: toda la información del bloque llega allí, cada vez, los 17 bytes de datos donde puede encontrar las direcciones de los bloques y lo que está sucediendo en el sótano técnico ...

Video


Después del enlace, creamos un nuevo botón para administrar estos bloques con un tema.

Gestión de bloques a través del tema MQTT en MQTT Buddy
mqtt_buddy / noolight / 0 y datos: "on, off o switch"

en la configuración de la aplicación, marque las casillas: cambiar \ retenido \ publicar - ahora cuando hace clic en el botón, se enviará un comando al tema "mqtt_buddy / noolight / 0" - esp8266 recibirá estos datos y analizará el tema y enviará el comando necesario al módulo de noolita MTRF64 y sucederá un milagro ... un milagro de tecnología que pudiste traducir a la realidad sin acciones complejas.

Parpadear y administrar el primer bloque te llevará unos 5 minutos si ya estás familiarizado con esp8266 y lo has flasheado al menos una vez.

==================== arrancar =============================

Enlaces a hardware y software por artículo


- Bloque MTRF 64
- Tablero de desarrollo ESP8266 - AliExpress \ mercados de radio \ tiendas en línea
- Aplicación de Android MQTT Buddy (iOS \ Windows Phone en adaptación)
- mqtt.ximxim.com - nuestro sitio web - hicimos una sala SHOW en esp8266 para un ventilador más grande;) - muchas gracias por la calificación positiva, tratamos de hacer que IOT sea más real, equipo de automatización inteligente Smart Automation Team> XIM, Inc.

Olvidé mi selfie stick
Bueno ... olvidé el selfie stick en casa, tuve que rehacer rápidamente la aspiradora de la oficina;)

imagen

=============== MQTT Buddy Bon scripts ==========================

Dado que nuestro sistema está descentralizado y no hay un servidor doméstico, ¿quién ejecutará los scripts? Sí, funciona, sí, el autor utiliza esta funcionalidad. ¿Cómo funciona y dónde? En nuestra aplicación MQTT Buddy. Todo es bastante simple: agrega un corredor MQTT y entra en él, luego en la parte superior hay un botón en forma de reloj: este es el guión.

Agregar secuencia de comandos a MQTT Buddy
Cuando hace clic, agregamos el script y si su corredor está disponible en Internet, en el momento adecuado (atención, se tienen en cuenta las zonas horarias, no necesita preocuparse y pensar en ello, solo dígale al sistema a qué hora desea y qué enviar al tema que necesita) - 100% de prueba a través de QOS = 1 protocolo MQTT). Hemos simplificado el servicio para los usuarios tanto como sea posible para que no piensen en la parte técnica y no se molesten, sino que simplemente digan "lo que quiero" :), y eso funciona.

imagen

Este es un servicio real que realmente funciona. Si alguien quiere obtener un código MQTT Buddy gratuito para la funcionalidad PRO, puede suscribirse al formulario en el sitio web mqtt.ximxim.com :)), también hay una sala de exposiciones desde el acceso web. Eso es todo! Despegar!

Que tenga un buen día y buen humor, ¡gracias por sus comentarios, comentarios positivos y buenas críticas! Sé más amable

Tuyo, Automator, Alex B.

Source: https://habr.com/ru/post/es404317/


All Articles