![]() | En este artículo vamos a ver cómo construir un dispositivo capaz de leer y mostrar en una pantalla de la altura del nivel del agua en un pozo o una cisterna. Open Source se utiliza un dispositivo de hardware llamado Arduino , un sensor ultrasónico para medir la altura de agua, una pantalla LCD de 16 caracteres en dos líneas y un zumbador que nos avise si el nivel supera un determinado umbral. |
Ver
El proyecto, como ya hemos mencionado, se compone de varias partes. Un sensor de sonar para ser colocado en la parte superior del pozo (lejos del agua) que mira hacia abajo a fin de medir la distancia entre el punto más alto del pozo y el agua. Tomando una simple diferencia entre la altura de la parte inferior para el sensor y el medidor lee se obtiene la altura del agua. A intervalos de tiempo predeterminados la cantidad de agua se lee y se muestra. Si el nivel excede un umbral dispara una alarma que suene el timbre hasta que los niveles de caer por debajo del umbral o cuando se apaga manualmente el timbre.
Arduino controla la lógica de funcionamiento, a través de un programa que se verá más adelante, y gestiona todos los dispositivos.
Arduino
Arduino es una plataforma de código abierto de electrónica basada en la simplicidad y facilidad de uso. Son precisamente estas características que se han utilizado los artistas, el diseño, los aficionados y cualquier persona interesada en la creación de objetos o entornos interactivos.
Es compatible con un gran número de sensores y se programa a través de un lenguaje que tiene muchas similitudes con el C. Desde el sitio del proyecto se puede descargar un ambiente con el editor, compilador y función de carga. Todo lo que necesitamos para programar el Arduino. También puede utilizar las herramientas de línea de comandos, pero ahora nos ocuparemos de esto.
Diagrama de cableado
PCB
Bloc de dibujo
A continuación se muestra el programa cargado en el Arduino. El código es muy simple, especialmente si ya sabes C o C + +. Tenga en cuenta que carece de la función main (), la ejecución comienza con la invocación de la configuración de la función () una sola vez en el inicio del dispositivo y, a continuación bucle de la función de loop ().
/* initialize the library with the numbers of the interface pins */ LiquidCrystal lcd ( 12 , 11 , 5 , 4 , 3 , 6 ) ; int mute = 0 ; byte * getChar ( int n , byte newChar [ ] ) { int i ; byte / * - * - Modo: c - * - * / / *** pozzo.pde * Versión: 1.2 * / # include <liquidCrystal.h> PING_PIN 13 # define # define # define SWITCH_INT BUZZER_PIN 8 0 / * 0 => el pin 2 * / # define PI 3.1415926535898 # define SUPERFICE_BASE (R_POZZO R_POZZO * PI *) # define SIZE_BAR (16 * 5) # define ALARM_ICON 0 / * código * / # define SOUND_ICON 6 / * código * / # define SOUND_ICON_ON 7 / * el código * / # define R_POZZO 0,5 / radio * y (m) * / # define H_POZZO 146,0 / * cm * / # define SOGLIA_ALLARME_1 100 / * cm * / # define SOGLIA_ALLARME_2 120 / * cm * / # define DELAY_0 60000 / ms * , 1000 * 60 * 1 = 1 min * / # define DELAY_1 600 / * m * / # define DELAY_2 200 / * m * / / * inicializar la biblioteca con los números de las clavijas de la interfaz * / LiquidCrystal LCD (12, 11, 5, 4, 3, 6); silencio int = 0; bytes * getchar (int n, byte newChar []) {int i; bytes ] ; /* set up the LCD's number of rows and columns: newChar [8]; / * configurar el número de la pantalla LCD de filas y columnas: * BAJA para provocar la interrupción Cada vez que el pin es el CAMBIO bajo, * para activar el pin de interrupción Cada vez que cambia el valor para disparar RISING * Cuando el pin va de menor a mayor, por CAÍDA * Cuando el pin va de mayor a menor. SWITCH_INT , button , RISING ) ; /* initialize serial communication * / AttachInterrupt (SWITCH_INT, botón, RISING); / * inicializar la comunicación en serie lea la altura de nuevo wather ; // litres = SUPERFICE_BASE * (hWather / 100.0) * 1000 litres = floor ( SUPERFICE_BASE * hWatherCm * 10 ) ; lcd. print ( litres ) ; lcd. print ( " l cm - ") / / = SUPERFICE_BASE litros * (hWather / 100,0) * 1000 litros = piso (* SUPERFICE_BASE hWatherCm * 10);.. LCD de impresión (litros); LCD de impresión (" el Serial.print ("cm ="); Serial.println (hWatherCm); DELAY_0 ) ; } } void print_histogram ( int hWatherCm ) { int i ; int bloks ; float histogram ; // hWatherCm : HPOZZO = histogram : sin demora de la alarma (DELAY_0);}} print_histogram void (hWatherCm int) {int i; bloks int, float histograma; / / hWatherCm: HPOZZO = histograma: duration , hWatherCm ; /** * The PING))) is triggered by a HIGH pulse of 2 or more microseconds. * Establecer las variables de duración de la mesa, * y la distancia en centímetros resultado: * / larga duración, hWatherCm; / *** El PING))) es provocada por un pulso de alta de 2 microsegundos o moras. * Dar un impulso de corto y bajo de antemano para asegurar un pulso de alta limpio: * El mismo PIN se utiliza para leer la señal del PING))): a * ALTA quién duración del pulso es el tiempo (en microsegundos) * a partir del envío de la mesa de ping a la recepción de la SU echo off de un objeto. PING_PIN , INPUT ) ; duration = pulseIn ( PING_PIN , HIGH ) ; /* convert the time into a distance * / PinMode (PING_PIN, INPUT); = duración PulseIn (PING_PIN, HIGH); / * convertir el tiempo en una distancia * La velocidad del sonido es 340,29 m / s, o 29,4 microsegundos por centímetro. * El ping viaja de ida y vuelta, sé que para encontrar la distancia del objeto * tomamos la mitad de la distancia recorrida. microseconds / 29.387 / 2 ; } void button ( ) { // Serial.println("Pulsante premuto"); mute = ! mute ; lcd. setCursor ( 15 , 1 ) ; if ( ! mute ) lcd. write ( SOUND_ICON_ON ) ; else lcd. write ( 'X' ) ; } * / Return microsegundos / 29 387/2;} botón de vacío () {/ / Serial.println ("botón pulsado"); = silencio mudo;!. (! Silencio). SetCursor LCD (15, 1) si Escribir LCD ( SOUND_ICON_ON). más LCD write ('X');}













En primer lugar, felicidades por el proyecto. También estoy realizando algo parecido, ¿me puede decir la marca y modelo del sensor de ultrasonidos y la pantalla LCD?
Gracias por los elogios,
para el sensor de ultrasonidos que utiliza el Ping))) Parallax costo y la entrega es una suma considerable, pero preferí eso porque yo quería estar seguro de que trabajó con Arduino.
Para la pantalla se puede elegir cualquiera que sea compatible con el controlador Hitachi HD44780, que son la mayoría de los seres en el mercado. Lo único que hay que tener en cuenta es las salidas de pin-porque puede cambiar de modelo a modelo.
¡Hola! También he hecho un poco de algo muy similar, como solía saensore SFR05, te quería preguntar si la medida es correcta del sensor dle cuando el sensor se coloca en el interior del tanque, que en mi caso es un tanque subterráneo 1.000 litros, me di cuenta de que claramente el ambiente es muy húmedo, y el condensado al riesgo de corto no sé cómo llevarse bien con los EE.UU. cápsulas .... Para una primera prueba, parece que las medidas son inferiores a los reales ...
¿Es usted consciente de los cambios en las características del agua bombardeados por ultrasonido ..?
Nos vemos pronto.
Marca
Tengo una medida bastante exacta, hay que tener cuidado de colocar el sensor de distancia de las paredes del depósito, y perpendiculares al agua. `No sé si la superficie del agua afecta a la ecografía, seguro que la velocidad del sonido varía dependiendo de la humedad` `pero aquí estamos hablando de unos pocos metros ... la diferencia es prácticamente insignificante.
Quería preguntarle si ha tomado alguna medida, en el sensor de ... han utilizado una caja de ABS sello hermético con cápsulas de silicona de dos ..? Puse el SRF05 dentro de una caja de metal con agujeros para liberar la cápsula.
Los problemas son quizá 2 que del lado corto de la placa del sensor debido a la alta humedad y la condensación, el otro es relativsa las propias cápsulas, es decir, incluso si así aislar el PCB las cápsulas necesariamente debe estar en contacto con el aire húmedo y condenza ... Arruginirsi eventualmente ..?
¿Algún consejo?
Gracias
Exactamente, me pongo el sensor de ultrasonidos en un cruce statola, los de plástico y he hecho dos agujeros para dejar salir los sensores. Si yo lo puedo hacer algunas fotos. Bueno, yo sólo poner en la tabla, hay 3 cables (2 + 1 señal de fuente de alimentación) que salen de la caja y llegar al resto del circuito que está seco.
Así que si yo lo entiendo que en una caja resistente al agua "alrededor de la mesa (cápsulas y circuitino) y luego llegar a los 3 cables del controlador (Arduino u otras cosas ...)
Y todo Funza ..? no ha creado una condensación miedo dentro de la caja ..? que ver con los pequeños agujeros para la ventilación o no ..?
Dame los detalles con ...
PS: el Idale podría tener para que entre aire en la caja, quizás a través de un tubo que sale del tanque ... Pero se vuelve más complicado de lo ...
Gracias por el consejo.
Marca
¡Hola
También quería crear un objeto como este x comprobar el agua de pozo.
¿Me puedes dar la lista de los equipos adquiridos, lo que trato de comprar todo con la esperanza de tener éxito?
Gracias
Componentes:
Arduino 1
Una resistencia de 10K ohmios
Un timbre
Un botón de
Un sensor ultrasónico Ping))) Parallax
Un LCD de 16x2 Compatible con Hitachi HD44780 chip de visualización
Un potenciómetro de 10k
Hola,
lo siento si el punto de equilibrio, otra pregunta ..
Sería posible, entonces, lo veo a través de LAN?
es decir, "si tomo un Arduino con ethernet, entonces puedo ver los datos a través de LAN?
Sí, esto es una cosa muy agradable de hacer ... Yo, lamentablemente, tienen los cables Ethernet fuera del circuito. Si usted tiene un servidor está disponible, puede almacenar datos en una base de datos y luego hacer una página web con gráficos.
Resumen de preguntas y añadir 1, porque «el bien y" sobre 20/25m, por lo que yo quería entender cómo hacer el ultrasonido .. x
1) 1 timbre de ese tamaño?
2) 1 potenciómetro de 10k ¿qué es?
Tres) han utilizado una lata de 7-plazas Bticino correcta? ¿cómo configurar la pantalla LCD? Me refiero a la máscara de negro se ve
4) ¿Cuándo y "la letra grande, me refiero a su tamaño ..
5) ¿Ha utilizado un cable de audio jack estéreo x conectar el ultrasonido? a continuación, los calcetines rojos y negro?
6) ¿cómo puedo saber que el agua y "entre 20 - 25 m? Entiendo que la paralaje no es bueno.
El sonar de Parallax leer desde una distancia de 2 cm a 3 m, por lo que no es bueno para su bienestar. Busqué a alguien más poderoso, sino que viene de hasta 6 m, no creo que hay uno que llega a 25 metros, pero puede ser que tenga más suerte que yo.
Si no puede hacerlo con su sónar puede considerar el uso de un sensor de presión que se coloca en el fondo del pozo, para que lea como el agua va hacia abajo, en pocas palabras el peso del agua, más agua se `y pesa más. A partir de ese valor puede ricavarti altura. `Pero yo no tengo que dar muchas informaciones al respecto.
Para otras preguntas ... El timbre es un negocio que suena cuando se enciende, es uno que trabaja con 5v. El potenciómetro se utiliza para ajustar la luminosidad de la pantalla de personajes, no hay necesidad de darle la vuelta y otra vez, una vez establecido permanece fijo, que 's por eso lo puse de nuevo al circuito. La caja es Bticino los 7 asientos, la parte delantera es un plato negro de acero que lo hice con la mano. Jack se puede usar para cualquiera que se sirve con 3 hilos y yo el sonido aunque no me gusta como una solución, si tuviera que hacerlo otra vez me gustaría utilizar los conectores que se sueldan directamente sobre PCB.
Espero haber aclarado todas sus dudas
Qué crees que puede utilizar esta sonda, sin tener que cambiar el circuito o el programa?
y "un MB1361: XL-MaxSonar-AEL1 hace 10 metros .. pero puse 10 metros de cable y me han solucionado ...
Me decidí a "estirar" el cable y luego tomar un rostro 6 metros .. siento .. Yo uso esta en su opinión?
http://www.robot-italy.com/product_info.php?cPath=15_48_146&products_id=99 y "el Devantech SRF10.
Sin tener que cambiar su circuito / sw, porque 'lo que' me tomo todo, desde un solo sitio y también comprar el manejo de caja x ..
¿Qué piensa usted?