AquaMon – Acuaponia y monitoreo de peceras con Tuya IoT

Pecera IoT

Las especies marinas son extremadamente sensibles a los cambios en las condiciones ambientales. El dispositivo y la aplicación AquaMon IoT ayudan a que sus peces crezcan mejor.

Cosas usadas en este proyecto

Componentes de hardware

Arduino UNO × 1

Placa de conexión NodeMCU ESP8266 × 1

Adafruit Impermeable DS18B20 Sensor de temperatura digital ×1

Seeed Studio Grove – Kit de sensor de PH (E-201C-Azul) × 1

Seeed Studio Grove – Sensor/medidor de TDS para la calidad del agua (sólidos disueltos totales) × 1

Paquete de batería de iones de litio de baja corriente SparkFun – 2.5Ah (USB) × 1

Protoboard (genérico) × 1

Cables puente (genéricos) × 1

Aplicaciones de software y servicios en línea

IDE de Arduino

Plataforma Tuya IoT

Tuya_TYDA_Install_V2.4.0

Herramientas manuales y máquinas de fabricación.

Cinta, Doble Cara

Soldador (genérico)

Historia

Introducción

¿Te encantan las criaturas marinas? No creo que encuentre una sola persona que no se enamorara de los animales marinos. Colores vibrantes, espectaculares, texturas en todo su cuerpo adaptadas para camuflarse, adaptarse a las condiciones del mar y atraer. Aunque nunca tuve la oportunidad de sumergirme profundamente en los mares u océanos y experimentar la belleza, lo disfruto todos los días con mi pez mascota y un pequeño acuario. Los peces son mascotas ideales para personas que no tienen mucho tiempo ni espacio para otras mascotas comunes. Siempre que estoy triste o en busca de nuevas ideas, lo mejor que hago es observar los peces en el acuario. Realmente me ayudó a mejorar el estrés y a tener un momento alegre en medio de todos los horarios ocupados del día durante la pandemia de Covid. También está científicamente probado: El efecto hipnótico de ver peces nadar de un lado a otro ayuda a los niños a calmarse y relajarse… Ver peces no solo baja la presión arterial y el ritmo cardíaco, sino que también reduce el estrés y la ansiedad, mejora el estado de ánimo y nos ayuda a sentirnos tranquilos y relajados. Una herramienta natural y terapéutica para ayudar a los niños que sufren de condiciones como el TDAH y el autismo.”Entonces, si tus amigos marinos agregan tanto valor a tu vida, ¿qué estás esperando? Cuídalos adecuadamente para que puedan prosperar. No necesitás un gran presupuesto para eso, se puede construir fácilmente con estas placas baratas: Arduino UNO y ESP8266. También te mostraré lo fácil y divertido que es construir un dispositivo y una aplicación móvil geniales conectados a Internet. con la Plataforma Tuy a IoT.

Es posible que haya encontrado varios proyectos de monitoreo de acuarios basados en IoT, desde simples hasta avanzados, pero hice este proyecto para ayudar a las personas sin o con menos conocimientos técnicos a configurar uno de esos dispositivos IoT para acuarios con una aplicación de Android e iOS que tiene una autorización segura incorporada. apoyo también.

 

¿Qué es Tuya y por qué?

Tuya es una plataforma de IoT en la nube global líder que conecta las necesidades inteligentes de las marcas, los OEM, los desarrolladores y las cadenas minoristas. La plataforma proporciona a los desarrolladores una solución integral de nivel IoT PaaS que contiene herramientas de desarrollo de hardware, servicios globales en la nube y desarrollo de plataformas comerciales inteligentes. Tuya ofrece un empoderamiento integral del ecosistema desde la tecnología hasta los canales de marketing para construir la plataforma IoT en la nube líder en el mundo. Tuya está abierta a todos, únase como probador beta y desarrollador con su reciente lanzamiento de Arduino Library y Tuya Development kits. Regístrese y únase a la prueba beta de Tuya Developer Arduino.

Decidí usar la plataforma Tuya IoT porque es simple, potente y puede ejecutarse en módulos económicos como Esp8266. Además, la plataforma Tuya IoT le ofrece una función similar a la del inventor de la aplicación MIT de arrastrar y soltar para crear su propia aplicación móvil IoT para Android e iOS sobre la marcha. Por lo tanto, su prototipo puede ser el próximo producto IoT más inteligente con la plataforma Tuya.

Para obtener más detalles sobre Tuya, consulte mi proyecto anterior sobre Introducción a la plataforma Tuya IoT: https://steptostem.com/2021/08/getting-started-with-arduino-iot-control-with-tuya-iot-platform/

Vamos a construirlo

Hardware:

IoT Pecera

