El servidor de Web Super sencillo tiempo de Arduino (4 / 5 paso)

Paso 4: Presión barométrica

Hemos añadido el BMP-085 / punto de BMP180 Sensor de presión barométrica y los cálculos de índice de calor y rocío. El Sensor de presión barométrica tiene 4 conexiones, SDA (A4), SCL (A5), Gnd y VIN (5vdc). Ver http://arduinotronics.blogspot.com/2014/02/sensing-barometric-pressure.html para más detalles.

Adafruit BMP-180 se muestra a continuación, pero también han probado con el ICStation BMP-085. Sin cambios en el código o circuito. Ver http://arduinotronics.blogspot.com/2014/02/icstation-5v-bmp-085-pressure.html

Aquí está el código con todas las adiciones:

#include < Wire.h >
#include < Adafruit_BMP085.h >

flotador de Tc = 0;
flotador de Tf = 0;
Pa del flotador = 0;
flotador InHg = 0;
flotador de Am = 0;
flotador de Af = 0;

#include "DHT.h"

#define DHTPIN 2 / / Qué pin estamos conectados a

Quite el comentario de cualquier tipo que utilizas!
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)

Conecte la clavija 1 (a la izquierda) de la sonda a + 5V
Conectar el pin 2 del sensor a lo que tu DHTPIN
Conectar el pin 4 (a la derecha) del sensor de suelo
Conecte un resistor de 10K del pin 2 (datos) al pin 1 (potencia) del sensor de

DHT dht (DHTPIN, DHTTYPE);

tF de flotador;
flotador de dP;
PD de flotador;

#include < SPI.h >
#include < Ethernet.h >

Introduzca una dirección de MAC y dirección IP para el controlador a continuación.
La dirección IP dependerá de tu red local:
mac de bytes [] = {}
0x90, 0xA2, 0xDA, 0 x 00, 0x23, 0x36};
Ip(192,168,254,177) dirección IP;

Inicializar la biblioteca de servidor Ethernet
con la dirección IP y el puerto que desea utilizar
(el puerto 80 es por defecto para HTTP):
Server(80) de EthernetServer;

Adafruit_BMP085 bmp;

void setup() {}
Abrir comunicaciones en serie y esperar para que el puerto a abrir:
Serial.Begin(9600);

Si (! {bmp.begin())}
Serial.println ("podría no encontrar un sensor BMP085 válido, verifique el alambrado!");
mientras que {} (1)
}

mientras (!. Serie) {}
; Espere a que el puerto serial para conectar. Necesario sólo para Leonardo
}

DHT.Begin();

Inicie la conexión Ethernet y servidor:
Ethernet.Begin (mac, ip);
Server.Begin();
Serial.Print ("server es a");
Serial.println(Ethernet.localIP());
}

void loop() {}

Serial.Print ("temperatura =");
Serial.Print(BMP.readTemperature());
TC=BMP.readTemperature();
TF = ((Tc*9)/5) + 32;
Serial.Print(TF);
Serial.println ("* F");

Serial.Print ("presión =");
Serial.Print(BMP.readPressure());
PA=BMP.readPressure();
InHg = Pa * 0.000295333727;
Serial.Print(inHg);
Serial.println ("en Hg");

Calcular suponiendo que 'estándar' barométrico de altitud
presión de 1013,25 milibares = 101325 Pascal
Serial.Print ("altitud =");
Serial.Print(BMP.readAltitude());
AM=BMP.readAltitude(101550); ajustar altura local
AF = Am * 3.28084;
Serial.Print(AF);
Serial.println ("pies");

Usted puede obtener una medición más precisa de altitud
Si usted sabe el nivel del mar actual presión que voluntad
varían con el tiempo y tal. Si es de 1015 milibares
es igual a 101500 pascales.
Serial.Print ("altitud Real =");
Serial.Print(BMP.readAltitude(101500));
Serial.println ("metros");

Serial.println();

Lectura de temperatura o la humedad toma alrededor de 250 milisegundos.
Lecturas del sensor también pueden ser hasta 2 segundos 'old' (es un sensor muy lento)
Float h = dht.readHumidity();
Float t = dht.readTemperature();

Compruebe si devuelve es válidas, si son NaN (no un número) entonces algo salió mal!
Si (isnan(t) || isnan(h)) {}
Serial.println ("error al leer desde DHT");
} else {}
Serial.Print ("humedad:");
Serial.Print(h);
Serial.Print ("% \t");
Serial.Print ("temperatura:");
Serial.Print(t);
tF = ((t*9)/5) + 32;
Serial.println ("* C");
}

