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 nivel de sumidero

Componentes y suministros

Arduino Nano R3
× 1
Freescale MPXV5010DP
× 1
Pantalla OLED de 0.96 "
× 1
MCP4725 DAC
× 1
Retransmisión (genérico)
× 1
Condensadores 1uf, .01uf, 470pf todos SMD
× 1
Caja de plástico transparente para proyectos de 110 mm * 85 mm
× 1
Tygon Tubing 3/32 "
× 1

Acerca de este proyecto

El monitor de nivel de sumidero fue construido para funcionar con una placa de entrada Ecobee RSM-01 que tengo en la casa de mi hija o en mi proyecto Home Monitor. Agregué un relé para permitirle estar solo. Quería algo que sintiera que sería más confiable y más fácil de instalar que un sensor ultrasónico. Con este fin, comencé a buscar sensores de presión y finalmente encontré Freescale MPXV5010DP. Tiene una salida de 0-5vdc para 0-10kPa, que sería aproximadamente 1020 mm de altura de agua.

Como quería una indicación local, elegí un módulo OLED para usar en el diseño. Barato, brillante y este tenía una pantalla de dos colores. Para proporcionar interfaz, agregué un relé para una salida de contacto seco. Agregué un DAC (convertidor digital a analógico) para una salida de 0-5vdc con más potencia que el sensor MPXV5010DP, esto también protegerá al sensor de posibles daños en el cableado. Como estoy usando la comunicación I2C, todo lo que se necesita son cambios de software para suministrar datos a otro Arduino.

Diseñé y construí una placa personalizada para facilitar las conexiones. Proporciona suficiente flexibilidad para diferentes configuraciones.

El sensor está conectado mediante un tubo Tygon a un tubo de cobre que se dirige hacia el sumidero. Esto permite cierta discreción sobre dónde montar el monitor y lo mantiene alejado del agua.

Código

  • Monitor de nivel de sumidero
Monitor de nivel de sumidero C / C ++
Analice según lo necesite, la basura adicional en esta versión siga adelante y limpie como desee.
 #include  #include  #include  #include  #include  #include  #define OLED_RESET 4Adafruit_SSD1306 display (OLED_RESET); # if (SSD1306_LCDHEIGHT! =64) #error ("Altura incorrecta, por favor corrija Adafruit_SSD1306.hif!"; int relayPin =5; // para relé de alarma outputint analogPin =0; // mide el voltaje de salida dacint v1 =0; // Salida ADC de MPXV5010int v2 =0; // el escalado para la entrada dac convierte de entrada PS a dac inputint v3 =0; // para conversión mm desde PS inputint v4 =0; // para el porcentaje de profundidad de PS inputint v5 =0; // salida de dac leída por arduinoint v6 =0; // para conversión de mV desde PS inputfloat v7 =0; // convertir de mm a pulgadasint v8 =0; // para eliminar decimales en pulgadas que destruyen la pantalla int offSet =40; // la salida de 0 kPa medida por arduinoint maxSet =1015; // la salida de 10 kPa medida por arduinoint maxHeight =1020; // la profundidad del sumidero desde el nivel de agua normal hasta la tapa en mmint rango =(maxHeight * 0.8) + offSet; int alarmHeight =12; // la altura de la alarma en pulgadas // Para el sensor de presión diferencial MPXV5010DPint analogPin2 =1; Float divisor =25.4; // para convertir la pantalla a pulgadas. setup () {Serial.begin (9600); Serial.println ("Prueba DAC con sensor DP"); // por defecto, ¡generaremos el alto voltaje de la línea de 3.3v internamente! (¡ordenado!) display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // inicializar con I2C addr 0x3D (para 128x64) // init hecho // Limpiar el búfer. display.clearDisplay (); // Para MCP4725A0, la dirección es 0x60 o 0x61 dac.begin (0x60); pinMode (relayPin, SALIDA); digitalWrite (relayPin, HIGH);} bucle vacío () {v1 =analogRead (analogPin2); retraso (1000); if (v1  alarmHeight) {display.invertDisplay (true); digitalWrite (relayPin, LOW);} else {display.invertDisplay (falso); digitalWrite (relayPin, HIGH);} display.setTextSize (2); display.setTextColor (BLANCO); display.setCursor (0,0); display.println ("NIVEL DE SUMIDERO"); //display.setTextColor(NEGRO, BLANCO); // texto 'invertido' display.setTextSize (4); display.setTextColor (BLANCO); display.print (v8); display.setTextSize (2); display.println ("pulgadas"); display.display (); retraso (500); } void serial () {// para depuración y calibración Serial.print ("Entrada analógica PS:"); Serial.print (v1); Serial.print ("Alto:"); Serial.print (v3); Serial.print ("mm"); Serial.print (v4); Serial.print ("%"); Serial.print ("Voltaje convertido:"); Serial.print (v6); Serial.println ("mV");} // fin 

Esquemas

Usó Eagle 6.5.0 sumidero% 20level.sch

Proceso de manufactura

  1. Monitor de presión arterial
  2. Ámbito variable de C#
  3. Monitor de calidad del aire y medio ambiente de bricolaje
  4. ASISTENTE DE GOOGLE DE MATRIX VOICE - PROYECTO DE MATRIX VOICE
  5. Monitor del tiempo
  6. Monitor de frecuencia cardíaca remoto
  7. Rover
  8. GoPiGo v2 con Windows IoT
  9. Modelado de nivel de puerta
  10. Máquina JW
  11. Cómo nivelar un torno