SPWF04SA: interfejs WiFi programowany za pomocą AT+ i MicroPythona

Lista rozkazów jest częściowo zgodna z wersjami dla wcześniej produkowanego przez STMicroelectronics typu modułu SPWD01xx. Jednak ze względu na nowe funkcjonalności, różni się w pewnych partiach zarówno co do zawartości jak i formatu poszczególnych rozkazów.

Poniżej przykłady składni rozkazów AT sterujących wybranymi funkcjami modułu. Rozkazy będą wpisywane ręcznie w edytorze terminala Br@y i przesyłane portem UART do modułu. Tą samą drogą będą odbierane potwierdzenia i komunikaty wysyłane z modułu.

Każdy rozkaz musi być zakończony kodem CR (powrót karetki). Ponieważ w terminalu Br@y można ustawić opcję jego automatycznego dodawania na końcu wysyłanych danych, w przykładach ten kod będzie pomijany.

Na początek przedstawimy proste funkcje sterowania uniwersalnymi portami GPIO modułu.

W przypadku cyfrowych portów GPIO najpierw należy ustawić ich funkcję: pracę jako wyjście lub wejście. Kolejne rozkazy ustawiają wyjście portu GPIO2 na poziomie wysokim bądź niskim.

AT+S.GPIOC=2,out                                      GPIO2 ustawione jako wyjście

AT+S.GPIOW=2,1                                        GPIO2 poziom wysoki

AT+S.GPIOW=2,0                                       GPIO2 poziom niski

Przykład odczytu stanu GPIO13 pracującego jako wejście. Po odebraniu rozkazu odczytu, moduł przesyła komunikat zawierający informację o stanie portu. Kolejne cyfry oznaczają: numer portu, odczytany stan z jego wejścia 1 lub 0, tryb pracy: 1-GPIO jest wejściem, 0-GPIO jest wyjściem.

AT+S.GPIOC=13,in                                      GPIO13 ustawione jako wejście

AT+S.GPIOR=13                                          odczyt stanu wejścia GPIO13

      AT-S.Value:13:1:1                                  stan wejścia GPIO13: wysoki

AT+S.GPIOR=13

      AT-S.Value:13:0:1                                 stan wejścia GPIO13: niski

W kolejnym przykładzie GPIO13 zaprogramowano jako wejście generujące przerwania. Zależnie od ustawienia, wejście będzie reagowało na określone zbocze sygnału wejściowego: F -opadające, R -narastające, B -na obydwa. Detekcja ustawionego stanu zbocza spowoduje wysłanie portem UART do terminala informacji o zaistniałym przerwaniu.

AT+S.GPIOC=13,in,F                                     GPIO13 ustawione jako wejście generujące przerwanie opadającym zboczem sygnału

       +WIND:52:GPIO Interrupt:13:0         wysłany przez moduł UART-em komunikat, wygenerowany przerwaniem

W następnym przykładzie jeden z trzech wyposażonych w taką funkcjonalność portów GPIO1, inicjowany jest do pracy jako wejście przetwornika ADC. Po tym rozkazie moduł w odpowiedzi przesyła komunikat z liczbą wyrażającą w miliwoltach zmierzone na wejściu portu napięcie analogowe. Zakres napięć wynosi 0 – 3300mV.

AT+S.ADC=1                                           ustawienie GPIO1 w trybie ADC i inicjacja konwersji

       AT-S.Value:2300                            przesłanie wyniku konwersji ADC z GPIO1

Przykład pokazujący jak na porcie GPIO15 mogącym pracować jako wyjście przetwornika DAC, ustawić napięcie analogowe w zakresie 1 – 3300mV. Wartość 0 oznacza zakończenie pracy GPIO15 jako wyjścia przetwornika.

AT+S.DAC=500                                    GPIO15 ustawione jako wyjście DAC o poziomie napięcia 500mV

Moduł umożliwia dostęp do systemu plików znajdujących się w pamięci Flash, pamięci RAM i na karcie SD. Przy czym dodawanie i usuwanie plików jest możliwe tylko dla pamięci RAM i karty SD.

Przykład utworzenia w głównym katalogu na karcie SD pliku o długości 13 znaków tekstu:

