ARDUINO® Proyecto de
Aplicación
Nombre del Proyecto: __________________________________________ PROYECTO DE ESTACIÓN METEOROLÓGICA CON ARDUINO
Integrantes: __________________________________________
Ing. Jovanny Duque
Página 1
1)
Descripción del proyecto:
PROYECTO DE ESTACIÓN METEOROLÓGICA
EL PROYECTO PERMITIRÁ LA MEDICION Y VISUALIZACIÓN DE LAS VARIABLES METEOROLÓGICAS (PRESIÓN ATMOSFÉRICA, TEMPERATURA AMBIENTE Y HUMEDAD RELATIVA) 2) Materiales empleados:
ITEM 1 2 3 4 5 6 7 7 8
DESCRIPCIÓN Led Luminoso 5VDC Pulsadores NA Resistencias 10 kOhms Cables macho-macho de distintos colores Sensor DHT22 (temperatura y humedad) Sensor BMP085 (temperatura, presión y altitud) PANTALLA LCD de 16 x2 referencia( ) Módulo Bluetooth HC-06 Placa ARDUINO UNO
CANTIDAD 1 2 3 20 1 1 1 1
3) MONTAJE Y CONECIONES DE ENTRADAS Y SALIDAS USEN (FRITZING) Y (PROTEUS)
Ing. Jovanny Duque
Página 2
4) Código:
(INCLUIR COMENTARIOS ACLARATORIOS Y ORDEN EN SUS PARTES
// Montaje x: Estación meteorológica V.1 // Código revisado para Arduinopasoapaso // Open Source (Código abierto) // Estructura del programa: // 1.- Bibliotecas (libraries) #include <Wire.h>; // Escritura por pantalla LCD #include <LCD.h>; // Pantalla LCD #include <LiquidCrystal_I2C.h>; // Comunicación I2C #include <Adafruit_BMP085.h>; // Sensor BMP085 #include <DHT.h>; // Sensor DHT22 #include <SoftwareSerial.h>; // Comunicación Bluetooth HC-06 // 2.- Definición de variables // Pines para la pantalla LCD: #define BACKLIGHT_PIN 3 #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 Ing. Jovanny Duque
Página 3
#define D6_pin 6 #define D7_pin 7 // Variables para la librería del sensor DHT #define DHTTYPE DHT22 #define DHTPIN A0 // Pines a utilizar: const int led = 13; const int pulsadorA = 2; const int pulsadorB = 3; // Variables a utilizar en el núcleo del programa int contador=0; float temperature; float pressure; float pressure2; float h; float t; float tmedia; // Variables de librería: LiquidCrystal_I2C lcd(0x27,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); Adafruit_BMP085 bmp; DHT dht(DHTPIN, DHTTYPE); SoftwareSerial SerialBT(10, 11); // (RX, TX) en Arduino
// 3.- Bucle inicial (setup) void setup() { pinMode(led, OUTPUT); // Se define el LED como una salida pinMode(pulsadorA, INPUT); // Se define el pulsador 1 como una entrada pinMode(pulsadorB, INPUT); // Se define el pulsador 2 como una entrada Serial.begin(9600); SerialBT.begin(9600); dht.begin(); bmp.begin();
Ing. Jovanny Duque
Página 4
if (!bmp.begin()) { Serial.println("Could not find a valid BMP085 sensor, check wiring!"); while (1) {} } lcd.begin(16,2); lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(LOW); lcd.home(); } // 4.- Núcleo del programa void loop(){ if(digitalRead(pulsadorA) == HIGH){ digitalWrite(led, HIGH); // Led encendido lcd.display(); lcd.setBacklight(HIGH); contador=1; } if(digitalRead(pulsadorB) == HIGH){ digitalWrite(led, LOW); // Led encendido Serial.println("Apagado"); // Se registra la pulsación contador=0; lcd.noDisplay(); lcd.setBacklight(LOW); } if(contador == 1){ t = dht.readTemperature(); h = dht.readHumidity(); temperature = bmp.readTemperature(); pressure = bmp.readPressure(); tmedia= (t+temperature)/2; pressure2= (pressure/100); lcd.clear(); lcd.setCursor(0,0); lcd.print(tmedia); lcd.print((char)223); lcd.print("C "); lcd.print(h); lcd.print("%"); lcd.setCursor(0,1); lcd.print(pressure2); Ing. Jovanny Duque
Página 5
lcd.print("mbar"); delay(3000); Serial.print("Humidity-DHT = "); Serial.println(h); Serial.print("Temperature-DHT = "); Serial.print(t); Serial.print("["); Serial.write(186); Serial.println("C]"); Serial.print("Temperature-BMP = "); Serial.print(temperature); Serial.print("["); Serial.write(186); Serial.println("C]"); Serial.print("Pressure = "); Serial.print(pressure2); Serial.println("[mbares]"); SerialBT.println(" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "); SerialBT.print("T= "); SerialBT.print(tmedia); SerialBT.println(" [Grados Celsius] "); SerialBT.print("H= "); SerialBT.print(h); SerialBT.println(" [% de Humedad Relativa]"); SerialBT.print("P= "); SerialBT.print(pressure2); SerialBT.println(" [milibares]");
// Calculate altitude assuming 'standard' barometric // pressure of 1013.25 millibar = 101325 Pascal Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println(" meters"); // you can get a more precise measurement of altitude // if you know the current sea level pressure which will // vary with weather and such. If it is 1015 millibars // that is equal to 101500 Pascals. Serial.print("Real altitude = "); Serial.print(bmp.readAltitude(101300)); Serial.println(" meters"); } } Ing. Jovanny Duque
Página 6
/* Fín del código */
Jóvenes, este material ha sido elaborado con mucho gusto. Si te es útil Regálame un Like, comenta y suscríbete :) (っ◕‿◕) Te invito al CANAL DE YOUTUBE MEKATRONICA
http://www.youtube.com/c/JovannyDuque?su b_confirmation=1_ Amigos/as en el BLOGG MEKATRONICA J DUKE podrás encontrar cantidad de recursos sobre SOLIDWORKS, HIDRÁULICA ELECTROHIDRÁULICA , NEUMÁTICA, ELECTRONEUMÁTICA, CONTROL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTORY IO, entre otros
https://mecatronica-itsa.blogspot.com/
Ing. Jovanny Duque
Página 7