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

Paso 2: El programa

A continuación encontrará el código completo.
Sólo algunas observaciones:
La BMP180 es una versión actualizada de la BMP085. Las bibliotecas BMP085 son compatibles con la BMP180.
AdaFruit tiene 2 versiones de la librería. Elegí la versión 1 como resultaba más fácil trabajar con. Versión 2 también requiere la instalación de la biblioteca de 'Sensor'.
En el código también presento un flotador adicional: estoy '. da la presión en "mmHg" como yo no he utilizado por ahora no hay ninguna conversión de la cadena aún y no se agrega al flujo de datos, pero agregarlo ahora debe ser tan sencillo como 1 + 1

/ * Arduino--> canal de ThingSpeak mediante el bosquejo de ThingSpeak cliente está diseñado para el Arduino Ethernet y Ethernet. Este bosquejo actualiza un canal con una analógica lectura entrada a través de la API de ThingSpeak (http://community.thingspeak.com/documentation/) utilizando HTTP POST. Arduino utiliza DHCP y DNS para una configuración simple de red. El bosquejo también incluye un perro guardián / Reset función para asegurarse de que el Arduino se mantiene conectado o recupera la conectividad después de un corte de red. Usar al Serial Monitor en el IDE de Arduino para ver comentarios detallados de la red y el estado de conectividad de ThingSpeak. Para empezar con ThingSpeak: * para registrarse para nueva cuenta de usuario - < a href = "https://www.thingspeak.com/users/new" rel = "nofollow" > https://www.thingspeak.com/users/new < /a > * Ingrese una dirección MAC en este sketch en "Configuración de red Local" * crear un canal nuevo mediante la selección de canales y luego crear nuevo canal * Introduzca la clave de API de escribir en este bosquejo bajo "Configuración de ThingSpeak" Arduino requisitos : * Arduino Ethernet Shield o Arduino Ethernet * Arduino 1.0 IDE red requisitos: * puerto Ethernet en el Router * DHCP activado en el Router * dirección MAC única de Arduino creado: 17 de octubre de 2011 por Hans Scharler (http://www.iamshadowlord.com) créditos adicionales: ejemplo bosquejos de equipo Arduino Ethernet por Adrian McEwen añadido dht11/BMP180 demostró la función de dtostrf por diy_bloke 22/11/2014 * / #include < SPI.h > #include < Ethernet.h > #include < dht11.h > #include < Wire.h > #include < Adafruit_BMP085.h > / / la biblioteca de la versión 1 #define DHT11PIN 4 / / temperatura/humedad del sensor Adafruit_BMP085 bmp; dht11 DHT11; Configuración de red local bytes mac [] = {0xD4, 0x28, 0xB2, 0xFF, 0xA0, 0xA1}; Deben ser únicos en redes locales / / configuración de ThingSpeak char thingSpeakAddress [] = "api.thingspeak.com"; String writeAPIKey = "REPLACE_THIS_BY_YOUR_API_BUT_KEEP_THE_QUOTES"; const int updateThingSpeakInterval = 16 * 1000; Intervalo de tiempo en milisegundos para actualizar ThingSpeak (número de segundos * 1000 = intervalo) / / de configuración Variable largo lastConnectionTime = 0; Boolean lastConnected = false; int failedCounter = 0; Inicializar el Arduino Ethernet cliente EthernetClient cliente; void setup() {/ / Inicio serie para la depuración en el Serial Monitor Serial.begin(9600); / / iniciar Ethernet en Arduino startEthernet();} void loop() {/ leer valor de pines de entrada analógica 0 cadena analogPin0 = String(analogRead(A0), DEC); / / actualización respuesta a Serial Monitor de impresión si (client.available()) {char c = client.read(); Serial.Print(c); } //---DHT11---int chk = DHT11.read(DHT11PIN); char t_buffer [10]; char h_buffer [10]; Float t=(DHT11.temperature); String temp=dtostrf(t,0,5,t_buffer); Serial.Print(Temp); Serial.Print(""); Float h=(DHT11.humidity); String humid=dtostrf(h,0,5,h_buffer); Serial.println(humid); ---BMP180---bmp.begin(); flotador p = (bmp.readPressure () / 100.0); //this es para presión en hectoPascal float m=(bmp.readPressure()/133.3); / / esto es para la presión en mmHG float t2=(bmp.readTemperature()); char p_buffer [15]; char t2_buffer [10]; String pres=dtostrf(p,0,5,p_buffer); String temp2=dtostrf(t2,0,5,t2_buffer); Serial.println(Pres); } / /---/ / Desconecte de ThingSpeak si (! client.connected() & & lastConnected) {Serial.println("...disconnected"); Serial.println(); Client.STOP(); } / / Actualiza ThingSpeak si ()
! client.connected() & & (millis() - lastConnectionTime > updateThingSpeakInterval)) {updateThingSpeak ("Campo1 ="+ temp +"& Campo2 ="+ humedad +"& field3 ="+ pres +"& Campo4 =" + temp2);} / / comprobar si Arduino Ethernet necesita ser reiniciado si (failedCounter > 3) {startEthernet();} lastConnected = client.connected(); } void updateThingSpeak (String tsData) {si (client.connect (thingSpeakAddress, 80)) {client.print ("POST /update HTTP/1.1\n"); client.print ("Host: api.thingspeak.com\n"); client.print ("conexión: close\n"); client.print ("X-THINGSPEAKAPIKEY:" + writeAPIKey + "\n"); client.print ("Content-Type: aplicación/x--www-form-urlencoded \n"); client.print ("Content-Length:"); Client.Print(tsData.length()); Client.Print("\n\n"); Client.Print(tsData); lastConnectionTime = millis(); Si (client.connected()) {Serial.println ("conexión a ThingSpeak..."); Serial.println(); failedCounter = 0; } else {failedCounter ++; Serial.println ("conexión a ThingSpeak fallada ("+ String(failedCounter, DEC) +")"); Serial.println(); }} else {failedCounter ++; Serial.println ("conexión ThingSpeak fracasado ("+ String(failedCounter, DEC) +")"); Serial.println(); lastConnectionTime = millis(); }} void startEthernet() {client.stop(); Serial.println ("Conectando Arduino a la red..."); Serial.println(); Delay(1000); Conectar a red amd obtener una dirección IP usando DHCP Si (Ethernet.begin(mac) == 0) {Serial.println ("no DHCP, reset Arduino para intentarlo de nuevo"); Serial.println(); } else {Serial.println ("Arduino conectado a la red mediante DHCP"); Serial.println(); } delay(1000); }

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