Conviértete en un Experto de Arduino
Te invito a mi Curso de Arduino desde cero, el cual incluye:
– +15 proyectos prácticos
– Lecciones teóricas de los componentes
– Creación de código para Arduino
– 13 horas de video
– El Curso más completo en Español
Acerca del proyecto
¡Hola a todos amigos! En esta ocasión, les traigo este proyecto interesante para principiantes, el cual consiste en que puedas crear tu propia estación del clima con Arduino, desde cero, paso a paso, y como bien sabes, siempre dejándote los diagramas, componentes y código fuente para que no haya fallas.
¡Vamos a ello!
Contents
- 1 Conviértete en un Experto de Arduino
- 2 Acerca del proyecto
- 3 Video para crear una estación del clima con Arduino paso a paso
- 4 Componentes necesarios para crear un piano con pulsadores en Arduino Uno
- 5 Diagrama de conexión del proyecto de una estación meteorológica con Arduino
- 6 Código fuente para hacer funcionar la estación meteorológica con Arduino
- 7 Código fuente para la versión de la estación del clima con pantalla LCD
- 8 Explicaciones generales del código fuente de la estación del Clima con Arduino
Video para crear una estación del clima con Arduino paso a paso
Si eres de los que disfrutan más un video tutorial con el paso a paso de la construcción del proyecto, te dejo el video de este proyecto. ¡Suscríbete!
Componentes necesarios para crear un piano con pulsadores en Arduino Uno
Este proyecto tiene 2 versiones, una en la cual se hace la visualización de información en el monitor serie. Para esta primer parte, los componentes requeridos son:
Componentes | Recomendación para adquirirlos |
1 x Protoboard | https://amzn.to/3lPU4rX |
1 x Sensor DHT11 con PCB | https://amzn.to/379rBbZ |
3 x Jumpers macho – macho | https://amzn.to/32Zp9lK |
1 x Arduino UNO | https://amzn.to/3kRInzT |
Si quieres agregar la pantalla LCD, debes utilizar esta lista:
Componentes | Recomendación para adquirirlos |
1 x Protoboard | https://amzn.to/3lPU4rX |
1 x Sensor DHT11 con PCB | https://amzn.to/379rBbZ |
3 x cables de cobre | Cable UTP |
1 x Shield LCD con Keypad | https://amzn.to/340q1XF |
1 x Arduino UNO | https://amzn.to/3kRInzT |
Diagrama de conexión del proyecto de una estación meteorológica con Arduino
El diagrama de conexión de este proyecto, es uno de los más sencillos, ya que únicamente tendremos que conectar el sensor DHT11 a nuestro Arduino. Este es el diagrama de conexión:
En mi caso, el sensor DHT11 tiene marcado únicamente el pin con un símolo S, lo que significa que es la señal, mientras que el pin central es el positivo y el de la derecha el negativo.:
Procederemos a insertar el sensor DHT11 al protoboard:
Vamos a conectar el la patilla negativa del sensor, al pin GND del Arduino:
Conectamos la patilla positiva a uno de los pines marcado con 5V del Arduino:
Y finalmente, conectamos la patilla de señal (marcada con la letra S), al pin # 2 del Arduino:
Integrando el Shield LCD al proyecto de la estación meteorológica con Arduino
En caso de querer conectar un display LCD, lo podemos hacer fácilmente con el Shield LCD. Tendremos que cambiar los jumpers, por cables de cobre, esto con el propósito de que podamos insertarlos entre el shield y los pines del Arduino, para evitar tener que soldar (Recordemos que es un proyecto para principiantes).
La conexión hacia los pines del Arduino queda exactamente de la misma forma.
Código fuente para hacer funcionar la estación meteorológica con Arduino
Para que el proyecto funcione, debemos instalar una biblioteca que nos facilitará las cosas muchísimo, se trata, de la biblioteca “DHT Sensor Library” por Adafruit. Podemos encontrarla yéndonos a “Herramientas” y a continuación “Administrar bibliotecas”:
Una vez hecho esto, buscaremos la palabra clave “dht”, lo que nos arrojará un listado con varias bibliotecas con ese nombre. Debemos fijarnos de instalar la biblioteca correcta:
Una vez hecho esto, podemos utilizar el siguiente código fuente para hacer funcionar el Arduino (puede que tengas que reiniciar el IDE de Arduino):
#include <DHT.h> int dhtPin = 2; DHT dht(dhtPin, DHT11); // esto es igual a 11, https://github.com/adafruit/DHT-sensor-library/blob/master/DHT.h void setup() { Serial.begin(9600); dht.begin(); delay(5000); } void loop() { delay(5000); float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); float temperatureF = dht.readTemperature(true); if(isnan(humidity) || isnan(temperature) || isnan(temperatureF)) { Serial.println("Error en la lectura del sensor"); return; } float hic = dht.computeHeatIndex(temperature, humidity, false); float hif = dht.computeHeatIndex(temperatureF, humidity); Serial.print("Humidity: "); Serial.print(humidity); Serial.print("% Temperature: "); Serial.print(temperature); Serial.print("°C "); Serial.print(temperatureF); Serial.print("°F Heat index: "); Serial.print(hic); Serial.print("°C "); Serial.print(hif); Serial.println("°F"); }
Este código fuente, sirve para mostrar los valores por el monitor serie, el cual debes abrir para ir viendo los diferentes valores arrojados por el sensor DHT11:
Código fuente para la versión de la estación del clima con pantalla LCD
En dado caso de que quieras realizar el proyecto con la pantalla LCD, deberás instalar también la biblioteca DHT, tal como describí anteriormente. Luego de esto, deberás utilizar el siguiente código fuente:
#include <DHT.h> #include <LiquidCrystal.h> int dhtPin = 2; DHT dht(dhtPin, DHT11); LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { Serial.begin(9600); dht.begin(); lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("Weather Station"); delay(5000); } void loop() { delay(5000); float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); float temperatureF = dht.readTemperature(true); if(isnan(humidity) || isnan(temperature) || isnan(temperatureF)) { Serial.println("Error en la lectura del sensor"); return; } float hic = dht.computeHeatIndex(temperature, humidity, false); float hif = dht.computeHeatIndex(temperatureF, humidity); Serial.print("Humidity: "); Serial.print(humidity); Serial.print("% Temperature: "); Serial.print(temperature); Serial.print("°C "); Serial.print(temperatureF); Serial.print("°F Heat Index: "); Serial.print(hic); Serial.print("°C "); Serial.print(hif); Serial.println("°F"); lcd.setCursor(0,0); lcd.print("H: "); lcd.print((int)humidity); lcd.print("% T: "); lcd.print((int)temperature); lcd.print("\xDF" "C "); lcd.setCursor(0,1); lcd.print("HI: "); lcd.print(hic); lcd.print("\xDF" "C "); }
Explicaciones generales del código fuente de la estación del Clima con Arduino
Algunos puntos que debes saber sobre el código fuente son:
DHT dht(dhtPin, DHT11);: Esta línea, lo que hace es crear un objeto, ó una pieza especial de código, tomado a partir de la biblioteca que instalamos de Adafruit, y permite simplificar las llamadas del sensor. El primer parámetro, dhtPin, es la variable que hace referencia al pin # 2, mientras que el valor “DHT11”, hace referencia al tipo de sensor, ya que podríamos ocupar un sensor 12, un 22, ó un 21. A continuación, te muestro un poco de las tripas de la biblioteca que instalamos, el cual define precisamente los valores que podríamos utilizar:
dht.begin();: Esta parte inicializa la biblioteca, es indispensable llamar este método para que todo se inicialice de forma correcta.
dht.readHumidity();: Se lee la humedad del sensor.
dht.readTemperature();: Se lee la temperatura en grados centígrados.
dht.readTemperature(true);: Se lee la temperatura en grados Fahrenheit.
dht.computeHeatIndex(temperature, humidity, false);: Permite obtener el Índice de Calor, pasándole la temperatura, humedad, y si está en grados fahrenheit o no, en este ejemplo, no.
Ya con esto, podremos ver nuestro proyecto funcioando. Espero te sea de utilidad.
¡Saludos!