Coal or water level sensor



  • Coal or water level sensor
    http://projektpimalina.blogspot.com/2016/05/czujnik-poziomu-wegla-na-nadajniku.html

    MySensors - czujnik poziomu węgla do Domoticz – 01:11
    — Roman Kubat

    #include <MySensor.h>
    #include <SPI.h>          //import biblioteki MySenors
    
    #define trigPin 3
    #define echoPin 4
    int max = 60; //maksymalna odleglosc w cm gdy zbiornik bedzie pusty
    int procent; //odleglosc w procentach
    int ilosc; //ilosc w procentach napelnienia zbiornika
    
    #define child_id_ilosc 1   //definicja identyfikacji ilosci wegla w kontenerze
    
    MySensor gw;
    MyMessage msgilosc(child_id_ilosc, V_IMPEDANCE); //utworzenie konteneru do przechowywania danych
     
    void setup() {
      
      pinMode(trigPin, OUTPUT); //Pin, do którego podłączymy trig jako wyjście
      pinMode(echoPin, INPUT); //a echo, jako wejście
     
      gw.begin();   //uruchomienie biblioteki MySensors
      gw.sendSketchInfo("Czujunik ilosci wegla", "1.0");
      
      gw.present(child_id_ilosc, S_WEIGHT); //prezentacja danych do kontrolera
    }
     
    void loop() {
      
      long czas, dystans;
     
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
     
      czas = pulseIn(echoPin, HIGH);
      dystans = czas / 58;
      
      procent = ((dystans * 100) / max);
      ilosc = 100 - procent;
      
      gw.send(msgilosc.set(ilosc)); //przeslanie ilosci wegla do domoticz
      
      delay(1000);    // opóźnienie
    }


  • thanks romeak01

    i have update with my sample, i think that will run ok.

    #include <MySensor.h>
    #include <SPI.h>          //import  MySensors library
    
    #define trigPin 6
    #define echoPin 5
    int max = 91; //distance (cm) from min water level to sensor 
    int min = 6;  // distance (cm) from max water level to sensor
    int procent; //distance percentage
    int ilosc; //amount of the tank as a percentage
    
    #define child_id_ilosc 1   //setting to identify the amount of water in the tank
    
    MySensor gw;
    MyMessage msgilosc(child_id_ilosc, V_IMPEDANCE); 
     
    void setup() {
      
      pinMode(trigPin, OUTPUT); //Pin, that its connet to trig
      pinMode(echoPin, INPUT); //a echo, input
     
      gw.begin();   //launch MySensors library  
      gw.sendSketchInfo("Water tank meter", "1.0");
      
      gw.present(child_id_ilosc, S_WEIGHT); //present data to controller
    }
     
    void loop() {
      
      long czas, dystans, diferenca;
     
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
     
      czas = pulseIn(echoPin, HIGH);
      dystans = czas / 58;
      diferenca = max -min;
      
      procent = (((dystans - min)  * 100) / diferenca);
      ilosc = 100 - procent;
      
      gw.send(msgilosc.set(ilosc)); // send to controller
      delay(1000);    // delay
    }```

Log in to reply
 

Suggested Topics

  • 8
  • 5
  • 3
  • 90
  • 1
  • 2

63
Online

11.4k
Users

11.1k
Topics

112.7k
Posts