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.
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.
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.