El Sensor 5 en 1 es una combinación de tres sensores diferentes integrados en un solo dispositivo:
HTU21D: Este sensor es un medidor de humedad y temperatura. Es capaz de medir la humedad relativa del aire y la temperatura ambiente con alta precisión. Proporciona lecturas confiables y se utiliza en una amplia gama de aplicaciones, desde sistemas de control de clima hasta dispositivos portátiles.
BMP180: Se trata de un sensor de presión barométrica y altitud. Mide la presión atmosférica y, a partir de esa información, puede calcular la altitud aproximada. Esto lo hace especialmente útil en aplicaciones de navegación, meteorología y control de drones, entre otros.
BH1750FVI: Este sensor es un medidor de intensidad de luz. Proporciona lecturas de la cantidad de luz visible presente en un entorno específico. Es usado en sistemas de iluminación inteligente, dispositivos portátiles que ajustan la pantalla según la luz ambiente, y en aplicaciones de automatización del hogar para regular la iluminación.
La combinación de estos tres sensores en un único dispositivo proporciona una amplia gama de información ambiental y meteorológica. Puede ser utilizado en diversos proyectos de IoT (Internet de las cosas), estaciones meteorológicas, sistemas de monitoreo ambiental y más, permitiendo a los usuarios obtener mediciones precisas y simultáneas de temperatura, humedad, presión atmosférica, altitud e intensidad de luz en un entorno determinado.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Este módulo que combina los siguientes 3 sensores en un módulo fácil de usar, todos los sensores son I2C, por lo que se requieren conexiones mínimas del módulo a su arduino
El HTU21D es un sensor digital de humedad y temperatura de bajo costo, fácil de usar y altamente preciso.
El BMP180 es el nuevo sensor digital de presión barométrica de Bosch Sensortec.
BH1750FVI es un IC de sensor de luz ambiental digital para interfaz de bus I2C.
Parámetro del producto:
1. Voltaje de la fuente de alimentación: 1.5V — 3.6V
2. Rango de prueba de humedad: 0—100% RH
3. Rango de prueba de temperatura: -40 —105 ℃
4. Consumo máximo de energía: 2.7UW
5. Modo de comunicación: I2C
6. Rango de precisión de humedad (10% RH a 95% RH): HTU21D ± 2% RH
7. Retardo de humedad: ± 1% RH
8. Tiempo de prueba: 50ms
9. Cantidad de deriva anual: -0.5% RH / año
10. Tiempo de respuesta: 5 s
Características:
1.Adopt ROHM original BH1750FVI chip
2. Fuente de alimentación: 3-5v
3.Light Intensity Range: 0-65535 lx
4.Sensor está equipado con un conversor de
16bitAD 5.Directamente salida digital, ahorra cálculos complejos y calibración
6. No diferenciar la fuente de luz ambiental
7. Cerca de las características espectrales de la sensibilidad visual
8.Capaz de realizar pruebas de alta precisión lx a gran brillo
9. Estándar NXP IIC protocolo de comunicación
10. Dentro del módulo incluye conversión de nivel de comunicación, se puede conectar directamente con 5v SCM io
Código simples de ejemplos
Ejemplo HTU21D
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <Wire.h> #include <SHT2x.h> void setup() { Wire.begin(); Serial.begin(9600); } void loop() { Serial.print("Humidity(%RH): "); Serial.print(SHT2x.GetHumidity()); Serial.print(" Temperature(C): "); Serial.println(SHT2x.GetTemperature()); delay(1000); } |
Ejemplo BH1750FVI
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <Wire.h> #include <BH1750.h> BH1750 lightMeter; void setup(){ Serial.begin(9600); lightMeter.begin(); Serial.println("Running..."); } void loop() { uint16_t lux = lightMeter.readLightLevel(); Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); delay(1000); } |
Ejemplo BMP180
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <Wire.h> #include <Adafruit_BMP085.h> Adafruit_BMP085 bmp; void setup() { Serial.begin(9600); if (!bmp.begin()) { Serial.println("Could not find a valid BMP085 sensor, check wiring!"); while (1) {} } } void loop() { Serial.print("Temperature = "); Serial.print(bmp.readTemperature()); Serial.println(" *C"); Serial.print("Pressure = "); Serial.print(bmp.readPressure()); Serial.println(" Pa"); Serial.print("Altitude = "); Serial.print(bmp.readAltitude()); Serial.println(" meters"); Serial.print("Pressure at sealevel (calculated) = "); Serial.print(bmp.readSealevelPressure()); Serial.println(" Pa"); Serial.print("Real altitude = "); Serial.print(bmp.readAltitude(101500)); Serial.println(" meters"); Serial.println(); delay(500); } |
Componentes electrónicos
Arduino Nano
El Arduino Nano es una placa pequeña, completa y compatible con la placa de pruebas basada en el ATmega328 (Arduino Nano 3.x). Tiene más o menos la misma funcionalidad del Arduino Duemilanove, pero en un paquete diferente. Solo carece de un conector de alimentación de CC y funciona con un cable USB Mini-B en lugar de uno estándar.
Microcontrolador | ATmega328 |
Arquitectura | AVR |
Tensión de funcionamiento | 5 V |
Memoria flash | 32 KB de los cuales 2 KB utiliza el gestor de arranque |
SRAM | 2 KB |
Velocidad de reloj | 16 MHz |
Pines analógicos IN | 8 |
EEPROM | 1 KB |
Corriente CC por pines de E / S | 40 mA (pines de E / S) |
Voltaje de entrada | 7-12 V |
Pines de E / S digitales | 22 (6 de los cuales son PWM) |
Salida PWM | 6 |
El consumo de energía | 19 mA |
Tamaño de PCB | 18 x 45 mm |
Peso | 7 g |
Diagrama de pines
Pines hembra
Zócalo para arduino nano
Display oled sh1106
Se trata de un módulo de pantalla OLED monocromática DE 128×64 puntos con interface I2C .Que presenta varias ventajas en comparación con pantallas LCD, y podemos destacar su alto brillo, un muy buen contraste, un ángulo de visión más amplio, y bajo consumo de energía. ES compatible con Arduino Rasberry Pi y microcontroladores PIC entre otros. Trabaja con niveles lógicos de 3.3V a 5V tiene un angulo de visión mayor a los 160 grados. el Tamaño de la pantalla es de 1,3 pulgadas. Se alimenta con un voltaje de 3.3V a 5V Se lo puede usar en aplicaciones como relojes inteligentes, MP3, termómetros, instrumentos, y proyectos varios, etc.
Librería
Características
- Interface: I2C(3.3V / 5V logic level)
- Resolution: 128 x 64
- Angle of view: >160 degree
- Display color: Blue
- Display size: 1.3 inch
- Driver IC: SH1106
- Power supply: DC 3.3V~5V
- Operating temperature: -20~70’C
- Application: smart watch, MP3, thermometer, instruments, DIY projects, etc.
PCB
Descargar archivo gerber –> PCB
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
/**************************************** * Incluir librerias ****************************************/ #include <Wire.h> #include "U8glib.h"//Librería para el control del display oled U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);// I2C / TWI Se habilita esta linea según el display a usar en este caso el driver #include <Adafruit_BMP085.h> #include <BH1750FVI.h> #include "SparkFunHTU21D.h" Adafruit_BMP085 bmp; // Crea la instancia de Lightsensor. BH1750FVI LightSensor(BH1750FVI::k_DevModeContLowRes); //Crear una instancia del objeto myHumidity HTU21D myHumidity; float temperatura ; float humedad ; float presion ; float altitud; uint16_t lux ; void setup() { Serial.begin(115200);//Puerto serial a 115200 //Verificamos si el sensor está bien conectado if (!bmp.begin()) { Serial.println("No se pudo encontrar un sensor BMP085 válido, verifique el cableado!"); while (1) {} } LightSensor.begin(); myHumidity.begin(); } void loop() { /**************************************** * Leemos el valor de cada uno de los sensores y lo asignamos a sus respectivas variables ****************************************/ temperatura = bmp.readTemperature(); humedad = myHumidity.readHumidity(); presion = bmp.readPressure(); altitud = bmp.readAltitude(); lux = LightSensor.GetLightIntensity(); /**************************************** * Imprimimos en el terminal serial los datos obtenidos ****************************************/ //Temperatura Serial.print("Temperatura = "); Serial.print(temperatura); Serial.println(" *C"); //Humedad Serial.print("Humedad: "); Serial.print(humedad, 2); Serial.println("%"); //Presión Serial.print("Presion = "); Serial.print(presion); Serial.println(" Pa"); //Altitud Serial.print("Altitud = "); Serial.print(altitud); Serial.println(" metros"); //Intensidad de luz Serial.print("Luz: "); Serial.println(lux); //Funcíon para mostrar los datos obtenidos en el display oled(); delay(1000); } //Funcíon para mostrar texto en el dislplay oled void oled(){ u8g.firstPage(); do { draw();//Llama a la función draw } while( u8g.nextPage() ); // Reconstruir la imagen después de un tiempo delay(50); } void draw(void) { //Temperatura u8g.setFont(u8g_font_unifont); u8g.setPrintPos(0, 10); u8g.print("TEMP: ");// u8g.print(temperatura, 2); //Humedad u8g.setPrintPos(0, 22); u8g.print("HUME: "); u8g.print(humedad, 2);// //Presión u8g.setPrintPos(0, 34); u8g.print("PRES: "); u8g.print(presion, 0); //Altitud u8g.setPrintPos(0, 46); u8g.print("ALTI: "); u8g.print(altitud, 2); //Intensidad de luz u8g.setPrintPos(0, 58); u8g.print("LUZ : "); u8g.print(lux); } |
PROYECTO RECOMENDADO