» »

Merilec nivoja gladine tekočine

Merilec nivoja gladine tekočine

Temo vidijo: vsi

tx-z ::

Recimo da imamo neko stvar kjer se nahaja neka tekočina (recimo da je to voda v neki epruveti, flaši, sodu,..).

Kako bi zmeril koliko je vode notr? Kakšen senzor rabm? Jst si to predstavljam kokr nek trak, ki bi ga postavil na rob in bi pač prek tega zvedu kakšen je nivo vode; kokr recimo višji k je voda, večja bo upornost. Lahko bi sicer to tut ročno naredu pa bi dal kakšen plovček na neko vrvico in bi meru dolžino, ampak glede na to da smo v 21. stoletju zihr obstaja kej tazga (seveda primerno mejhno); Samo nekak ne najdm tistga kr iščm (water level sensor npr.). Kakšne ideje kako se temu reče, oz. kšni konkretni primeri?
tx-z

dottor ::

Če se gre za nivo oz. višino vode lahko sam izdelaš. Uzameš eno daljšo leseno palico dovolj tanko, da ne vpliva preveč na nivo vode, nanjo zarišeš merilno skalo ali pa izmeriš koliko palice je mokre. Ker je palica lesena se ne posuši takoj, in lahko odčitaš nivo (neki podobnega kot pri avtomobilih, ko se prepričaš da je še olja v mašini).
Xeon X5650@3.8GHz |Asus P6T|
2x4GB+4x2GB|ASUS R9 280X@1100MHz|
WD Green 240GB SSD + 4x1TB Hitachi

driver_x ::

Tudi jaz iščem en senzor te sorte. Priklopil ga bom pa na RPija.

Ales ::

Liquid level sensor, kaj takega: adafruit.com/products/464.

tx-z ::

dj_dottor, rabim digitalno :)

Ales, tole je sicr točno to ampak je kr zelo drago; niti ne rabm tok natančno ampak čim ceneje :)
tx-z

...:TOMI:... ::

Najbolj poceni je, da kupiš prozorno cev (primerno za prehrano, če je to za vino; odporno na nafto, če se to uporablja pri kurilcu...), izvraš na dnu luknjo, kvalitetno montiraš cev in jo napelješ navpično ob sodu, cisterni itd. To je isto, kot, če bi imel prozorno okno na sodu/cisterni, nivo vidiš takoj.

Lahko bi uporabil tudi kapacitivne senzorje ali kaj podobnega.
Tomi

SeMiNeSanja ::

'Idejno' bi rekel, da bi morali biti ultrazvočni senzorji idealni. Žal pa so industrijski (Conrad) dragi kot žefran. Verjetno bi bilo ceneje predelati kakšnega avtomobilističnega (od asistenta za parkiranje). Drugače za Arduino dobiš zelo poceni ultrazvočni modul, samo ta ni vodoodporen..... Mogoče se z malo raziskovanja (Ebay?) najde kakšna poceni varianta.

...:TOMI:... ::

Lahko uporbiš tudi tlačne senzorje.
Tomi

k--p ::

Verjetno je poceni ultrazvočni senzor (npr. za arduiono) kar primeren zato, mora pa plavati na vodi. Merijo pa ti le do kakih 3-4 m. Pa pri ultrazvočnih senzorjih moraš upoštevati tudi, da se signal širi navzven v obliki stožca pod kotom okrog 15-20 stopinj, tako da je natančno merjenje malega prostora težko, hitro npr. zadaneš steno soda, in pokvariš meritev. Prav tako se lahko signal odbije od kakega tujka, ki "zaplava" vmes.

...:TOMI:... ::

Tomi

einstein :P ::

Merilni valj je daleč najboljša izbira. Kljub temu, da smo v 21. stoletju, ne moreš vsega elektrificirat, ker preprosto ni praktično in je samo še dodatno delo zraven.
STAY OUT OF MY TERRITORY!

Zgodovina sprememb…

jype ::

Meni tale odlično služi:

http://dx.com/p/ultrasonic-sensor-dista...

einstein :P ::

Khm, jype? Si malce narobe razumel namen?
STAY OUT OF MY TERRITORY!

jype ::

Ne, namen sem razumel bolje kot večina v tej temi:

zigam> dj_dottor, rabim digitalno :)

On potrebuje senzor, ki mu bo povedal, kako visoko je gladina.

