• No se han encontrado resultados

2.8. Estado actual del problema

2.8.7. Resumen registros obtenidos

Como se menciona en la tabla 2.2 de la pagina 29, se tiene las condiciones id´oneas para la producci´on del producto de caucho, pero como se observa en la siguiente tabla seg´un las condiciones actuales de la finca no cuentan con todos los datos para la toma de decisiones correctas. Ademas del re-procesamiento de que se requiere para solo obtener el siguiente resultado.

Tabla 2.3: Resumen registros obtenidos Variable clim´atica Registro obtenido

Temperatura 10 Registros diarios

Humedad ambiente Ninguno

Humedad suelo Ninguno

Luminosidad Ninguno

Gr´afica registros obtenidos

En la figura 2.6 se observa el resultado final con el m´etodo de captura de informaci´on mencionado anteriormente, en esta gr´afica podemos observar varios inconvenientes a la hora de ser analizado.

Figura 2.6: Gr´afica temperatura

El rango de precisi´on de los datos esta por cada hora, lo cual no es muy confiable. Se obtiene informaci´on en horas que el operario se encuentra laborando, para horas en la noche no hay informaci´on para analizar.

Si el operario deja de registrar un dato o este quedo mal, la informacion mostrada es incorrecta.

Cap´ıtulo 3

Metodolog´ıa

3.1.

Introducci´on

Para el desarrollo del proyecto se usara la metodolog´ıa en v[1], la cual describe la soluci´on de sistemas electr´onicos embebidos de hardware y softwaer. Donde tienen en cuenta los requisitos, el coste, el tiempo y la confiabilidad del producto final. La necesidad del uso de una metodolog´ıa en v como herramienta que facilite el desarrollo de sistemas electr´onicos embebidos.

3.1.1.

Modelo en V del ciclo de vida

El modelo en V define las siguientes etapas de desarrollo: Figura 3.1: Metodolog´ıa en v

3.1.2.

Definici´on de especificaciones (fase 1)

Se deben definir y documentar los diferentes requisitos del sistema a desarrollar, identi- ficando los valores num´ericos m´as concretos posibles.

Entre ellos debe estar la especificaci´on del nivel de integridad, o SIL, en caso de ser requerido. Las posibles t´ecnicas que se pueden utilizar en esta fase se mencionan en la tabla 3.1, cuya referencia se toma en el art´ıculo.

3.1.3.

Dise˜no global (Fase 2)

Tambi´en llamado dise˜no de alto nivel. Su objetivo es obtener un dise˜no y visi´on general del sistema.

3.1.4.

Dise˜no en detalle (Fase 3)

3.1.5.

Implementaci´on (Fase 4)

Es la fase en la que se materializa el dise˜no en detalle.

3.1.6.

Test unitario (Fase 5)

En esta fase se verifica cada m´odulo HW y SW de forma unitaria, comprobando su funcionamiento adecuado.

3.1.7.

Integraci´on (Fase 6)

En esta fase se integran los distintos m´odulos que forman el sistema. Como en el caso anterior, ha de generarse un documento de pruebas.

Por una parte, se debe comprobar en todo el sistema el funcionamiento correcto, y por otra, en caso de tratarse con un sistema tolerante a fallos, debe verificarse que ante la presencia de un fallo persiste el funcionamiento correcto. Se comprueba el cumplimiento de los requisitos establecidos.

3.1.8.

Test operacional del sistema (Fase 7)

Se realizan las ´ultimas pruebas, pero sobre un escenario real, en su ubicaci´on final, ano- tando una vez m´as las pruebas realizadas y los resultados obtenidos.

3.2.

Ciclo de vida de metodolog´ıa v

Tabla 3.1: Tabla del ciclo de vida proyecto

Acci´on Fase Se realizo en el proyecto

Gesti´on del proyecto Todas Definici´on de tareas y responsables.

Definici´on de requisitos, plan de seguridad y ga- rant´ıa de calidad

Fase 1 y 2 Separaci´on de requisitos de seguridad y los que no lo son.

An´alisis y revisi´on de especificaciones con UML.

Revisi´on tras cada cambio y etapa.

Documentaci´on Todas UML considerado documentaci´on.

Ayuda a la documentaci´on del SW con UML

Recursos Todas Personal altamente cualificado

Codificaci´on Fase 4 Medici´on de la complejidad del SW.

Continuaci´on de la tabla 3.1

Acci´on Fase Se realizo en el proyecto

Verificaci´on y Validaci´on Todas Establecimiento de plan de validaci´on. Simulaci´on.

Revisiones.

Test de caja negra.