AT+S.FSC=0:/Test.txt,13#013Napis testowy           utworzenie na karcie SD pliku Test.txt zawierającego napis Napis testowy

                                                                                           (#013 -polecenie dla terminalu Br@y  wstawienia kodu CR dziesiętnie 13)

Dodanie do istniejącego pliku na karcie SD, 14 znaków tekstu:

AT+S.FSC=0:/Test.txt,14#013_kolejny tekst

Odczyt pliku zapisanego pliku na karcie SD i przesłanie jego zawartości portem UART:

AT+S.FSP=0:/Test.txt,0,                  przesłanie portem UART zawartości pliku z przesunięciem względem początku o 0 bajtów,                                                                                                                                                                                            domyślnie całej zawartości pliku

Usunięcie z karty SD pliku:

AT+S.FSD=0:Test.txt                        usunięcie pliku w karty SD

Moduł ustawiony jako stacja, może pracować w sieci utworzonej przez znajdujący się w zasięgu punkt dostępu (AP). Taką sytuację pokazano na rysunku 8.

Rys. 8. Konfiguracja pracy modułu jako stacja dołączona do AP

Poleceniem AT+S.SCAN można uzyskać listę będących w zasięgu AP. Ustawiamy nazwę (SSID) wybranego punktu dostępu i jeżeli nie jest to AP typu otwartego, także klucz. Po wybraniu trybu pracy modułu jako stacja i włączeniu WiFi, moduł powinien zostać podłączony do AP i w trybie DHCP powinien mu zostać nadany numer IP.

AT+S.WIFI=1                                                           włączenie WiFi

AT+S.SCAN=d,                                                       przesłanie portem UART listy punktów dostępu w zasięgu

AT+S.WIFI=0                                                         wyłączenie WiFi

AT+S.FCFG                                                             przywrócenie ustawień fabrycznych

AT+S.SSIDTXT=nazwa_AP                                ustawienie SSID punktu dostępu

AT+S.SCFG=wifi_wpa_psk_text,123456        ustawienie klucza do punktu dostępu

AT+S.SCFG=wifi_priv_mode,2                        network privacy mode

AT+S.SCFG=wifi_auth_type,0                        authentication type

AT+S.SCFG=wifi_mode,1                                 SPWF04SA pracuje jako stacja

AT+S.WIFI=1                                                      włączenie WiFi

AT+S.WCFG                                                        zapis konfiguracji do pamięci nieulotnej

AT+S.RESET                                                      zerowanie modułu

 

AT+S.STS                                                           odczyt statusu

        AT-S.Var:ip_ipaddr=192.168.1.102    przydzielony dynamicznie adres IP

W ustawieniach fabrycznych, moduł pracuje jako serwer HTTP z zaprogramowanymi w pamięci Flash przykładowymi stronami. Po wpisaniu w pasku statusu przeglądarki przydzielonego adresu zostanie wyświetlona strona startowa.

Praca modułu jako miniAP (punktu dostępu)

Moduł SPWF04SA może też pracować jako samodzielny punkt dostępu, do którego będą się podłączać inne urządzenia WiFi pracujące jako stacje. Taką sytuację pokazano schematycznie na rysunku 9.

Rys. 9. Konfiguracja pracy modułu jako AP

W tym trybie nadaje się modułowi nazwę (SSID) pod jaką będzie widoczny dla innych urządzeń w sieci WiFi. Jeżeli moduł jako AP nie ma pracować w trybie otwartym, należy określić parametry klucza dostępu, który każda stacja będzie musiała podać zanim uzyska status podłączonej. Należy także określić adres IP pod jakim AP będzie dostępny w sieci. Jeżeli włączony będzie tryb DHCP, każdej podłączanej do modułu stacji będzie nadawany numer IP. Na koniec należy zapisać ustawienia do pamięci nieulotnej tak, aby każdorazowo po włączeniu zasilania modułu były odtwarzane.

AT+S.WIFI=0                                                           wyłączenie WiFi

AT+S.FCFG                                                               przywrócenie ustawień fabrycznych

AT+S.SSIDTXT=modul_AP                                 nadanie nazwy modułowi pracującemu jako AP

AT+S.SCFG=wifi_priv_mode,1                           dostęp do AP w trybie WEP po podaniu klucza

AT+S.SCFG=wifi_mode,3                                     tryb MiniAP

AT+S.SCFG=wifi_wep_keys[0],76543210ab   klucz dostępu do AP np. „76543210ab”

AT+S.SCFG=wifi_wep_key_lens,05                  rozmiar klucza w bajtach

AT+S.SCFG=wifi_auth_type,0

AT+S.SCFG=ip_ipaddr,192.168.0.50                adres IP pod jakim AP będzie dostępny

AT+S.SCFG=ip_use_dhcpc,2                              tryb DHCP, automatyczne przydzielanie numerów kolejnym podłączanym do AP Stacjom

AT+S.WIFI=1                                                           włączenie WiFi

AT+S.WCFG                                                            zapis konfiguracji do pamięci nieulotnej

AT+S.RESET                                                           zerowanie modułu

W ustawieniach fabrycznych, moduł pracuje jako serwer HTTP z zaprogramowanymi w pamięci Flash przykładowymi stronami. Po podłączeniu do modułu poprzez sieć WiFi np. telefonu, otwieramy jego przeglądarkę internetową i w pasku wyszukiwania wpisujemy ustawiony adres IP (w przykładzie 192.168.0.50), wyświetli się strona testowa.

O autorze