Hay 3 sensores disponibles para medir los parámetros claves en la pecera, como la temperatura, el pH y el TDS . Además, puede agregar muchos actuadores diferentes para automatizar tareas como calentar o enfriar el agua, alimentar a los peces, activar las bombas para el cambio de agua o la administración de medicamentos y controlar la intensidad de la luz para simular los círculos día/noche. Voy a entrar en detalle en este artículo.

IoT Pecera

IoT Pecera

Sensor de pH: el pH mide la acidez o alcalinidad del agua. Un valor de pH de 7 es neutral, con números más bajos aumentando en acidez y números más altos aumentando en alcalinidad. Muchos peces pueden prosperar en una variedad de condiciones de pH, que generalmente oscilan entre 6,5 y 7,5. Sin embargo, algunos peces requieren condiciones específicas de pH fuera de este rango. Sin embargo, el pH puede variar con el tiempo, por lo que es importante analizar el agua del acuario con regularidad. La mayoría de las veces, si no se toman en cuenta, los niveles de pH disminuirán con el tiempo debido a la adición de ácidos en el agua. ¿De dónde podrían provenir estos ácidos?

Aquí hay algunas fuentes comunes:

  1. Dióxido de carbono en el aire disuelto en el tanque 2. Taninos que se filtran al agua desde la materia vegetal 3. Residuos que digieren bacterias que acidifican el tanque a través del ciclo del nitrógeno

Desafortunadamente, no hay indicaciones visibles de que se haya producido ningún cambio, por lo que el monitoreo frecuente es la única forma de garantizar que el agua permanezca saludable y habitable.

Sensor TDS: TDS mide los sólidos disueltos totales de la solución o la concentración de partículas sólidas disueltas. En general, cuanto mayor sea el valor de TDS, más sólidos solubles se disuelven en el agua y menos limpia es el agua. Por lo tanto, TDS se puede utilizar como una de las referencias para reflejar la limpieza del agua.

Sensor de temperatura: la temperatura del acuario es a menudo lo primero que las personas prueban para los acuarios domésticos y es fundamental para mantener funciones metabólicas saludables en los peces. La mayoría de los peces son poiquilotérmicos (lo que significa que no regulan la temperatura interna del cuerpo), sino que dependen de su entorno, por lo que la temperatura es un factor importante.

Paso 1: Conexión de todos los sensores y módulos
Las conexiones de hardware son las siguientes

IoT Pecera

Paso 2: Creando un nuevo producto en Tuya

Voy a utilizar la plataforma Tuya IoT para desarrollar un dispositivo inteligente desde cero. La simplicidad y el rápido tiempo de respuesta de la nube Tuya IoT son sorprendentes, todo lo que necesita hacer es configurar definiciones de funciones, diseñar el panel de la aplicación y grabar el firmware de autorización y su dispositivo está listo para funcionar con la aplicación Tuya para Android e iOS. Consulte el flujo de desarrollo de cualquier producto Tuya a continuación.

IoT Pecera

Consulte a continuación los pasos para crear un nuevo producto en la plataforma Tuya IoT, si aún no se ha registrado, regístrese aquí.. Luego, vaya a Tuya IoT Platform y haga clic en: Crear ➡ ¿No puede encontrar la categoría?

Ingrese la información requerida del producto:

Protocolo ➡ Wi-Fi

Tipo de energía ➡ Consumo de energía estándar

IoT Pecera

Cree definiciones de funciones personalizadas para sus sensores con el tipo de datos y las propiedades que se muestran a continuación. Seleccione las características que desea agregar a su producto desde las funciones estándar o cree otras nuevas (personalizadas) si no son compatibles con las funciones estándar.

Las funciones estándar indican las funciones proporcionadas por Tuya para sus categorías de productos. Dado que hay muchos productos integrados, es fácil encontrar las funciones que necesita. Además, puede crear sus funciones especializadas denominadas Funciones personalizadas, según su proyecto.

El punto de datos (DP) es la representación abstracta de una función, y cada función tiene una ID y un tipo de datos.

Data Point ID (DP ID): indica el código de un punto de datos (función). Tuya Cloud envía o recibe datos a través de ID de puntos de datos. Creo tres DP personalizados para sensores de TDS, pH y temperatura y un DP de interruptor estándar para controlar cualquier actuador (puede agregar más interruptores para controlar actuadores como comederos de peces, bomba de soluciones tampón, ventilador de enfriamiento de agua).

Seleccione SDK del módulo Tuya ESP8266 estándar en la sección de desarrollo de hardware.

IoT

Paso 3: Diseño del panel de aplicaciones para nuestro dispositivo AquaMon

En el panel del dispositivo, seleccione Panel en blanco y vamos a personalizarlo y embellecerlo.