Test funci´on a funci´on y limites. Test funcional.

Reutilizaci´on de m´odulos. Instalaci´on y Manteni-

miento

Fase 2, 3 y 6 Plan definido y amigable.

Modificaciones Todas Repetir todos los anteriores a los que afecte

el cambio.

Control de modificaciones y documentaci´on de los mismos.

3.3.

Desarrollo con la metodolog´ıa en v

Para el desarrollo y construcci´on del prototipo se tomo como referencia los pasos men- cionados en la secci´on 3.1.1 de la pagina 35, donde se realiza la recolecci´on de a informaci´on de la empresa y la detecci´on del problema que se describe la secci´on 2.8 de la pagina 30.

Para lo cual se describe en la figura 3.2 los requerimientos del hardware como del software, a continuaci´on se explicara el desarrollo en cada una de las etapas para el proyecto como se menciona en el (articulo [1] en la pagina 4).

3.3.1.

Recolecci´on de especificaciones

La recolecci´on de especificaciones t´ecnicas se ha llevado a cabo mediante la obtenci´on de informaci´on por medio del m´etodo de observaci´on y entrevista, donde se determina que presentan un problema. A lo cual se definen los requerimientos del sistema como se describe en el la figura 3.2.

3.3.2.

Dise˜no global

Partimos de las caracter´ısticas de las condiciones clim´aticas (tabla 2.2 de la pagina 29), donde se seleccionan los sensores apropiados para la recolecci´on de la informaci´on requeri- da, en donde se usa como gu´ıa el articulo de automatizaci´on de un cultivo [22], en donde mencionan los elementos electr´onicos utilizados, los cuales servir´an como referencia para el desarrollo del proyecto.

3.3.3.

Dise˜no en detalle

Para esta fase se realiza la verificaci´on de los sensores donde se observa la conexi´on, caracter´ısticas de funcionamiento, ademas se realizo el esquema de conexi´on general (ver anexo 7.8 de la pagina 77).

Se realiza la descarga y configuraci´on de los distintos programas, librer´ıas paquetes que se requieren para crear el prototipo del proyecto.

3.3.4.

Implementaci´on

Se compran los materiales electr´onicos que se detallan en la tabla 1.6 de la pagina 22, con el dise˜no y la conexi´on se construye el prototipo y se realizan las primeas pruebas, con el cual se determina si los sensores seleccionados son los correctos o se necesitan otros adicionales.

Para la construcci´on de la pagina web se usara el programa node-red, donde se realiza la programaci´on gr´afica por medio de los nodos utilizados como lenguaje de programaci´on.

3.3.5.

Verificaci´on Unitaria

Las pruebas se realizan de la siguiente forma, se conecta el hardware con el software y se verifica lo siguiente.

Conexi´on de los sensores a la placa arduino. Obtenci´on de la informaci´on de los sensores. Comunicaci´on al dispositivo central.

Almacenamiento en la base de datos. Visualizaci´on por medio de las gr´aficas.

3.4.

Casos de uso

Los casos de uso son una forma de entender la interacci´on que tiene los diferentes actores y las acciones que pueden realizar, es fundamental para entender como sera el desarrollo del prototipo, ademas puede ser gu´ıa para la investigaci´on ya que se da funcionamiento global del prototipo y de las distintas acciones que se requieren desarrollar para cada actor.

A continuaci´on describiremos los casos de uso que realizan los actores y los pasos de ejecutan de cada uno, en la figura 3.3, se describe un panorama global de cada actor, en secciones posteriores describimos al detalle cada caso.

Figura 3.3: Casos de uso

3.4.1.

Lectura de los sensores

Se realiza la recolecci´on de los datos clim´aticos por medio de los sensores electr´onicos, estos son enviados al servidor para ser almacenados. Se describe con detalle el caso de uso en el anexo 7.9.1 de la pagina 78.

Figura 3.4: Caso uso lectura sensores

3.4.2.

Autenticar usuario en el sistema

El usuario entra al formulario de login, ingresa los datos que le solicita, el sistema verifica y autentica el usuario donde lo redirige a la pantalla principal. Se describe con detalle el caso de uso en el anexo 7.9.2 de la pagina 79.

Figura 3.5: Caso uso autenticar usuario

3.4.3.

Consultar condiciones clim´aticas

El usuario ingresa al formulario donde consulta las condiciones clim´aticas. Se describe con detalle el caso de uso en el anexo 7.9.3 de la pagina 80.

Figura 3.6: Caso uso consultar condiciones

3.4.4.

Registrar usuario en el sistema

