A6C i A7 w akcji — czyli AT Command

A6C i A7 w akcji — czyli AT Command
Razem głosów: 18 co stanowi: 96.67% całości.

Już nieco poznaliśmy moduły GSM z firmy AI Thinker  ale czas zobaczyć co one potrafią więcej i jak z nimi pracować. Najprościej oczywiście postaram się opisać używanie z terminala komend AT  i oczywiście zobaczymy jak w A6C odczytać zdjęcie, a w A7 korzystać z GPS … 

Co nam będzie potrzebne ?


  1. Adapter USB-UART pracujący w TTL 3,3V   
  2. Moduły GSM z Ai Thinker
  3. kilka przewodów
  4. Program terminalowy np SunDebunal 1.4.2  lub najnowszy 1.5.0 z obsługą AT Command dla naszych modułów GSM
  5. karta SIM w dowolnej sieci

I tym sposobem możemy zacząć zabawę i testy z naszymi modułami. Opis jaki się tu pojawi będzie zasadniczo wspólny dla modułów  A6 / A6C / A7  – różnice będą opisane jako :

  • Tylko A6C
  • Tylko A7

co powinno pomóc interpretować to co się będzie działo i w jaki sposób :)  Dlaczego właśnie tak ??   to proste  80% komend  AT i sposób działania części GSM jest taka sama dla wszystkich modułów. Różnice wynikają tylko z dodatkowych możliwości i akcesoriów .


PODŁĄCZENIE 


Oba nasze moduły podpinamy tak samo. Do zasilania możemy użyć miniUSB lub podłączyć się do goldpinów.

Ja użyję przewodów gdyż jeden z moich modułów nie posiada gniazda miniUSB . Zgodnie z powyższym pinoutem.

  • +5V
  • GND
  • UTXD
  • URXD

Sygnały są dostępne na górnym złączu pod przyciskiem POWER.  W odróżnieniu dla A7 sprawa jest bardzo podobna :)

Potrzebne nam piny są również na górnym złączu  pod gniazdem anteny GPS_RF

A tak wygląda zestaw testowy, podłączony na tą chwilę jest A6C  gdyż właśnie od niego zaczniemy :)

OBA MODUŁY PRACUJĄ NA 115200bps  8in1


URUCHOMIENIE 


Kartę SIM wkładamy do gniazda na dolnej warstwie płytki.

Uruchamiamy terminal i zestawiamy połączenie w moim przypadku COM2  115200 .  I naciskamy przycisk power na module.  Parę razy zamiga dioda LED i po chwili zacznie świecić. W tym czasie moduł przejdzie bootSequence wysyłając na terminal informacje:

Świadczą one o przebiegu bootowania i połączeniu z siecią. Potrzeba ok 6s na pełną gotowość modułu.  Choć zwykle trwa to ok 1 – 2s.

Gdy moduł jest gotowy możemy sprawdzić informacje o producencie, model i wersję firmware:

ati

Ai Thinker Co.LTD
A6C
V03.03.20160725009H03

OK

Do tego celu służą komendy ATI i ATOI.

Możemy też wykonać komendę :

ATI+CMI;+COPS? (można łączyć wiele poleceń w wierszu rozdzielając je średnikami) na co otrzymamy informację j/w ale uzupełnione o identyfikator sieci i stan połaczenia:

Ai Thinker Co.LTD
A6C
V03.03.20160725009H03

260011702142209

+COPS: 0,2,”26001″

OK

Jak wiec widać jesteśmy połączeni z siecią PLUS :) Odbieranie SMS jest automatyczne i wszystko co przychodzi na moduły jest wypluwane na UART:

Oczywiście po włączeniu moduł pracuje w trybie PDU więc trzeba ustawić tryb TEXT-owy co czynimy :

  • AT+CMGF?    —  zwraca ustawienie SMS   0 – PDU / 1 TEXT
  • AT+CMGF=1  — Ustawia tryb textowy
  • AT+ CSCA?  — Wyświetla numer Centrum SMS

Wysłanie SMS z modułu też jest proste :

AT+CMGS=”+48xxxxxxxxx”  > test sms

i wiadomość zostaje wysłana pod numer docelowy.

  • AT+CMGL=”ALL”  — pozwala odczytać wszystkie SMS w pamięci:

+CMGL: 1,”REC READ”,”+48numer”,,”2016/10/03,12:39:02+02″
Test

Z pozostałych przydatniejszych komend mamy :

  • AT+CGMR — wyświetla wersję firmware
  • AT+CNUM — wyświetla własny nr telefonu
  • AT+IPR?  — wyświetla szybkość portu (umożliwia też ustawienie szybkości — default = 115200)
  • AT+CPAS  — pokazuje stan gotowości
  • AT+CCLK? — pokazuje datę i czas z sieci: +CCLK: „17/01/07,13:06:35+01”
  • AT+CGSN — wyświetla IMEI
  • AT+CPBR=1,99  — wyświetla numery z książki w zakresie 1 do 99
  • AT+CMUT?  — pokazuje status głośników  — 0 = OFF/ 1= ON
  • AT+RST — resetuje moduł
  • AT+SCQ  — pokazuje sygnał sieci
  • AT+COPS? — wyświetla operatora
  • AT+CREG? — pokazuje stan rejestracji w sieci
  • AT+COPS=? pokazuje dostępne sieci —+COPS: (2,”Plus”,”Plus”,”26001″),(3,”OrangePL”,”OrangePL”,”26003″),(3,”Era”,”Era”,”26002″),(3,”Play”,”Play”,”26006″)

    OK

  • AT+CPBW=,”+48NUMER”,129,”NAZWA”  — dodanie numeru do książki

