Ostatnio zauważyłem, że coraz częściej elektronicy na youtube mają wyświetlane wartości pomiarów multimetrem. Aktualnie jestem posiadaczem miernika marki Fluke, który domyślnie nie oferuje takiego rozwiązania bezprzewodowo. Z tego powodu zacząłem rozkminiać i powstało konkretne rozwiązanie. Pomiar bez kabli, bez sterowników i bezpośrednio w OBS, to cel projektu Fluke Bridge, który stworzyłem jako uniwersalne rozwiązanie dla multimetru Fluke 289. Adapter oparty jest na Seeed XIAO ESP32-C3 i obsługuje zarówno Wi-Fi, jak i tryb USB.
⚙️ Do czego służy Fluke Bridge
- Umożliwia bezprzewodowy odczyt pomiarów z Fluke 287/289 przez port IR.
- Dane są przesyłane przez Wi-Fi do lokalnego interfejsu webowego (/status.html) oraz JSON API (/status.json).
- Działa też w trybie USB (CDC serial), więc nie wymaga sieci.
- Może współpracować z OBS Studio, aktualizując pliki tekstowe na ekranie streamu lub nagrania.
🔋 Wymagany sprzęt
| Komponent | Funkcja | Uwagi |
|---|---|---|
| Seeed XIAO ESP32-C3 | mikrokontroler + Wi-Fi | mały moduł z USB-C |
| LM393 IR transceiver | interfejs z portem IR Fluke | RX=GPIO20, TX=GPIO21 |
| Akumulator Li-ion 18650 | zasilanie | z płytką ochronną |
| DW01A + 8205A | układ PCM | zabezpieczenie przed przeładowaniem |
| Dioda LED GPIO3 | wskaźnik baterii | świeci / miga przy niskim napięciu |
| BOOT / RESET | konfiguracja Wi-Fi i restart | BOOT > 3 s → reset sieci |



🌐 Tryb sieciowy i panel webowy
- Po pierwszym uruchomieniu tworzy sieć FlukeBridge-XXXX i uruchamia portal konfiguracyjny.
- Po wpisaniu danych Wi-Fi moduł łączy się z domową siecią.
- Interfejs:
/– strona główna/status.html– panel na żywo/status.json– API dla skryptów/update– OTA aktualizacja firmware’u/config– kalibracja baterii i dzielnika





🧠 Funkcje oprogramowania
- automatyczna konfiguracja Wi-Fi (AP + portal)
- dashboard AJAX + tryb dark
- obsługa mDNS (fluke-bridge.local)
- monitor napięcia baterii z histerezą
- logika LED dla poziomu naładowania
- OTA update z przeglądarki
- tryb USB fallback z poleceniami SOC/VBAT
🐍 Oprogramowanie na komputerze - fluke_read.py
Skrypt Python czyta dane z HTTP lub USB i zapisuje je dla OBS.
Obsługuje tryby LIVE / HOLD / OFF, filtruje błędy i tworzy log CSV.
Pliki generowane:
- fluke_value.txt – wartość pomiaru
- fluke_status.txt – status (LIVE/HOLD/OL/OFF)
- fluke_log.csv – historia pomiarów
Uruchomienie:
# Wi-Fi
python3 fluke_read.py --http http://fluke-bridge.local/status.json
# USB
python3 fluke_read.py --serial /dev/ttyACM0
🎥 Integracja z OBS Studio (Linux / Windows)
💻 Linux / macOS
1. Zainstaluj Pythona 3 (w systemie zwykle już jest).
2. Zainstaluj bibliotekę pyserial:
pip install pyserial3. Dodaj w OBS dwa źródła tekstowe (Text → Read from file):
- fluke_value.txt → aktualna wartość pomiaru
- fluke_status.txt → status (LIVE / HOLD / OFF)
4. Uruchom skrypt:
./run_obs_with_fluke.shSkrypt automatycznie:
- sprawdza dostępność HTTP (
/status.json), - jeśli urządzenie nie odpowiada, przełącza się na tryb USB (
/dev/ttyACM0), - uruchamia OBS, jeśli jest zainstalowany.
🪟 Windows
1. Zainstaluj Python 3 (ze strony python.org).
W PowerShell wpisz:
py -3 -m pip install --upgrade pip
py -3 -m pip install pyserial2. Upewnij się, że Fluke Bridge jest widoczny w „Menedżerze urządzeń” jako port COM (np. COM3).
3. W OBS dodaj dwa źródła tekstowe (GDI+ → Read from file):
- fluke_value.txt
- fluke_status.txt
4. Uruchom skrypt:
pc\run_obs_with_fluke.batSkrypt automatycznie próbuje połączyć się z urządzeniem przez Wi-Fi (/status.json), a jeśli nie odpowiada - przełącza się na port USB (domyślnie COM3).
Można też nadpisać domyślne zmienne środowiskowe:
set URL=http://fluke-bridge.local/status.json
set SER=COM5
pc\run_obs_with_fluke.bat



🔧 Aktualizacja OTA
- W Arduino IDE → Export Compiled Binary lub pobierz aktualny release z GitHub.
- Otwórz http://fluke-bridge.local/update
- Wgraj plik .ino.bin i poczekaj na restart
Ustawienia Wi-Fi pozostają zachowane.
| Stan | Próg napięcia | LED GPIO3 |
|---|---|---|
| pełna | > 4.15 V | OFF |
| niski (WARN) | ≤ 3.40 V | ON ciągle |
| krytyczny (CRIT) | ≤ 3.00 V | miga ~1 Hz |
| CRIT > 15 s | uśpienie ESP |
Kompletna dokumentacja jest dostępna pod adresem:
