Bezprzewodowy system sterowania oświetleniem z protokołem ZigBee na STM32W

Oprogramowanie modułu MB951 USB dongle

Na powyższy moduł należy załadować przykładową aplikację z pakietu ‘ST SimpleMAC-1.1.0’ (dostępny na stronie producenta i w załączniku do artykułu) o nazwie ‘talk.s37’. Instrukcja jak to zrobić znajduje się poniżej.

Do flashowania układów wykorzystywany jest program ‘stm32w_flasher’ z pakietu ‘ST SimpleMAC-1.1.0’.

Procedura:

  1. Podpięcie układu do portu USB komputera klasy PC.
  2. Sprawdzenie numeru przypisanego portu COM w menedżerze urządzeń.
  3. Uruchomienie konsoli CMD, poprzez Start -> Uruchom -> cmd
  4. Przejście za pomocą konsoli do folderu, w którym znajduje się aplikacja ‘stm32w_flasher’
    • domyślnie: C:\Program Files\STMicroelectronics\ST SimpleMAC-1.1.0\STM32W108\utilities
    • należy pamiętać o uprzednim skopiowaniu do powyższego folderu aplikacji z rozszerzeniem .s37, którą chcemy załadować do modułu.
  5. Wykonanie polecenia:stm32_flasher.exe –p COMx –f –r *.s37gdzie:
    COMx – pod ‘x’ wstawiamy numer portu, do którego podłączone jest urządzenie
    *.s37 – nazwa aplikacji, która ma być załadowana do modułu

Wgrany program umożliwia odbiór i wysyłanie ramek radiowych ZigBee. Tu wykorzystana została tylko funkcjonalność wysyłania ramek. Proces wysyłania przebiega następująco: mikrokontroler STM32W oczekuje na odbiór danych z komputera (przez interfejs USB działający jako wirtualny port COM), po odbiorze danych konwertuje je do postaci ramki radiowej i wysyła w eter.

Oprogramowanie modułu MB950 remote application board

Moduł ten wymaga załadowania odpowiednio zmodyfikowanej aplikacji ‘talk.s37’. Modyfikacja wprowadza obsługę dodatkowego pinu odpowiedzialnego za włączenie i wyłączanie oświetlenia. Po analizie schematu elektrycznego modułu MB950 wybrano pin PA3, który nie znalazł zastosowania w aplikacji talk, jednakże świetnie nadawał się do zastosowania w omawianym projekcie.

Zmiany w źródłowym kodzie zostały dokonane w funkcji processReceivedPackets(void), odpowiedzialnej za odbieranie pakietów przesyłanych z innego urządzenia. Funkcja to zastała poszerzona o warunki logiczne odpowiedzialne za ustawianie stanu wysokiego oraz niskiego na pinie PA3. Zmodyfikowane ciało tej funkcji zaprezentowano w listingu 1.

Listing 1.

Powyższy kod zawiera obsługę tylko jednego zewnętrznego obwodu oświetlenia. W celu uzyskania obsługi większej liczby elementów, należy powielić instrukcję warunkową
i odpowiednio zmienić pola zaznaczone żółtym kolorem.

Oprogramowanie do komputera PC

Celem maksymalnego ułatwienia korzystania z zestawu zastosowano program z interfejsem graficznym użytkownika. Podstawę dla niego stanowiła aplikacja ‘SerialPort Terminal’ rozpowszechniana w postaci otwartego kodu.

 

Rys. 4. Oryginalna aplikacja ‘SerialPort Terminal’.

Rys. 4. Oryginalna aplikacja ‘SerialPort Terminal’.

 

Do pobrania

O autorze