Mirley - Elektronika i Programowanie
projekty, programy... wszystko o elektronice
M
RSS FB TW G+
MSwitch: Aplikacja Wyłącznika Wielokanałowego
Luty 05, 2017 Programy i Skrypty
MSwitch to aplikacja pozwalająca na pełną konfigurację układu wyłącznika wielokanałowego, którego pełny opis można znaleźć tutaj. Program został napisany w języku Python, dzięki czemu powinien bez trudu działać pod każdym systemem operacyjnym. Aplikacja może działać jako samodzielny program okienkowy, lub pracować jako jeden z modułów w pakiecie MirSmartHome, który w przyszłości będzie gromadził wiele podobnych aplikacji do sterowania różnymi urządzeniami w całym domu.

Wymagania:

Aplikacja MirSmartHome, której częścią jest opisywana tutaj MSwitch, ma budowę modułową. Każdy z modułów (powiązanych ze sobą zależnościami) wykonuje swoje ściśle określone zadania. Dobrym przykładem jest tutaj moduł komunikacyjny ConnMod, który dba o kolejkowanie transmisji po magistrali oraz zarządza portem szeregowym, pozwalając na komunikację z wieloma modułami niezależnie. Zatem aplikacja MSwitch, uruchomiona w trybie samodzielnym, będzie wymagała modułu komunikacyjnego do poprawnego działania, podczas gdy pracując jako jeden z modułów w aplikacji głównej MirSmartHome, będzie korzystała z już załadowanego modułu komunikacyjnego.

Na dzień dzisiejszy przygotowano wersję wykonywalną aplikacji pod system Linux i Windows, która powinna działać bez instalacji dodatkowych składników na komputerze. Sama aplikacja także nie wymaga instalacji w systemie, wystarczy wypakować archiwum do dowolnego katalogu na komputerze. W załącznikach można znaleźć też źródła programu, które do poprawnej pracy będą wymagały (niezależnie od systemu operacyjnego):
  • Python 2.7
  • PySerial - moduł do obsługi portów szeregowych
  • PyQT4 - wsparcie dla QT4
Ponadto potrzeby jest port szeregowy (prawdopodobnie przejściówka USB/UART na układzie FTDI232) z konwerterem na standard różnicowy RS485 (popularny układ MAX485). Mimo że w systemie docelowym przewidziano komunikację sprzętową po magistrali RS485, aby przetestować układ wyłącznika i jego sterowanie z poziomu aplikacji bufory MAX485 nie są wymagane. Można podłączyć UART bezpośrednio do układu sprzętowego o ile korzystamy z przejściówki USB/UART gdzie dostępne są odpowiednie poziomy sygnałów logicznych.

Obsługa Programu:

Obecnie pakiet MirSmartHome jest w wersji testowej, zatem aplikacja wyłącznika MSwitch będzie działała w trybie samodzielnym. W tym trybie aplikację uruchamiamy wywołując z konsoli plik multchswitch.py. W przypadku aplikacji w wersji wykonywalnej należy uruchomić (najlepiej z konsoli ze względu na zwracane z programu komunikaty) plik multchswitch (dla systemu Windows będzie to multchswitch.exe). Pojawi się okienko główne widoczne na rysunku 1:
Rysunek 1: Okno główne aplikacji
Główna częścią interfejsu okna głównego stanowi 10 przycisków wraz z "diodami" sygnalizującymi aktualny stan na urządzeniu. Przyciski te mają takie same działanie jak klawiatura na urządzeniu sprzętowym. Po lewej stronie u dołu wyświetla się aktualny status komunikacji z urządzeniem sprzętowym (czerwony - komunikacja nieaktywna, zielony - aktywna). Jeśli komunikacja jest aktywna to aplikacja utrzymuje ciągłą synchronizację z urządzeniem. Jeżeli zostało ono zresetowane to zostanie wysłana do niego aktualna konfiguracja kanałów wybrana w działającej aplikacji. Jeżeli aplikacja zostanie uruchomiona przy już skonfigurowanym urządzeniu to odpowiednie dane zostaną odczytane z urządzenia. Po prawej stronie u dołu dostępne jest menu programu, które zapewnia dostęp do ustawień komunikacji, konfiguracji kanałów i samego programu oraz między innymi pozwala na uruchomienie lub zatrzymanie komunikacji z urządzeniem.
Po wybraniu w menu programu opcji Connection Settings ... pojawi się interfejs okienkowy modułu komunikacyjnego ConnMod, przedstawiony na rysunku 2:
Rysunek 2: Okno ustawień połączenia
Okno to pozwala na konfigurację portu szeregowego oraz parametrów samego modułu komunikacyjnego. W oknie wyboru Port pojawią się wszystkie znalezione w systemie porty szeregowe i zostanie wybrany jeden z nich na podstawie zapisanej w pliku konfiguracji. Jeśli program został uruchomiony po raz pierwszy, zostanie wybrany pierwszy port z listy. Dalej można dokonać zmiany parametrów transmisji (Baudrate, bity stopu i bity danych). Dla samego modułu komunikacyjnego można ustawić interwał skanowania portu (Interval) oraz ilość prób odbioru danych z urządzenia (Max Tries). Przyciski u dołu okna pozwalają na otwieranie/zamykanie portu, ponowne skanowanie dostępnych w systemie portów oraz zapis ustawień do pliku konfiguracyjnego. Moduł komunikacyjny pełni jeszcze jedną funkcję - pozwala na wysłanie sygnału testowego PING do dowolnego urządzenia w systemie w celu jego diagnozy. Aby tego dokonać wystarczy wybrać typ urządzenia z rozwijanej listy oraz wprowadzić jego adres. Przed uruchomieniem testu należy wyłączyć transmisję danych we wszystkich modułach.

Po wybraniu w menu programu opcji Module Settings ... pojawi się okno ustawień modułu widoczne na rysunku 3:
Rysunek 3: Okno ustawień modułu
Ustawienia pozwalają na wybór parametrów niezależnie dla każdego z kanałów wyłącznika. Można tutaj wybrać jeden z czterech trybów pracy kanału (M0 - M3), ustawić oba interwały czasowe (Time A i Time B) a także ustawić stan początkowy dla każdego z kanałów. W celu łatwiejszej identyfikacji kanałów dodano także możliwość wyboru ikony, która będzie wyświetlana w oknie głównym programu. Okno ustawień pozwala także na zmianę parametrów samego modułu. Można tutaj wybrać adres urządzenia (Address), czas co jaki odczytywane są dane z urządzenia (Update) oraz warunki początkowe (Startup) po uruchomieniu programu. Dodano także możliwość wprowadzenia własnej nazwy wyświetlanej na belce okna głównego programu, co może okazać się przydatne w przypadku uruchomienia większej liczby modułów wyłącznika jednocześnie.

Tryby pracy kanałów:

  • M0: tryb manualny - umożliwia sterowanie ręczne danego kanału, z poziomu klawiatury lub z poziomu aplikacji.
  • M1: tryb czasowy, od A do B - pozwala na zaprogramowanie danego wyjścia w cyklu dobowym. Wyjście będzie aktywne od godziny A do godziny B, każdego dnia. W tym trybie przyciski sterowania ręcznego nie działają.
  • M2: tryb cykliczny, praca przez A, przerwa B - wyjście działa w trybie cyklicznym, jest aktywne przez czas A, po czym następuje przerwa B. Oba przedziały czasu można ustawić w granicach od 0 do 34 godziny z precyzją 1 minuty. W tym trybie przyciski sterowania ręcznego pozwalają zmienić stan wyjścia na przeciwny, jednorazowo skracając tym samym czas aktualnie odliczanej przerwy bądź pracy. Ustawienie któregokolwiek z czasów na 0 daje nieskończony odstęp czasu, co oznacza to że wyjście ma jeden stan stabilny (praca monostabilna).
  • M3: tryb cykliczny, praca przez A, przerwa B - działa tak samo jak tryb 2, z tym że oba przedziały czasu można ustawić w granicach od 0 do 34 minuty z precyzją 1 sekundy.

Tryby warunków początkowych:

  • Automatyczny (Automatic): Po starcie aplikacji jej zachowanie zależy od stanu urządzenia sprzętowego. Jeżeli zostało ono zresetowane to do urządzenia zostanie wysłana ostatnio zapisana konfiguracja, traktowana jednocześnie jako stan początkowy w aplikacji. W innej sytuacji aplikacja odczytuje konfigurację kanałów z urządzenia, traktując ją jako stan początkowy.
  • Zawsze wysyłaj ustawienia (Always send configuration): Po starcie aplikacji do urządzenia zawsze wysyłana jest ostatnio zapisana konfiguracja, niezależnie od stanu urządzenia - stan w aplikacji ma priorytet.
  • Zawsze odczytuj ustawienia (Always read configuration): Po starcie aplikacji odczytywana jest cała konfiguracja kanałów z urządzenia, niezależnie od jego stanu - konfiguracja w urządzeniu ma priorytet.

Wersje Oprogramowania:

  • 0.90 - Wszystko działa poprawnie. Jest to pierwsza wersja która w ogóle zawiera informacje na temat aktualnej wersji :). Aplikacja będzie mogła w przyszłości sprawdzić czy nie ma nowej wersji oprogramowania na stronie i ewentualnie wyświetlić zmiany.
  • 0.95 - Dodano możliwość wyboru warunków początkowych.

Załączniki:

Pozostałe:
AB AB AB Aplikacja MSwitch (wersja wykonywalna, Linux) 18.2 MB
AB AB AB Aplikacja MSwitch (wersja wykonywalna, Windows) 10.2 MB
AB AB AB Aplikacja MSwitch (kod źródłowy, Python 2.7) 73.4 kB

Pytania i Komentarze:

comments powered by Disqus


Marzec 23, 2017
Zegar Nixie z termoemtrem został ukończony
Więcej …
Marzec 23, 2017
Zegar Nixie z termoemtrem, prace trwają

Więcej nowinek …

LISPOL
Polecane Strony