Dhttop 10 sensor de temperatura y humedad con OLED usando Arduino Nano

Dhttop 10 sensor de temperatura y humedad con OLED usando Arduino Nano
Arduino Nano es una pequeña y potente placa de microcontrolador que es capaz de interactuar con una amplia gama de sensores y dispositivos. El sensor DHT11 es un sensor de uso común para medir la temperatura y la humedad, y se puede conectar fácilmente a una tabla de nano Arduino con cables de puta y una placa de pan.

En este proyecto, utilizaremos el sensor Arduino Nano y DHT11 para crear un sistema de monitoreo de temperatura y humedad. El Arduino Nano leerá valores de temperatura y humedad de DHT11 y se mostrará en OLED.

Este tutorial cubre el siguiente contenido:

1: Introducción al sensor DHT11

2: DHT11 Sensor Pinout

2.Sensor DHT11 de 1: 3 pines

2.2: 4 pin sensor DHT11

3: Módulo de pantalla OLED con Arduino Nano

4: Instalación de las bibliotecas requeridas

4.1: Biblioteca Arduino para el sensor DHT

4.2: Biblioteca Arduino para pantalla OLED

5: Verifique la dirección de la pantalla OLED I2C en Arduino Nano

6: Interfaciendo Arduino Nano con sensor DHT11 y OLED

6.1: esquema

6.2: código

6.3: salida

1: Introducción al sensor DHT11

El sensor DHT11 es un dispositivo compacto y de bajo costo para medir la temperatura y la humedad. Arduino Nano con DHT11 se utiliza para diseñar estaciones meteorológicas portátiles, sistemas HVAC y sistemas de automatización del hogar.

El sensor DHT11 consiste en un elemento de detección de humedad y un elemento de detección de temperatura, que se combinan en un solo circuito integrado. El sensor es capaz de medir tanto la humedad y la temperatura relativas, y puede transmitir estos datos a través de una señal digital a un microcontrolador u otro dispositivo.

El sensor DHT11 se puede integrar y controlar utilizando el código Arduino. Se puede conectar a un microcontrolador o una computadora de una sola placa utilizando cables de puente y una placa de pan, y se puede integrar fácilmente en una variedad de proyectos.

Algunas especificaciones importantes de DHT11:

  • El voltaje de funcionamiento comienza desde 3.5V a 5.5V
  • La corriente del sensor mientras se mide los valores es 0.3MA y la corriente en espera es 60UA
  • Valores de salida como señal digital
  • La temperatura comienza de 0 ° C a 50 ° C
  • Humedad medida del 20% al 90%
  • La temperatura y la humedad son de 16 bits
  • Precisión de ± 1 ° C para la medición de la temperatura y ± 1% para lecturas de humedad relativa

Ahora cubrimos los conceptos básicos del sensor DHT11. Ahora discutiremos el dht11 pinout.

2: DHT11 Sensor Pinout

DHT11 tiene dos variantes, una con 4 pines y otra con 3 pines. La única diferencia aquí es que el sensor DHT11 de 4 pin tiene un pasador adicional sin conexión. Este pin está etiquetado como CAROLINA DEL NORTE y no utilizado para ningún propósito.

Los 3 pines de DHT11 son:

  • Pasador de voltaje de alimentación
  • Alfiler
  • Pin de señal de datos digitales

2.Sensor DHT11 de 1: 3 pines

El siguiente pinout es de 3 pines DHT11:

1 Datos Lecturas de temperatura de salida y valores de humedad
2 VCC Voltaje de entrada entre 3.5V a 5.5V
3 Gnd Gnd

2.2: 4 pin sensor DHT11

A continuación se muestra el 4 pines del sensor DHT11:

Estos 4 pines del sensor DHT11 incluyen:

1 VCC Entrada 3.5V a 5.5V
2 Datos Lecturas de temperatura y humedad de salida
3 CAROLINA DEL NORTE Sin pin de conexión
4 Gnd Gnd

3: Módulo de pantalla OLED con Arduino Nano

La pantalla OLED viene principalmente con dos protocolos de comunicación diferentes. Estos dos son I2C y SPI. El protocolo SPI es más rápido en comparación con I2C, pero se prefiere I2C y tiene la ventaja sobre SPI debido a los menos pines requeridos.