Če predlagan ultrazvočni senzor postavi na (morebiti improviziran) pokrov posode in ga usmeri proti gladini tekočine, bo dobil razmeroma natančno meritev. Ne na 3mm, kolikor na DX piše da naj bi bila toleranca, na 3cm pa vsekakor. Ker je razpon 3cm-450cm bo reč dovolj dobra za praktično vsako posodo, ki je globlja od 10cm.

Senzor se priključi na GPIO pine rpija ali podobnega računalnika oziroma na digitalne pine Arduinota ali podobnega mikrokontrolerja.

Zgodovina sprememb…

  • spremenilo: jype ()

einstein :P ::

@jype

Z ultrazvočnim senzorjem razdalje ne boš izmeril količine vode v posodi, vsaj ne s celim kupom dodatne strojne opreme in napisanim programom zanjo, ki glede na višino vrže ven volumen.

Tole je to, kar zanima OP-ja:

Kako bi zmeril koliko je vode notr?
STAY OUT OF MY TERRITORY!

Zgodovina sprememb…

jype ::

Ne budali:

zigam> Jst si to predstavljam kokr nek trak, ki bi ga postavil na rob in bi pač prek tega zvedu kakšen je nivo vode; kokr recimo višji k je voda, večja bo upornost.

Zgodovina sprememb…

  • spremenilo: jype ()

einstein :P ::

Ti ne budali:

to si ON PREDSTAVLJA

Na začetku posta je pa omenil tole:

Kako bi zmeril koliko je vode notr?


In to dvoje ne gre skupaj, tako da se dobro vidi, da je bil popolnoma nenatančen in še zdaj ne vemo, ali rabi višino ali volumen, dokler ne pove, je pač brez smisla, da se prerekava.
STAY OUT OF MY TERRITORY!

Zgodovina sprememb…

darkolord ::

Saj je vseeno kaj rabi - iz enega pač pretvori v drugo.

jype ::

einstein :P> ali rabi višino ali volumen

Volumen je (približno) linearno odvisen od višine, tako da je to samo tvoja težava, IMHO.

Zgodovina sprememb…

  • spremenilo: jype ()

jype ::

Evo, sem si vzel 15 minut. Linki na vso šaro so v opisu (zaslon tablice je lažje berljiv v celozaslonskem načinu predvajanja).

Zgodovina sprememb…

  • spremenilo: jype ()

tx-z ::

Rabim izključno merit samo nivo vode (torej višino) - ostalo se itak da zračunat. Celo lahko predpostavljam da bo ta posoda vedno na vodoravni podlagi (torej senzorjev na več straneh ne rabim).

Mogoče bi blo clo lažje da dam recimo 10 nekih senzorjev upornosti in jih razporedim recimo na 2cm razdalje. Tist k bo kazal drugačno upornost(ker bo zrak in ne voda), bom pol vedu kje je nivo vode... ?
tx-z

lonz ::

No še iz prve roke:

Tole sem kupil in sem zadovoljen:

http://www.navis-elektronika.com/emnv.h...

Vzel sem model z merilnim kablom in digitalnim prikazom nivoja. Enostavno za namestitev in uporabo. Cena - 120 €.
...arrrrrr, shiver me timbers...

driver_x ::

jype je izjavil:

Meni tale odlično služi:

http://dx.com/p/ultrasonic-sensor-dista...


Hvala, že naročam. Jaz to rabim za merjenje nivoja vode v posodi, kamor se izteka kondenz toplotne črpalke. RPija imam itak v bližini za druge zadeve. Kondenz mi vedno poplavi klet, ker se ne spomnim prazniti posode.

miki133 ::

Za kondenz od klim obstajajo namenske črpalke, ki imajo svoj senzor.
Po potrebi vklopijo črpalko in izčrpajo kondenz, recimo kaj takega :
http://mgk.si/montaza-klima-naprav/crpa...

LP Miro

Zgodovina sprememb…

  • spremenil: miki133 ()

driver_x ::

@miki133: hvala za link, kaj takega je dobro vedeti. Zaenkrat bom ostal še pri poceni DIY varianti za nekaj evrov. Pri taki črpalki imam še ta problem, da vode nimam kam odvajati.

einstein :P ::

jype je izjavil:

Evo, sem si vzel 15 minut. Linki na vso šaro so v opisu (zaslon tablice je lažje berljiv v celozaslonskem načinu predvajanja).



