Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Monitor de distancia ultrasónica y temperatura con Arduino y LCD con sistema de alarma

Componentes y suministros

Componente Cantidad
Arduino UNO 1
LCD Estándar Adafruit 16x2 Blanco sobre Azul 1
Sensor ultrasónico HC-SR04 (genérico) 1
Termómetro digital DS18B20 1-Wire (Maxim Integrated) 1
Resistencia 4.75k ohm 1
Pulsador 12mm (SparkFun) 1
Potenciómetro mono-vuelta 10k ohm 1
Zumbador (buzzer) 1
LEDs 3
Resistencia 221 ohm 3
Protoboard (genérica) 1
Cables puente (genéricos) 1

Aplicaciones y servicios en línea

Sobre este proyecto

Monitor de distancia ultrasónica y temperatura con Arduino y LCD con sistema de alarma
Monitor de nivel de agua completado

Este proyecto me da la información que necesito sobre el nivel de agua en un tanque. Cuando el nivel es bajo, el LED verde está ENCENDIDO. Cuando el nivel es medio, el LED amarillo está ENCENDIDO. Cuando el nivel es ALTO el LED rojo parpadea al mismo tiempo con sonido de zumbador. La distancia del sensor al nivel de agua se mide por el sensor ultrasónico y se muestra en el LCD junto con la temperatura en ese tanque.

Este proyecto es parte de un proyecto mayor. La segunda parte serán 6 LEDs en persecución montados en círculo para indicar que la bomba está bombeando. Ver: proyecto de LEDs en persecución. La tercera parte arrancará la bomba cuando el nivel sea alto y la parará cuando el nivel sea bajo (en construcción). Para el proyecto real uso un sensor ultrasónico resistente al agua, esto no cambiará el cableado ni el código. No sé qué pasará con las lecturas cuando el sensor esté mojado (humedad), así que este proyecto es solo para darme información, el tercer proyecto se usará para las actividades de la bomba y se hará con contactos magnéticos.

Código

Archivo sin título (C/C++)

#include <LiquidCrystal.h> // Cargar librería Liquid Crystal
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 6 // Cable de datos conectado al pin 6 del Arduino
OneWire oneWire(ONE_WIRE_BUS); // Configurar instancia oneWire para comunicar con dispositivos OneWire
DallasTemperature sensors(&oneWire); // Pasar referencia oneWire a Dallas Temperature

LiquidCrystal LCD(12, 11, 5, 4, 3, 2); // Crear objeto Liquid Crystal llamado LCD

int trigPin = 9; // Pin Trigger del sensor conectado al pin 9 de Arduino
int echoPin = 7; // Pin Echo del sensor conectado al pin 7 de Arduino
int myCounter = 0; // Declarar variable myCounter y poner a 0
float pingTime; // Tiempo para que el ping viaje del sensor al objetivo y vuelta
float targetDistance; // Distancia al objetivo en Centímetros
float speedOfSound = 776.5; // Velocidad del sonido en millas por hora

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  LCD.begin(16, 2); // Decirle a Arduino que inicie tu LCD 16x2
  LCD.setCursor(0, 0); // Poner cursor LCD en esquina sup. izq., columna 0, fila 0
  LCD.print("Distance:"); // Imprimir mensaje en primera fila
  sensors.begin(); // Iniciar la librería
  pinMode(8, OUTPUT); // pines 8, 10, 13 como salida
  pinMode(10, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(trigPin, LOW); // Poner pin trigger a LOW
  delayMicroseconds(2000); // Dejar asentar la señal
  digitalWrite(trigPin, HIGH); // Poner trigPin a HIGH
  delayMicroseconds(15); // Retardo en estado HIGH
  digitalWrite(trigPin, LOW); // Ping enviado
  delayMicroseconds(10); // Retardo en estado HIGH
  pingTime = pulseIn(echoPin, HIGH); // pingTime en microsegundos
  pingTime = pingTime / 1000000; // Convertir pingTime a segundos dividiendo por 1000000
  pingTime = pingTime / 3600; // Convertir pingTime a horas dividiendo por 3600
  targetDistance = speedOfSound * pingTime; // Esto será en millas
  targetDistance = targetDistance / 2; // El ping viaja ida y vuelta, dividir por 2 para distancia real
  targetDistance = targetDistance * 160934.4; // Convertir millas a centímetros multiplicando por 160934.4

  sensors.requestTemperatures(); // Enviar comando para obtener lecturas de temperatura

  LCD.setCursor(10, 0); // Poner cursor en columna 10 de primera fila
  LCD.print(" "); // Imprimir espacios para limpiar la fila
  LCD.setCursor(10, 0); // Poner cursor de nuevo en columna 10 de primera fila
  LCD.print((int) (targetDistance + 0.5)); // Imprimir distancia medida
  LCD.print("cm "); // Imprimir unidades

  LCD.setCursor(0, 1); // Poner cursor en primera columna de segunda fila
  LCD.print(" "); // Imprimir espacios para limpiar la fila
  LCD.setCursor(0, 1); // Poner cursor de nuevo en primera columna de segunda fila

  if (targetDistance > 40) {
    LCD.print("LEV LOW ");
    LCD.print(sensors.getTempCByIndex(0));
    LCD.print((char)223);
    LCD.print("C");
  } else if (targetDistance < 40 && targetDistance > 20) {
    LCD.print("LEV MED ");
    LCD.print(sensors.getTempCByIndex(0));
    LCD.print((char)223);
    LCD.print("C");
  } else if (targetDistance < 20) {
    LCD.print("LEV HIGH ");
    LCD.print(sensors.getTempCByIndex(0));
    LCD.print((char)223);
    LCD.print("C");
  }

  delay(2000);

  if (targetDistance > 40) {
    digitalWrite(13, HIGH); // LED Verde ENCENDIDO
  } else {
    digitalWrite(13, LOW); // LED Verde APAGADO
  }

  if (targetDistance < 40 && targetDistance > 20) {
    digitalWrite(8, HIGH); // LED Amarillo ENCENDIDO
  } else {
    digitalWrite(8, LOW); // LED Amarillo APAGADO
  }

  if (targetDistance < 20) {
    digitalWrite(10, HIGH); // LED Rojo ENCENDIDO
    delay(2000);
    digitalWrite(10, LOW); // LED Rojo APAGADO
  } else {
    digitalWrite(10, LOW); // LED Rojo APAGADO
  }
}

Esquemas

Archivo de esquema Fritzing: lcd_pot_led_buzz_pb_distsens_temp_EHVdF6S1L7.fzz

Proceso de manufactura

  1. Sistema de control de acceso integrado con QR, RFID y verificación de temperatura
  2. Conectar múltiples sensores DS18B20 1‑Wire a Raspberry Pi para monitorización precisa de temperatura
  3. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  4. Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
  5. Construye un sistema aeropónico automatizado con Raspberry Pi y sensor de humedad
  6. Monitor de temperatura casero con Raspberry Pi, MCP9808, InfluxDB y Grafana
  7. Integración de sensor termopar con Arduino Portenta H7 usando MAX6675
  8. Proyecto Sensor DHT11 Temperatura y Humedad con Indicadores LED y Altavoz Piezo
  9. Sistema de Sensor de Temperatura Multiposición para Integración en Hogar Inteligente
  10. Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO
  11. Sensor Lab-On-Chip de NASA Goddard Ofrece Monitoreo en Tiempo Real de Flujo y Temperatura