- Gerard Guillermo Ariel
- Minatel Villoldo Julian
- Velazquez Eduardo Antonio
-
Nombre: Roldán Federico David
-
Contacto: roldanfede96@gmail.com
-
Nombre: Marandino Juan Ignacio
-
Contacto: juan_marandino@hotmail.com
Tabla de Contenidos
[TOC]
El presente proyecto se llevo acabo con el objetivo desarrollar un dispositivo inteligente que sea capaz conectarse e integrarse a tecnologías de domótica ya existentes, como ser; Alexa, Google Home o Smart Life. Las mismas, permiten integrar una gran cantidad de dispositivos, así como muchas aplicaciones para interactuar entre elllas.
Hoy en día, es común ver dispositivos compatibles con estas tecnologías. Por lo que se ve como un requisito necesario, la implementacion del mismo basado en dichas tecnologias, con el fin de poder competir con otros productos semejantes en el mercado de la Domótica.
Artemis es un dispositivo inteligente, creado para el control de cultivos desde la app de un celular, el cual brinda al usuario la posibilidad de automatizar sus cultivos, de preferencia interiores, mediante el seguimiento y ajuste de las condiciones ambientales que lo afectan. El control se realiza de manera recursiva a partir de la variabilidad de las magnitudes de acuerdo a valores críticos pre-establecidos, por ejemplo, el riego de un sector es regulado, a partir de la activación de la bomba, en base al establecimiento de valores mínimos de humedad en el suelo de un sector, siendo dichos valores susceptibles de ajuste. Además, permite una mayor sustentabilidad del indoor posibilitando el acceso de manera remota desde cualquier red y facilitando el progreso de los cultivos sin necesidad de control manual, lo que le resulta mucho más ameno a el usuario.
Lista de objetivos que planteamos para este proyecto :
- Facilitar la configuración del dispositivo cuando se lo añade a la red.
- Facilitar la configuración de los parametros a controlar.
- Aplicacion compatible con la mayor cantidad de dispositivos.
- Diseño de la interfaz Ux UI comprensible y atractiva.
- Compatibilidad con aplicaciones de Domotica.
- Suceptible a futuras modificaciones o mejoras.
EasyEDA es una herramienta EDA gratuita, que no requiere instalación y esta basada en la nube. Permite un sencillo diseño de circuitos, simulación y diseño de PCB desde el navegador. Gracias a las bibliotecas disponibles tendremos la posibilidad de dibujar estos esquemas de forma fácil y rápida, además la herramienta se actualiza automáticamente de forma transparente.
Tuya IoT Development Platform facilita el desarrollo inteligente para todos los desarrolladores y/o participantes de IoT, creando estandares de Interconectividad. La plataforma proporciona una amplia cartera de servicios que cubren herramientas de desarrollo de hardware, servicios en la nube de IoT y desarrollo empresarial inteligente.
Tuya IoT Development Platform le permite conectar dispositivos IoT, gateway, servicios y aplicaciones a la nube. En la etapa de desarrollo del producto,se eligen los métodos de conexión deseados para lograr una comunicación bidireccional entre el dispositivo y la nube, lo que permite que los dispositivos interactúen con los servicios y aplicaciones basados en la nube y otros dispositivos conectados.
Métodos de desarrollo | Descripcion | Aplicable a |
---|---|---|
TuyaOS | Construido sobre RTOS, Linux y Non-OS, TuyaOS es un sistema operativo IoT distribuido e independiente de la plataforma. TuyaOS se adapta a diversas plataformas de conjuntos de chips y sistemas operativos, lo que le permite conectar dispositivos y puertas de enlace entre plataformas a la plataforma de desarrollo de Tuya IoT de la manera más fácil y rápida. Desarrollo sin código: se aplica a productos basados en SoC. Decenas de soluciones incorporan las mejores y probadas prácticas de desarrollo en dispositivos comunes y sus características típicas, como productos eléctricos y de iluminación. Desarrollo de código bajo: permite que los productos con microcontroladores incorporados se conecten a la nube. Desarrollo de código profesional: proporciona SDK personalizados específicos para diferentes funciones o productos, como redes, puertas de enlace, subdispositivos, cámaras IP, NVR y conceptos básicos de MCU. | Tuya proporciona servicios de desarrollo de IoT integrales que incluyen los tres elementos esenciales para los productos típicos de IoT, a saber, módulos de red, aplicaciones móviles y servicios en la nube. |
TuyaLink | TuyaLink: lo ayuda a conectar los dispositivos IoT existentes a la plataforma de desarrollo Tuya IoT con procesos de desarrollo estandarizados. | Todos los dispositivos (no integrados con los módulos de Tuya) que se conectan directa o indirectamente a internet. Los servicios integrales que incluyen modelos de dispositivos, desarrollo y depuración, y análisis de datos lo ayudan a conectar, controlar y administrar dispositivos IoT, todo en un solo lugar. |
Edge gateway | La puerta de enlace informática perimetral (puerta de enlace perimetral para abreviar) amplía las capacidades de la nube a los dispositivos perimetrales locales y permite que los dispositivos perimetrales respondan rápidamente a eventos locales con servicios informáticos locales. Estos servicios cuentan con baja latencia, rentabilidad, privacidad segura y autonomía local. | Autonomía local o dispositivos comunicándose sobre protocolos como Modbus, BACnet, OPC UA, OPC DA, SNMP, KNX, DALI, y más. |
La solución de interfaz MCU permite que los productos con microcontroladores incorporados se conecten a la nube. Tuya proporciona servicios de desarrollo de IoT integrales que incluyen los tres elementos esenciales para los productos típicos de IoT, a saber, módulos de red, aplicaciones móviles y servicios en la nube. Con el MCU SDK de Tuya, las aplicaciones móviles todo en uno y los paneles de control, se puede conectar el producto a la plataforma Tuya IoT fácilmente y beneficiarnos de los servicios en la nube rápidamente.
El SDK de MCU para Wi-Fi nos permite comunicar nuestro MCU (arduino) con el módulo de Wi-Fi de Tuya (WR3) a través de una comunicación en serie (UART),logrando asi, que el dispositivo pueda conectarse a la nube.
Describiremos el protocolo serie que se utiliza para implementar la comunicación entre el módulo Wi-Fi de Tuya o el módulo combinado Wi-Fi y Bluetooth Low Energy (LE) y nuestro microcontrolador.
- Baud: 9600/115200
- Data bit: 8
- Parity check: none
- Stop bit: 1
- Data flow control: none
- MCU: microcontroller unit.
Campo | Bytes | Descripcion |
---|---|---|
Cabecera | 2 | Se fija en 0x55aa. |
Version | 1 | Se utiliza para actualizaciones y extensiones. |
Comando | 1 | Tipo de Instruccion. |
Longitud del Dato | 2 | |
Data | N | Datos de la entidad. |
Verificacion | 1 | Comienza desde el encabezado, sume todos los bytes y luego divide la suma por 256 para obtener el resto. |
Por ejemplo, 55 AA 00 00 00 00 FF
Generalmente, un comando es enviado por una parte y recibido por la otra parte sincrónicamente.
Es decir, una parte envía un comando y espera una respuesta de la otra parte. Si el remitente no recibe un paquete de respuesta correcto dentro de un período de tiempo específico, la transmisión se agota, como se muestra en la siguiente figura.
El módulo envía comandos de control y la MCU informa el estado del punto de datos (DP), que se produce de forma asíncrona. Suponga que el módulo envía un comando X y la MCU informa un comando Y. La transmisión de datos es la siguiente.
- El módulo envía un comando de control:
- La MCU informa el estado:
Las unidades de datos de comando y estado de DP se definen de la siguiente manera:
Segmento de Dato | Bytes | Descripcion |
---|---|---|
dpid | 1 | El id de un DP |
tipo | 1 | El tipo de datos de un DP definido en Tuya IoT Platform. |
len | 2 | Los bytes de un valor. |
Valor | 1/2/4/N | Representado en formato hexadecimal. Los datos de más de un byte se transmiten en formato big-endian. |
Descripción de los campos tipo:
Tipo | Tipo de Dato | Bytes | Descripcion |
---|---|---|---|
0x00 | Raw | N | Representa un DP de tipo de datos sin procesar. Los datos se pasan a través del módulo a la nube. |
0x01 | Bool | 1 | Representa un DP de tipo de datos booleano. Los valores válidos incluyen y . 0x00 0x01 |
0x02 | Value | 4 | Representa un DP de tipo entero. Los datos se representan en formato big-endian. |
0x03 | String | N | Representa un DP de tipo cadena. |
0x04 | Enum | 1 | Representa un DP de tipo enum, que oscila entre 0 y 255. |
0x05 | Bitmap | 1/2/4 | Representa un DP de tipo de error. Los datos mayores de un byte se representan en formato big-endian. |
Module Debugging Assistant es un depurador todo en uno que utiliza comunicación en serie. Puede simular tanto los módulos de red como los microcontroladores y admitir una serie de protocolos como Wi-Fi, Bluetooth y Zigbee para ayudarlo a realizar una prueba integral en su sistema integrado. Esta aplicación fue la primera que utilizamos al llegar el modulo WR3 para ver si podíamos realizar la conexión del modulo y si este estaba funcionando correctamente. El asistente de depuración se compone de las siguientes áreas:
- El área izquierda se utiliza para la visualización de datos del puerto serie, incluida la recepción y transmisión de información de tramas y el análisis de datos clave. Los tres botones siguientes se utilizan para mostrar, guardar y borrar los datos mostrados.
- En el área de selección de modo, puede cambiar al modo asistente. El asistente tiene dos modos: simulación de MCU y simulación de módulo, que se pueden usar como MCU y módulo respectivamente.
- Elementos de configuración de funciones generales. El protocolo se puede seleccionar según sea necesario, la ayuda es una función auxiliar y la configuración se refiere a la visualización de la página y la configuración de los parámetros de interacción de datos.
- El área de operación funcional contiene tres partes: Explicación, Configuración y Operación. Muestra el protocolo seleccionado, el enlace de instrucciones y los elementos de configuración cuando comienza la depuración. Las funciones de depuración difieren según los elementos de configuración. El área de operación es para pruebas de funciones específicas.
El Asistente de depuración de módulos es esencialmente un asistente de puerto serie que integra los protocolos de comunicación de los módulos Tuya. Se puede elegir el protocolo correspondiente según las necesidades reales. El asistente tiene dos modos de trabajo. En la cual a nosotros nos interesa solo el modo de simulación de MCU. El asistente simula la MCU y la computadora se conecta al puerto serie de un módulo Tuya a través de una herramienta de puerto serie. Una vez que se enciende el módulo, inicia la interacción de datos de inicialización y el asistente simula la MCU para responder automáticamente con los datos correctos. En este modo, se puede usar la aplicación Tuya Smart para emparejar el módulo y verificar el formato correcto de envío e informe de datos. Después de obtener el módulo, se prueba la interacción de datos, lo que mejora en gran medida la eficiencia del desarrollo. Si se encuentran problemas durante el proceso de depuración, nos permite localizarlo.
El asistente simula la MCU real. Cuando está conectado al módulo Tuya, se puede realizar la prueba de emparejamiento de red.
Conectando el hardware.
- Utilizamos el convertidor de USB a TTL para conectar el puerto serial del módulo Wi-Fi a la computadora.
- Seleccionamos el protocolo de comunicación.
- Configurar las opciones de inicio.
- Apretamos en iniciar depuración y el asistente comenzará a funcionar. La sección Configuración inicial muestra los parámetros que se configuran durante la inicialización.
- Después que comience la depuración, se obsevrva que el asistente envía automáticamente el comando de inicialización. Si la MCU responde correctamente, completará automáticamente la interacción de datos de inicialización.
PlatformIO es un ambiente de desarrollo integrado (IDE), el cuál facilita y mucho la gestión de proyectos de software embebidos, gestión de dependencias, librerías, tests,etc.
UI Studio es una herramienta que facilita la creacion de aplicaciones que se enlazan a Tuya Smart y Smart Life. Sin la necesidad de escribir largas lineas de codigo.
Se busco crear una intefaz amigable y lo mas minimalista posible para no perder al usuario. Esta aplicacion consta de tres paginas que pasaremos a describir brevemente a continuacion:
En esta pagina, en el primer layout mostramos los estados de los actuadores y el historial de eventos importantes.
Se tienen programadas alertas que se visualizaran con un simbolo en el layout correspondiente.
En los layout que se encuentra por debajo, podemos ver las mediciones que se estan realizando. Ademas, podremos ver una tabla de graficos que guardara los valores de las mediciones en un rango de 24hs.
Aqui podremos setear todos los valores necesarios para realizar el correcto control de nuestro indoor.
La humedad y la Intensidad de la Luz se podra setear por etapa. Estas seran comunicadas al dispositivo y almacenadas en la EEPROM.
Pagina aun no terminada, en la que se podran ver sugerencias de cultivos, sponsors y tutoriales del proyecto.
Se cumplieron los objetivos y se llego a un prototipo con el que quedamos bastante conformes. Hay cosas por mejorarles en cuanto a la electrónica, pero en general se llego a un buen resultado. En el camino se utilizaron varias plataformas y tecnologías, como Firebase y ESP32, también se utilizo Android Studio para desarrollar una aplicacion en JAVA. Pero, ninguna solventaba el ideal de proyecto que teníamos en mente.
La implementación de la plataforma Tuya, facilito varios de los objetivos con los se tenían problemas, o no quedábamos muy conformes. Uno de ellos era la configuración del dispositivo cuando se lo añade a la red. Se puede añadir el dispositivo sin muchos conocimientos del usuario. Tambien, la aplicación estaba programada en Android Studio en JAVA por lo que solo era compatible con dispositivos Android, ahora con la plataforma se mantuvo la compatibilidad con los dispositivos Android y también los IOS. Y para añadir el dispositivo a alguna aplicación de domotica se complicaba mucho y eran demasiados pasos para el usuario final.