Ultradźwiękowy czujnik odległości Wodoodporny ri o04

User avatar
RAMJET
Posts: 62
Joined: Mon Aug 19, 2024 6:05 pm
Location: Wodzisław Śląski

Post

Witam
Może ktoś doradzić jak uruchomić - ultradźwiękowy czujnik odległości wodoodporny ri o04. Na jakiej płytce to najlepiej zrobić, a może ma ktoś gotowy soft ;)
Z góry dziękuję za zainteresowanie :D
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Znajdź dokumentację techniczną (datasheet) do tego czujnika.
Tak na szybko, wygląda jakby tam był uart, więc pod tx/rx podpinasz na dowolnym esp32 i powinno dać się ogarnąć.
Nie kojarzę, aby ktoś taki model na forum wcześniej wrzucał.
Raczej samemu musisz do niego soft napisać.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
RAMJET
Posts: 62
Joined: Mon Aug 19, 2024 6:05 pm
Location: Wodzisław Śląski

Post

klew wrote: Tue Dec 23, 2025 10:58 am Znajdź dokumentację techniczną (datasheet) do tego czujnika.
Tak na szybko, wygląda jakby tam był uart, więc pod tx/rx podpinasz na dowolnym esp32 i powinno dać się ogarnąć.
Nie kojarzę, aby ktoś taki model na forum wcześniej wrzucał.
Raczej samemu musisz do niego soft napisać.
Mam coś takiego:
Gotowy YAML dla ESP32 + czujnik ri o04 (UART) + szambo 141 cm
uart:
id: uart_ultra
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 9600

sensor:
- platform: uart
id: raw_distance
name: "Odległość surowa"
update_interval: 5s
filters:
- lambda: |-
// Odczyt z czujnika ri o04 (UART)
// Zakładamy, że czujnik zwraca odległość w cm
if (x < 0 || x > 450) return NAN;
return x;

- platform: template
id: szambo_poziom
name: "Poziom szamba"
unit_of_measurement: "cm"
update_interval: 5s
lambda: |-
const float wysokosc = 141.0; // wysokość Twojego szamba
if (id(raw_distance).state <= 0) return NAN;
float poziom = wysokosc - id(raw_distance).state;
if (poziom < 0) poziom = 0;
return poziom;
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 1

- platform: template
id: szambo_procent
name: "Poziom szamba %"
unit_of_measurement: "%"
update_interval: 5s
lambda: |-
const float wysokosc = 141.0; // wysokość Twojego szamba
if (id(raw_distance).state <= 0) return NAN;
float poziom = wysokosc - id(raw_distance).state;
if (poziom < 0) poziom = 0;
return (poziom / wysokosc) * 100.0;
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 1

Nigdy tego nie robiłem, zawsze korzystam z GUI - Generic. Logując się na SUPLA Scripts nie mam odpowiednich zakładek aby to wrzucić. ;)
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

RAMJET wrote: Tue Dec 23, 2025 11:19 am Nigdy tego nie robiłem, zawsze korzystam z GUI - Generic. Logując się na SUPLA Scripts nie mam odpowiednich zakładek aby to wrzucić. ;)
Wrzucając "losowe" odpowiedzi z "AI" też daleko nie zajdziesz :P. To wygląda na jakiś template pod Home Assistant.

GG raczej nie wspiera tego czujnika, ale to byś musiał się gdzieś/jakoś upewnić.
Wydaje mi się, że tam był SR-04 i jakiś jego wariant, ale one działały na zasadzie "echa" z GPIO, a tu w opisie jest UART, więc to jakaś dedykowana komunikacja będzie.

Skrypty w Supli nie do tego służą i tam się nie dodaje żadnych urządzeń.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
RAMJET
Posts: 62
Joined: Mon Aug 19, 2024 6:05 pm
Location: Wodzisław Śląski

Post

klew wrote: Tue Dec 23, 2025 11:34 am
RAMJET wrote: Tue Dec 23, 2025 11:19 am Nigdy tego nie robiłem, zawsze korzystam z GUI - Generic. Logując się na SUPLA Scripts nie mam odpowiednich zakładek aby to wrzucić. ;)
Wrzucając "losowe" odpowiedzi z "AI" też daleko nie zajdziesz :P. To wygląda na jakiś template pod Home Assistant.

GG raczej nie wspiera tego czujnika, ale to byś musiał się gdzieś/jakoś upewnić.
Wydaje mi się, że tam był SR-04 i jakiś jego wariant, ale one działały na zasadzie "echa" z GPIO, a tu w opisie jest UART, więc to jakaś dedykowana komunikacja będzie.

Skrypty w Supli nie do tego służą i tam się nie dodaje żadnych urządzeń.
Na forum znalazłem jedno zapytanie na podobny temat ale nie było zainteresowania :D Było to już jakiś czas temu Może teraz ktoś pomoże ;)
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

RAMJET wrote: Tue Dec 23, 2025 11:49 am Na forum znalazłem jedno zapytanie na podobny temat ale nie było zainteresowania :D Było to już jakiś czas temu Może teraz ktoś pomoże ;)
To napisz wprost, że nie znasz się na tym i szukasz kogoś, kto by dla Ciebie ogarnął soft na takie urządzenie.
Są na forum osoby, które czasem takie tematy ogarniają. Możesz też na zachętę gdzieś napisać, że chętnie się zrewanżujesz wysyłając taki cziujnik i 200 zł - wtedy będzie większa szansa na pozytywne rozpatrzenie prośby :D
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
RAMJET
Posts: 62
Joined: Mon Aug 19, 2024 6:05 pm
Location: Wodzisław Śląski

Post

klew wrote: Tue Dec 23, 2025 12:10 pm
RAMJET wrote: Tue Dec 23, 2025 11:49 am Na forum znalazłem jedno zapytanie na podobny temat ale nie było zainteresowania :D Było to już jakiś czas temu Może teraz ktoś pomoże ;)
To napisz wprost, że nie znasz się na tym i szukasz kogoś, kto by dla Ciebie ogarnął soft na takie urządzenie.
Są na forum osoby, które czasem takie tematy ogarniają. Możesz też na zachętę gdzieś napisać, że chętnie się zrewanżujesz wysyłając taki cziujnik i 200 zł - wtedy będzie większa szansa na pozytywne rozpatrzenie prośby :D
Jakbym wiedział to bym nie prosił o pomoc - pomyślałem, że może ktoś już coś takiego robił. Chciałbym to zrobić sam tylko proszę o jakieś wskazówki. Gotowca to mogę sobie kupić w sklepie... :(
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

RAMJET wrote: Tue Dec 23, 2025 1:09 pm Jakbym wiedział to bym nie prosił o pomoc - pomyślałem, że może ktoś już coś takiego robił. Chciałbym to zrobić sam tylko proszę o jakieś wskazówki. Gotowca to mogę sobie kupić w sklepie... :(
1. Zainstaluj sobie Arduino IDE: https://www.arduino.cc/en/software
2. W managerze bibilotek zainstaluj sobie SuplaDevice.
3. Dodaj tam boardy do ESP32.
4. Skompiluj sobie jakiś przykładowy program, podłącz esp pod komputer (z reguły przez programator) i sprawdź czy działa.

Jak to już będziesz miał, to:
5. Znajdź dokumentację techniczną tego czujnika (datasheet) lub poszukaj czy w Arduino nie ma może gotowych bibliotek do tego czujnika
6. Napisz samemu program, który odczytuje dane z tego czujnika, lub użyj przykładu z biblioteki (jeśli taką znajdziesz).
7. Upewnij się, że odczyt działa.

Jak to ogarniesz, to podpowiem dalej co zrobić, aby ten odczyt był widoczny w Supli.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277
User avatar
vajera
Posts: 7290
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 289 times
Been thanked: 161 times

Post

Zakładając, że będziesz korzystał z ESP32, które ma 3 sprzętowe porty szeregowe, to nie potrzebujesz tej biblioteki <SoftwareSerial.h>.

Code: Select all

Serial0: RX0 on GPIO3, TX0 on GPIO1
Serial1: RX1 on GPIO9, TX1 on GPIO10 (+CTS1 and RTS1)
Serial2: RX2 on GPIO16, TX2 on GPIO17 (+CTS2 and RTS2)
Tutaj masz przykład:

Code: Select all

#define RXD2 16
#define TXD2 17

void setup() {
  // Note the format for setting a serial port is as follows: Serial2.begin(baud-rate, protocol, RX pin, TX pin);
  Serial.begin(115200);
 
  Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
  Serial.println("Serial Txd is on pin: "+String(TX));
  Serial.println("Serial Rxd is on pin: "+String(RX));
}

void loop() { 
  while (Serial2.available()) {
    Serial.print(char(Serial2.read()));
  }
}
Last edited by vajera on Tue Dec 23, 2025 2:42 pm, edited 1 time in total.
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277

Return to “Pomoc”