Escuchar para clientes entrantes
Cliente EthernetClient = server.available();
Si {} (cliente)
Serial.println ("nuevo cliente");
una solicitud http termina con una línea en blanco
Boolean currentLineIsBlank = true;
mientras (client.connected()) {}
Si (client.available()) {}
char c = client.read();
Serial.Write(c);
Si has llegado hasta el final de la línea (recibió una nueva línea
carácter) y la línea está en blanco, ha terminado la solicitud http,
para que puedan enviar una respuesta
Si (c == '\n' & & currentLineIsBlank) {}
Enviar un encabezado de respuesta http estándar
Client.println ("HTTP/1.1 200 OK");
Client.println ("tipo de contenido: texto/html");
Client.println ("conexión: cerrar");  la conexión se cerrará después de la terminación de la respuesta
Client.println ("Refresh: 5");  actualizar la página automáticamente cada 5 segundos
Client.println();
Client.println ("<! HTML de DOCTYPE > ");
Client.println ("< html >");

Client.println ("< TABLE >");
Client.println ("< TR >");
Client.println ("< TD >");
el valor de la DHT-11

Client.Print ("humedad:");
Client.println ("< /TD >");
Client.println ("< TD >");
Client.Print(h);
Client.Print ("% \t");
Client.println ("< /TD >");
Client.println ("< /TR >");
Client.println ("< TR >");
Client.println ("< TD >");
Client.Print ("temperatura:");

Client.println ("< /TD >");
Client.println ("< TD >");
Client.Print(t*1.8+32);
Client.println ('°');
Client.println("F");

Client.println ("< /TD >");
Client.println ("< /TR >");
Client.println ("< TR >");
Client.println ("< TD >");
Client.Print ("presión barométrica:");

Client.println ("< /TD >");
Client.println ("< TD >");
Client.Print(inHg);
Client.println ('°');
Client.println ("In.");
Client.println ("< /TD >");
Client.println ("< /TR >");

Client.println ("< TR >");
Client.println ("< TD >");

Client.println ("punto de Rocío:");

Client.println ("< /TD >");
Client.println ("< TD >");
dP = (dewPointFast (t, h));
PD = ((dP*9)/5) + 32;
Client.println(dPF);
Client.println ('°');
Client.println("F");

Client.println ("< /TD >");
Client.println ("< /TR >");
Client.println ("< TR >");
Client.println ("< TD >");

Client.println ("índice de calor:");
Client.println ("< /TD >");
Client.println ("< TD >");

Client.println(heatIndex(TF,h));
Client.println ('°');
Client.println("F");
Client.println ("< /TD >");
Client.println ("< /TR >");

Client.println ("</TABLE >");



Client.println ("</html >");
rotura;
}
Si (c == '\n') {}
vas a empezar una nueva línea
currentLineIsBlank = true;
}
else if (c! = '\r') {}
Has conseguido un carácter en la línea actual
currentLineIsBlank = false;
}
}
}
darle tiempo al navegador de web para recibir los datos
Delay(1);
cerrar la conexión:
Client.STOP();
Serial.println ("cliente disonnected");
}
}

Delta max = 0.6544 wrt dewPoint()
6.9 x más rápido que dewPoint()
Referencia: http://en.wikipedia.org/wiki/Dew_point
dewPointFast doble (doble celsius, doble humedad)
{
doble a = 17.271;
doble b = 237.7;
doble temp = (a * celsius) / (b + c) + log(humidity*0.01);
doble Td = (b * temp) / (a - temp);
volver Td;
}

heatIndex doble (doble tempF, doble humedad)
{
doble c1 =-42.38, c2 = 2.049, c3 = 10.14, c4 =-0.2248, c5 = - 6.838e-3, c6 = - 5.482e - 2, c7 = 1.228e-3, c8 = 8.528e-4, c9 = - 1.99e - 6;
doble T = tempF;
doble R = humedad;

doble A = ((c5 * T) + c2) * T + c1;
Double B = ((c7 * T) + c4) * T + c3;
doble C = ((c9 * T) + c8) * T + c6;

doble rv = (C * R + B) * R + A;
volver rv;
}

Artículos Relacionados

LOS PRINCIPIANTES SUPER SENCILLO ROBOT II (ARDUINO UNO VER.)

LOS PRINCIPIANTES SUPER SENCILLO ROBOT II (ARDUINO UNO VER.)

Este ' ible es basado en mi muy popular SUPER simples principiantes ROBOT ' ible. Después de muchas, muchas peticiones para proporcionar una versión actualizada de Arduino, aquí es!He creado este Instructable y su predecesor, por la absoluta n00by ro
Servidor de web de semáforo de Arduino

Servidor de web de semáforo de Arduino