El administrador entra al formulario de registro de usuario, donde ingresa la informaci´on del correo, nombre de usuario y la contrase˜na, el sistema valida los registros y los almacena en la base de datos. Se describe con detalle el caso de uso en el anexo 7.9.4 de la pagina 81.

Figura 3.7: Caso uso registrar usuario

3.4.5.

Listar usuario en el sistema

El administrados entra en la pantalla de listar los usuarios, el sistema consulta en la base de datos los usuarios y los muestra en en pantalla. Se describe con detalle el caso de uso en el anexo 7.9.5 de la pagina 82.

Figura 3.8: Caso uso listar usuario

3.4.6.

Editar usuario en el sistema

El administrado entra en la pantalla de listar usuarios, selecciona un usuario, da en editar, se carga en formulario de edici´on, el administrados cambia los campos que necesita y da en guardar, el sistema valida los campos y guarda en base de datos. Se describe con detalle el caso de uso en el anexo 7.9.6 de la pagina 83.

Figura 3.9: Caso uso editar usuario

3.4.7.

Eliminar usuario en el sistema

El administrado entra en la pantalla de listar usuarios, selecciona un usuario, da en eliminar, el sistema valida y guarda en base de datos en estado inactivo. Se describe con

detalle el caso de uso en el anexo 7.9.7 de la pagina 84.

Cap´ıtulo 4

Hardware y Software

4.1.

Introducci´on

En esta secci´on presentamos la construcci´on del prototipo, donde explicaremos el hard- ware y software utilizado para su montaje. Mostraremos los componentes usados y sus prin- cipales funci´on en el proyecto, ademas se instalara y configurara las herramientas para el desarrollo de la aplicaci´on web que en este caso correr´a en una tarjeta raspberry pi.

Para la comunicaci´on se baso en la tesis de Alejandro Colombini [14] donde menciona diferentes redes de sensores, las caracter´ısticas que debe tener una plataforma. Para el caso del prototipo que se esta realizando, se selecciona la red wifi usando el modulo ESP8266, plataforma que permitir´a la recolecci´on de informaci´on que se obtenga de los sensores y enviarla al servidor mqtt para su posterior procesamiento con node-red.

4.2.

Estaci´on local de sensores

La estaci´on local de sensores esta compuesta por los siguientes elementos donde se expli- car´an cada una de las caracter´ısticas y la funci´on que realizara en el proyecto.

Tabla 4.1: Estaci´on local de sensores

Elemento Imagen Uso en el proyecto

Arduino (m´as detalle en 1.7.6 pagina 8)

Se encargara de conectar los sen- sores electr´onicos, de codificar la informaci´on y de enviarla al no- do central por medio de la tarjeta wifi.

Shield Es un tablero para el arduino,

donde se dejaran las conexiones para el esp8266 y los pines para los distintos sensores.

ESP8266 (m´as detalle en 1.7.13 pagina 14)

Tarjeta WIFI encargada de la co- municaci´on de la estaci´on de local de sensores.

Continuaci´on de la tabla 4.1

Elemento Imagen Uso en el proyecto

DHT22 (m´as detalle en 1.7.7 pagina 9)

Sensor de temperatura y hume- dad relativa del ambiente, se ob- tendr´a informaci´on de las condi- ciones clim´aticas.

Sensor humedad (m´as detalle en 1.7.8 pagina 9)

Se podra obtener las humedad del suelo.

sensor lluvia (m´as de- talle en 1.7.9 pagina 10)

Tarjeta que detecta si esta llo- viendo, por medio de un voltaje alto en su salida.

Led RGB Se utiliza para dar indicaciones

visuales del prototipo.

4.3.

Construcci´on del hardware

A la tarjeta arduino se le conectar´an los sensores mencionados como se observa en la figura 4.1, los cuales son los siguientes: temperatura y humedad, el de humedad del suelo, o de luz (de manera simult´anea), haciendo que el c´odigo del arduino pueda interpretar las se˜nales de cada sensor y poder obtener los valores de condiciones clim´aticas.

Figura 4.1: Conexi´on arduino a sensores

A su vez, al arduino, se conecta el modulo wifi ESP8266, quien sera el encargado de comunicarse a la estaci´on central y transmitir la informaci´on por medio del protocolo mqtt. Toda esta configuraci´on y comunicaci´on la realizan las librer´ıas que se describen m´as adelante. A continuaci´on realizaremos la explicaci´on de cada una de las librer´ıas y de los principales c´odigos usados para la programaci´on de la estaci´on central de sensores.

4.3.1.

Programaci´on de la esp8266 con arduino

