SR-241101 Barómetro y Altímetro con ATMega8 y BMP180.
Este proyecto consta de un medidor de Presión Barométrica y Altímetro. Funciona a base de un microcontrolador ATMEGA8 y del sensor BMP180, y muestra los valores de Presión barométrica, Temperatura y Altitud a través de un display OLED 128x32.
Vista frontal del circuito
Vista trasera del circuito
Adicionalmente se incluye un arreglo de leds que permiten visualizar si la Altitud está incrementando o disminuyendo, emulando el funcionamiento de un altímetro como los que se encuentran a bordo de los aviones.
A este circuito se le pueden agregar otras funciones como por ejemplo: una alerta que indique al conductor en qué momento es necesario revisar la presión de los neumáticos a partir de un cambio de altura significativo; o calcular la variación de presión de los neumáticos partiendo de una presión y temperatura inicial; incluso se puede implementar un graficador de presión barométrica y hacer predicciones meteorológicas básicas; o puede servir como prototipo para desarrollar otros proyectos con el sensor BMP180, display OLED 128x32, y protocolo i2c.
DIAGRAMA DEL CIRCUITO
El diagrama de este proyecto fue realizado en el programa KiCad 7.0, a continuación se muestra y se describe cada una de sus partes, así mismo los archivos editables pueden ser descargados al final de este post.
Vista frontal del PCB
Vista trasera del PCB
PROGRAMA (CÓDIGO) DEL MICROCONTROLADOR
El programa para este proyecto fue realizado en lenguaje C, el código se encuentra disponible para su descarga en el enlace que se encuentra al final de este post. También encontrarán el archivo Hexadecimal listo para ser grabado en el microcontrolador ATMega8A.
LINK DE DESCARGA DEL DIAGRAMA, PCB Y CÓDIGO DEL PROYECTO.
SR-230501 y SR-230502 Modulo de Adquisición, Transmisión y Recepción por RF 433Mhz
Este proyecto fue realizado con fines didácticos y es 100% funcional. El objetivo de este circuito es sensar el nivel de agua de un tinaco y la temperatura del agua de un calentador solar, ambos ubicados en la azotea de una casa y transmitir los valores obtenidos a través de radiofrecuencia (inalámbrico con modulos de 433 MHz) hacia el receptor ubicado en el interior de la vivienda. De esta forma se puede saber la cantidad de agua disponible y la temperatura del calentador sin necesidad de subir a la azotea.
Este circuito también puede servir como base o referencia para desarrollar algún otro proyecto que se desee, en el que se requiera monitorear alguna variable o parámetro inalámbricamente y enviarlo a un receptor mediante radiofrecuencia.
El corazón de este proyecto es el microcontrolador ATMega8 a una frecuencia de operación de 4Mhz, tanto en el circuito transmisor como en el receptor.
Microcontrolador ATMega8, montado sobre el PCB.
Circuito transmisor
Para sensar el nivel de agua se utiliza un módulo ultrasónico JSN-SR04T como el que se muestra en la imagen siguiente, sin embargo puede utilizarse un módulo distinto que sea compatible.
Módulo ultrasónico JSN-SR04T.
Para sensar la temperatura del calentador de agua, se utiliza un sensor analógico LM35. La medición y conversión de valores de voltaje a valores de temperatura se realiza directamente en el microcontrolador ATMega8.
Una vez que el microcontrolador obtiene los valores de nivel y temperatura, los envía hacia el codificador HT12E y este a su vez los transmite a través de un modulo de 433 MHz como el que a continuación se muestra:
Módulo transmisor de 433 MHz.
Una de las ventajas de utilizar este tipo de transmisores es que son muy baratos y fáciles de conseguir, así mismo su rango de alcance es suficiente para alcanzar distintas áreas de la casa ubicadas hasta 50 metros de distancia aproximadamente.
Circuito receptor con display OLED
Del otro lado de la transmisión se encuentra el circuito receptor, el cual utiliza igualmente un Microcontrolador ATMega8 en conjunto con un módulo receptor de 433MHz y un decodificador HT12D.
Módulo receptor de 433MHz.
Adicionalmente el circuito receptor integra un Display OLED de 128x32 pixeles para mostrar los valores recibidos.
Display OLED de 128x32.
DIAGRAMA TRANSMISOR
El diagrama de este proyecto fue realizado en el programa KiCad 7.0, a continuación se muestra y se describe cada una de sus partes, así mismo los archivos editables pueden ser descargados al final de este post.
Como mencionamos previamente el circuito transmisor utiliza un microcontrolador AVR ATMega8, con cristal oscilador externo de 4Mhz y alimentación de 5V.
Tenemos un conector para el display OLED con comunicación I2C (Este conector es funcional, sin embargo solo se utilizó para la depuración del programa, el circuito final no es necesario que tenga un display conectado) y un conector para el módulo ultrasónico JSN-SR04T, en caso de utilizar un modulo distinto, se debe verificar que la disposición de los pines coincida con la descrita.
Tenemos un led indicador que encenderá cada vez que se realiza una transmisión de datos, y un conector para el sensor de temperatura LM35.
Tenemos también la parte del codificador HT12E, el cual tiene conectado un DIP Switch para configuración del valor de "Address", también tiene una resistencia de 1M la cual corresponde a una frecuencia de operación de 3KHz y un conector para el módulo transmisor.
Finalmente se incluye un conector de 6 pines (AVR ISP) para la programación y depuración del microcontrolador ATMega8.
PCB vista frontal, TRANSMISOR.
PCB Vista trasera, TRANSMISOR.
DIAGRAMA RECEPTOR
Al igual que el transmisor, este diagrama fue realizado en el programa KiCad 7.0, a continuación se muestra y se describe cada una de sus partes y los archivos editables pueden ser descargados al final de este post.
Como mencionamos previamente el circuito Receptor utiliza un microcontrolador AVR ATMega8, con cristal oscilador externo de 4Mhz y alimentación de 5V.
Tenemos un conector para el display OLED con comunicación I2C de tamaño 128x32 pixeles en el cual podremos observar los valores recibidos. También tenemos un conector para la alimentación de 5V.
Tenemos un par de LED indicadores, de los cuales el LED2 enciende cada vez que se recibe un dato y el LED1 está disponible para otras funciones que se deseen añadir posteriormente.
Tenemos también la parte del decodificador HT12D, el cual tiene conectado un DIP Switch para configuración del valor de "Address" (Este debe coincidir con el Address del transmisor), también tiene una resistencia de 47K la cual corresponde a una frecuencia de operación de 150KHz aproximadamente y un conector para el módulo receptor.
Finalmente se incluye un conector de 6 pines (AVR ISP) para la programación y depuración del microcontrolador ATMega8.
Vista frontal del PCB, RECEPTOR.
Vista trasera del PCB, RECEPTOR.
PROGRAMA
El programa para este proyecto fue realizado en lenguaje C, el código se encuentra disponible para su descarga en el enlace que se encuentra al final de este post. También encontrarán el archivo Hexadecimal listo para ser grabado en el microcontrolador ATMega8.
NOTA: La velocidad de operación del microcontrolador para el correcto funcionamiento del programa que se proporciona en este post, debe configurarse a 4 MHz con cristal externo.
LINKS DE DESCARGA DEL PCB Y PROGRAMA DEL PROYECTO.