Tabla de contenido:

Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento: 13 pasos (con imágenes)
Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento: 13 pasos (con imágenes)

Video: Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento: 13 pasos (con imágenes)

Video: Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento: 13 pasos (con imágenes)
Video: Visualiza tus datos de temperatura y humedad en tiempo real con Python y Matplotlib desde Arduino 2024, Mes de julio
Anonim
Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento
Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento

Introducción: este es un proyecto que utiliza una placa Arduino, un sensor (DHT11), una computadora con Windows y un programa de procesamiento (descarga gratuita) para mostrar datos de temperatura, humedad en forma de gráfico de barras y digital, mostrar la hora y la fecha y ejecutar un recuento. temporizador durante el programa y el registro de todos los datos en formato.csv cuando se cierra el programa.

Inspiración:

Primero DEBO decir que soy un principiante total y he aprendido mucho de este proyecto. Por lo tanto, estoy tratando de escribir este Instructable para que sea leído y entendido por un principiante total.

Había visto varios proyectos de Arduino para medir la temperatura y la humedad, pero quería un programa que:

1) Temperatura y humedad medidas

2) Mostré los datos tanto en un gráfico (elegí un gráfico de barras) como en forma digital

3) Tiene función de reloj

4) Tiene un temporizador de tiempo de ejecución ascendente

5) Guarda estos datos en un formato de archivo.csv (excel).

Me inspiré en programas creados por Sowmith Mandadi, R-B y aaakash3, pero ninguno de estos era exactamente lo que quería. Así que aprendí a escribir un código básico e hice lo que quería.

Paso 1: Qué necesitará:

Que necesitarás
Que necesitarás
Que necesitarás
Que necesitarás

Piezas y materiales: * Computadora: utilicé una computadora con sistema operativo Windows 10

(Estoy seguro de que se podría usar Linux o Mac, simplemente no tengo ninguno, así que no cubriré cómo usar estos sistemas operativos)

* Placa Arduino: utilicé una placa Arduino Uno, pero cualquier placa Arduino con USB servirá

* Cable USB - Cable USB A / B - Igual que el "cable de impresora" de tipo antiguo (normalmente viene con la placa Arduino)

* Sensor de temperatura / humedad DHT 11 - económico de $ 4 a 8

(Nota: hay 2 versiones que usé la versión de 3 pines, la versión de 4 pines requerirá el uso de una placa de prueba y una resistencia de 10K, la de 3 pines tiene una placa de circuito impreso que incluye la resistencia de 10K) vea los diagramas de Fritzing en los siguientes pasos

* Cables de conexión

Cables Dupont (extremos hembra dobles) si se conecta a DHT11 de 3 pines sin placa de pruebas

Cables de puente estándar M / F (un extremo macho un extremo hembra) y cables de puente M / M (ambos extremos macho) para conectar DHT11 de 4 pines; consulte el paso 2 para obtener más información

* Arduino IDE: un programa para escribir programas Arduino (llamados bocetos) gratis @

www.arduino.cc/en/Main/Software

* Procesamiento: un programa para escribir bocetos de procesamiento gratis @

processing.org/download/

