Jak sterować jednocześnie wieloma inteligentnymi zaworami kulowymi WiFi? (Część 2)
Udział
Rozwiązanie programistycznego sterowania urządzeniami
Chociaż platformy chmurowe zapewniają podstawowe możliwości zarządzania urządzeniami, nasze programowe podejście oferuje bardziej elastyczną i bezpośrednią kontrolę nad inteligentnymi zaworami kulowymi. Ta metoda jest szczególnie przydatna w scenariuszach automatyzacji, niestandardowych integracjach i omijaniu opóźnień w chmurze.
Środowisko programistyczne
W tej demonstracji wykorzystano Visual Studio Code ze względu na doskonałą obsługę języka Python i możliwości debugowania. Program jest jednak niezależny od platformy i można go wdrożyć za pomocą:
PyCharm (zalecany do programowania zorientowanego na Pythona),
Jupyter Notebooks (do konfiguracji eksperymentalnych),
Dowolnego IDE zgodnego z Pythonem 3.9 lub nowszym.
Uwaga: Przed użyciem programu należy wstępnie pobrać bazę danych Tuya na urządzenie operacyjne.
# Zainstaluj bibliotekę TinyTuya
python -m pip install tinytuya
Kroki implementacji
1. Konfiguracja
Znajdź i wypełnij następujące parametry w wyznaczonej sekcji konfiguracji (jak pokazano w samouczku wideo):
Region API: Strefa geograficzna Twojej usługi w chmurze (np. „CN”, „EU”, „US”).
Klucz API: Unikalny identyfikator aplikacji (64-bitowy szesnastkowy)
Sekret API: Token uwierzytelniania (256-bitowy zaszyfrowany ciąg)
Identyfikatory urządzeń: Lista urządzeń docelowych rozdzielonych przecinkami (wymagane minimum 1)
Uwaga: Szczegółowe instrukcje dotyczące pozyskiwania parametrów znajdują się w części 1 naszego cyklu blogów technicznych. Zawsze przechowuj dane uwierzytelniające w zmiennych środowiskowych do użytku produkcyjnego.
2. Protokół wykonania
Zainicjuj sekwencję sterowania za pomocą:
Przycisku ▶️ „Uruchom i debuguj” (skrót F5)
Polecenia terminala: „python3 ballvalve_controller.py --auto”
System automatycznie:
Nawiąże bezpieczne połączenia TLS 1.3
Sprawdzi uprawnienia poświadczeń
Zainicjuje kanały komunikacji urządzenia
3. Logika sterowania stanowego
Nasz dynamiczny silnik sterowania implementuje:
python
pseudokod logiki rdzenia
def toggle_device(device):
current_state = poll_status(device)
new_state = not current_state
send_command(device, new_state)
verify_state_change(device, new_state)
Główne cechy:
Sondaż stanu w czasie rzeczywistym
Dwukierunkowa weryfikacja stanu
Mechanizm automatycznego ponawiania
Łagodne przetwarzanie błędów
Operacyjne Scenariusze
Ten program umożliwia:
✅ Zaplanowane systemy nawadniania
✅ Protokoły awaryjnego wyłączania
✅ Synchronizację wielu urządzeń
✅ Integrację z systemami SCADA
Zagadnienia bezpieczeństwa
Zawsze najpierw testuj w środowisku przejściowym
Utrzymuj wersję oprogramowania układowego 2.3.8+
Wdrażaj schemat wyłączników obwodowych dla operacji zbiorczych
Monitoruj limity wywołań API (maks. 60 obr./min/konto domyślne)
Aby uzyskać pełny przykład kodu: here.