Potrata časa, denarja in prostora, medtem ko je merilni valj še vedno bolj preprost in deluje brez dodatnih naprav, ter energije, narišeš pa si lahko svojo skalo.
STAY OUT OF MY TERRITORY!

driver_x ::

einstein :P je izjavil:


Potrata časa, denarja in prostora, medtem ko je merilni valj še vedno bolj preprost in deluje brez dodatnih naprav, ter energije, narišeš pa si lahko svojo skalo.


Senzor za nekaj € iz DealExtrema ni ravno potrata denarja. Z RPijem pa itak že krmilim nekatere domače zadeve (za hobi), tako da tudi o potrati časa težko govorim. Pri merilnem valju mi nikakor ni uspelo pogruntati, kako bi mi pošiljal mail, ko bi nivo tekočine dosegel določeno vrednost.

jype ::

sammy73> Pri merilnem valju mi nikakor ni uspelo pogruntati, kako bi mi pošiljal mail, ko bi nivo tekočine dosegel določeno vrednost.

En einstein mora tam sedet z laptopom in gledat valj in poslat mail, ko je treba.

Bonus je, da mu lahko odgovoriš na mail: "Ja ven nes zlit, halo, kaj men utrujaš s tem?"

Zgodovina sprememb…

  • predlagal izbris: STU-III ()

einstein :P ::

driver_x je izjavil:

einstein :P je izjavil:


Potrata časa, denarja in prostora, medtem ko je merilni valj še vedno bolj preprost in deluje brez dodatnih naprav, ter energije, narišeš pa si lahko svojo skalo.


Senzor za nekaj € iz DealExtrema ni ravno potrata denarja. Z RPijem pa itak že krmilim nekatere domače zadeve (za hobi), tako da tudi o potrati časa težko govorim. Pri merilnem valju mi nikakor ni uspelo pogruntati, kako bi mi pošiljal mail, ko bi nivo tekočine dosegel določeno vrednost.


Glede na to, da to ni tvoja tema, me to sploh ne skrbi, saj sem odgovarjal op-ju.
STAY OUT OF MY TERRITORY!

Yacked2 ::

Lohka sam narediš čist domače:

na določen nivo daj žici, potem pa spelji eno na baterijo, drugo pa na sireno/lučko pa potem na baterijo, ko bo voda prišla na ta nivo bo sirena začela tulit.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

jype ::

To mora bit pa kar močna baterija, al pa morata bit žici zelo blizu (manj kot približno desetinko milimetra pri 12V) skupaj.

Conductivity %28electrolytic%29 @ Wikipedia

jype ::

Tranzistor v tem primeru ne bo kaj prida pomagal, ker gre za kondenz iz toplotne črpalke. Preberi link, ki sem ga prilepil.

Zgodovina sprememb…

  • odbrisal: bluefish ()

einstein :P ::

Očitno pač ne znaš uporabiti tranzistorja (ja, to bo tvoj problem)...
STAY OUT OF MY TERRITORY!

Zgodovina sprememb…

  • odbrisal: bluefish ()

jype ::

Če si slab v računstvu, potem razumem, da boš težko razumel, zakaj se motiš.

einstein :P ::

Lej, če se ti zdi, da je prevodnost kondenza problem, se pač močno motiš.

(ali pa še nisi uporabil tranzistorja, ker ga ne znaš - verjetno bo to, to...)
STAY OUT OF MY TERRITORY!

Zgodovina sprememb…

jype ::

einstein :P> Lej, če se ti zdi, da je prevodnost kondenza problem, se pač močno motiš.

URL?

einstein :P ::

Ne rabiš. Ti kar takoj povem, da imajo tranzistorji izredno ojačanje, če ga dobro umeriš s tranzistorskimi upori, kar pomeni, da tista "majhna" upornost kondenza ne dela čisto nobenih problemov tranzistorju, da bi to zaznal. Tranzistor lahko že na par cm stran po zraku zazna, da se mu s prstom približuješ (oz. vodniku, ki ga uporabiš za zaznavanje) in tako vklopi ali ojača svetilnost LED diode.
STAY OUT OF MY TERRITORY!

Zgodovina sprememb…

jype ::

einstein :P> izredno

Sliši se veliko. A znaš to kvantitativno ovrednotit?

einstein :P> Tranzistor lahko že na par cm stran po zraku zazna, da se mu s prstom približuješ (oz. vodniku, ki ga uporabiš za zaznavanje) in tako vklopi ali ojača svetilnost LED diode.