* Archivo "DHTLib": un archivo de biblioteca (este es un archivo que va al programa IDE de Arduino en la carpeta llamada "Biblioteca", esto deberá agregarse al boceto de Arduino antes de que Arduino pueda leer los datos del DHT11 -ver paso 5 para descargar el archivo y las instrucciones

Paso 2: conecte Arduino a DHT11

Conecte Arduino a DHT11
Conecte Arduino a DHT11
Conecte Arduino a DHT11
Conecte Arduino a DHT11
Conecte Arduino a DHT11
Conecte Arduino a DHT11
Conecte Arduino a DHT11
Conecte Arduino a DHT11

Primero determine qué DHT11 tiene

Usé el de 3 pines porque ya tiene la resistencia de 10K necesaria.

Si tiene el pin de 4, necesitará una resistencia de 10K y una placa de pruebas

Conecte DHT11 a la placa Arduino. Este programa requiere que el pin de señal DHT 11 se conecte al pin # 7 de Arduino, el pin Pos (+) conectado a 5V en Arduino y Neg (-) a GND en Arduino.

Consulte los diagramas y los diagramas fritzing

Paso 3: Descarga Arduino IDE

Descarga Arduino IDE
Descarga Arduino IDE

Descargue Arduino IDE e instálelo en la computadora

www.arduino.cc/en/Main/Software

Paso 4: conecta Arduino a la computadora

Conecte Arduino a la computadora
Conecte Arduino a la computadora

Instale el IDE de Arduino primero, ya que tiene controladores para la conexión USB de Arduino.

Conecte Arduino a la computadora a través de USB.

Espere a que la computadora reconozca la placa Arduino e instale los controladores.

Abra el programa IDE y verifique la conexión en serie.

Si la placa Arduino no aparece en Herramientas> puerto (círculo rojo), cierre el IDE y vuelva a abrir.

* Importante * una vez que el IDE está abierto y la placa Arduino está conectada a través de USB. La placa Arduino debe estar conectada al puerto serie correcto. En las computadoras con Windows, esto se conoce como puerto COM. Para hacer esto en el IDE, vaya a Herramientas> Puerto:> Puertos serie. Como se ve en el Diagrama, el puerto serial (círculo rojo) debe coincidir con el puerto listado en la esquina inferior derecha del programa IDE (círculo amarillo).

Paso 5: cargue la biblioteca

Cargar la biblioteca
Cargar la biblioteca
Cargar la biblioteca
Cargar la biblioteca
Cargar la biblioteca
Cargar la biblioteca
Cargar la biblioteca
Cargar la biblioteca

Cargue la biblioteca para DHT11. Esto me resultó confuso al principio, pero en realidad es bastante simple.

Descargue el archivo llamado “DHTLib” y descomprímalo. Copie el archivo "DHTLib" descomprimido.

La referencia de esta biblioteca se puede encontrar en:

playground.arduino.cc/Main/DHTLib

(Fue escrito por Rob Tillaart basado en el trabajo de otros)

Busque la carpeta Arduino en su computadora y ábrala. (Será donde haya descargado el IDE y lo haya instalado en la computadora)

Ver diagrama

Busque el archivo llamado "bibliotecas" y ábralo, luego pegue la carpeta "DHTLib" en el archivo "bibliotecas". Ciérrelo y luego reinicie el IDE.

Ver diagrama

Una vez que el IDE se haya reabierto, puede verificar si se instaló la biblioteca DHT. Boceto> Incluir biblioteca.

Ver diagrama

Nota Hacer clic en DHTLib en la pestaña "incluir biblioteca" colocará la biblioteca en el código Arduino como "#include dht.h".

No necesita hacer esto porque ya está en el código que descargará en el siguiente paso.

Paso 6: Obtén el código Arduino

Obtenga el código Arduino
Obtenga el código Arduino

Descargue el archivo Temp_Hum_Instructable.zip y descomprímalo. Abra Temp_Hum_Instructable.ino con el IDE de Arduino.

Alternativamente, mire el siguiente código y copie y pegue o escriba exactamente en el IDE de Arduino:

#incluir

dht DHT; #define DHT11PIN 7 // establece el pin 7 para la conexión de señal DHT11 void setup () {Serial.begin (9600); // abre serial} void loop () {int chk = DHT.read11 (DHT11PIN); // lee DHT11 Serial.print (DHT.temperature, 0); // imprime temp en serial Serial.print (","); // imprime una coma en serie Serial.print (DHT.humidity, 0); // imprime la humedad en serie Serial.println (); // retardo de retorno del carro (2000); // espera 2 segundos}

Cuando haya terminado, debería verse como el diagrama de arriba

Paso 7: carga el código en Arduino

Cargar código en Arduino
Cargar código en Arduino
Cargar código en Arduino
Cargar código en Arduino
Cargar código en Arduino
Cargar código en Arduino
Cargar código en Arduino
Cargar código en Arduino

Primero guarde el boceto en la ubicación y con un nombre que recordará, Ejemplo: Temp_Hum.

A continuación, debe cargar el boceto en la placa Arduino presionando el botón de flecha hacia la derecha (cargar).

Ver diagrama

Esto tardará unos segundos; verá una barra de progreso en la parte inferior derecha.

Luego verá: Terminado de cargar el mensaje en la parte inferior izquierda y el texto blanco en la parte inferior del IDE que le informa sobre la memoria.

Ver diagrama

Si obtiene un código de error (texto naranja en la parte inferior del IDE), debe ser uno de los siguientes

  1. La biblioteca "DHTlib" no se copió correctamente
  2. El puerto COM no está configurado correctamente
  3. El sensor no se conectó correctamente
  4. El código no se cargó correctamente en el IDE. El texto naranja se puede desplazar y dará una pista sobre lo que está mal. Regrese y compruebe que probablemente sea un simple error.

Una vez hecho esto, mire de cerca su placa Arduino. Cada dos segundos, el pequeño LED junto a las letras “TX” parpadeará. Este es el Arduino enviando información a la computadora. Para comprobarlo, haga clic en el pequeño símbolo de la lupa en la esquina superior derecha del IDE.

Ver diagrama

Esto abrirá el monitor en serie y mostrará los datos de temperatura y humedad separados por una coma. Observará que los datos de temperatura se enumeran en grados Celsius. Está bien, lo convertiremos a Fahrenheit más tarde (o no si lo desea).

Ver diagrama

A continuación, cierre el monitor en serie y luego cierre el IDE. (Se acordó de guardarlo, ¿no es así?). Ahora mire la placa Arduino nuevamente (no la desconecte del USB que es de donde recibe energía y envía datos al puerto serie de la computadora). ¿Sigue parpadeando? Si genial. Una vez que el programa se carga en el Arduino, se ejecutará siempre que tenga energía.

Nota sobre el código: si observa el código de Arduino que comienza con “void loop ();”, las siguientes 5 líneas de código le dicen al Arduino que lea los datos del DHT y los imprima en el bus serial separados por una coma. La siguiente línea "retraso (2000)"; le dice al Arduino que espere 2 segundos (2000 milisegundos) para que los datos se reciban cada 2 segundos. Luego vuelve a "void loop ();" - un comando que le dice al Arduino que lo vuelva a hacer. Cambiar el valor en la línea de retardo cambiará la frecuencia con la que se reciben los datos. Ejemplo: cambiar a (600000) cambiará a 10 minutos (600000 milisegundos = 10 minutos). Recibir datos cada 2 segundos termina siendo una gran cantidad de datos, por lo que ahora sabe cómo cambiar la frecuencia con la que se leen los datos. Recuerde que si cambia el valor más adelante, necesita cargar el nuevo programa.

Está bien, siéntate y respira, estás a más de la mitad del camino. ¡¡Sí!!

Paso 8: descargar e instalar el procesamiento

Procesamiento de descarga e instalación
Procesamiento de descarga e instalación
Procesamiento de descarga e instalación
Procesamiento de descarga e instalación

processing.org/download/

Bastante sencillo, seleccione el programa que corresponda a su computadora para Windows de 64 bits frente a 32 bits. Si no lo sabe, abra el Panel de control en su computadora (vista de íconos, no vista de categorías) y vaya al sistema, aparecerá en la lista.

Ver diagrama

Descargue e instale el programa.

La primera vez que abra y ejecute el procesamiento, probablemente obtendrá un mensaje de seguridad de Java. Haga clic en "permitir" para las redes privadas. Java es el lenguaje informático utilizado por Processing (y Arduino IDE). Curiosamente, nunca he recibido el mensaje de seguridad con Arduino IDE, solo Processing.

Paso 9: Código de procesamiento

Código de procesamiento
Código de procesamiento

OK ahora para el código de procesamiento.

Esta fue la parte más desafiante para mí, pero también la mayor oportunidad para aprender. Si bien el código de Arduino tenía aproximadamente 20 líneas, este código tiene +/- 270 líneas en el código principal y otras 70 + en las clases.

Ahora, lo primero que debería preguntarse es "¿Qué son las clases?". Buena pregunta. Esto se refiere a la programación orientada a objetos. En resumen, hay un montón de cosas en el código principal: definir el tamaño y el color de la pantalla, un reloj, un temporizador, un código para mostrar la ubicación del cursor, un código para guardar datos en un archivo.csv y algunas líneas. que tratan con el código que muestra los gráficos de barras. Si bien el IDE de Arduino tenía todo el código en una página, este código de procesamiento tiene tres pestañas. El primero es el código principal y los dos siguientes son el código que muestra los gráficos de barras. (Este código en realidad se almacena en tres archivos separados dentro de la carpeta de código de procesamiento). Las pestañas separadas se denominan "clases" y se definen en las líneas 48 y 56 y luego se muestran en las líneas 179-182 del código principal. Las personas que escribieron el programa Processing lo llaman programación orientada a objetos. (consulte: https://processing.org/tutorials/objects/ para obtener una breve descripción).

Básicamente, lo que hacen las clases (Recta1, Recta2) en este código es crear rectángulos que se mueven hacia arriba y hacia abajo en función de los datos recibidos del DHT11 a través de serie. Piense en un termómetro antiguo, cuanto más alto es el mercurio, más caliente está, pero esto se hace con datos, no con mercurio. En realidad, las clases crean cuatro rectángulos, dos rectángulos estáticos que representan el fondo del termómetro y dos rectángulos dinámicos que responden a los datos y se mueven hacia arriba y hacia abajo. Además de mover los rectángulos, el código cambia el color del rectángulo dinámico y el color de la pantalla digital de temperatura y humedad en función de los datos que se reciben por serie.

Paso 10: Procesamiento de archivos de código

Solo algunos conceptos básicos sobre el código de procesamiento:

Recomiendo encarecidamente leer Make: Getting Started withProcessing de Casey Reas y Ben Fry, los fundadores de Processing.

processing.org/books/#reasfry2

No intentaré explicar todos los aspectos del procesamiento o escribir código para procesar. Como dije antes, soy un principiante y creo que hay muchas mejores personas de las que aprender. Sin embargo, entiendo el código que he escrito (la prueba y el error son buenos profesores).

1. Primero uno debe incluir bibliotecas (como en Arduino) y declarar variables (líneas 1-25)

2. A continuación, configure el tablero de visualización (líneas 27-63)

Ejecute una parte repetida del código, lo que quiero decir es que esta parte del código se repetirá mientras el programa se esté ejecutando. Recordará en Arduino "void loop ();" (Paso 6). En Processing, ahora es "void draw ();" (Líneas 65-184)

4. Lo siguiente es obtener datos del puerto serie y asignarlos a variables (int, float, String)

En t-

flotador-

Cuerda-

(Líneas 185-245)

4. Por último, una forma de cerrar el programa y guardar los datos (líneas 246-271)

Ok: Descarga el archivo Temp_Hum_F_3_2 (para Fahrenheit)

O Temp_Hum_C_3_1 (para centígrados)

y descomprima el archivo. Abrir con Processing.

Paso 11: Fuente en procesamiento

Fuente en procesamiento
Fuente en procesamiento

Importante: llamo su atención sobre las líneas 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // carga la fuente almacenada en los datos

carpeta 37 textFont (fuente);

Esta biblioteca de fuentes "SourceCodePro-Bold-48.vlw" se incluye en las descargas de archivos de procesamiento y no es necesario cambiarla para que funcione.

Sin embargo, para cambiar la fuente a otra, deberá cargar la nueva fuente en el boceto de procesamiento Y reemplazar "SourceCodePro-Bold-48.vlw" con la nueva fuente.

. Afortunadamente, Processing ha facilitado mucho la primera parte.

Primero abra el boceto y luego haga clic en:

Herramientas> Crear fuente

esto abre una ventana

Ver diagrama

Desplácese hacia abajo hasta la nueva fuente que desee, haga clic en ella y luego haga clic en Aceptar. La fuente ahora se ha cargado en la carpeta de bocetos.

A continuación, reemplace el texto "SourceCodePro-Bold-48.vlw" con el nombre exacto de la nueva fuente (incluido el formato de archivo.vlw)

Si esto no se hace, la nueva fuente no se cargará en el código y el código dará errores (al igual que los errores en Arduino, en el cuadro negro en la parte inferior del programa).

Paso 12: Terminando

Terminando
Terminando
Terminando
Terminando
Terminando
Terminando
Terminando
Terminando

Para iniciar el programa de procesamiento, haga clic en la flecha, es posible que reciba una advertencia de Java, haga clic en: Permitir acceso.

Ver diagrama

OK, ¿funcionó el programa? Si es así, obtendrá una pantalla como la que se ve en el diagrama.

(¿No? Consulte la solución de problemas en el siguiente paso)

¿Sí? Ahora intente sostener el DHT11 en la palma de la mano cerrada o colóquelo debajo de la corriente de aire caliente de un secador de pelo. Los números deberían cambiar. ¿Sí? Excelente. eso significa que todo está funcionando bien.

Para cerrar el programa y guardar datos, haga clic en el cuadro que dice "Haga clic aquí para cerrar y guardar datos".

Ahora, para encontrar los datos guardados, vaya a la carpeta de procesamiento Temp_Hum_F_3_1 o Temp_Hum_C_3_1 (ya debería poder encontrar esto por su cuenta), ábralo y busque la carpeta Datos. Abra esto y debería ver un archivo.csv con el nombre de la fecha y hora en que cerró el programa (Ejemplo 1-10-18--22-30-16.csv significa 10 de enero de 2018 10:30:16 PM). Ábralo con Excel (o la hoja de cálculo de Open Office equivalente). Debería ver algo como el diagrama. Columnas para fecha, hora, tiempo de ejecución, temperatura y humedad con datos. Ahora puede graficar los datos con Excel o lo que quiera hacer con él. (Nota: si observa la primera entrada de datos, los datos de temperatura y humedad no son correctos, esto es normal y es solo un error cuando el programa se inicia por primera vez)

¡¡¡¡¡Sí !!!!!

Lo hiciste

Si tiene alguna pregunta, envíela y haré todo lo posible para responder y ayudar.

Gracias por quedarte con esto y buena suerte. Espero que esto sea solo el comienzo…..

Lo siguiente para mí es Bluetooth y posiblemente Android….

Paso 13: solución de problemas

Solución de problemas
Solución de problemas
Solución de problemas
Solución de problemas

Problemas de Arduino

Si obtiene un código de error (texto naranja en la parte inferior del IDE), debe ser uno de los siguientes: La biblioteca "DHTlib" no se copió correctamente

El puerto COM no está configurado correctamente

El sensor no se conectó correctamente

El código no se cargó correctamente en el IDE

Si todo Arduino parece ir bien, recuerde abrir el Monitor en serie y ver si se muestran los datos

Si ve los datos correctos, esto significa que el lado de Arduino está funcionando. Recuerde cerrar el monitor en serie antes de iniciar el procesamiento, si el monitor en serie está abierto, el procesamiento no puede leer los datos.

Problemas de procesamiento:

Estos se mostrarán en la parte inferior del programa de procesamiento.

Si obtiene un error al describir la "fuente", vuelva al paso 11 y cargue la fuente como se describe.

Si obtiene un error que se parece a: Error, deshabilitando serialEvent () para COM4 nulo, simplemente reinicie el boceto de procesamiento haciendo clic en la flecha como en el paso 12

Si recibe un error que dice: Error al abrir el puerto serie, intente cambiar las líneas 32-34 a algo como donde "COM4" coincide con el puerto COM en su boceto de Arduino

myPort = newSerial (this, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // espera hasta que el serial tenga datos

Recomendado: