Bezprzewodowy system sterowania oświetleniem z protokołem ZigBee na STM32W
Aplikacja została zmodyfikowana w środowisku programistycznym Microsoft Visual C# 2010 Express, tak aby interfejs użytkownika sprowadzał się jedynie do przycisków z wyborem miejsca zapalenia/zgaszenia światła (z systemowego punktu widzenia, jest to wybór modułu, który zareaguje załączy/wyłączy światło, w przypadku zastosowania ich w liczbie większej niż jeden) i niezbędnym wyborze portu dla podłączonego modułu nadawczego. W opisywanym projekcie zastosowano dwa moduły odbiorcze.
Rys. 5. Zmodyfikowana aplikacja ‘SerialPort Terminal’.
Widoczne na rysunku 5 ustawienia portu szeregowego COM są wymagane przez zastosowane moduły komunikacji bezprzewodowej. Konieczna jest jedynie zmiana numeru zmapowanego portu COM „COM Port” w zależności od numeru przypisanego w komputerze.
Dokonywanie zmian w programie w środowisku Microsoft Visual C# 2010 Express jest bardzo proste ze względu na możliwość graficznej edycji. Zbędne elementy szybko usunąć można poprzez ich zaznaczenie i przyciśnięcie klawisza ‘Delete’ na klawiaturze. Następnie z odpowiedniego menu wybrać można elementy do wstawienia. W tym przypadku potrzebnych będzie kilka przycisków (tak zwanych button’ów). Kluczowym elementem projektu jest dodanie do klawiszy funkcji, jakie będą wykonane po ich naciśnięciu. Z poziomu kodu wywołanie pożądanego działania, które zaimplementowane będzie w pliku Terminal.cs aplikacji, powinno wyglądać tak jak na listingu 2 i 3.
Listing 2. Przypisanie funkcjom funkcjonalności wysłania bajtu przez port szeregowy
private void Salon_on() { comport.Write("1"); } private void Salon_off() { comport.Write("0"); } private void Kuchnia_on() { comport.Write("4"); } private void Kuchnia_off() { comport.Write("3"); }
Listing 3. Przypisanie funkcji do przycisków aplikacji
private void btnSalon_Click(object sender, EventArgs e) { Salon_on(); } private void btnSalon_off_Click(object sender, EventArgs e) { Salon_off(); } private void btnKuchnia_on_Click(object sender, EventArgs e) { Kuchnia_on(); } private void btnKuchnia_off_Click(object sender, EventArgs e) { Kuchnia_off(); }
Jak łatwo można się domyślić, wybór odpowiedniego urządzenia, które jest odpowiedzialne za załączanie/wyłączanie oświetlenia w danym pomieszczeniu odbywa się poprzez wysłanie odpowiedniej wartości bajtu i sprawdzenie przez moduł (ten do którego adresowana była wiadomość) w prostej pętli ‘if’, czy odebrana wartość odpowiada wykonaniu przez niego działania włączenia czy wyłączenia oświetlenia.
Załączone kody źródłowe
W załączniku do artykułu dostępne są kompletne kody źródłowe umożliwiające odtworzenie oprogramowania opisanego systemu. Aby to zrobić, należy w pierwszej kolejności uruchomić plik instalacyjny ST SimpleMAC-1.1.0.0-STM32W108.exe, co spowoduje:
- rozpakowanie pod wskazaną ścieżką przykładowych aplikacji producenta,
- zainstalowanie wymaganych sterowników.
Następnie należy podmienić oryginalny plik talk.c na zmodyfikowany przez autorów.
Bibliografia
[1] Strona internetowa firmy IAR Systems, na której można pobrać środowisko EWARM http://www.iar.com/ [2] Strona internetowa firmy ST, na której można pobrać aplikację Simple MAC [3] Strona internetowa, na której można pobrać kod źródłowy programu Terminal http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx [4] Strona internetowa, na której można pobrać środowisko Visual C# http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-csharp-expressAutorami projektu i artykułu są studenci Wydziału Elektroniki Politechniki Wrocławskiej:
Dominik Mirowski
Norbert Mazurkiewicz
Michał Kryściak