Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DEL LITORAL
PROYECTO DE LABORATORIO DE
TELECOMUNICACIONES
I TRMINO 2016-2017
1.
OBJETIVOS
OBJETIVO GENERAL
Establecer una red de sensores acuticos en espacios
grandes.
Disear y establecer una red de sensores inalmbricos que
permitan monitorear y controlar una estacin de cultivo
acutico.
OBJETIVOS ESPECIFICOS
Utilizacin de sensores de temperaturas y de oxigeno
dentro de un medio acutico
Comparar el consumo de energa y calidad de servicio de
una red de sensores en un entorno acutico.
Optimizacin de la produccin del camarn mediante el
cuidado de los parmetros de crecimiento de los mismos
Poder establecer una comunicacin a travs de mdulos
inalmbricos para la transmisin de datos importantes.
Obtener la adquisicin de datos a travs de una interfaz
terminal por medio de una conexin TELNET a travs de un
sistema embebido.
Implementar un sistema experimental de monitoreo
ambiental basado en una red inalmbrica de sensores.
Registrar el consumo de energa y calidad de servicio para
varias configuraciones de la red inalmbrica de sensores
de
2.
JUSTIFICACION
3.
MARCO TEORICO
como
como
radiar
estas
TECNOLOGA ZIGBEE
COMPONENTES DE LA RED
La red ZigBee est compuesta por tres dispositivos diferentes
segn su funcionalidad, que son: ZC, ZR y ZED.
COORDINADOR: Organizar la red de rea personal
ENRUTADOR: Interconectar dispositivos de diferente
topologa de la red, sirve como repetidor porque es el
encargado del enrutamiento de los mensajes mediante
mltiples saltos.
DISPOSITIVO FINAL: Es un elemento bsico, puede ser un
sensor o un actuador; no puede transmitir informacin
destinada a otros dispositivos, por lo tanto, la mayor parte
del tiempo pasa en estado sleep permitiendo el ahorro
de energa.
SENSOR DE OXIGENO ATLAS SCIENTIFIC
El sensor de oxigenacin Atlas nos brindar datos muy
importantes en cuanto a la oxigenacin del agua que se
encuentra dentro de una superficie que vamos a estudiar, a
continuacin mostramos las aplicaciones y las especificaciones
que nos brinda este sensor:
Aplicaciones Tpicas
ESPECIFICACIONES
Rango: 0-35 mg / L
Material del cuerpo: Epoxi y Noryl
Temperatura mxima: 50 C
Presin mxima: 690 kPa (100PSI)
La profundidad mxima de 60 m (197 pies)
La calibracin de un solo punto en el aire
La longitud del cable: 1 metro
Peso: 52 gramos
Dimensiones: 16,5 mm x 116 mm (0,65 "x 4,57")
conector BNC
Sistema Embebido
ARDUINO INTEL-GALILEO
Galileo es una placa electrnica basada en el procesador Intel
Quark SoC procesador de aplicaciones X1000, un sistema de
clase Pentium Intel de 32 bits en un chip ( ficha tcnica ). Es la
primera mesa basado en la arquitectura Intel diseado para
ser compatible con pin de hardware y software con escudos
Arduino diseados para el Uno R3. Pines digitales 0 a 13 (y la
AREF adyacente y pines GND), entradas analgicas de 0 a 5, el
cabezal de alimentacin, jefe de ICSP, y los pines del puerto
UART (0 y 1), estn todos en los mismos lugares que en la
Arduino Uno R3. Esto tambin se conoce como el Arduino 1,0
pinout.
Galileo est diseado para soportar los escudos que operan en
cualquiera de 3.3V o 5V. La tensin de funcionamiento bsico
de Galileo es 3.3V. Sin embargo, un puente en la placa permite
la traduccin de voltaje a 5V a los pines de E / S. Esto
proporciona soporte para escudos Uno de 5V y es el
comportamiento por defecto. Al cambiar la posicin del puente,
la traduccin de tensin se puede desactivar para proporcionar
un funcionamiento de 3,3 V en los pines de E / S.
BEAGLEBONE BLACK
Procesador: AM335x 1 GHz ARM Cortex-A8
Conectividad
Compatibilidad de software
4.
Debian
Android
Ubuntu
Cloud9 IDE en Node.js w biblioteca / BoneScript
DISEO
5.
IMPLEMENTACION
int k = 0;
int f = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
snprintf (test, 50, "Nodo: 2 Temperatura: 32 Oxigenacion: 100
");// para probar el codigo de manera local grabo la trama en
una cadena llamada test.
// if (Serial.available() > 0){ // con esto verifico que me llegue
algo (trama), caso contrario no pasa nada.
// // el codigo lo ubico aqui cuando este levantada la
comunicacion via ethernet, mientras tanto el codigo va fuera.
//
i = 0;
//
var = Serial.read();
//
while(var != '\0'){
//
test[k] = var;
//
//
k = 0;
// }
}
i++; // si encuentra un espacio en blanco termina de guardar
en el string nodo y aumenta i en 1 para si vuelve a encontrar
un ':' el proximo valor lo guardara en temp y luego en oxi.
if (i == 3){ // si llego al ultimo valor, es decir 2 ya no me
interesa nada mas y encero mis variables contadoras.
j = 0;
}
Serial.println(nodo); // imprimo lo que he descifrado
Serial.println(temp);
Serial.println(oxi);
}
Nodo 1:
#include <SoftwareSerial.h>
#define rx 2
#define tx 3
SoftwareSerial myserial(rx, tx);
going to work
void serialEvent() {
//if the hardware serial port_0 receives a
char
inputstring = Serial.readStringUntil(13);
//read the string until we see a
<CR>
input_string_complete = true;
}
void loop() {
if (input_string_complete){
received in its entirety
myserial.print(inputstring);
Scientific product
//here we go...
//if a string from the PC has been
//send that string to the Atlas
myserial.print('\r');
//add a <CR> to the end of the string
inputstring = "";
//clear the string
input_string_complete = false;
//reset the flag used to tell if we
have received a completed string from the PC
}
if (myserial.available() > 0) {
//if we see that the Atlas Scientific
product has sent a character
char inchar = (char)myserial.read();
//get the char we just received
sensorstring += inchar;
//add the char to the var called
sensorstring
if (inchar == '\r') {
//if the incoming character is a <CR>
sensor_string_complete = true;
//set the flag
}
}
if (sensor_string_complete== true) {
//if a string from the Atlas
Scientific product has been received in its entirety
Serial.println(sensorstring);
//send that string to the PC's serial
monitor
if (isdigit(sensorstring[0])) {
//if the first character in the string is a
digit
DO = sensorstring.toFloat();
//convert the string to a floating
point number so it can be evaluated by the Arduino
tempC = analogRead(tempPin);
tempC = (5.0 * tempC * 100.0)/1024.0;
Serial.print("Temperatura2: ");
Serial.print(tempC);
Serial.println();
if (DO >= 6.0) {
//if the DO is greater than or equal to 6.0
Serial.println("high");
}
if (DO <= 5.99) {
//if the DO is less than or equal to 5.99
Serial.println("low");
}
}
sensorstring = "";
//clear the string
sensor_string_complete = false;
//reset the flag used to tell if we
have received a completed string from the Atlas Scientific product
}
}
Nodo 2:
#include <DHT11.h>
int pin=2;
DHT11 dht11(pin);
float tempC;
int tempPin = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int err;
float temp, hum;
if((err = dht11.read(hum, temp)) == 0) // Si devuelve 0 es que ha leido
bien
{
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.print(" Humedad: ");
Serial.print(hum);
tempC = analogRead(tempPin);
tempC = (5.0 * tempC * 100.0)/1024.0;
Serial.print("Temperatura2: ");
Serial.print(tempC);
Serial.println();
}
else
{
Serial.println();
Serial.print("Error Num :");
Serial.print(err);
Serial.println();
}
delay(1000);
6.
BIBLIOGRAFIA