La siguiente imagen ilustra un diagrama de conexión Arduino Nano con 128 × 64 píxeles (0.96 ") Pantalla OLED.

A continuación, la tabla muestra la configuración de Pinout de OLED con nano:

Como hemos intercambiado a Arduino Nano con una pantalla OLED. Para mostrar datos en una pantalla OLED, primero debemos instalar algunas bibliotecas necesarias.

4: Instalación de las bibliotecas requeridas

Estamos interfaciendo dos sensores; Uno es una pantalla OLED y la otra es un sensor DHT11. Ambos sensores requerían bibliotecas separadas para funcionar. Ahora instalaremos bibliotecas separadas para DHT11 y pantallas OLED.

4.1: Biblioteca Arduino para el sensor DHT

Abrir ide, ir a: Sketch> incluir biblioteca> Administrar bibliotecas:

También se puede usar el Administrador de la biblioteca Arduino para instalar bibliotecas. Busque la biblioteca del sensor DHT11 e instale la versión actualizada. Esta biblioteca leerá datos del sensor DHT11.

Ahora instalaremos el biblioteca de sensores unificados.

Se instalan bibliotecas de sensores DHT11. A continuación, las bibliotecas OLED deben instalarse.

4.2: Biblioteca Arduino para pantalla OLED

Hay varias bibliotecas disponibles para la pantalla OLED en IDE. Usaremos la biblioteca Adafruit GFX y SSD1306 para la pantalla OLED.

Abra el IDE y busque la biblioteca SSD1306 en el Administrador de la biblioteca:

Después de instalar la biblioteca SSD1306, instale la Gfx Biblioteca de Adafruit:

Hemos instalado bibliotecas para ambos sensores y ahora podemos cargar código en Arduino Nano. Pero antes de eso es necesario verificar la dirección OLED I2C.

5: Verifique la dirección de la pantalla OLED I2C en Arduino Nano

I2C permite conectarse múltiples dispositivos y comunicarse entre sí a través de una interfaz de dos hilos. Cada dispositivo I2C debe tener una dirección única, que va de 0 a 127, para garantizar que pueda identificarse y comunicarse en la línea I2C. Múltiples dispositivos con la misma dirección no se pueden conectar en el mismo bus I2C.

Conecte la pantalla OLED con Arduino Nano y después de seleccionar la placa y el puerto en Arduino IDE Sube el código dado en los dispositivos de escaneo de artículo I2C en Arduino. Después de cargar código, obtendremos la dirección I2C de la pantalla OLED que en nuestro caso está 0x3c:

Definiremos esta dirección I2C dentro del código Arduino.

6: Interfaciendo Arduino Nano con sensor DHT11 y OLED

Para la interfaz de Arduino Nano con DHT11, se utilizará un pin digital de Nano Board para la lectura de datos. Para alimentar el dht11 5V El pin de la tabla nano se verá interconectado.

Para pines de pantalla OLED I2C SDA y SCL en A4 y A5 Se utilizarán pines de Arduino Nano. Para impulsar un pin de 5V OLED de Arduino Nano se utilizará.

6.1: esquema

A continuación se muestra el diagrama esquemático de Arduino Nano con sensor DHT11 y para mostrar valores de lectura se usa una pantalla OLED. Esta imagen esquemática es del sensor DHT11 de 3 pines. La resistencia pull up de 10kΩ está integrada en la salida DHT11.

Del mismo modo, un sensor DHT11 de 4 pines está conectado con una placa nano. La pantalla OLED está conectada a Pins de Nano A4 y A5 de Nano usando la comunicación I2C. Dht11 pin 2 es salida de datos. El 4 pin Dht11 tiene 1 pin extra que no sirve de nada.

6.2: código

Conecte Arduino Nano y cargue el código dado:

#Include /*Biblioteca de comunicación de cables* /
#incluir
#Include /*OLED Adafruit Library* /
#incluir
#Include /*DHT Sensor Library* /
#define screen_width 128 /*128 ancho OLED en píxeles* /
#define Screen_height 64 /*64 Altura OLED en Pixel* /
AdaFruit_SSD1306 Display (Screen_Width, Screen_height, & Wire, -1); /*I2C Inicialización de visualización*/
#define dhtpin 4 /*dht11 pin de señal* /
#Define DHTTYPE DHT11
//#Define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#Definir dhttype dht21 // dht 21 (am2301)
Dht dht (dhtpin, dhttype);
setup () void
De serie.comenzar (9600);
DHT.comenzar();
si(!mostrar.Begin (SSD1306_SwitchCapVCC, 0x3c)) /*OLED I2C Dirección* /
De serie.println (f ("fallado de asignación SSD1306"));
para(;;);

retraso (2000);
mostrar.ClearDisplay ();
mostrar.setTextColor (blanco); /*Color de texto*/

bucle void ()
retraso (5000);
flotante t = dht.readTemperature (); /*Leer temp*/
flotante h = dht.readHumidity (); /*leer humedad*/
if (isnan (h) || isnan (t))
De serie.println ("No se pudo leer del sensor DHT!");

mostrar.ClearDisplay (); /*Clare pantalla*/
mostrar.setTextSize (1); /*Tamaño de fuente OLED*/
mostrar.setCursor (0,0);
mostrar.imprimir ("temperatura:");
mostrar.setTextSize (2);
mostrar.setCursor (0,10);
mostrar.imprimir (t); /*Imprimir temperatura en Celsius*/
mostrar.imprimir(" ");
mostrar.setTextSize (1);
mostrar.CP437 (verdadero);
mostrar.escribir (167);
mostrar.setTextSize (2);
mostrar.imprimir ("C");
mostrar.setTextSize (1);
mostrar.setCursor (0, 35);
mostrar.imprimir ("Humedad:");
mostrar.setTextSize (2);
mostrar.setCursor (0, 45);
mostrar.imprimir (h); /*Imprime porcentaje de humedad*/
mostrar.imprimir(" %");
mostrar.mostrar();

Al comienzo del código, incluimos las bibliotecas de sensores OLED y DHT. El siguiente tamaño de la pantalla OLED se define en píxeles. Después de ese tipo de sensor DHT se inicializa. Si está utilizando cualquier otro tipo de DHT11, desenchufe el nombre del sensor en consecuencia dentro del código.

A continuación, en el código inicializamos DHT y OLED Sensor. El OLED está conectado a 0x3c i2c Dirección. La dirección I2C se puede verificar utilizando el código en este artículo.

Las dos variables flotantes T y H almacenará los valores de temperatura y humedad respectivamente. Lasty In Code Todos los valores se muestran en una pantalla OLED utilizando las funciones de la biblioteca OLED GFX.

6.3: salida

La salida muestra los valores de temperatura y humedad en tiempo real que se muestran en la pantalla OLED:

Hemos completado la interfaz del sensor OLED y DHT11 con el arduino Nano Board.

Conclusión

Arduino Nano se puede integrar con múltiples sensores. Este artículo cubre la interacción del sensor OLED y DHT11 con Arduino Nano. Usando el DHT11 medimos la temperatura y la humedad que se muestran en OLED. Usando el código dado, cualquiera de los Arduino Nano se puede programar para mostrar lecturas de sensores en una pantalla OLED.