Para realizar la conexi´on del esp8266 al arduino nos guaremos del siguiente tutorial, en [15] en donde realiza la explicaci´on de forma correcta, ademas nos muestra las librer´ıas necesarias para realizar la comunicaci´on.

Conexi´on

La conexi´on que se realiza el arduino es por medio de la UART1 de ambos dispositivos,

donde se realiza la comunicaci´on serial.

1Son las siglas en ingl´es de Universal Asynchronous Receiver-Transmitter, en espa˜nol: Transmisor-

Receptor As´ıncrono Universal, es el dispositivo que controla los puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo.

Figura 4.2: Conexi´on arduino esp8266

Observemos la imagen 4.2 donde la conexi´on se realiza de la sobre dos pines direrentes a los de uart del arduino, ya que estos estan usados, para ello se creamos un uart virtual en el arduino.

Tabla 4.2: Conexi´on arduino eso8266

Arduino ESP8266

Pin 2 (rx) 5 (tx) Pin 3 (tx) 4 (rx)

Librer´ıas

Para poder usar el potencial de arduino con el esp8266 se requieren de dos librer´ıas, que es la publicaci´on de los clientes y la conexi´on a la red wifi.

PubSubClient 2.6 Esta librer´ıa proporciona un cliente para hacer mensajes simples de publicaci´on / suscripci´on con un servidor que admite MQTT.

Para usarla se utiliza el siguiente c´odigo: #include <W i F i E s p C l i e n t . h>

// Configuramos l a c o n e x i o n a l a r e d #define WIFI AP ” r e d w i f i ”

#define WIFI PASSWORD ” password ”

// I n i c i a l i z a m o s e l modulo

s o f t . b e g i n ( 9 6 0 0 ) ; WiFi . i n i t (& s o f t ) ;

s t a t u s = WiFi . b e g i n ( WIFI AP , WIFI PASSWORD) ;

WiFiEsp 2.1.2 Con una placa ESP8266, la librer´ıa WiFiEsp permite que una placa Ar- duino se conecte a Internet. Puede servir como un servidor que acepta conexiones entrantes o un cliente que crea conexiones salientes. La biblioteca WiFiEsp es muy similar a las biblio- tecas Arduino WiFi y Ethernet, y muchas de las llamadas a funciones son las mismas.

Para usarla se utiliza el siguiente c´odigo: #include <PubSubClient . h> i n t SERVERPORT = ” 1883 ” ; S t r i n g USERNAME = ” u s e r 1 ” ; char PASSWORD[ 5 0 ] = ” u s e r 1 ” ; char t h i n g s b o a r d S e r v e r [ 5 0 ] = ” 1 9 2 . 1 6 8 . 0 . 2 0 ” ; c l i e n t . s e t S e r v e r ( t h i n g s b o a r d S e r v e r , 1883 ) ; c l i e n t . s e t C a l l b a c k ( c a l l b a c k ) ; i f ( c l i e n t . c o n n e c t ( ” ESP8266Client ” ) ) { c l i e n t . s u b s c r i b e ( ” h o u s e / main−l i g h t ” ) ; S e r i a l . p r i n t l n ( ” [DONE] ” ) ; }

4.4.

Programaci´on de DHT22

La conexi´on del dht22 es relativamente sencilla para ello se requiere de la conexi´on del cable data, para el c´odigo del arduino, la librer´ıa hace el resto.

Conexi´on

Librer´ıa

Esta librer´ıa esta dise˜nada para los sensores DHT11 y DHT22, donde al leer los valores retorna la temperatura en grados centigrados, grados fahrenheit y la humedad relativa del ambiente.

DHT Para poder usar la librer´ıa se requiere del siguiente c´odigo. #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht (DHTPIN, DHTTYPE) ; dht . b e g i n ( ) ; f l o a t h = dht . readHumidity ( ) ; f l o a t t = dht . r e a d T e m p e r a t u r e ( ) ;

4.5.

Programaci´on de sensor humedad tierra

Este tipo se sensor genera como salida un voltaje de 0 a 5 voltios, dependiendo de la humedad de la tierra, lo que se hace con el arduino es conectarlo a una entrada an´aloga y leer el valor, donde se realiza una regla de tres con la siguiente tabla para determinar la humedad de la tierra.[11]

Tabla 4.3: Conexi´on arduino sensor humedad tierra

Valor Descripci´on

0 - 300 Suelo seco

300 - 700 Suelo h´umedo 700 - 950 En agua

Conexi´on

Lectura puerto an´alogo Para poder usar el sensor se requiere del siguiente c´odigo. S e r i a l . p r i n t l n ( analogRead (A0 ) ) ;

4.6.

Programaci´on de sensor lluvia

