Unlam GalileoGen1 proyecto - Sensor de temperatura

Documentación - Proyecto Sistemas Embebidos

Conexión a la placa mediante el cable USB – micro USB

Primero se procedió a hacer la conexión entre la placa y equipo cable Host mediante el USB – micro USB.

Una vez hecho esto se ejecutó el código formulan la solución sugerida en la misma página de Intel, provista por la Cátedra para emular una consola de Linux mediante el IDE de Arduino: Telnet el pobre hombre (o "Telnet del hombre pobre").

Una vez compilado y ejecutado este código, se acceder a herramientas -> Serial Monitor.

En este monitor se pueden ejecutar comandos de Linux nos devolverán información de la placa. En este caso lo usamos para chequear cual es la dirección IP le fue pasar.

La de at internet configuración del puente de red para tener Placa

Los siguientes pasos muestran la forma en se configuró el equipo anfitrión, haciendo un puente entre el Adaptador de Red Ethernet y el Wi-Fi, para la placa Intel Galileo pueda tener acceso a Internet.

Primero se procedió a hacer la conexión entre la placa y el equipo rojo de de Host mediante el cable.

Una vez hecho esto, desde el equipo Host se ingresó un Panel de Control -> ver estado de red y las tareas -> Cambiar configuración del adaptador.

Luego, se procede a seleccionar ambos adaptadores y con botón derecho seleccionar "Conexiones de puente".

Al hacer esto el sistema comienza a generar el puente, esta operación demora unos minutos.

Al finalizar el puente, podemos ver como se agrega un nuevo icono en nuestras conexiones.

Lo siguiente el de sacar es Wi-Fi del puente, como se ve en la siguiente imagen.

Pero luego de hacer esto, debemos volver a incluirlo, para esto, lo hacemos es hacer clic con el botón derecho sobre Wi-Fi e ir a las propiedades y en esta ventana, ir a la de esta "compartiendo" y stigmatic el primer checkbox y seleccionar la opción "Puente de red" del combo.

Al terminar este procedimiento, veremos tanto el adaptador Ethernet y el Wi-Fi están puenteados, pero además, este último también aparece compartido ("compartido").

Para finalizar la configuración, podemos chequear haya conexión entre el equipo Host y la placa de la siguiente manera:

Primero abrimos una comando de ventana en equipo de el Host y el de mediante comando "ipconfig" chequeamos la dirección IP pasar al puente creado anteriormente.

Telnet como fue explicado con anterioridad de esto puede verificarse utilizando el pobre hombre.

Por ultimo mostramos como ingresando a la placa utilizando el masilla, se verifico haya comunicación entre la placa y el equipo anfitrión, utilzando el comando "ping".

De esta forma nos aseguramos la placa está accediendo a internet mediante el cable Ethernet cuyo adaptador esta puenteado al Wi-Fi.

Código Fuente

Bibliotecas Utilizadas:

 #include <Wire.h> 

Esta biblioteca le permite comunicarse con recubrimiento I2C / TWI y facilitar las funciones.

Esta librería está incluida el en IDE de Arduino cuántos.

 #include "rgb_lcd.h" 