en el lugar de trabajo, utilizamos xymon para monitorear nuestros servidores. Todos los servicios monitoreados son importantes, pero queríamos un indicador separado para simplemente Mostrar la salud general de los sistemas más críticos. Además, llega
Dashboards super sencillo directamente en el linkit uno

Dashboards super sencillo directamente en el linkit uno

Esto comenzó como una falta a clase de un puerto de esta idea de un intel proyecto edison empecé: Intel Edison Sensor tablero de instrumentos uso de francobordo y PythonEs también de un aumento de este instructivo:Cuando empecé a escribir lo anterior
Frambuesa servidor Web enviar datos GET a Arduino Nano 6 servos de conducción

Frambuesa servidor Web enviar datos GET a Arduino Nano 6 servos de conducción

http://www.youtube.com/watch?v=f7oSqLO9iJoEste es un pequeño proyecto que hice para un colega que está construyendo un modelo a escala 1/48 RC de una clase de Fletcher destructor (sí... que hace que el "modelo" de 8 pies de largo!) Preguntó si p
Cartera de papel Super sencillos 30 segundos

Cartera de papel Super sencillos 30 segundos

hice esta cartera en un coche largo paseo en Nueva york hace varios años. Super super sencillo.Paso 1: materiales PapelGrapas / cinta30 segundos de su tiempoEso es todoPaso 2: En la mitad Doblez justo en la mitadPaso 3: 1/4 subiendo Plegar la parte i
Super sencillo bolso de playa

Super sencillo bolso de playa

* requerida alguna experiencia de costura * ¿te has sentido la necesidad de ir a la playa, pero no tenía ningún bolso de la playa para poner tu toalla? Nunca va a pasar otra vez gracias a la Super sencillo bolso de playa! Esto hice un hace tiempo, as
LinkIt uno tutoriales - #7 LCD WiFi servidor de web

LinkIt uno tutoriales - #7 LCD WiFi servidor de web

Una de las carencias con mi anterior tutorial de servidor de web de WiFi es la dificultad para encontrar la dirección IP.Para este tutorial tomaremos ventaja de la retroiluminación de RGB Grove LCD para mostrar la dirección IP, estado del WiFi y las
Servidor de web de $59 con Amazon clase rendimiento y seguridad

Servidor de web de $59 con Amazon clase rendimiento y seguridad

DRCURZON hizo un trabajo impresionante que describe cómo crear un servidor de Web de Pi completa frambuesa para ejecutar en su red doméstica. Esto le llevará más allá de a un sitio de la pi organizado con funcionamiento de calidad mundial para una au
Camiseta panda lindo DIY! (super sencillo)

Camiseta panda lindo DIY! (super sencillo)

Hoy voy a mostrarte cómo hacer este lindo y camisa de panda muy fácil, es super sencillo!Sólo vas a necesitar: una camiseta blanca y un pedazo de fieltro negro.En primer lugar, en un pedazo de papel se va a dibujar las características de nuestro pand
Caída simple trampa de caza menor. SUPER sencillo

Caída simple trampa de caza menor. SUPER sencillo

Paso 1: Qué, por qué y para Así que ha estado buscando alrededor de instructables para una buena trampa y no han sido capaces de encontrar uno. Así que he creado este. Es super sencillo y fácil y diseñado para la caza menor, aves, conejos, zarigüeyas
Configurar un servidor de web de frambuesa Pi PHP

Configurar un servidor de web de frambuesa Pi PHP

Lighttpd es un servidor web ligero, con todas las funciones esenciales de un servidor web, PHP es un lenguaje de scripting de servidor diseñado para el desarrollo web, pero también se utiliza como un lenguaje de programación de propósito general. Est
Super sencillo AN6884 Vumeter!

Super sencillo AN6884 Vumeter!

Hola a todos! Hoy voy a mostrarte cómo hacer este pequeño super sencillo 5 led vumeter!Estoy seguro que no tendrá ningún problema porque todos los materiales necesarios son muy comunes y el circuito es super simple!También tengo que darle los crédito
Super sencillo Nocilla o nutella y plátano polos

Super sencillo Nocilla o nutella y plátano polos

Bueno, es verano otra vez y en el Reino Unido que normalmente significa más de la lluvia, sin embargo, recientemente hemos tenido un 'hechizo caliente' - vi que concurso trata el congelado seguía abierto y pareció que realmente hice unas paletas de h
Pogoplug como servidor de Web

Pogoplug como servidor de Web

Pogoplug de CloudEngines está diseñado para poner tu unidad USB en línea con sus servidores. Nos vieron Pogoplugs como dispositivos de Linux de 99 dólares. Para ello, configurado como un servidor de web hosting AzaleaRSS.comNuestro Pogoplug corre Lin