Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CHIMBORAZO
Redes de Computadores
Tema:
Docente:
Ing. Diego Veloz
Paralelo:
Quinto “B”
Fecha:
03-12-2018
I. TEMA
II. RESUMEN
El presente proyecto consiste en el desarrollo de una aplicación la cual permite
monitoreo y registro de un cultivo en invernadero a través de la implementación de
diversos dispositivos (microcontrolador, sensores, GSM/GPRS SIM900), para
brindar al usuario un historial de las mediciones de las variables físicas más relevantes
(Temperatura, humedad relativa, luminosidad y humedad del suelo) en todo el
proceso de desarrollo del cultivo.
Para lograr dichas medidas se utilizarán diferentes tipos de sensores los cuales
arrojaran medidas calibradas de las variables de interés sensadas de forma iterada en
el transcurso del tiempo, estos sensores estarán conectados a un dispositivo
microcontrolador de la familia Arduino, el cual recibirá los datos y los enviara a través
de GSM/GPRS SIM900 a una aplicación de IoT “Thingspeak”, luego de esto se
realizara una representación gráfica detallada en intervalos de tiempo y rangos de
medida, para poder observar el comportamiento de las variables a través del tiempo.
III. INTRODUCCIÓN
Existen alrededor de 30mil especies de orquídeas en la naturaleza a nivel mundial. Los
principales exportadores son Francia, Alemania, Estados Unidos y Japón, en la actualidad
los países sudamericanos han aumentado su inserción en la exportación y producción de
orquídeas, especialmente Colombia, Perú y Ecuador. Por la biodiversidad climática y
suelos fértiles Ecuador posee el 14% de las especies a nivel mundial, cuenta con 219
géneros de orquídeas, 4125 especies calcificadas y 1301 especies endémicas. Las
orquídeas son consideradas flores de verano y se han convertido en los productos de más
exportación después del petróleo y el banano. Según datos del instituto de promoción de
exportaciones e inversión del Ecuador, los ingresos por exportación de flores de verano,
solo en el 2014 represento 202 millones de dólares y 35 mil toneladas de flores de verano,
representando un crecimiento del 7% en ingresos y 8% en toneladas de orquídeas
exportadas
Existen diferentes sistemas para monitorear invernaderos, algunos están basados en el bus
de comunicación 232, 485, este tipo se sistemas realizan el monitoreo de las variables
climatológicas. Pero su trasmisión de datos y comunicación entre dispositivos es
mediante una red cableada, lo cual limita el área a cubrir, la adición de nodos en la red,
difícil instalación e implantación debido al medio físico que conecta entre los diferentes
puntos del sistema, así como el mantenimiento le genera costos elevados al usuario. Una
solución a las limitaciones presentes por estos sistemas, fue el desarrollo de una red
alámbrica de sensores desarrollada con tecnología GSM y Radio Frecuencia , este tipo de
sistemas presentan ventajas, por fácil instalación, mantenimiento y expansión de la red,
pero el hardware para su implantación es muy costoso para pequeños productores.
El objetivo es diseñar una red alámbrica de sensores que permita monitorear un
invernadero de orquídeas, las variables más importantes a medir son temperatura,
humedad relativa, luminosidad y humedad del suelo. El sistema se basa en el estándar
GPRS o Servidor General de Paquetes vía Radio (Es una evolución del sistema GSM).
IV. Objetivos
Desarrollar un sistema automático que permita el monitoreo de las variables
físicas, temperatura, humedad relativa, humedad del suelo y luminosidad,
posteriormente estos datos serán transmitidos por el estándar GPRS, los
resultados obtenidos serán visualizados en la aplicación del internet de las cosas
Thingspeak.
Objetivos Específicos
Diseñar un sistema de instrumentación y medida para variables de
Temperatura, humedad relativa y humedad del suelo y luminosidad.
Obtener resultados gráficos de las mediciones tomadas en el invernadero
utilizando la plataforma Thingspeak.
V. Marco Teórico
5.1 Características de Cuidado y desarrollo de las Orquídeas
La familia de las orquídeas es considerada una especie complicada de cultivar.
Principalmente por su taxonomía. Por lo general para el cultivo se tiene dos
opciones:
Primero es la selección de la orquídea cuyos requerimientos climáticos estén dentro
de las posibilidades climáticas del lugar donde se va a trabajar.
Segundo es ajustar las condiciones climáticas del lugar, lo más aproximado a las
necesidades.
De manera general y dependiendo del tipo de planta, se necesitan de 5 factores para el
desarrollo de forma adecuada de la planta: luz, humedad, CO2, temperatura y
fertilización. En la figura 1.1 se presentan los valores de los diferentes factores a
considerar para el cultivo de la planta de manera óptima de la planta.
La topología en árbol está conformada por varias sub redes y en la cual el coordinador es
el encargado de formar el primer clúster. Pero este tipo de topología permite que el
coordinador pueda se precedido por otros routers que, de acuerdo a la ubicación del
destinatario en la topología de la red, se enrutaran los paquetes. Los dispositivos esclavos
no pueden comunicarse entre sí.
5.6 Redes
Es un conjunto de dispositivos conectados por enlaces de un medio físico. Un
nodo puede ser cualquier dispositivo como por ejemplo una computadora e
impresora capaz de enviar y/o recibir datos generados por otros nodos de la red.
Las utilidades del Internet de las Cosas pueden considerarse prácticamente infinitas. Cada
vez son más los medios que tenemos a nuestra disposición para implementar, de manera
no muy compleja, un posible dispositivo capaz de dotar a cierto objeto o función de una
conexión a la red, ya sea por medio de una tecnología u otra. [1]
5.8 GPRS
El estándar GPRS o Servicio General de Paquetes vía Radio (en inglés, General Packet
Radio Service) es una evolución del sistema GSM. Es también conocido como GSM++,
pero dado que se trata de un estándar de telefonía móvil intermedio entre la segunda
generación (2G) y la tercera (3G), a menudo recibe la nomenclatura de 2.5G. GPRS
extiende la arquitectura del estándar GSM para permitir la transferencia de datos mediante
conmutación de paquetes con velocidades de transferencia que rondan los 114 Kbps. Para
el acceso a la red de datos, el estándar GPRS utiliza el protocolo IP, mientras que, para el
transporte de voz, emplea la arquitectura de la red GSM. [1]
Ilustración 6. Datasheet de un gprs shield
La API de ThingSpeak siempre trabaja con datos, esa es su gran especialidad. Es una API abierta
para el Internet de las Cosas que permite recopilar, almacenar, analizar, visualizar y actuar sobre
la información recogida en sensores y dispositivos como aplicaciones web y móviles, redes
sociales como Twitter, soluciones de mensajería, VoIP y nube como Twilio, hardware de código
abierto como Arduino, Raspberry Pi o BeagleBone (los reyes del Internet de las Cosas y la
robótica) o con lenguajes de cálculo computacional como MATLAB... ThingSpeak es una API
conocida entre los desarrolladores y dispone ya de una gran comunidad.
ThingSpeak API funciona siempre con canales, los cuales contienen los campos de datos,
ubicación y estado. Para empezar a trabajar con esta interfaz es necesario crear un canal, donde se
recopilará la información de dispositivos y aplicaciones, datos que posteriormente se
pueden analizar y visualizar en gráficos. [2]
Ilustración
Figura 3.7. ThingSpeak
ThingSpeak
VI. Hadware
6.1 ARDUINO MEGA 2560
El modelo DHT22 es un sensor de humedad y temperatura que permite medir las dos
variaciones simultáneamente, es de bajo costo con una interface digital, posee un
protocolo de comunicación serial propio, ocupa una conexión de sus pines para cada
uno de las variables que se desean medir. Sus elementos de conexión están conectados a
un chip de 8 bits, cada sensor de este modelo es compensado por temperatura y
calibrado en cámara de calibración precisa y el coeficiente de calibración se guarda en
el tipo de programa en la memoria OTP, cuando el sensor detecta la variación de
humedad o temperatura [3].
Ilustración 10. Sensor DHT22
Este sensor puede leer la cantidad de humedad presente en el suelo que lo rodea. Es un
sensor de baja tecnología, pero es ideal para el seguimiento de un jardín urbano o un
cultivo. Se trata de una herramienta indispensable para saber el estado de humedad del
suelo. Cuenta con dos sondas para pasar corriente eléctrica a través del suelo circundante,
y luego lee la resistencia para obtener el nivel de humedad. Más agua hace que el suelo
conduzca la electricidad con mayor facilidad (menos resistencia), mientras que el suelo
seco es un mal conductor de la electricidad (más resistencia).
Será útil para recordarle que debe regar las plantas o para monitorear la humedad del
suelo en su jardín o cultivo [4].
Un LDR es un dispositivo cuya resistencia varía de acuerdo con la cantidad de luz que
reciba. Son muy útiles para proyectos de control de iluminación, seguidores solares,
interruptores crepusculares entre otros.
La salida digital posee solo 2 estados: activo/apagado, el cambio de un estado a otro
depende del umbral que se fije con el potenciómetro del módulo. La salida digital puede
utilizarse para controlar un relay y así realizar una acción dependiente de la intensidad de
luz.[5]
Para la visualización de los datos de los sensores fue necesaria la utilización de una
aplicación del internet de las cosas Thingspeak la cual ofrece a sus usuarios hasta un
registro de cuatro campos.
a. Registrarse
d. Crear canal
VIII. BIBLIOGRAFIA
pinMode(30, OUTPUT);
pinMode(31, OUTPUT);
pinMode(52, OUTPUT);
pinMode(53, OUTPUT);
pinMode(relay, OUTPUT);
digitalWrite(relay,HIGH);
digitalWrite(52, LOW);
digitalWrite(53, LOW);
Serial.println("Iniciando...DHT22 test!");
dht.begin();
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
}
void loop() {
conta++;
luz=analogRead(lightPin);//leemos luminosidad
humsuelo=analogRead(humsueloPin);//leemos humedad del suelo
hpor=(humsuelo/1023.0)*100.0;
delay(10);
float h = dht.readHumidity(); //Leemos la Humedad
float t = dht.readTemperature(); //Leemos la temperatura en grados Celsius
Serial.print("Temperatura=");
Serial.print(t);
Serial.println("*C");
Serial.print("Humedad de Ambiente=");
Serial.print(h);
Serial.println("%");
Serial.print("Luminosidad=");
Serial.print(luz);
Serial.println("lx");
Serial.print("Humedad del Suelo=");
Serial.print(hpor);
Serial.println("%");
Connect2Server(); // Establishing connection
Field1(t); // Uploading to field 1 of Thingspeak
EndConnection(); // Terminating connection
Connect2Server();
Field2(h); // Uploading to field 2 of Thingspeak
EndConnection();
Connect2Server();
Field3(luz); // Uploading to field 2 of Thingspeak
EndConnection();
Connect2Server();
Field4(hpor); // Uploading to field 2 of Thingspeak
EndConnection();
}
void Connect2Server()
{
mySerial.println("AT");
delay(200);
mySerial.println("AT+CPIN?");
delay(200);
mySerial.println("AT+CREG?");
delay(200);
mySerial.println("AT+CGATT?");
delay(200);
mySerial.println("AT+CIPSHUT");
delay(200);
mySerial.println("AT+CIPSTATUS");
delay(1000);
mySerial.println("AT+CIPMUX=0");
delay(1000);
ShowSerialData();
ShowSerialData();
ShowSerialData();
ShowSerialData();
mySerial.println("AT+CIPSPRT=0");
delay(1000);
ShowSerialData();
mySerial.println("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",\"80\"");//start up
the connection
delay(2000);
ShowSerialData();
ShowSerialData();
delay(2000);
ShowSerialData();
mySerial.println((char)26);//sending
delay(4000);//waitting for reply, important! the time is base on the condition of
internet
mySerial.println();
ShowSerialData();
}
void Field3(int data) {
String str = "GET
http://api.thingspeak.com/update?api_key=7GQKVFDO1L7K0EHW&field3=" + String
(data);
mySerial.println(str);//begin send data to remote server
delay(2000);
ShowSerialData();
mySerial.println((char)26);//sending
delay(4000);//waitting for reply, important! the time is base on the condition of
internet
mySerial.println();
ShowSerialData();
}
void Field4(int data) {
String str = "GET
http://api.thingspeak.com/update?api_key=7GQKVFDO1L7K0EHW&field4=" + String
(data);
mySerial.println(str);//begin send data to remote server
delay(2000);
ShowSerialData();
mySerial.println((char)26);//sending
delay(4000);//waitting for reply, important! the time is base on the condition of
internet
mySerial.println();
ShowSerialData();
}
void EndConnection() {
mySerial.println("AT+CIPSHUT");//close the connection
delay(100);
ShowSerialData();
void ShowSerialData()
{
while(mySerial.available()!=0)
Serial.write(mySerial.read());
}