Pomiar ciśnienia wody w instalacji C.O

Witam,

Ja dziś testuje rozwiązanie, mierzenie ciśnienia wody w instalacji C.O.

  1. NOdemcu
  2. Czujnik ciśnienia
  3. Przetwornik prądowo-napięciowy
  4. Dzielik napięcia (2 rezystoki)

Wejście analogow A0 widzę w oprogramowaniu SUPKI możliwość skonfigurowania wejścia- zaobaczym na czym to stanie.
Link do ESP i Domoticza w zykorzytsaniem chińskiego wynalazku.

Docelwo che zbudować jeszcze jeden taki układ do mierzenia poziomu wody w zbiorniku 10 m3. Wstępnie myślałem poza zbiornikiem doprowadzić rurę miedzianą z dołu i wkręcając czujnik u góry mierzyć ciśnienie a co za tym idzie poziom wody. Zobaczymy.

1 polubienie

byłem pierwszy :), przy układzie otwartym powinno się sprawdzić

[Analogowy czujnik ciśnienia wody max 5bar](https://czujnik na wemosie)

1 polubienie

Gratuluje !!!

Tutaj jeszcze kilka przykładów na pomiar…

No jakoś nie ufam temu przetwornikowi który na chińskich stornach ma róże zakresy pracy etc.
Do pracy w instalacji zamkniętej CO wybrałem sprawdzone marki :slight_smile:

Cytat
Cześć, ja się podepnę do tematu, u mnie chodzi o poziom bufora wody, i też chciałbym mieć w procentach poziom nepełnienia, więc zbudowałem takie cuś…

Witam
Jaki był powód zastosowania tych rezystorów? Wszędzie w internecie są rozwiązania które podłączają trigger i echo bezpośrednio do wejść Dx w Wemosie a u CIebie są jeszcze rezystory?

Te dwa rezystory pełnia funkcję dzielnika napięcia - mają za cel obniżyć napięcie wyjściowe z SR04 (5v) do tego które toleruje wemos (~3.3v)

Sorki, usunąłem post.
Czyli rezystory są po to żeby na wejściu D5 w Wemosie było maksymalne napięcie 3.3V?
Zastosowane są dwa różne? 2K2 i 1K2 ?

Podłączyłem do Wemosa inny czujnik ale podobno działa tak samo jak ten ze zdjęcia.
Jest to czujnik JSN-SR04T. Nie zastosowałem tych rezystorów czyli to błąd? Czujnik teoretycznie działa dobrze ale tylko teoretycznie bo dość często pokazuje nieprawidłowe odległości i może przyczyną jest brak tych rezystorów? Podłączyłem w Wemosie tak:
trigger_pin: D1
echo_pin: D2
Jak miałem wcześniej podpięte do D6 i D7 to bardzo często miałem timeout w odczycie. Teraz przy D1 i D2 nie mam timeoutów ale zdarzają się błędy w odległości.

Teoretycznie… zobacz schemat tego czujnika, dla wej. trigger też powinien być zastosowany konwerter poziomów.
Na tym wejściu też jest 5V. Oba sygnały są identyczne.
hc
Zabezpieczasz więc w 50%.

Czy brak tych zabezpieczeń może mieć wpływ na błędy w odczycie polegające na tym że co 3-4 odczyty mam jeden błędny wskazujący na dystans 2 metry pomimo że odległość od czujnika jest 90 cm?

Teoretycznie może… ponieważ są różne poziomy napięć dla wykrywania stanów Hi/Lo po obu stronach (ESp<>Czujnik).
Pomiar odbywa się na zasadzie pomiaru czasu impulsów, więc chwila wykrycia stanów Hi/Lo ma znaczenia. Przy takim połączeniu może być mały margines błędu i wszystko może należeć nawet od zasilacza. Nie da się tego definitywnie stwierdzić bez zobaczenia przebiegów na oscyloskopie.
Miałem przypadek, że urządzenie z podobnej przyczyny przestało działać dopiero po roku czasu (był błąd konstrukcyjny).
Swoją drogą to wygląda, że nietolerancja 5V przez ESP to jakaś legenda… większość konstrukcji ma to gdzieś… a działa.
Bez zastosowania konwertera poziomów, nigdy się tego nie dowiesz.
Nie można bezmyślnie kopiować jakiś rozwiązań z jednego projektu do drugiego bez wiedzy co “siedzi” w środku.
Moim zdaniem w rozwiązaniu z tymi dwoma rezystorami 2k2 i 1k2 jest jeszcze gorzej.
Biorąc pod uwagę rezystor podciągający na płytce czujnika (10k do +5V) tworzy się rzeczywisty dzielnik 11k2/2k2 co daje w stanie Hi ok 1V.
Myślę, że bez rezystorów powinno działać lepiej ( z ryzykiem uszkodzenia ESP?)

edit… te ostatnie dywagacje powinny jednak wrócić do tematu pierwotnego, tutaj nijak nie mają się do nowoutworzonego tematu

1 polubienie

Moment nie pisałem w tym wątku.
Moja odpowiedź była do wątku Czujnik napełnienia szamba - #47 przez luki25
na pytanie z tego wątku… nie wiem jak to się stało :confused:

edit:
ok już wiem o co chodzi. Post został podzielony przez moderatora. Rezystory przy Wemosie to dzielnik napięcia. SR04 jest zasilany z 5v. Wemos toleruje ok. 3.3v.
Pin echo to odpowiedź SR04 do Wemosa, a skoro SR04 ma logikę 5v to sygnał trzeba obniżyć do ~3.3v, czyli bezpiecznego dla Wemosa. Z kolei trigger to wejście do SR04. Jest to wejście wyzwalające impuls ultradźwiekowy. Wysyła go Wemos do SR04. Nie potrzeba zatem nic tutaj robić bo SR04 nie zaszkodzi poziom 3.3v.

Cytat Rezystory przy Wemosie to dzielnik napięcia. SR04 jest zasilany z 5v. Wemos toleruje ok. 3.3v.
Pin echo to odpowiedź SR04 do Wemosa, a skoro SR04 ma logikę 5v to sygnał trzeba obniżyć do ~3.3v, czyli bezpiecznego dla Wemosa. Z kolei trigger to wejście do SR04. Jest to wejście wyzwalające impuls ultradźwiekowy. Wysyła go Wemos do SR04. Nie potrzeba zatem nic tutaj robić bo SR04 nie zaszkodzi poziom 3.3v.

Ogarnąłem te rezystory na linii echo. Niestety nie pomogło. Nadal na kilka pomiarów jest pomiar fałszywy ok 2metry. Już chyba skończyła mi się koncepcja skąd te fałszywe pomiary.

Czujnikowi nie zaszkodzi.

To może być za mało … napewno nie ma tam 3.3v tylko mniej - i jest to poziom minimalny stanu Hi dla logiki TTL5V.
Balansuje się na granicy wykrywalnośći.

Czyli powinienem podać 5V na trigger czujnika za pomocą przetwornicy step-up?

Nie … musisz poszukać pod hasłem " Konwerter poziomów logicznych dwukierunkowy"… jednak nie gwarantuje, że to pomoże … żeby później nie było :wink:
Nie wiadomo co siedzi w programie?

Tak to u mnie wygląda na wykresie wskazań w Home Assistant. Czujnik podpięty do Wemosa z oprogramowaniem ESPHome:

sensor:
  - platform: ultrasonic
    trigger_pin: D2
    echo_pin: D1
    name: 'Septic Tank Level'
    unit_of_measurement: 'cm'
    accuracy_decimals: 2
    update_interval: 60s
    pulse_time: 20us
    timeout: 4.5m
    filters:
      - filter_out: nan

Wykres:

Wygląda jakby echo nie wracało, oglądałeś loga przez dłuższy czas? - tam może być jakaś podpowiedź.

Ten ESP zajmuje się tylko mierzeniem odległości czy też innymi rzeczami? (może jest konflikt funkcji/wyprowadzeń który występuje nieregularnie).

Masz aktywny sensor uptime w tym ESP? (powinien być stale rosnący)

Ma włączony filtr NaN który przy braku echa blokuje wartości powyżej timeout.
Funkcja odczytująca

void UltrasonicSensorComponent::update() {
   this->trigger_pin_->digital_write(true);
   delayMicroseconds(this->pulse_time_us_);
   this->trigger_pin_->digital_write(false);
 
   const uint32_t start = micros();
   while (micros() - start < timeout_us_ && echo_isr_.digital_read())
     ;
   while (micros() - start < timeout_us_ && !echo_isr_.digital_read())
     ;
   const uint32_t pulse_start = micros();
   while (micros() - start < timeout_us_ && echo_isr_.digital_read())
     ;
   const uint32_t pulse_end = micros();
 
   ESP_LOGV(TAG, "Echo took %uµs", pulse_end - pulse_start);
 
   if (pulse_end - start >= timeout_us_) {
     ESP_LOGD(TAG, "'%s' - Distance measurement timed out!", this->name_.c_str());
     this->publish_state(NAN);
   } else {
     float result = UltrasonicSensorComponent::us_to_m(pulse_end - pulse_start);
     ESP_LOGD(TAG, "'%s' - Got distance: %.2f m", this->name_.c_str(), result);
     this->publish_state(result);
   }
 }

@unky23 jak długie są przewody połączeniowe? Z powodu wałkowanego niedopasowania poziomów układ może być bardziej wrażliwy na zakłócenia. Pozmieniaj parametry pulse_time i timeout, zobacz jaki to ma wpływ.

Ale na moje oko ustawiony poza możliwościami tego sensora

Też na to zwróciłem uwagę, ale na papierze jest 4.5m. Papier przyjmie wszystko;)

  1. ESP ma tylko jedno zadanie - odczyt z czujnika. Nic innego nie robi.
  2. Co to znaczy - aktywny sensor uptime?
  3. Przewody połączeniowe - pomiędzy Wemosem a czujnikiem ok 20 cm
  4. pulse_time 20us, timeout 4.5 - przy takich parametrach najlepiej to działa. Jak zmniejszyłem timeout na 2 metry to co chwilę w logu ESPHome miałem wyrzucany timeout - 10 timeoutów i może jeden właściwy odczyt
  5. Na papierze zasięg 4.5 metra ale faktycznie nie udało mi się zmierzyć odległości większej niż 2.4m