Neverjetno, kar po zraku!

Kaj pa po praktično destilirani vodi?

einstein :P ::

Destilirana voda prevaja precej bolje, kot zrak - nauči se osnov.
STAY OUT OF MY TERRITORY!

jernejl ::

tx-z je izjavil:

Recimo da imamo neko stvar kjer se nahaja neka tekočina (recimo da je to voda v neki epruveti, flaši, sodu,..).

Kako bi zmeril koliko je vode notr? Kakšen senzor rabm?

Ena alternativa, ki še ni bila omenjena, je load sensor (oziroma preprosta tehtnica, ki jo lahko priklopiš na mikrokrmilnik in nanjo postaviš rezervoar s tekočino):

http://proto-pic.co.uk/load-sensor-50kg...

Ali pa uporabiš kar kopalniško / kuhinjsko tehtnico
http://scanlime.org/2010/01/hacking-a-d...

Zgodovina sprememb…

  • spremenil: jernejl ()

acookook ::

Imam ultrasoničen senzor HC-SR04 (revizije ne poznam) z baud rate 9600 (za ostalo uporabljam 115200), nek bmp senzorček za temperaturo in tlak, en rele in en mini zaslonček. Prikazati moram delovanje senzorja in pošljanje podatkov preko MQTT na NodeRED. Kodo načeloma imam, zatakne se pa pri hardweru oz. ustreznih knjižnic.
Kodo mi noče naložiti, dokler imam na power priklopljen zaslon in hkrati tudi HC-SR04. Ko eno odklopim gre brez problema čez, prav tako pa hitro pridem do omejitev s prostorom na ESP8266. Kje bi si lahko sposodil arduino mega in zunanje napajanje (5V in 3V). breadboard imam, prav tako pa bi moral imeti zadosti žičk.
Koda, ki jo imam je sledeča
#include <Adafruit_BMP085.h>
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <MQTT.h>
#include <HCSR04.h> // by Martin Sosic -> https://github.com/Martinsos/arduino-lib-hc-sr04

/*
*    GLOBALNE SPREMENLJIVKE PROGRAMA
*/
//WiFi
const char ssid[] = "Shanji";
const char pass[] = "14U3Efg44";

//MQTT
const String NODE_ID="/NODE03/";
const char BROKER_IP[]="rlab.lucami.org";
const char BROKER_USER[]="lucmqtt";
const char BROKER_PASS[]="lucami2021";

// Spremenljivke
long minimalDistance = 0;


Adafruit_BMP085 bmp;
WiFiClient net;
MQTTClient client;

// Display.
/*const byte gpio_sda = 16; //D0
const byte gpio_scl = 5; //D1
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, gpio_scl, gpio_sda);*/
byte hasSensor = 0;

// Handle the sensor.
const byte trig = 12; //D6
const byte echo = 13;//D7
UltraSonicDistanceSensor distanceSensor(trig,echo);
long duration, cm;

//LED
const byte R = 4; // D2
const byte G = 0; // D3
const byte B = 2; // D4

// BMP
const byte SDA_B = 14; // D5
const byte SCL_B = 15; // D8

float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

/*void shineRGB(int red, int green, int blue)
{
  analogWrite(R,red);
  analogWrite(G,green);
  analogWrite(B,blue);
}
*/
/**
 * Connect to MQTT and subscribe to topics. This method works.
 */
void connect() {

  while (WiFi.status() != WL_CONNECTED) {
     delay(1000);
  }
 
  while (!client.connect(NODE_ID.c_str(), BROKER_USER, BROKER_PASS)) {
      Serial.print(".");
      delay(500);
  }

 Serial.println("\n MQTT POVEZAN!");

 Serial.println(" PRIJAVA NA topic: " + NODE_ID+"rssi");
 client.subscribe(NODE_ID+"rssi");
 client.subscribe(NODE_ID+"/FILL/ON"); // Kontroliranje "navidezne pumpe."
}

/**
 * Metoda se klice ob prejemu MQTT sporocila
 */