To te podstawowe bardziej przydatne na tą chwilę oczywiście szczegóły i więcej komend jest dostępne wraz z wyczerpującym opisem w dokumentacji :

AT Command
AT Command » Wpis
A6A7A6CA20_AT_Commends.pdf
4.0 MiB
190 Downloads
Szczegóły

z którą polecam się zapoznać. A teraz szczegóły dla poszczególnych modułów:

TYLKO A6C 


Obsługa kamerki:


Obsługa OV7670 posiadającej rozdzielczość 0,3Mpix jest stosunkowo prosta i odbywa się z poziomu komend AT modułu:

AT + CAMSTART (Uruchamia kamerę i pozwala wybrać jedną z trzech dostępnych rozdzielczości) 

  • AT + CAMSTART = 0 (QVGA: 320 x 240)
  • AT + CAMSTART = 1 (VGA: 640 × 480)
  • AT + CAMSTART = 2 (QQVGA: 160 × 120)

AT + CAMSTOP (Wyłącza kamerę)

AT + CAMCAP (Wykonuje zdjęcie, domyślnym formatem jest .jpg)

AT + CAMRD (Odczytuje zdjęcie)

  • AT + CAMRD = od-addr, do addr;

AT + CAMREC (Na tą chwilę nie jest dostępne ciągłe nagrywanie i przekazywanie obrazu na żywo – ale możliwe że w kolejnym firmware będzie już ta opcja dostępna )

AT + CAMCFG (konfiguracja kamery)

  • AT + CAMCFG = tryb, param

Szczegóły ustawień dostępne są w dokumentacji, można regulować takie parametry jak:

  • tryb pracy lampy błyskowej  — domyślnie 0 wyłączona
  • tryb dzienny/nocny
  • jakość obrazu
  • odwrócenie obrazu
  • parametry ekspozycji
  • jasność
  • balans bieli
  • kontrast

jeszcze nie rozgryzłem kolejności i wartości parametrów dla aparatu poza włączeniem/ wyłączeniem lampy błyskowej:)


No dobrze to w zasadzie wszystko , zatem zróbmy zdjęcie :)

odpalamy terminal i uruchamiamy kamerkę w rozdzielczości VGA 640×480

AT+CAMSTART=1

następnie wykonamy zdjęcie :

AT+CAMCAP

Jak widać nasze zdjęcie zostało wykonane i zajmuje 22917bajtów, teraz możemy je odczytać i tu nam się przyda zestaw komend:)

ATE0  – wyłącza echo komend

teraz przełączamy SunDebunala w tryb HEX i wpisujemy AT+CAMRD

tak otrzymane dane wklejamy do pliku textowego w notatniku i zmieniamy jego nazwę na np. 123.jpg  gdyż domyślnie właśnie w jpg zdjęcia robi nasza kamerka. Po zapisaniu pliku możemy zobaczyć jak nam wyszło :

Jak na 0.3Mpix naprawdę nie jest źle :) i nawet coś widać, teraz tylko znaleźć sposób na przesłanie pliku GPRSem na server lub MMSem na telefon na żądanie i mamy mały monitoring :)


TYLKO A7


Obsługa GPS

GPS w modelu A7 jest również obsługiwany komendami AT co w pewien sposób jest bardzo wygodne i dzięki czemu można łatwo wyłuskiwać mikrokontrolerem konieczne dane jak też wykrywać ruch i przekierowywać dane lub wręcz unieruchamiać niektóre funkcje.

Komendy te to:

  • AT+GPS?  — wyświetla stan GPS   0=OFF / 1=ON
  • AT+GPS=1  — włącza GPS
  • AT+GPS=0  – wyłącza GPS

Obsługiwany jest też AGPS

  • AT+AGPS?  — wyświetla status  0=OFF/1=ON
  • AT+AGPS=1 — włącza AGPS
  • AT+AGPS=0 — wyłacza AGPS

i ostatnia komenda najistotniejsza to :

AT+GPSRD  – pozwalająca odczytywać parametry GPSA w tradycyjnym NEMA jako zdania NMEA  GPS  , podobno wartość parametru pozwala też na pracę GPS z GPS_TXD  na prędkości 9600bps..  , ale do rzeczy …

uruchamiamy moduł GPS,  jestem, za daleko od okna wiec nie będzie możliwe złapanie sygnału GPS , ale pozbawione parametrów lokalizacyjnych zdania NMEA  wyślemy sobie na UART:

Uruchomienie wysyłki zdań  czynimy komendą :

AT+GPSRD=1

i zdania te są wysyłanie co 1s na UART :)

I to w zasadzie wszystko na module A7 i A6C i w sumie to co ciekawsze gdyż resztę znajdziecie w obszernych dokumentach które zamieściłem w poprzednim artykule .

Moduły warte są zainteresowania się nimi i mają całkiem spore możliwości jak na takie maleństwa, O ile A6C może stanowić mały podgląd Camerką , która robi dosyć przyzwoite zdjęcia , to jednak szkoda że nie ma możliwości przesyłania strumieniem obrazu na żywo, lub MMSem ,  O tyle A7 może być ciekawym uzupełnieniem konstrukcji mobilnych jak drony czy inne zabawki RC  gdzie mozna A7 zastosować jako układ śledzenia w razie zgubienia , mogący przesyłać swoje położenie smsem na numer właściciela i wiele innych rozwiązań …

Miłego użytkowania …

 

 

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay