Pomoc s vývojen

Sem pište, hledáte-li někoho, kdo pro vás něco naprogramuje, či sestaví.
Pablo74
Příspěvky: 151
Registrován: 03 lis 2019, 17:00

Re: Pomoc s vývojen

Příspěvek od Pablo74 » 03 led 2026, 10:30

ESP32-2432S028R -> je známý jako CYD, Cheap Yellow Display :-)
Mám nádrž na 10 000 litrů. Pokud budou vlnky vysoké 4cm, tak rozdíl v objemu je 180 litrů. To je hrozně moc a nebyl bych schopen měřit přesný přítok. Napadá mě jestli by to nešlo zprůměrovat vícenásobným měřením (např. 30 vzorků v horizontu 4s a udělat průměr výšky).
No jasně, to je naprostej základ měření čehokoli, dostatek vzorků a pak průměr. Můžeš to udělat i chytřejší, změříš vzorky, vypočítáš průměr a pokud je některý ze vzorků moc daleko od průměru (nahodilá chyba, selhání, ...), budeš ho ignorovat a vypočítáš průměr znovu.

Jen jestli ti toho za 4 s nepřiteče příliš mnoho?

Kelvim
Příspěvky: 7
Registrován: 01 led 2026, 14:53

Re: Pomoc s vývojen

Příspěvek od Kelvim » 03 led 2026, 11:48

Pablo74 píše:
03 led 2026, 10:30
ESP32-2432S028R -> je známý jako CYD, Cheap Yellow Display :-)
Mám nádrž na 10 000 litrů. Pokud budou vlnky vysoké 4cm, tak rozdíl v objemu je 180 litrů. To je hrozně moc a nebyl bych schopen měřit přesný přítok. Napadá mě jestli by to nešlo zprůměrovat vícenásobným měřením (např. 30 vzorků v horizontu 4s a udělat průměr výšky).
No jasně, to je naprostej základ měření čehokoli, dostatek vzorků a pak průměr. Můžeš to udělat i chytřejší, změříš vzorky, vypočítáš průměr a pokud je některý ze vzorků moc daleko od průměru (nahodilá chyba, selhání, ...), budeš ho ignorovat a vypočítáš průměr znovu.

Jen jestli ti toho za 4 s nepřiteče příliš mnoho?
Pokud vezmu velikost své střechy 140m2 a přívalový déšť 80mm/hod/m2, pak mi vychází přítok 3,2l/s.

Půjčil jsem si data za 2024 z 21. základna taktického letectva Čáslav
Intenzita (mm/h) Počet hodin Podíl z deštivých hodin
0,1–0,9 505 73,3 %
1–2,9 135 19,6 %
3–4,9 34 4,9 %
5–9,9 12 1,7 %
10–19,9 3 0,4 %
20+ 0 0,0 %

Průměrné rozdělení srážek je tj. asi by to nebylo přesné jen při opravdu silných deštích. Při 10mm/hod/m2 je to 0,4 litrů/s, při 5mm/hod/m2 je to 0,2litrů/s. Pokud se budu bavit, že 1mm se rovná 8litrům.
Asi budu schopen dát do nádrže trubku, kterou bych hladinu uklidnil. Např. DN100, ale i tak budu mít problém s přesností měření pokud je 1mm výšky 8litrů a bude pršet 1mm/m2/hod tak za minutu mi přiteče 2,4 litru? Tedy hladina se zvedne o 0,33mm? Za deset minut o 3,3mm? Tohle jsem schopen změřit ultrazvukem?

Pablo74
Příspěvky: 151
Registrován: 03 lis 2019, 17:00

Re: Pomoc s vývojen

Příspěvek od Pablo74 » 03 led 2026, 16:13

Ještě upozornění. Vývojová deska ESP32-2432S028R -> Cheap Yellow Display má rezistivní displej, k ovládání se nedá použít lidská ruka, ale stylus.

Z praktickýho hlediska bych přidal fyzický tlačítka a rotační enkodér; protože představa, že venku ovládám něco stylusem, který se nesmí zlomit a ztratit (!), jinak mi to přestane celý fungovat je, řekněme, děsivá.

Nebo aspoň web aplikaci a přes BLE komunikovat s tím ESP32 a ovládat a nastavit parametry z mobilu.

Uživatelský avatar
Caster
Příspěvky: 486
Registrován: 11 zář 2019, 09:02

Re: Pomoc s vývojen

Příspěvek od Caster » 03 led 2026, 17:06

Grok AI ;)

1. Celkový koncept systému

Princip měření: Použiješ hydrostatický tlakový senzor připojený k trubce (jak jsi popsal). Se zvyšující se hladinou roste tlak na senzoru. To je spolehlivá metoda pro uzavřené nádrže, protože není ovlivněna pěnou nebo nečistotami na povrchu (na rozdíl od ultrazvukových senzorů). Pro maximální spolehlivost zvol senzor s výstupem 4-20 mA (odolný proti šumu) a přidej filtraci signálu v kódu.
Komunikace: ESP32-S3 s vestavěným WiFi pro odesílání dat do databáze (např. přes MQTT nebo HTTP POST).
Zobrazení: Na nádrži level indikátor (displej) ukazující aktuální hladinu + graf za poslední týden. Data ulož lokálně na ESP (v RTC paměti nebo SD kartě) pro zpětné zobrazení.
Automatizace: ESP může řídit relé pro pumpy/ventily na základě hladiny (např. zapnout čištění při nízké hladině).
Napájení: Trafo (transformer) pro AC-DC konverzi na 5V/3.3V, s ochranou proti přepětí.
Cena: Celkově pod 1000 Kč na prototyp (ESP ~200 Kč, senzor ~300 Kč, displej ~150 Kč, trafo ~200 Kč).
Spolehlivost: Použij watchdog timer v kódu, redundantní měření (průměr z více čtení), a krytí proti vlhkosti (IP67 box).

Systém bude monitorovat retenční a čistící nádrže, odesílat data do DB pro app, a lokálně zobrazovat historii.

2. Doporučené hardware komponenty

Na základě podobných projektů:

Mikrokontroler: ESP32-S3-DevKitC-1 (např. od LilyGO nebo Espressif, ~200-300 Kč). Má WiFi, Bluetooth, dostatek GPIO a je robustní pro IoT.

Tlakový senzor:
MPX5010DP (analogový, 0-10 kPa, ~300 Kč) – připoj přes ADC pin ESP. Pro hlubší nádrže zvol verzi s vyšším rozsahem (např. 0-100 kPa).
Alternativa: 4-20mA senzor jako z AliExpress (např. "submersible pressure sensor"), převeď signál přes rezistor na napětí pro ADC. Pro spolehlivost kalibruj podle hustoty kapaliny.

Displej pro level indikátor:
SSD1306 OLED 0.96" (128x64 pixelů, I2C, ~150 Kč) – nízká spotřeba, můžeš na něm kreslit graf hladiny za týden (např. 168 bodů pro hodinové průměry). Pro delší životnost e-ink displej (např. Waveshare 2.13", ~400 Kč), ale dražší.

Napájení:
Transformer 230V AC na 9-12V AC (~200 Kč), pak rectifier (diody) + kondenzátor + DC-DC converter (např. LM2596 na 5V) pro ESP. Alternativa: Hotový modul HLK-PM03 (AC-DC 3.3V, ~100 Kč) – kompaktní a bezpečný. Přidej fuse a varistor pro ochranu.

Další: Relé modul pro automatizaci (~100 Kč), SD karta pro lokální logování dat (~50 Kč), krytí (plastový box ~100 Kč).

Kup na AliExpress, Banggood nebo českých e-shopech jako SOS electronic.

3. Software a programování

Firmware na ESP
: Použij Arduino IDE (jednoduché) nebo MicroPython (rychlejší prototypování). Čti senzor každých 5-10 min, vypočítej hladinu (hladina = tlak / (hustota * g)), ulož lokálně pro týdenní historii, odesílej přes WiFi.

Databáze:
Lokálně: Použij Home Assistant (na Raspberry Pi) pro snadnou integraci a grafy. ESP pošle data přes MQTT.
Cloud: Arduino IoT Cloud nebo Blynk (zdarma pro malé projekty), nebo vlastní MySQL na serveru. Pro app: Flutter nebo React Native, kde načteš data z DB.

Automatizace: V kódu if-else pro řízení relé (např. if hladina < 20% zapni pumpu).
Zobrazení historie: Na displeji použij knihovnu U8g2 pro kreslení grafu z pole dat (např. 7 dní * 24 hod = 168 hodnot, průměruj).

Příklad kódu (Arduino pro ESP32):
Tady je základní sketch pro čtení senzoru, zobrazení na OLED a odeslání dat přes WiFi (předpokládám HTTP POST do tvé DB). Uprav podle svého senzoru (předpokládám analogový na pin 34). Instaluj knihovny: WiFi, HTTPClient, Adafruit_SSD1306.

Kód: Vybrat vše

#include <WiFi.h>
#include <HTTPClient.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

const char* ssid = "TvojeWiFi";
const char* password = "Heslo";
const char* serverUrl = "http://tvoje-db-server.com/post-data";  // Nahraď svou DB endpoint

// Senzor pin a kalibrace
const int sensorPin = 34;  // ADC pin
float zeroPressure = 0.5;  // Napětí při 0 hladině (kalibruj)
float maxPressure = 4.5;   // Napětí při max hladině
float maxHeight = 2.0;     // Max výška nádrže v metrech

// Historie: pole pro 168 hodnot (7 dní po hodině)
float history[168];
int historyIndex = 0;

void setup() {
  Serial.begin(115200);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // I2C adresa
  display.clearDisplay();
  
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Připojuji k WiFi...");
  }
  Serial.println("Připojeno!");
}

