Enviar datos del sensor (DHT11 & BMP180) a ThingSpeak con un Arduino, mediante cable o WiFi (ESP8266) (4 / 5 paso)

Paso 4: Una bonificación

En caso de que no desee utilizar Thingspeak pero sólo desean su propio servidor Web: utiliza este programa:

/ * * DHT11 Sensor conectado al Pin 2 < a href = "http://arduino-info.wikispaces.com/ethernet-temp-humidity" rel = "nofollow" > http://arduino-info.wikispaces.com/ethernet-temp-...> basado en el código de David A. Mellis & Tom Igoe adaptado por diy_bloke * bmp180sensor en a4/a5 * / / *---(importación necesita bibliotecas)---* / #include < SPI.h > < Ethernet.h > del #include #include < dht11.h > #include < Wire.h > //#include < Adafruit_Sensor.h > //#include < Adafruit_BMP085_U.h > #include < Adafruit_BMP085.h > / *---(declarar constantes y números Pin)---* / #define DHT11PIN 2 / / El sensor de temperatura/humedad / / ingresar una dirección de MAC y dirección IP para el controlador a continuación. La dirección IP dependerá su red local: mac de bytes [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; / *---(Declarar objetos)---* / ip dirección IP (192,168,1, 177); Inicializar la biblioteca de servidor Ethernet / / con la dirección IP y el puerto que desea utilizar / / (puerto 80 por defecto para HTTP): EthernetServer server(80); Bmp Adafruit_BMP085_Unified = Adafruit_BMP085_Unified(10085); Adafruit_BMP085 bmp; dht11 DHT11; El objeto del Sensor / *---(declarar Variables)---* / void setup() / *** instalación: funciona una vez *** / {/ / abrir comunicaciones en serie y esperar para que el puerto a abrir: Serial.begin(9600); mientras (! Serie) {; / / espera para que el puerto serie conectar. Necesario sólo para Leonardo} / / comenzar la conexión Ethernet y servidor: Ethernet.begin (mac, ip); Server.Begin(); Serial.Print (F ("el servidor está en")); Serial.println(Ethernet.localIP()); } //--(end configuración)---void loop() / *---(lazo: corre más y más nuevo)---* / {/ / escuchar para el cliente de EthernetClient de clientes entrantes = server.available(); if (cliente) {Serial.println (F ("nuevo cliente")); / / una petición http termina con una línea en blanco boolean currentLineIsBlank = true; mientras que (client.connected()) {si (client.available()) {char c = client.read(); Serial.Write(c); Si has conseguido al final de la línea (recibió una nueva línea / / carácter) y la línea está en blanco, ha terminado la solicitud http, / / así que usted puede enviar una respuesta si (c == '\n' & & currentLineIsBlank) {/ / enviar un client.println de encabezado de respuesta http estándar ("HTTP/1.1 200 OK"); client.println ("Content-Type: texto/html"); client.println ("conexión: cerrar"); client.println(); client.println("<
! HTML de DOCTYPE > "); Client.println ("< html >"); Añadir una etiqueta meta de actualización, por lo que el navegador tira otra vez cada 5 segundos: client.println ("< meta http-equiv = \"refresh\"content = \"5\">"); Client.println ("< head >"); Client.println ("< title >"); Client.println F ("mi Home Environment"); Client.println ("</título >"); Client.println ("< /HEAD >"); Client.println ("< body >"); Client.Print (F ("< h3 > mi casa ambiente </h3 >")); Client.println ("< br/>"); / *---(Lectura del sensor, calcular e imprimir resultados)---* / int chk = DHT11.read(DHT11PIN); Serial.Print (F ("sensor de lectura:")); interruptor (chk) {caso 0: Serial.println(F("OK")); break; caso -1: Serial.println (F "(error de suma de comprobación del)); break; caso -2: Serial.println (F ("error de tiempo de espera")); break; default: Serial.println (F ("error desconocido")); break;} / * obtener un nuevo evento de sensor (BMP085) * / / / sensors_event_t evento; bmp.getEvent(&event); ---client.print (F ("< tabla estilo =" border: 1px solid black; color de fondo: blanco;» > ")); Client.Print F ("< tr >< td >"); Client.Print ("< color de fuente = 'red' > temperatura </font > (° C):"); Client.Print (F ("< /td >< td align ="right">")); Client.println ((float) DHT11.temperature, 1); Client.println (F ("< br/>")); Client.Print F ("< /td >< /tr >"); Client.Print F ("< tr >< td >"); Client.Print ("< b > < /b > (° F) de temperatura:"); Client.Print (F ("< /td >< td align ="right">")); Client.println(Fahrenheit(DHT11.Temperature), 1); Client.println ("< br/>"); Client.Print F ("< /td >< /tr >"); Client.Print F ("< tr >< td >"); Client.Print ("< color de fuente = 'azul' > humedad </font > (%):"); Client.Print (F ("< /td >< td align ="right">")); Client.println ((float) DHT11.humidity, 0); Client.println ("< br/>"); Client.Print F ("< /td >< /tr >"); Client.Print F ("< tr >< td >"); / * client.print ("< b > < /b > (° K) de temperatura:"); Client.println(Kelvin(DHT11.Temperature), 1); Client.println ("< br/>"); * / client.print ("< i > < /i > (° C) el punto de Rocío:"); Client.Print (F ("< /td >< td align ="right">")); Client.println (punto de rocío (DHT11.temperature, DHT11.humidity)); Client.println ("< br/>"); Client.Print F ("< /td >< /tr >"); Client.Print F ("< tr >< td >"); Client.Print ("< i > Rocío PointFast < /i > (° C):"); Client.Print (F ("< /td >< td align ="right">")); Client.println (dewPointFast (DHT11.temperature, DHT11.humidity)); Client.println ("< br/>"); Client.Print F ("< /td >< /tr >"); Client.Print F ("< tr >< td >"); Si (! bmp.begin()) {client.print ("geen sensor");} else {client.print ("presión (hPa):"); Client.Print (F ("< /td >< td align ="right">")); Client.println(BMP.readPressure()/100.0); Client.Print F ("< /td >< /tr >"); Client.Print F ("< tr >< td >"); Client.Print ("presión (mmHg):"); Client.Print (F ("< /td >< td align ="right">")); Client.println(BMP.readPressure()/133.3); Client.Print F ("< /td >< /tr >"); Client.Print F ("< tr >< td >"); Client.println ("temperatura (º C):"); Client.Print (F ("< /td >< td align ="right">")); Client.Print(BMP.readTemperature()); Client.println ("< br/>"); } client.print F ("< /td >< /tr >"); Client.Print (F ("</table >")); / * Mostrar los resultados (la presión barométrica es una medida en hPa) * / / * Mostrar la presión atmosférica en hPa * / / * client.print ("presión:"); Client.println(Event.Pressure); Client.println ("hPa"); Client.println ("< br/>"); * / / *---(Leído final Sensor)---* / client.println ("</body >"); Client.println ("</html >"); rotura; } Si (c == '\n') {/ / vas a empezar un nuevo currentLineIsBlank de línea = true;} else if (c ! = '\r') {/ / he conseguido un carácter en la actual línea currentLineIsBlank = false;}} } / / dar el tiempo de navegador web para recibir el delay(1) de datos; cerrar la conexión: client.stop(); Serial.println (F ("cliente disonnected")); }} / / FINAL de bucle / *---(escrito por el usuario declarar funciones)---* / / / //Celsius Fahrenheit conversión doble f (doble c) {volver 1.8 * celsius + 32;} doble de //Celsius a la conversión de Kelvin Kelvin (doble c) {volver celsius + 273.15;} / / NOAA de la función de punto de rocío / referencia: < a href = "http://wahiduddin.net/calc/density_algorithms.htm" rel = "nofollow" > http://arduino-info.wikispaces.com/ethernet-temp-...> doble punto de rocío (doble celsius, doble humedad) {doble A0 = 373.15 / (273.15 + celsius); doble suma =-7.90298 * (A0-1); SUMA += 5.02808 * log10(A0); SUMA +=-1.3816e-7 * (pow (10, (11.344*(1-1/A0)))-1); SUMA += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1); SUMA += log10(1013.246); doble VP = pow (10, SUM-3) * humedad; doble T = log(VP/0.61078); var Temp retorno (241.88 * T) / (17,558-T); } / / delta max = 0.6544 wrt dewPoint() / / 5 x más rápido que dewPoint() / Referencia: < un href = "http://en.wikipedia.org/wiki/Dew_point" rel = "nofollow" > http://arduino-info.wikispaces.com/ethernet-temp-...> dewPointFast doble (doble celsius, doble humedad) {doble un = 17.271; doble b = 237.7; doble temp = (un * celsius) / (b + c) + log(humidity/100); doble Td = (b * temp) / (a - temp); volver Td;} / * (THE END) * /

Artículos Relacionados

Enviar datos del sensor (DHT11 & BMP180) a ThingSpeak con un Arduino, utilizando ENC28J60 Ethercard

Enviar datos del sensor (DHT11 & BMP180) a ThingSpeak con un Arduino, utilizando ENC28J60 Ethercard

Nota: Este instructivo es para el viejo ENC26J60 Ethershield y ethercard. Si tienes el WIZ5100 moderno basado en Ethernetshield o un ESP8266 ir a visitar mi instructable que menciono a continuaciónSobre un año y medio atrás publiqué un instructivo qu
Envío de datos del Sensor de temperatura a base de datos de azul

Envío de datos del Sensor de temperatura a base de datos de azul

Este proyecto utiliza un Raspberry Pi B + a 2 sensores de temperatura y envía los datos a un origen de datos azul que puede utilizarse para crear gráficos.Un montón de código para acceder a los sensores de temperatura vino de Adafruit tutorial de Ada
Hacer: es robótica Starter Kit de captura de datos del Sensor

Hacer: es robótica Starter Kit de captura de datos del Sensor

Instructable pasado hablamos un poco sobre lo que está haciendo el programa de linefollow.ino. Presenté un script en Python que nos permitirá analizar el bit a bit if declaraciones para ver cómo el valor que devuelve el método read_Optical() obtiene
Registrador de datos geo: Arduino + GPS + SD + acelerómetro para registrar, sello de tiempo y datos del sensor geo-tag

