Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Sumpniveaumonitor

Componenten en benodigdheden

Arduino Nano R3
× 1
Freescale MPXV5010DP
× 1
0.96" OLED-scherm
× 1
MCP4725 DAC
× 1
Relais (algemeen)
× 1
condensatoren 1uf, .01uf, 470pf alle SMD
× 1
Kunststof doorzichtige projectdoos 110 mm*85 mm
× 1
Tygon Tubing 3/32"
× 1

Over dit project

De carterniveaumonitor is gebouwd om te werken met een Ecobee RSM-01-invoerkaart die ik in het huis van mijn dochter of mijn Home Monitor-project heb. Ik heb een relais toegevoegd om het op zichzelf te laten staan. Ik wilde iets waarvan ik dacht dat het betrouwbaarder en gemakkelijker te installeren zou zijn dan een ultrasone sensor. Hiertoe ben ik op zoek gegaan naar druksensoren en kwam ik uiteindelijk Freescale MPXV5010DP tegen. Het heeft een 0-5vdc-uitgang voor 0-10kPa, wat ongeveer 1020 mm waterkolom zou zijn.

Omdat ik een lokale indicatie wilde, koos ik voor een OLED-module om in het ontwerp te gebruiken. Goedkoop, helder en deze had een tweekleurenscherm. Om een ​​interface te bieden, heb ik een relais toegevoegd voor een droge contactuitgang. Ik heb een DAC (digitaal naar analoog converter) toegevoegd voor een 0-5vdc-uitgang met meer vermogen dan de MPXV5010DP-sensor, dit zal de sensor ook beschermen tegen mogelijke bedradingsschade. Aangezien ik I2C-communicatie gebruik, zijn softwarewijzigingen alleen nodig om gegevens aan een andere Arduino te leveren.

Ik ontwierp en had een aangepast bord gebouwd voor gemakkelijke verbindingen. Het biedt voldoende flexibiliteit voor verschillende configuraties.

De sensor is via een tygon-slang verbonden met een koperen pijp die naar beneden in de put wordt geleid. Dit zorgt voor enige discretie over waar de monitor moet worden gemonteerd en houdt hem uit de buurt van het water zelf.

Code

  • Sump niveau monitor
Sump niveaumonitorC/C++
Parseer zoals je nodig hebt, extra rommel in deze versie ga je gang en ruim op zoals je wilt.
#include #include  #include #include  #include #include #define OLED_RESET 4Adafruit_SSD1306 display(OLED_RESET);#if (SSD1306_LCDHEIGHT !=64)#error("Hoogte onjuist, fix Adafruit_SSD1306.h!");#endifAdafruit;int relaisPin =5; // voor relais alarm outputint analogPin =0; // maatregelen dac-uitgangsspanningint v1 =0; // ADC-uitvoer van MPXV5010int v2 =0; // schaling voor dac-invoer converteert van PS-invoer naar dac-invoerint v3 =0; // voor mm-conversie van PS inputint v4 =0; // voor percentage diepte van PS inputint v5 =0; // uitvoer van dac zoals gelezen door arduinoint v6 =0; //voor mV-conversie van PS inputfloat v7 =0; //converteer van mm naar inchesint v8 =0; // om decimalen in inches te elimineren die het display int offSet =40 weggooien; // de 0 kPa output zoals gemeten door arduinoint maxSet =1015; // de output van 10 kPa zoals gemeten door arduinoint maxHeight =1020; // de diepte voor de sump van normaal waterniveau tot deksel in mmint variërend =(maxHeight * 0,8) + offSet;int alarmHeight =12; // de alarmhoogte in inches// Voor de MPXV5010DP drukverschilsensorint analogPin2 =1;float deler =25,4; // voor het converteren van weergave naar inchesvoid setup () {Serial.begin (9600); Serial.println ("DAC-test met DP-sensor"); // standaard genereren we de hoogspanning van de 3.3v-lijn intern! (netjes!) display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialiseer met de I2C-addr 0x3D (voor de 128x64) // init gedaan // Wis de buffer. display.clearDisplay(); // Voor MCP4725A0 is het adres 0x60 of 0x61 dac.begin (0x60); pinMode (relayPin, OUTPUT); digitalWrite(relayPin, HIGH);}void loop() {v1 =analogRead(analogPin2); vertraging (1000); if (v1  alarmHeight) { display.invertDisplay (true); digitalWrite (relayPin, LOW);} else { display.invertDisplay (false); digitalWrite(relayPin,HIGH);} display.setTextSize(2); display.setTextColor(WIT); display.setCursor(0,0); display.println("SUMP LEVEL"); //display.setTextColor (ZWART, WIT); // 'omgekeerde' tekst display.setTextSize (4); display.setTextColor(WIT); display.print(v8); display.setTextSize(2); display.println("inch"); weergave.weergave(); vertraging (500); }void serial(){ //voor foutopsporing en kalibratie Serial.print(" PS analoge ingang:"); Serial.print(v1); Serial.print (" Hoogte:"); Serial.print(v3); Serial.print(" mm "); Serial.print(v4); Serial.print(" %"); Serial.print(" Omgerekende spanning:"); Serial.print(v6); Serial.println(" mV");}//end

Schema's

Gebruikte Eagle 6.5.0 sump%20level.sch

Productieproces

  1. Bloeddrukmeter
  2. C# Variabel bereik
  3. DIY-monitor voor milieu en luchtkwaliteit
  4. MATRIX STEM GOOGLE ASSISTANT – MATRIX STEMPROJECT
  5. Weermonitor
  6. Hartslagmeter op afstand
  7. Rover
  8. GoPiGo v2 met Windows IoT
  9. Modellering op poortniveau
  10. JW-machine
  11. Een draaibank waterpas zetten