Podrá ver todos los elementos de la interfaz de usuario de DP que puede modificar. De hecho, hay muchas IU disponibles para arrastrar y soltar y crear un panel fantástico. Una vez que esté listo, haga clic en el botón de liberación.

IoT Pecera

También he agregado elementos gráficos y registros para un mayor resumen de datos.

Una vez que se libere su panel, debería poder verlo y usarlo escaneando a través de la aplicación Tuya IoT en el móvil.

Paso 4: Autorizar ESP8266 con el firmware Tuya IoT

Para poder usar el NodeMCU ESP8266 como un producto Tuya para este proyecto, debe actualizarlo y autorizarlo con el firmware requerido. Para autorizar el ESP8266, debe enviar el ID del producto (PID) y el nombre de su cuenta de Tuya IoT (correo electrónico) a devops@tuya.com . Después de un tiempo, le enviarán una identificación de token. Luego, siga los pasos a continuación:

Primero, vaya a la página de servicio de Tuya PMS https://pms.tuya.com/en/login y regístrese para obtener una cuenta si no tiene una. Luego, vaya a Gestión de producción ➡ Gestión de órdenes de trabajo ➡ Verificación de código de activación. Para activar el certificado de producción del producto, ingrese el ID del token. Cuando se confirma la identificación del token, el ESP8266 está listo para ser flasheado y autorizado. Recuerda solo una vez se puede autorizar DNI desde una sola cuenta. Para verificar sus tokens activados, vaya a la Lista de códigos de activación en la lista Gestión de producción -> Gestión de órdenes de trabajo.

Puede descargar la aplicación de grabación de token de autenticación en la nube desde la sección de descarga de software de la consola PMS o descargar el paquete de instalación en la unidad de Google https://drive.google.com/file/d/1SF-rM5qDLaPJiuMHrkqFauVyRXSSHMkj/view?usp=sharingf rom Tuya ESP8266 guía (enlace en la sección de referencia) e inicie sesión con su cuenta PMS.

Establezca la velocidad en baudios y pruebe la velocidad en baudios como se muestra en la imagen de arriba. Además, haga clic en el botón Ingresar token e ingrese el token que recibió de la respuesta de correo electrónico de Tuya devops@tuya.com.

Ahora, conecte el NodeMCU V3 LoLin ESP8266 a la computadora a través de un cable USB y seleccione su número de puerto, como COM5. Si no lo usó con Arduino IDE u otros compiladores antes, es posible que deba instalar su controlador. Finalmente, haga clic en flash para grabar tokens de autenticación. Vería un cuadro verde con éxito si nada se rompe.

Paso 5: Programación y flasheo de Arduino

Simplificaré esta parte entrando en detalles de la biblioteca Tuya IoT Arduino. Primero, importe  todas las bibliotecas requeridas para trabajar con sensores y ESP8266 sobre Serial. Configuración de la conexión serie Tuya,

SoftwareSerial conn(10, 11); // RX, TX

TuyaWifi my_device(&conn);

/* Current LED status */

unsigned char led_state = 0;

/* Connect network button pin */

int key_pin = 7;

 

Defina y almacene todas las identificaciones de DP que creamos en la plataforma Tuya IoT mientras creaba nuestro nuevo dispositivo.

 

/* Data point define */

#define DPID_Switch 101

#define DPID_Ph_Sensor_Data 112

#define DPID_TDS_Sensor_Data 113

#define DPID_Water_Temperature 114

/* Stores all DPs and their types. PS: array[][0]:dpid, array[][1]:dp type.

*                                     dp type(TuyaDefs.h) : DP_TYPE_RAW,

*                                     DP_TYPE_BOOL, DP_TYPE_VALUE, DP_TYPE_STRING, DP_TYPE_ENUM, DP_TYPE_BITMAP

*/

unsigned char dp_array[][2] =

{

{DPID_Switch, DP_TYPE_BOOL},

{DPID_Ph_Sensor_Data, DP_TYPE_VALUE},

{DPID_TDS_Sensor_Data, DP_TYPE_VALUE},

{DPID_Water_Temperature, DP_TYPE_VALUE},

};

 

Complete su PID desde la consola Tuya IoT y la versión de firmware como se muestra a continuación,

 

unsigned char pid[] = {«2dhjbzgya8mk2sv3»};

unsigned char mcu_ver[] = {«3.1.4»};

 

En void setup(), iniciamos todas las devoluciones de llamada a la nube de Tuya IoT,

 

void setup()

{

Serial.begin(9600);

conn.begin(9600);

 

pinMode(key_pin, INPUT_PULLUP);

pinMode(LED_BUILTIN, OUTPUT);

digitalWrite(LED_BUILTIN, LOW);

 

//Enter the PID and MCU software version

my_device.init(pid, mcu_ver);

//incoming all DPs and their types array, total DPs created (quantity)

my_device.set_dp_cmd_total(dp_array, 4);

//register DP download processing callback function

my_device.dp_process_func_register(dp_process);

//register upload all DP callback function

my_device.dp_update_all_func_register(dp_update_all);

delay(300);

last_time = millis();

}

