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 DIY con Arduino Nano, MPXV5010DP y pantalla OLED

Componentes y materiales

ComponenteCantidad
Arduino Nano R31
Sensor presión diferencial Freescale MPXV5010DP (0-10 kPa, 0-5V)1
Pantalla OLED 0.96" I2C1
Conversor DAC MCP4725 (I2C)1
Relé (salida contacto seco)1
Condensadores SMD (1µF, 0.01µF, 470pF)Varios
Caja plástica transparente 110x85mm1
Tubo Tygon 3/32"1

Sobre el proyecto

Este monitor de nivel de sumidero se diseñó para trabajar con una placa de entrada Ecobee RSM-01 o de forma autónoma. Se buscaba algo más fiable y fácil de instalar que un sensor ultrasónico. El MPXV5010DP entrega 0-5V para 0-10 kPa (≈1020 mm de columna de agua).

Monitor de nivel de sumidero DIY con Arduino Nano, MPXV5010DP y pantalla OLED
Monitor de nivel de sumidero DIY con Arduino Nano, MPXV5010DP y pantalla OLED

Para indicación local se usó una pantalla OLED bicolor. Se añadió:

Monitor de nivel de sumidero DIY con Arduino Nano, MPXV5010DP y pantalla OLED

El sensor se conecta mediante tubo Tygon a un tubo de cobre que baja al sumidero, permitiendo montar el monitor lejos del agua.

Código (Sump Level Monitor)

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Adafruit_MCP4725.h>
#include <math.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

Adafruit_MCP4725 dac;

int relayPin = 5;
int analogPin = 0;   // lectura salida DAC
int v1 = 0;          // ADC sensor MPXV5010
int v2 = 0;          // escalado para DAC
int v3 = 0;          // mm
int v4 = 0;          // % profundidad
int v5 = 0;          // lectura DAC
int v6 = 0;          // mV
float v7 = 0;        // pulgadas
int v8 = 0;          // pulgadas redondeadas

int offSet = 40;      // 0 kPa en ADC
int maxSet = 1015;    // 10 kPa en ADC
int maxHeight = 1020; // mm fondo sumidero
int ranging = (maxHeight * 0.8) + offSet;
int alarmHeight = 12; // pulgadas alarma
int analogPin2 = 1;
float divisor = 25.4; // mm a pulgadas

void setup() {
  Serial.begin(9600);
  Serial.println("DAC test with DP sensor");
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  dac.begin(0x60);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH); // relé activo en LOW
}

void loop() {
  v1 = analogRead(analogPin2);
  delay(1000);
  if (v1 < offSet) v1 = offSet;

  v2 = map(v1, offSet, maxSet, 0, 4095); // para DAC
  dac.setVoltage(v2, false);

  v3 = (v1 - offSet) / 0.8;           // mm
  v7 = v3 / divisor;                  // pulgadas
  v8 = round(v7);                     // entero
  v4 = map(v1, offSet, ranging, 0, 100); // %
  v5 = analogRead(analogPin);         // 0-1023
  v6 = map(v5, 0, 1023, 0, 5000);     // mV

  printoled();
  serial();
}

void printoled() {
  display.clearDisplay();
  if (v8 > alarmHeight) {
    display.invertDisplay(true);
    digitalWrite(relayPin, LOW); // activa alarma
  } else {
    display.invertDisplay(false);
    digitalWrite(relayPin, HIGH);
  }
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("SUMP LEVEL");
  display.setTextSize(4);
  display.print(v8);
  display.setTextSize(2);
  display.println(" inches");
  display.display();
  delay(500);
}

void serial() {
  Serial.print(" PS analog input: "); Serial.print(v1);
  Serial.print(" Height: "); Serial.print(v3); Serial.print(" mm ");
  Serial.print(v4); Serial.print(" %");
  Serial.print(" Converted voltage: "); Serial.print(v6); Serial.println(" mV");
}

Esquemático

Diseñado con Eagle 6.5.0: sump%20level.sch

Monitor de nivel de sumidero DIY con Arduino Nano, MPXV5010DP y pantalla OLED

Proceso de manufactura

  1. Monitor de presión arterial: Diseño, fabricación y tendencias futuras
  2. Construya una estación meteorológica y de calidad del aire con Raspberry Pi, InfluxDB y Grafana
  3. Instalar Google Assistant en MATRIX Voice Raspberry Pi: guía paso a paso
  4. Monitor Meteorológico – Estación Meteorológica DIY con Raspberry Pi y Subida a Dropbox
  5. Sistema de Monitorización Remota de Frecuencia Cardíaca con Alertas AWS IoT
  6. Construye un Rover con Windows IoT Core en Raspberry Pi 2 – Guía de Principiante a Avanzado
  7. Extensión de GoPiGo v2 en Windows 10 IoT Core para Raspberry Pi 3
  8. JW Machine: Servicios de Fabricación por Contrato CNC de Precisión
  9. Nivelación Precisa de Torno: Guía Profesional
  10. Entendiendo el ámbito de variables en C#: Nivel de clase, método y bloque
  11. Modelado a nivel de puertas: Puentes entre esquemas de hardware y código Verilog