Este tipo se sensor genera como salida digital de 0 o 1, dependiendo si esta lloviendo, lo que se hace con el arduino es conectarlo a una entrada digital y leer el valor.

Conexi´on

Figura 4.5: Conexi´on arduino sensor lluvia

Lectura puerto an´alogo Para poder usar el sensor se requiere del siguiente c´odigo. S e r i a l . p r i n t l n ( analogRead (A0 ) ) ;

4.7.

Estaci´on central

En la secci´on 4.3 se mencionan los definimos componentes electr´onicos que ser´an usados en el prototipo, ahora mencionaremos los componentes que usara la estaci´on central.

Ademas se describe los pasos de como se instalo y configuro cada programa, la conexi´on de la red, entre otras configuraciones.

Tabla 4.4: Estaci´on central

Elemento Imagen Uso en el proyecto

Raspberry pi (m´as de- talle en 1.7.12 pagina 13)

Es el servidor principal en donde se ejecuta el programa node red quien realiza la comunicaci´on con los sensores y almacena los datos en la base de datos

Continuaci´on de la tabla 4.4

Elemento Imagen Uso en el proyecto

Modem 3g Quien realiza la comunicaci´on 3g

para poder acceder al servidor

Router (m´as detalle en 1.7.14 pagina 15)

Quien realiza la comunicaci´on a la estaci´on local de sensores

4.7.1.

Configuraci´on de la red

La configuraci´on de la red para la conexi´on de la estaci´on local de sensores con la estaci´on central es sencilla, lo que se realiz´o para este proyecto es conectar el moden a la raspberry pi, con la configuraci´on de access point, el arduino como posee la tarjeta wifi esp8266 se conecta al router en donde se le asigna una IP din´amica y en el c´odigo del arduino esta la IP del servidor mqtt.

4.7.2.

Configurar raspberry pi

Cambiar ip

Antes de trabajar con las raspberry e instalar las aplicaciones, necesitamos configurar una ip fija, para ello ingresamos al archivo de configuraci´on del dhcp para ingresar la configuraci´on est´atica.

sudo nano / e t c / dhcpcd . c o n f

En el archivo ingresamos los siguientes datos de la ip. i n t e r f a c e e t h 0

s t a t i c i p a d d r e s s = 1 9 2 . 1 6 8 . 0 . 2 0 / 2 4 s t a t i c r o u t e r s = 1 9 2 . 1 6 8 . 0 . 1

s t a t i c d o m a i n n a m e s e r v e r s = 1 9 2 . 1 6 8 . 0 . 1 8 . 8 . 8 . 8

4.7.3.

Instalar y configurar mqtt

En estas instrucciones, encontrar´a c´omo instalar MQTT en Raspberry Pi. Hay dos m´eto- dos para instalar mqtt, uno es que conectamos directamente el mouse y el monitor del teclado a un pantalla, vamos al terminal de Raspberry Pi y lo instalamos desde all´ı. Otro m´etodo es acceder a raspberry Pi a trav´es de una computadora que usa SSH e iniciamos sesi´on.

Debemos usar el nuevo repositorio, para ello primero debe importar la clave de firma del paquete del repositorio, siga el siguiente commando, wget se usa para descargar un solo archivo y almacena en un directorio actual.

#Descargamos l a k e y p a r a c a r g a l a en e l r e p o s i t o r i o de l i n u x

wget h t t p : / / r e p o . m o s q u i t t o . o r g / d e b i a n / m o s q u i t t o−r e p o . gpg . key #Adicionamos l a k e y

sudo apt−key add m o s q u i t t o−r e p o . gpg . key

#Nos ubicamos en l a l i s t a de f u e n t e s

cd / e t c / a p t / s o u r c e s . l i s t . d/

#Descargamos l a l i s t a de m o s q u i t t o

sudo wget h t t p : / / r e p o . m o s q u i t t o . o r g / d e b i a n / m o s q u i t t o−wheezy . l i s t #I n i c i a m o s como r o o t sudo −i #A c t u a l i z a m o s p a q u e t e s apt−g e t update #I n s t a l a m o s m o s q u i t t o apt−g e t i n s t a l l m o s q u i t t o

4.7.4.

Instalar y configurar nodered

Node-RED viene preinstalado en la imagen completa de la tarjeta Raspbian SD que se puede descargar desde RaspberryPi.org.

Aunque es utilizable, utiliza una versi´on anterior de Node.js y se recomienda actualizar a la ´ultima utilizando el comando bash a continuaci´on.

Si tiene la versi´on m´ınima de Rasbian u otra instalaci´on basada en Debian, como Ubuntu

Documento similar