void messageReceived(String &topic, String &payload) {
 
  Serial.println("PREJETO MQTT SPOROCILO: " + topic + ", payload: " + payload);
 
  if (topic == NODE_ID+"rssi"){
      Serial.println("rssi: "+String(payload));    
  }  
  
   /*  if(topic == NODE_ID + "LED/R"){
        int r_val = payload.toInt();
         Serial.println("TEST: " + topic + ", payload: " + payload);
        analogWrite(D1,r_val);
      }
     if(topic == NODE_ID + "LED/G"){
        int g_val = payload.toInt();
        analogWrite(D2,g_val);
      }
      if(topic == NODE_ID + "LED/B"){
        int b_val = payload.toInt();
        analogWrite(D3,b_val);
      }

      if(topic == NODE_ID + "LED/ON"){
        int onOrOff = payload.toInt();
        if(onOrOff == 1){
             analogWrite(D3,255);
             analogWrite(D2,255);
             analogWrite(D1,255);
        }
        else{
          analogWrite(D3,0);
             analogWrite(D2,0);
             analogWrite(D1,0);
          }
        }*/
}


/*
*    SETUP METODA: inicializacija
*/
void setup() {

 // Serial.begin(115200);
 Serial.begin(9600);
  Wire.pins(SDA_B,SCL_B);
  //Wire.pins(gpio_sda,gpio_scl);
  //Wire.begin(gpio_sda,gpio_scl);

  Serial.println("Connecting to BMP085 sensor.");
  if (!bmp.begin())
  {
    Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  }
  else
  {
    Serial.println("Success connecting to sensor.");
    hasSensor = 1;
  }


 /* u8g2.begin();  //  Start U8g2 library
  u8g2.setContrast(255);  //  Brightness setting from 0 to 255:
  u8g2.setFont(u8g2_font_fub11_tr);  // Choose font to use
  u8g2.clearBuffer(); 
  u8g2.drawStr(0, 11, "Starting .."); 
  u8g2.sendBuffer();*/
 
  WiFi.begin(ssid, pass);
  client.begin(BROKER_IP, net);
  connect();
}

/*
*    LOOP METODA: Klice se v zanki
*/
void loop() {  
    // Read temperature and pass it for improved accuracy
    float temp = -1;
    if(hasSensor == 1)
    {
      temp = bmp.readTemperature();
    }
    else
    {
      temp = 20.0;
    }

  float distance = distanceSensor.measureDistanceCm(temp);
  Serial.println(distance);

  float val = 0.1; //Testiranje različnih stanj
 



  delay(500);

  //Map the distance to the defined volume of water.
  // 0.5L vode v 1.5L flaši
  /*
  byte distanceByEmpty = 40; // (cm)
  byte distanceByMaxPossibleAmount = 10; // (cm)
  byte minLiquid = 0; // L
  byte maxLiquid = 0.5 // L
  float val = mapFloat(distance,distanceByEmpty, distanceByMaxPossibleAmount,minLiquid,maxLiquid);
  */

  if(val < 0.2){
    //Turn RGB LED to RED
    //shineRGB(255,0,0);
      //Send EMPTY signal to NODE RED
    }
  else if (val >= 0.2 && val <= 0.4)
  {
  // Turn RGB LED to YELLOW
    //shineRGB(255,255,0);
    // SEND IN BETWEEN SIGNAL to NODE RED
  }
  else
  {
    // Turn RGB to GREEN
   // shineRGB(0,255,0);
    // SEND IN BETWEEN SIGNAL to NODE RED
  }
}

Error stack pa je sledeč:
. Variables and constants in RAM (global, static), used 29524 / 80192 bytes (36%)
?   SEGMENT  BYTES    DESCRIPTION
??? DATA     1504     initialized variables
??? RODATA   1452     constants       
??? BSS      26568    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61875 / 65536 bytes (94%)
?   SEGMENT  BYTES    DESCRIPTION
??? ICACHE   32768    reserved space for flash instruction cache
??? IRAM     29107    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 258556 / 1048576 bytes (24%)
?   SEGMENT  BYTES    DESCRIPTION
??? IROM     258556   code in flash   
esptool.py v3.0
Serial port COM5
Connecting........_____....._____....._____....._____....._____....._____....._
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Arduino koda pomoč.

Oddelek: Programiranje
5744 (621) igi82m
»

Pomoč C++

Oddelek: Pomoč in nasveti
71352 (1071) samo111
»

Arduino in luči (strani: 1 2 )

Oddelek: Elektrotehnika in elektronika
9812085 (9711) FX6300B
»

Arduino frekvenca

Oddelek: Elektrotehnika in elektronika
71133 (939) borisk
»

Zelo pocasno utripanje LED diode (strani: 1 2 )

Oddelek: Elektrotehnika in elektronika
508713 (7918) a13misko

Več podobnih tem