puesta en marcha
CAPITULO 4 PRUEBAS Y PUESTA EN MARCHA
4.4 Esquemas de armado del sistema
En la figura 4.10 se muestra el diagrama eléctrico de conexión de los elementos que intervienen en el proyecto:
Tres sensores y tres actuadores son distribuidos en dos placas Arduino y acoplando en una de ellas, el punto nodal de la comunicación inalámbrica que en este caso es
Figura 4.10 Diagrama eléctrico de conexión
En la figura 4.11 se muestra algunos de los principales elementos empleados. Dos de los sensores están conectados a la placa esclava (parte central superior de la figura) y dos de los actuadores, que en este caso están representados por el servomotor y el LED que representa un foco para la iluminación artificial.
En la placa configurada como Maestra, se encuentran conectados 4 elementos: el sensor de luminosidad, el actuador de calefacción, un pequeño motor que simula al ventilador y el dispositivo nodal de comunicación WiFly.
CAPÍTULO
5
|
CAPITULO 5 CONCLUSIONES
El sistema permite recopilar la información de los sensores y puede ser vista en una computadora o dispositivo que se conecte a una red inalámbrica, el actual proyecto pretende ser una herramienta más para elevar la productividad y la economía de quien implanta éste proyecto.
Con el actual proyecto se ha logrado que el prototipo se pueda manejar desde una página web al ser conectado a una red inalámbrica con acceso al internet, en donde los actuadores o dispositivos a controlar y la lectura de los sensores, serán vistos a través de dicha página en una interfaz sencilla e intuitiva, muy fácil de operar.
Uno de los retos a realizar fue la conexión del micro-controlador maestro, utilizando el módulo WiFi diseñado para la placa de proyectos arduino , si bien su programación es fácil, se debe tener en cuenta los parámetros necesarios para realizar la conexión en cuanto a protocolos, potencia y capacidad de transmisión para efectuar la comunicación micro. Tarjeta wifly modem inalámbrico, conectado a internet.
Otra alternativa de conexión para el acceso al medio electrónico virtual (la web) es el utilizar el Shield Ethernet que está diseñado para proporcionar conexión a través del cable par-trenzado y el conector RJ45 usado para redes que emplean cables y/o alambres para las telecomunicaciones pero que sus velocidades de transmisión de datos son más rápidas y seguras que los del Shield WiFly debido a las limitaciones de obstáculos entre el modem y el Shield, es por esto que se agrega en los anexos su configuración como alternativa para conectar el micro-controlador maestro al internet y de esta manera, visualizar la página web que monitorea y controla los parámetros físicos climáticos dentro del invernadero.
Analizando la página web en la que se pretende ver, tanto el valor de las variables censadas como los botones de encendido y apagado de los dispositivos a controlar para ajustar los valores censados, se puede decir que existen varias formas de programar ésta instancia del proyecto, pero lo más importante es no rebasar el límite de memoria que se puede usar en el microcontrolador para implementar el código de la página.
Dejamos en claro que existen diversas técnicas para programar una página web y resaltamos que es prioritario manejar un código que actualice los valores, tanto de sensado, como el estado de los actuadores. Ciertamente un objetivo de éste proyecto es el de minimizar costos, por lo que el uso de sensores de bajo costo y confiables que se encuentren dentro del mercado es de suma importancia y no por ser de precio accesible, no significa que sean de mala calidad, al contrario, son muy útiles y con pequeños ajustes y sencilla programación, se pueden obtener valores muy cercanos a los reales.
Los actuadores deben pensarse en la escala del invernadero real y los dispositivos que emplearán, por lo que en la implementación, deben ser adecuados y acordes a los requerimientos del invernadero y del cultivo empleado; cabe destacar que será necesario un subsistema de control que apoye en la activación de los actuadores, ya que la tarjeta Arduino, por si sola, no tiene la capacidad para activar actuadores robustos para el invernadero real.
Finalmente la puesta en marcha y la integración de los circuitos en un todo, permite visualizar la red de sensores como un eficiente sistema que puede ser implementado en múltiples aplicaciones y ya que se ha mostrado que el uso de estas tecnologías pueden hacer más eficientes los sistemas de control, rescatamos la visión que se plasma en este proyecto, usar un sistema que permita el incremento de eficiencia, de costo accesible y de fácil instalación.
De esta manera, los conocimientos adquiridos por los que presentan este proyecto, quedan consolidados al manejar múltiples destrezas, experiencias, objetivos y conceptos adquiridos a lo largo de la carrera y que reflejan el esfuerzo y empeño por crear e innovar tecnología que ayude al ser humano y facilite los procesos de producción en invernaderos apoyándose de herramientas electrónicas, eléctricas y de conocimientos de formación técnica, impulsando de esta manera, el desarrollo de las personas en los ámbitos social, económico, tecnológico eh inclusive, en la misma salud derivado de la alta calidad generada en sus productos apoyados la la gran herramienta que supone éste proyecto.
ANEXO I
Tarjeta de desarrollo Arduino
Arduino es una plataforma de hardware libre, basada en una placa con un micro- controlador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los micro-controladores más usados son el Atmega 168, Atmega 328, Atmega 1280, ATmega 8 por su sencillez y bajo costo que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que corre en la placa.
Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software del ordenador (por ejemplo: Macromedia Flash, Processing, Max / MSP, Pure Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. Al ser open-hardware, tanto su diseño como su distribución, es libre. Es decir, puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia.
Arduino UNO Rev. 3
El nuevo Arduino Uno R3, además de todas las características de la placa anterior, ahora utiliza una ATmega16U2 en lugar de la 8U2 (o el FTDI encontrado en las generaciones anteriores). Esto permite tasas de transferencia más rápida y más memoria. No necesita drivers para Linux o Mac (el archivo inf para Windows es necesario y se incluyen en el IDE de Arduino).
El Uno R3 también añade dos nuevos pines colocados cerca del pin RESET. Uno de ellos es el IOREF que permiten que los Shields puedan adaptarse a la tensión suministrada desde la tarjeta. El otro es una terminal no conectada y se reserva para usos futuros. El Uno R3 trabaja con todos los Shields existentes, pero se puede adaptar a nuevos Shields que utilizan estos pines adicionales.
Características:
Microcontrolador ATmega328 Tensión de funcionamiento 5V
Voltaje de entrada (recomendado) 7-12V Voltaje de entrada (limites) 6-20V
Pines I/O Digital 14 (de los cuales 6 proporcionan salida PWM) Pines de entrada analógica 6
Corriente DC para pin I/O 40 a Corriente DC por Pin 3.3V 50 a
Memoria Flash 32 KB ( ATmega328 ) de los cuales 0,5 KB utilizado por gestor de arranque
SRAM 2 KB ( ATmega328 ) EEPROM 1 KB ( ATmega328 ) Velocidad del reloj 16 MHz
Alimentación
La Arduino Uno puede ser alimentada a través de la conexión USB o con una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente.
La alimentación externa (no USB) puede ser un adaptador de corriente alterna a corriente continua (eliminador) o una batería. El adaptador puede conectarse a través de un conector de 2.1mm centro-positivo en el jack de alimentación de la placa. Para el uso de una batería se pueden insertar en los pines cabezales Gnd y Vin del conector de alimentación.
La junta puede operar en un suministro externo de 6 a 20 voltios. Si se proporcionan menos de 7V, sin embargo, el pin de 5V puede proporcionar menos de cinco voltios y la tarjeta puede ser inestable. Si se utiliza más de 12V, el regulador de voltaje se puede sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12 voltios.
Los pines de alimentación son como sigue:
VIN.Es la tensión de entrada a la placa Arduino, cuando se utiliza una fuente de alimentación externa (en lugar de los 5 voltios de la conexión USB o de otra fuente de alimentación regulada). Se puede suministrar tensión a través de esta entrada/pin.
5V.Este pin suministra una tensión regulada de 5V de salida para componentes en la placa. Su corriente eléctrica es limitada y no se recomienda usar esta terminal para otros componentes ajenos a la placa.
3V3.Una tensión de alimentación de 3.3V generado por el regulador de la placa. Consumo de corriente máxima es de 50 mA.
Memoria
El ATmega328 tiene 32 KB (con 0.5 KB utilizado para el gestor de arranque). También tiene 2 KB de SRAM y 1 KB de memoria EEPROM (que puede ser leído y escrito por la biblioteca EEPROM ).
Entrada y salida
Cada uno de los 14 pins digitales en el Arduino Uno se puede usar como una entrada o salida, utilizando las funciones pinMode () , digitalWrite () , y digitalRead (). Funcionan a 5 voltios. Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una resistencia interna de pull-up (desconectada por defecto) de 20-50 kOhmios. Además, algunos pines tienen funciones especializadas:
Comunicación Serie: 0 (RX) y 1 (TX)Se utiliza para recibir (RX) y transmitir (TX) datos TTL serie. Estos pines están conectados a los pines serie correspondientes del chip ATmega8U2 USB-a-TTL.
Interrupciones externas: 2 y 3.Estos pines pueden ser configurados para activar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor. Ver la función attachInterrupt () para más detalles.
PWM: 3, 5, 6, 9, 10, y 11.Proporcionar salida de 8-bits PWM con la función analogWrite ().
Comunicación SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).Estos son pines de apoyo de comunicación SPI utilizan la biblioteca SPI.
LED: 13.Hay un LED en-operación conectado al pin digital 13. Cuando el pin es de alto valor, el LED está encendido, cuando el éste está en valor bajo, el estado es apagado.
El Arduino Uno tiene 6 entradas analógicas, con la etiqueta A0 a A5, cada uno de los cuales proporcionan 10 bits de resolución (es decir, 1024 valores diferentes). Por defecto se mide desde tierra a 5 voltios, aunque es posible cambiar el extremo superior de su rango usando el pin AREF y la función analogReference (). Además, algunos pines tienen funciones especializadas:
TWI: pines A4 o SDA y pines A5 o SCL. Soporte de comunicación TWI usando la biblioteca WIRE.
Hay un par de otros pines en la placa:
AREF.Tensión de referencia para las entradas analógicas. Se utiliza con analogReference ().
Reset.Ponga esta línea en estado Bajo para reiniciar el microcontrolador. Normalmente se utiliza para agregar un botón de reinicio a los Shields que bloquean la placa arduino uno.
Intercomunicación
Arduino Uno tiene un número de facilidades para la comunicación con un ordenador, otras tarjetas Arduino, u otros microcontroladores.
El ATmega328 ofrece comunicación serial UART TTL de 5V, que está disponible en los pines digitales 0 (RX) y 1 (TX). Con el software en el ordenador un ATmega16U2 sobre sus canales de comunicación serie a través de USB, aparece como un puerto COM virtual. El firmware 16U2 utiliza los controladores estándar USB COM, y no es necesario ningún controlador externo. Sin embargo, en Windows, el archivo inf es requerido. El software de Arduino incluye un monitor de serie que permite simples datos de texto que se envían desde y hacia la placa Arduino. El LED RX y TX en la placa parpadea cuando los datos se transmiten a través del chip USB a serie y la conexión USB al ordenador (pero no para la comunicación en serie en los pines 0 y 1).
La biblioteca SoftwareSerial permite la comunicación serial en cualquiera de los pines digitales de la Arduino UNO.
El ATmega328 también es compatible con comunicación I2C (TWI) y SPI. El software de Arduino incluye una librería Wire para simplificar el uso del bus I2C.
Programación
Arduino Uno se puede programar con el software Arduino. Seleccione "Arduino Uno del menúHerramientas>Placa (de acuerdo con el microcontrolador de su placa).
El ATmega328 en la Arduino Uno viene precargado con un gestor de arranque que le permite cargar nuevo código a la misma sin el uso de un programador de hardware externo. Se comunica con el protocolo original STK500 (de referencia, archivos de cabecera C).
También puede pasar por alto el gestor de arranque y programar el microcontrolador a través de la cabecea ICSP (programación serial In-Circuit). El código fuente del firmware para el ATmega16U2 (8U2 en los tableros de REV1 y REV2) está disponible. El ATmega16U2 / 8U2 se carga con un cargador de arranque DFU, que puede ser activado por:
En placas Rev1: conectar el puente de soldadura en la parte posterior de la
tarjeta y luego reiniciar el 8U2.
En Rev2 o placas posteriores: hay una resistencia que poner a tierra de la
encabezado ISP con un programador externo (sobrescribir el gestor de arranque DFU).
Reset Automático (Software)
En lugar de requerir un botón físico de reset antes de una carga en el microcontrolador, el Arduino Uno está diseñado de una manera que permite que se restablezca por software que se ejecuta en un ordenador conectado. Una de las líneas de control de flujo por hardware (DTR) de la ATmega8U2 / 16U2 está conectada a la línea de reposición de la ATmega328 mediante un condensador de 100 nanofaradios. Cuando esta línea se afirma (puesta en nivel bajo), la línea de restablecimiento pasa el tiempo suficiente para restablecer el chip. El software de Arduino utiliza esta capacidad que le permite cargar el código con sólo pulsar el botón de carga en el entorno Arduino. Esto significa que el gestor de arranque puede tener un tiempo de espera más corto, por lo tanto, la disminución de DTR puede estar bien coordinada con el inicio de la carga.
Esta configuración tiene otras implicaciones. Cuando el Uno se conecta a un ordenador con Mac OS X o Linux, se restablece cada vez que se realiza una conexión a la misma desde el software (a través de USB). Cerca del siguiente medio segundo, el gestor de arranque se ejecuta en la UNO. Mientras que está programado para ignorar datos erróneos (es decir, además de una carga de nuevo código), se interceptan los primeros bytes de datos enviados a la placa después de abrir una conexión. Si un esquema que se ejecuta en la placa recibe una sola configuración o de otros datos cuando se inicia por primera vez, debe asegurarse de que el software con el que se comunica, espera un segundo después de abrir la conexión y antes de enviar los datos.
El Uno contiene una traza que se puede cortar para desactivar el auto-reset. Las almohadillas a ambos lados de la traza se pueden soldar juntas para volver a
habilitarla. Esto marcará "RESET-EN". También puede ser capaz de desactivar el reinicio automático mediante la conexión de una resistencia de 110 ohm de 5V a la línea de reset.
Protección contra sobre corriente USB
Arduino Uno tiene un Poli-fusible reseteable que protege los puertos USB de tu ordenador de cortocircuitos y sobre-corrientes. Aunque la mayoría de las computadoras ofrecen su protección interna, el fusible proporciona una capa adicional de protección. Si hay más de 500 mA se aplica al puerto USB, el fusible automáticamente romper la conexión hasta que el cortocircuito o una sobrecarga se retira.
Características físicas
La longitud máxima y la anchura del PCB Uno son 2.7 y 2.1 pulgadas, respectivamente, con el conector USB y el conector eléctrico se extiende más allá de la dimensión anterior. Cuatro agujeros de tornillo permiten a la placa que se incorpore a una superficie o contenedor. Tenga en cuenta que la distancia entre los pines digitales 7 y 8 es de 160 milésimas de pulgada (0.16 "), no como un múltiplo de la separación de 100 milésimas de pulgada de los otros pasadores.
ANEXO II
Arduino Ethernet Shield
Para usar la Ethernet Shield solo hay que montarla sobre la placa Arduino. Para cargar los sketches a la placa conectarla al ordenador mediante el cable USB como
se hace normalmente. Una vez que el sketch ha sido cargado se puede desconectar la placa del ordenador y alimentarla desde una fuente externa.
Se debe conectar la Ethernet Shield a un ordenador, a un switch o a un enrutador utilizando un cable ethernet standard (CAT5 o CAT6 con conectores RJ45).
El Shield Ethernet Arduino conecta la placa Arduino a Internet en cuestión de minutos. Sólo tiene que conectar este módulo a su placa Arduino, conéctelo a su red con un cable RJ45 y siga algunas instrucciones sencillas para empezar a controlar su proyecto a través de Internet. Como siempre con Arduino, todos los elementos de la plataforma - hardware, software y documentación - es de libre acceso y de fuente abierta.
- Requiere una placa Arduino
- 5V Tensión de funcionamiento (suministrado por la placa Arduino) - Conexión de velocidad: 10/100Mb
- Conexión con Arduino en el puerto SPI
Descripción
El Shield Ethernet está basado en el chip ethernet Wiznet W5100. El Wiznet W5100 ofrece una red (IP) de pila capaz de soportar los protocolos TCP y UDP. Admite hasta cuatro conexiones de socket simultáneas. Utilice la biblioteca de Ethernet para escribir sketches que se conectan a Internet a través del Shield. El Shield de Ethernet se conecta a una placa Arduino utilizando Headers macho y hembra que embonan perfectamente y que mantiene la disposición de pines intacto y permite que otro escudo/Shield pueda ser apilado en la parte superior.
El Shield Ethernet tiene una conexión estándar RJ -45, con un transformador de línea integrado y alimentación a través de Ethernet activado.
Hay una ranura para tarjetas micro SD en algunos modelos, que se puede utilizar para almacenar archivos para servir a través de la red. Es compatible con el Arduino Uno y Mega (utilizando la librería Ethernet). El lector de tarjetas microSD en el shield es accesible a través de la Biblioteca SD. Cuando se trabaja con esta biblioteca, SS es el Pin 4. La revisión original del escudo contiene una ranura para tarjetas SD de tamaño completo, la que no es compatible.
La placa también incluye un controlador de reajuste, para asegurarse de que el módulo W5100 de Ethernet se restablece adecuadamente tras el encendido.
Una vez montado el Shield a la placa Arduino Maestra, podemos utilizar el siguiente Sketch o código fuente para establecer una comunicación entre la placa Arduino y el internet; hay que recordar que éste código habilita al arduíno como un pequeño server donde se encuentra alojada una pequeña pagina web que puede ser vista en una computadora cliente o algún dispositivo Smart con acceso a internet.
#include <SPI.h> #include <Ethernet.h>
// Inicia la libreria Ethernet server con el puerto 80 (por defecto el puerto HTTP). EthernetServer server(80);
void setup() {
// Inicia el puerto serie. Serial.begin(9600);
// Inicia la conexión Ethernet y el servidor. Ethernet.begin(mac, ip);
server.begin();
Serial.print("IP local del servidor "); Serial.println(Ethernet.localIP()); }
void loop() {
EthernetClient client = server.available(); // Escucha a los clientes entrantes. if (client) { // Si un cliente se conecta al servidor:
Serial.println("Nuevo cliente");
boolean currentLineIsBlank = true; // Marcador para enviar la respuesta desde el servidor. while (client.connected()) { // Repite mientas existe clientes conectados:
if (client.available()) { char c = client.read();
Serial.write(c); // Imprime por el puerto serie la petición del cliente (caracter a caracter)
if (c == '\n' && currentLineIsBlank) { // Se envía la respuesta a una petición de un cliente cuando a finalizado la petición:
// Respuesta:
client.println("HTTP/1.1 200 OK"); // Enviar un encabezado de respuesta HTTP estándar client.println("Content-Type: text/html");
client.println("Connection: close"); // Se cerrará la conexión después de enviar la respuesta.