Esta biblioteca permite interactuar con escudo de la pantalla LCD y teclas. Se encarga de traducir los comandos a través del puerto de expansión. Esta biblioteca no está incluida en el IDE de arduino, Fue descargada desde este (https://github.com/Seeed-Studio/Grove_LCD_RGB_Backlight)

 #include <ethernet.h> 

Esta biblioteca permite la placa pueda la Kinnickinnic un internet. Puede servir como un servidor, aceptar conexiones entrantes o de un cliente realiza conexiones coger. La biblioteca es compatible con hasta cuatro conexiones la simultáneas (entrada o saliente o una combinación). Esta librería está incluida el en IDE de Arduino.

 #include <stdlib.h> 

(biblioteca estándar o biblioteca estándar)

Esta es la biblioteca estándar, permite utilizar las funciones Aritméticas, de números aleatorios y conversión de cadenas básicas se utilizan en todo el código. Esta biblioteca se encuentra incluida en el IDE de Arduino pero también se puede descargar desde el siguiente enlace: http://fullversion-net.eu/descargar-libreria-stdl...

Variables Utilizadas:

Estas Variables se utilizan para colorear las pantalla conectada al escudo, específicamente se settean los colores aparecerá en la misma.

 int colorR = 255; 
 int colorG = 255; 
 int colorB = 0; 

Las siguiente variables son necesarias para la toma, parseo y cálculo específico del valor proveniente del sensor de temperatura.

 const int b=3975; 
 float resistance; 
 float temperature; 

Por último estas variables son utilizadas para la comunicación con la página Web, lectura, y envío de datos, conexión con internet.

 String tempLimit = ""; 
 float tempLimitFloat = 0; 
 long previousMillis = 0; 
 unsigned long currentMillis = 0; 
 long interval = 5000; // INTERVALO DE LECTURA CADA 30 SEGUNDOS 
 String data; 
 EthernetClient client; 
 EthernetClient client2; 

En esta parte del código determinó un los pines 6 y 7 como salidas del bosquejo, la velocidad de la conexión serial e inicializo la pantalla lcd con los colores respectivos.

 void setup() 
 { 
 pinMode(6, OUTPUT); 
 pinMode(7, OUTPUT); 
 Serial.begin(115200); 
mientras (!. Serie) while (!Serial) { 
 ; // wait for serial port to connect. Needed for native USB port only 
 } 
 lcd.begin(16, 2); 
 lcd.setRGB(colorR, colorG, colorB); 
 delay(2000); 
 data = ""; 
 } 

Parte inicial del código dentro del bucle.

Inicio el String tempLimit, donde se guardará el valor de temperatura, fue seteado desde la página Web.

Género la conexión con la variable cliente2 es un EthernetClient, a través de la función conectar. Dirección la IP de la página los parámetros del hijo destino puerto de el y a utilizar para la comunicación.

Una vez hecha la conexión, se lee mediante un haz el archivo donde esta el dato se ingresó desde la página Web, como temperatura límite para el LCD

En caso que no se pueda conectar con el servidor se imprimirá en consola, "error de conexión"

 void loop() 
 { 
 tempLimit = ""; Inicio el String 
 Serial.println("connecting..."); 
Si (client2.connect ("soa.hol.es", 80)) if (client2.connect("soa.hol.es", 80)) { Conecto con la direcion IP de la pagina y el puerto 
 Serial.println("connected"); 
 client2.println("GET <a href="http://soa.hol.es/temperatura.dat" rel="nofollow"> http://soa.hol.es/temperatura.dat </a> HTTP/1.1"); Get del archivo a leer 
 client2.println("Host: soa.hol.es"); 
 client2.println("Connection: close"); 
 client2.println(); 
 } else { otra cosa Serial.println("connection failed"); 
 } 
 if (client2.available()) { 

En esta sección se lee el archivo temperatura.dat mediante un carbón (c) y se desestima el encabezado tiene solo inteligentes informativos y solo se toma el valor entre "|" es la temperatura se Sesteo desde la página Web principal. De esta forma queda la temperatura límite concatenada en la variable tempLimit.

Luego se convierte este String en flotante, con las ultimas tres lineas de esta porcion de codigo.

Si (client2.available()) char c; 
 while((c = client2.read()) != '|'); 
 while((c = client2.read()) != '|') { 
mientras que ((c = client2.read())! = ' |') tempLimit += c; 
 } 
 Serial.print(tempLimit); 
 char floatbuf[32]; // make this at least big enough for the whole string 
 tempLimit.toCharArray(floatbuf, sizeof(floatbuf)); 
 tempLimitFloat = atof(floatbuf); 
 } 
 if (!client2.connected()) 

Finalizando la consulta sobre la temperatura límite seteada se debe finalizar la conexión de la siguiente manera:

En caso de la conexión no viable de conectar de mar, se desconecta definitivamente y se para la conexión establecida por cliente2.

Y de todas formas en caso de vuelva a conectar tambien se para la conexión con el servidor.

 { 
 Serial.println(); 
 Serial.println("disconnecting."); 
 client2.stop(); 
 while (true); 
 } 
 if (client2.connected()) 
 { 
 client2.stop(); // Desconexión del servidor. 
 } 
 lcd.clear(); 
 int val = analogRead(pinTemp); 
 resistance=(float)(1023-val)*10000/val; // Cálculo intermedio para la temperatura 
 temperature=1/(log(resistance/10000)/b+1/298.15)-273.15; // Cálculo de la temperatura 
 // Si la temperatura es menor que el valor ingresado por la página web se colorea el lcd en azul y se muestra un mensaje. Caso contrario el lcd se colorea en rojo, muestra un mensaje y comienza a titilar un led. 
 if (temperature < tempLimitFloat) 
 { 
 digitalWrite(6, LOW); 
 colorR = 0; 
 colorG = 0; 
 colorB = 255; 
 lcd.setRGB(colorR, colorG, colorB); 
 lcd.print("Hace frio: "); 
 lcd.print(temperature); 
 } 
 else 
 { 
 colorR = 255; 
 colorG = 0; 
 colorB = 0; 
 lcd.setRGB(colorR, colorG, colorB); 
 lcd.print("Hace calor: "); 
 lcd.print(temperature); 
 digitalWrite(6, HIGH); 
 sleep(1); 
 digitalWrite(6, LOW); 
 sleep(1); 
 } 
 // Conversión de la variable temperature float a string. 
 String strEntero = String((int)temperature); 
 String strDecimal = String((int)((temperature-(int)temperature)*100)); 
 data = "temp1=" + strEntero + "." + strDecimal; 
 currentMillis = millis(); // Retorna el tiempo actual en milisegundos. 
 // Se comprueba que la diferencia sea menor a un intervalo dado. En caso de ser verdadero se conecta al servidor. Luego le vamos pasando la temperatura que va tomando el sensor. 
 if(currentMillis - previousMillis > interval) 
 { 
 previousMillis = currentMillis; 
 if (client.connect("soa.hol.es",80)) 
 { 
 client.println("POST /add.php HTTP/1.1"); 
 client.println("Host: soa.hol.es"); // SERVER ADDRESS HERE TOO 
 client.println("Content-Type: application/x-www-form-urlencoded"); 
 client.print("Content-Length: "); 
 client.println(data.length()); 
 client.println(); 
 client.print(data); 
 } 
 if (client.connected()) 
 client.stop(); 
 } 

SERVIDOR WEB

Add.php

Esta página recibe los datos enviados por la placa via POST e inserta el valor en una base de datos mysql alojada en un servidor web externo.

index.php

Esta página es la encargada de mostrar la vista al usuario con la temperatura real leída desde la base de datos utilizando para esto AJAX, logrando así realizar consultas asíncronas y actualizar la temperatura cada cierto intervalo de tiempo pecado refrescar la página.

Además de incluir un formulario por donde se puede establecer una temperatura máxima y la guarda en un archivo de texto (temperatura.dat) para posteriormente la placa pueda leer este valor y trabajar con el mismo.

Hardware y elementos Utilizados

MicroSD de 8gb Kingston, el de almacenar de clase 10 la utilizaremos para SO recomendado por la cátedra se puede descargar desde el siguiente enlace:

https://software.Intel.com/en-US/IOT/hardware/Gali...

Cable de Red, para garantizar una conexión de red por el cual se montará un puente, anteriormente explicado, y así tener acceso un gen Galileo internet desde la plaza 1.

Cable USB - MicroUSB, este es usado para conectar la PC remota con la placa y de esta manera sobre esta conexión, poder compilar el código desde la IDE de Arduino en la placa mediante un bosquejo utilizaremos.

Placa Intel Galileo gen 1, el corazón de este proyecto, a través de esta placa se ejecutan el bosquejo infinitamente y tiene los puertos para conectar los sensores y actuadores. También se utilizo el escudo.

Escudo de Arduino, este circuito ameliavillalobos la estandarización de conexiones para sensores y actuadores, en este caso utilizaremos las conexión digitales (pantalla LCD, LED) y las conexiones analógicas (sensor de temperatura)

Sensor de Temperatura, (incluyendo cable de conexión para la malla). Este sensor tomará la temperatura del ambiente utilizaremos para informar en la página Web.

Q LED(Incluido cable de conexión para shield, y el socket led) Este led se encenderá cuando la temperatura supere la temperatura límite, setteada desde la página Web. Conectar de permite el cable con la interfaz de la pantalla y el zócalo es el intermediario entre Informatica llevó el cable de este.

Q pantalla lcd (la imagen incluye el cable para conectar con la pantalla) En esta pantalla se visualizará todo el tiempo la temperatura medida por el sensor. Esta se encontrara de no color de azul mientras la temperatura real supere la temperatura límite, en caso de ser superada se verá de color Rojo.

El proyecto fue realizado en la universidad nacional de la matanza (Argentina, Buenos Aires).

La materia en la cual realizamos este proyecto es una materia de cuarto año de ingeniería informática llamada sistemas Operativos Avanzados. Los profesores tuvimos para este proyecto son:

Sebastian Barillaro Mariano Volker, Waldo A. Valiente, Carnuccio Esteban Andres.

Del proyecto: Nicolas Guerrero, Manfred Camacho, Hernán Condori, Agustin Jose Leitao Pinheiro

Etiquetas: Intel, Escudo, Galileo, GEN1, Unlam

Artículos Relacionados

Con un Sensor de temperatura

Con un Sensor de temperatura

Utilizando sensores electrónicos básicos, podemos construir nuestro propio detector de calor. El componente principal, que es el sensor de temperatura LM35DZ, se utiliza para medir la temperatura ambiente actual. Basado en la medición, el detector le
Cómo medir la temperatura con gran exactitud con un Arduino y un tablero de Sensor de temperatura de TSYS01.

Cómo medir la temperatura con gran exactitud con un Arduino y un tablero de Sensor de temperatura de TSYS01.

Mientras estudiaba en la Universidad fuimos desafiados como parte de un trabajo de curso en diseño de una caja con control de temperatura muy preciso. Si el proyecto fuera a tener éxito, múltiples cajas debían ser construido y utilizado en un proyect
Sensor de temperatura de Linkit uno

Sensor de temperatura de Linkit uno

En este instructable voy a cómo usted cómo se mide la temperatura utilizando un Linkit y un sensor de temperatura Lm35. Este proyecto puede ser parte de un monitor sin hilos del tiempo, si no has visto mi instructables anterior por favor, echa un vis
Sensores de temperatura usable para trabajo en frío extremo

Sensores de temperatura usable para trabajo en frío extremo

Cuando se trabaja en temperaturas extremas es importante controlar la temperatura de su cuerpo. En congelar el tiempo, sus dedos y dedos de los pies se entumecida y pueden desarrollar quemaduras sin siquiera notarlo. Además, si su base temperatura de
Sensor de temperatura / weatherstation

Sensor de temperatura / weatherstation

crear un monitor weatherstation o temperatura utilizando el sensor de temperatura digital muy chulo DS1820.Usar esta configuración para controlar una sala de servidores y como un weatherstation.Este proyecto consiste en:Una red de autobús 1-Wire de D
Sensor de temperatura inalámbrico simple actualización de sitio web con electric imp y termistor

Sensor de temperatura inalámbrico simple actualización de sitio web con electric imp y termistor

[Edición 2014] El planificador que fue utilizado por Imp eléctrico ya no es usado y no está disponible ya. [/Edit]Este es un pequeño proyecto para empezar con la eléctrica imp y un termistor para que pueda ver cómo puede obtener las lecturas de tempe
Cómo utilizar el Sensor de temperatura DS18B20 - Arduino Tutorial

Cómo utilizar el Sensor de temperatura DS18B20 - Arduino Tutorial

En este tutorial usted aprenderá cómo usar el sensor de temperatura DS18B20 con Arduino.La temperatura se imprimirá en el serial monitor de Codebender o el IDE de Arduino.Video de presentación:Antes de empezar vamos a ver más información de este sens
Sensor de temperatura DS18B20 con LCD

Sensor de temperatura DS18B20 con LCD

El DS18B20 viene en una forma de la sonda de temperatura, que es resistente al agua. Tuve un tiempo real duro tratando de conseguir este uno trabajo y he pensado que compartir cómo al final lo conseguí trabajando. ¡ Disfrute!Paso 1: partesLas piezas
Sensor de temperatura LM35 con registro de datos en tarjeta SD en Intel Edison

Sensor de temperatura LM35 con registro de datos en tarjeta SD en Intel Edison

-Muestra el uso de un sensor LM35 en Intel Edison para medir la temperatura durante largos períodos que van desde varias horas hasta semanas y registros de las lecturas de temperatura del sensor en una tarjeta SD insertada a bordo, todas las cosas ne
Bolsa de Nautilus de sensor de temperatura

Bolsa de Nautilus de sensor de temperatura

Se trata de un bolso tejido fieltro que incorpora un sensor de temperatura y humedad conectado a NeoPixels y un módulo de la pantalla. La luz de la pantalla varía con cambios de temperatura y datos precisos se muestran en la pantalla de LED en Fahren
Tutorial de Sensor de temperatura!

Tutorial de Sensor de temperatura!

¿Qué es un sensor de temperatura?Es bastante fácil de explicar, es un chip que le dice lo que la temperatura es un sensor de temperatura analógico!Estos sensores usan una técnica de estado sólida para determinar la temperatura. Es decir, no utilizan
Termómetro de Arduino usando el Sensor de temperatura LM35

Termómetro de Arduino usando el Sensor de temperatura LM35

Termómetro de Arduino usando el Sensor de temperatura LM35 es una muy simple de implementar Arduino basado en proyecto. Su inició un proyecto perfecto si usted es un principiante y acaba prácticamente pruebas proyectos de Arduino.En este proyecto nos
Termómetro digital en pantalla OLED con sensor de temperatura NodeMCU ESP8266 ESP-12E y DS18B20

Termómetro digital en pantalla OLED con sensor de temperatura NodeMCU ESP8266 ESP-12E y DS18B20

En mi anterior instructable le di una introducción a la ESP8266 y la programación con nuestro IDE de Arduino familiar.En este instructable voy a ir un paso más allá, conexión de un sensor digital de temperatura DS18B20 y mostrar la temperatura en gra
INVERNADERO, RACK de servidores, acuario y otros aparatos de temperatura SUPERVISOR con SMS sistema de alarma con Arduino, itbrainpower.net 3G / GSM escudos y 1WIRE SENSOR de temperatura

INVERNADERO, RACK de servidores, acuario y otros aparatos de temperatura SUPERVISOR con SMS sistema de alarma con Arduino, itbrainpower.net 3G / GSM escudos y 1WIRE SENSOR de temperatura

Sobre el proyectoConstruir usted mismo su propio control sistema con umbrales de temperatura máxima y mínimade la temperatura, mantener vivo masajes y paginación de SMS (oldies pero goldies como) y sistema de armado/desarmado remoto. Puede supervisar