En la parte del bucle, debemos iniciar el servicio uart para permitir que Arduino reciba y envíe datos a ESP8266 en serie y ESP8266, a su vez, los envía a la nube de Tuya IoT.

Primero, verifique si el dispositivo está en modo de red o no y si está conectado a la nube o no, podrá ver el estado a través del LED, si el LED está estable significa que está conectado a la nube, si parpadea significa que está conectado. modo.

 

void loop(){

my_device.uart_service();

 

//Enter the connection network mode when Pin7 is pressed.

if (digitalRead(key_pin) == LOW) {

delay(80);

if (digitalRead(key_pin) == LOW) {

my_device.mcu_set_wifi_mode(SMART_CONFIG);

}

}

/* LED blinks when network is being connected */

if ((my_device.mcu_get_wifi_work_state() != WIFI_LOW_POWER) &&

(my_device.mcu_get_wifi_work_state() != WIFI_CONN_CLOUD) &&

(my_device.mcu_get_wifi_work_state() != WIFI_SATE_UNKNOW)) {

if (millis()- last_time >= 500) {

last_time = millis();

 

if (led_state == LOW) {

led_state = HIGH;

} else {

led_state = LOW;

}

digitalWrite(LED_BUILTIN, led_state);

}

 

Ahora, implemente la lógica de su programa para enviar datos a la nube de Tuya IoT y App Panel mcu_dp_update(DPID, value, 1),envíe sus valores de datos de esta manera si el dispositivo está conectado a la nube.

 

phVal = calcPhVal();

tdsVal = calcTDSVal();

wTemp = waterTemp();

 

/* report the pH, TDS and temperature data */

if ((my_device.mcu_get_wifi_work_state() == WIFI_CONNECTED) || (my_device.mcu_get_wifi_work_state() == WIFI_CONN_CLOUD))

{

my_device.mcu_dp_update(DPID_Switch, true, 1);

my_device.mcu_dp_update(DPID_Ph_Sensor_Data, phVal, 1);

my_device.mcu_dp_update(DPID_TDS_Sensor_Data, tdsVal, 1);

my_device.mcu_dp_update(DPID_Water_Temperature, wTemp, 1);

}

delay(500);

}

 

También tenemos la función, pero se debe usar cuando desea recibir comandos y tomar el control de los pines de Arduino, como controlar actuadores, simplemente implemente un caso de interruptor y realice las acciones requeridas según el valor activado. Consulte el tutorial anterior aquí sobre el uso dedp_process() char dpiddp_process(),

 

/**

* @description: DP download callback function.

* @param {unsigned char} dpid

* @param {const unsigned char} value

* @param {unsigned short} length

* @return {unsigned char}

*/

unsigned char dp_process(unsigned char dpid,const unsigned char value[], unsigned short length){

/* all DP only report, if you want to take actions based upon user interactions with app modify dp_process*/

return SUCCESS;

}

 

Por último, actualice todos los valores, asegura que todos sus valores de datos se actualicen continuamente, puede intentar omitir mcu_dp_update(DPID, value, 1)ya que ya tenemos una función ejecutándose continuamente para actualizar todos los valores, pero asegúrese de que esas variables sean globales.void loop()dp_update_all()

 

/**

* @description: Upload all DP status of the current device.

* @param {*}

* @return {*}

*/

void dp_update_all(void)

{

my_device.mcu_dp_update(DPID_Switch, true, 1);

my_device.mcu_dp_update(DPID_Ph_Sensor_Data, phVal, 1);

my_device.mcu_dp_update(DPID_TDS_Sensor_Data, tdsVal, 1);

my_device.mcu_dp_update(DPID_Water_Temperature, wTemp, 1);

}

 

Echemos un vistazo a la aplicación, es increíble y tan simple con Tuya para construir sus propios dispositivos IoT inteligentes

IoT Pecera

IoT Pecera

Archivos para bajar

AquaMon firmware

 

Acerca de Sumit Kumar 3 Artículos
Sumit es un joven estudiante de segundo año que ve el mundo como un escenario para la innovación donde todos tienen la misma oportunidad de resolver problemas globales. Le encanta jugar con la electrónica y leer revistas científicas. Además, es el fundador y director ejecutivo de steptostem.com, una comunidad abierta donde sus amigos y él enseña a los niños de la escuela a aprender nuevas habilidades como desarrollo de juegos, programación, piratería de hardware con pasión y colaboración porque cree en el trabajo en equipo.

Sé el primero en comentar

Dejá un Comentario

Tu dirección de correo no será publicada.


*