void loop() {
  // Čtení senzoru (průměr z 10 měření pro spolehlivost)
  float sum = 0;
  for (int i = 0; i < 10; i++) {
    sum += analogRead(sensorPin) * (3.3 / 4095.0);  // ESP32 ADC 12-bit
    delay(10);
  }
  float voltage = sum / 10;
  
  // Výpočet hladiny
  float pressure = (voltage - zeroPressure) / (maxPressure - zeroPressure);
  float height = pressure * maxHeight;  // Přizpůsob podle hustoty a g
  
  // Uložení do historie (každou hodinu - uprav timing)
  if (millis() % 3600000 == 0) {  // Každou hodinu
    history[historyIndex] = height;
    historyIndex = (historyIndex + 1) % 168;
  }
  
  // Zobrazení na displeji
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.print("Hladina: ");
  display.print(height, 1);
  display.println(" m");
  
  // Kreslení grafu historie
  for (int i = 0; i < 128; i++) {
    int idx = (historyIndex + i) % 168;  // Mapuj na šířku displeje
    int y = map(history[idx], 0, maxHeight, 63, 32);  // Dolní část displeje
    display.drawPixel(i, y, SSD1306_WHITE);
  }
  display.display();
  
  // Odeslání dat do DB
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin(serverUrl);
    http.addHeader("Content-Type", "application/json");
    String payload = "{\"height\":" + String(height) + ", \"timestamp\":" + String(millis()) + "}";
    int httpCode = http.POST(payload);
    if (httpCode > 0) {
      Serial.println("Data odeslána: " + http.getString());
    }
    http.end();
  }
  
  delay(60000);  // Měř každou minutu
}
Tento kód je základ – přidej watchdog (ESP.wdtEnable()), error handling a kalibraci. Pro testování ho nahraj přes Arduino IDE.

4. Další tipy a rizika

Testování: Začni s prototypem na breadboardu, pak PCB pro robustnost.
Bezpečnost: V nádržích s vodou zajisti izolaci, aby nedošlo k úrazu proudem.
Cena optimalizace: Kup v bulk z Číny, vynech zbytečnosti.
Alternativy: Pokud tlakový senzor selže, zvaž ultrasonic (JSN-SR04T) pro snadnější instalaci.

Kelvim
Příspěvky: 7
Registrován: 01 led 2026, 14:53

Re: Pomoc s vývojen

Příspěvek od Kelvim » 03 led 2026, 17:39

Pablo74 píše:
03 led 2026, 16:13
Ještě upozornění. Vývojová deska ESP32-2432S028R -> Cheap Yellow Display má rezistivní displej, k ovládání se nedá použít lidská ruka, ale stylus.

Z praktickýho hlediska bych přidal fyzický tlačítka a rotační enkodér; protože představa, že venku ovládám něco stylusem, který se nesmí zlomit a ztratit (!), jinak mi to přestane celý fungovat je, řekněme, děsivá.

Nebo aspoň web aplikaci a přes BLE komunikovat s tím ESP32 a ovládat a nastavit parametry z mobilu.
Rotační enkoder s tlačítkem bude super a dělá se i verze be dotyku. S BLE se počíta.

Uživatelský avatar
JPLABS
Příspěvky: 16
Registrován: 28 pro 2025, 16:52
Bydliště: Praha
Kontaktovat uživatele:

Re: Pomoc s vývojen

Příspěvek od JPLABS » 04 led 2026, 00:05

Vidím problém v tom, že autor "ukapává" informace :D . Takhle se projekty nedělají. Mě autor poslal soukromou zprávu, v které nebylo nic, vůbec nic, prázdná zpráva.
Normálně se takovéto projekty dělají tak, že autor - zadavatel sepíše situaci, současný stav, včetně obrázků atd atd. Pak napíše čeho má být dosaženo, co vše potřebuje vyřešit. Z takového zadání se vychází, hledají se možnosti, jak žádoucího stavu dosáhnout.
S časem se vše zhoršuje (zákon prof. Parkinsona)

Kelvim
Příspěvky: 7
Registrován: 01 led 2026, 14:53

Re: Pomoc s vývojen

Příspěvek od Kelvim » 04 led 2026, 00:34

JPLABS píše:
04 led 2026, 00:05
Vidím problém v tom, že autor "ukapává" informace :D . Takhle se projekty nedělají. Mě autor poslal soukromou zprávu, v které nebylo nic, vůbec nic, prázdná zpráva.
Normálně se takovéto projekty dělají tak, že autor - zadavatel sepíše situaci, současný stav, včetně obrázků atd atd. Pak napíše čeho má být dosaženo, co vše potřebuje vyřešit. Z takového zadání se vychází, hledají se možnosti, jak žádoucího stavu dosáhnout.

Autor za to nemůže :-)))
S Váma je to super bainstorming a já k tomu jedu ještě další věci a celé se to propojilo a zamíchalo a vzniklo z toho něco úplně jiného, ale mnohem lepšího.
Dám to dohromady a snad bude zadání vyhovovat.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host