Registrador de datos geo: Arduino + GPS + SD + acelerómetro para registrar, sello de tiempo y datos del sensor geo-tag

versiones17 de octubre de 2013: he publicado una guía sobre el uso de tu teléfono Android para llevar a cabo una tarea similar al aprovechar tu Android dispositivo de construido en GPS y sensores.06 de febrero de 2013: Aparece en GeoAwesomeness http:
Hacer: es robótica Starter Kit - envío de datos del Sensor sin cables

Hacer: es robótica Starter Kit - envío de datos del Sensor sin cables

En este Instructable van a tomar lo que hemos aprendido en "hacer: es robótica Starter Kit – conectividad inalámbrica" y "hacer: es robótica Starter Kit – captura de datos de los sensores" y combinar esta información para capturar dato
Utiliza tu iPhone para escanear vehículos códigos y leer datos del Sensor

Utiliza tu iPhone para escanear vehículos códigos y leer datos del Sensor

Con el uso de un muy barato (10$!) adaptador puede utilizar tu iPhone como herramienta de diagnóstico para averiguar del motor del cheque del vehículo ligero, borrar los códigos, o ve los sensores (tales como temperaturas, lecturas del sensor de oxíg
Datos del sensor de Linkit una porción JSONP (ejemplo batería)

Datos del sensor de Linkit una porción JSONP (ejemplo batería)

Esto es parcial algo empecé a hacer con el Edison de Intel (ver aquí:). La idea es relativamente simple: presentar los datos del sensor como json(p) para que un habilitador de IoT (como freeboard.io) puede consumir fácilmente los datos. Como mínimo v
Transmisión de datos del Sensor de un ppDAQC placa de Pi usando InitialState

Transmisión de datos del Sensor de un ppDAQC placa de Pi usando InitialState

Las Placas de PippDAQC tablero de Control y adquisición de datos es una interfaz ideal entre los sensores y un Raspberry Pi. Con ocho analógicas y ocho entradas digitales, hasta 16 canales de mundo real datos pueden capturar por un solo ppDAQC Pi-pla
Lecturas del sensor de temperatura y presión de Arduino BMP180 en un 1.8" TFT pantalla a color

Lecturas del sensor de temperatura y presión de Arduino BMP180 en un 1.8" TFT pantalla a color

Pantallas gráficas color añaden una nueva dimensión a cómo puede visualizarse la información recopilada por un Arduino sensores. Las pantallas TFT son también muy baratas en comparación con el tipo de LCD.En el sketch de Arduino presenta aquí se mues
Leer datos del Sensor ultrasónico a FireFly

Leer datos del Sensor ultrasónico a FireFly

Este Instructable le mirando cómo configurar un Sensor ultrasónico utilizando Arduino y Firefly, con el fin de detectar la distancia de objetos y cualquier geometría cambiante dentro de Rhino y, finalmente, cómo utilizar los datos para la detección d
Sabes cómo enviar datos de Arduino de Sensor a servidor (lo +) en la nube

Sabes cómo enviar datos de Arduino de Sensor a servidor (lo +) en la nube

Conozco la plataforma Arduino para IoT. Entonces implementé un firmware de Arduino por modificación de Ethenert SW porque puedo manejar un código fácilmente. Puede conocer el estado del equipo aunque sea hasta el momento. Por favor consulte el siguie
Inicio de monitoreo de temperatura con Raspberry Pi y Thingspeak (con BMP180)

Inicio de monitoreo de temperatura con Raspberry Pi y Thingspeak (con BMP180)

Es la edad del día IoT.Each más y más gente va a conectar sus dispositivos a la nube. Así que parecía hacer injusticia a los sensores de temperatura/presión y una frambuesa pi B + (un casi 1GHz bombeada bestia) que mentían alrededor de la mesa del or
Recibir y enviar datos entre Attiny85 (Arduino IDE 1.06) actualizado Nov de 2015

Recibir y enviar datos entre Attiny85 (Arduino IDE 1.06) actualizado Nov de 2015

He luchado mucho con el envío de datos de RF entre dos fichas Attiny85, así que pensé que podría ser útil si sólo explico cómo lo hice. Hay un número de estos proyectos se describen en el internet, pero sin embargo, no demuestra para ser un proyecto
Mejorar la precisión del Sensor ultrasónico gama

Mejorar la precisión del Sensor ultrasónico gama

Hola de nuevo comunidad de Instructables!Este instructable le mostrará cómo mejorar la precisión de un sensor de la gama ultrasónica. Se basa en el principio que el sonido se moverá a través del aire a diferentes velocidades dependiendo de la tempera