Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 mar 2026, o 18:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 21 paź 2015, o 17:30 
Offline
Nowy

Dołączył(a): 18 mar 2014
Posty: 16
Pomógł: 0

Witam, potrzebuję porady w jaki sposób przesłać sms'em funkcję oraz wartość do funkcji. Podłączone pod płytkę Pana Mirka po UART. Moduł działa odbiera sms w formie jak poniżej tylko nie mam pojęcia jak powinna odczytać Atmega samą treść sms'a, wyciągnąć z niej polecenie do funkcji jak i wartość.
Proszę naprowadźcie mnie na jakieś proste rozwiązanie :)


Obrazek



Ostatnio edytowano 21 paź 2015, o 18:52 przez Miccrel, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 paź 2015, o 18:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

O ile dobrze pamiętam za pomocą polecenia AT+CNMI=1,1,0,0,0 (chyba takie parametry) można ustawić sim, by zaraz po odebraniu sms treśc sms była wyświetlana w terminalu. Tak to chyba jest, że mamy tylko info że przyszedł sms i jego numer i musimy go ręcznie odczytać.

W procku musisz parsować to, co wlatuje po uart. Bardzo dobrze opowiedział o tym Mirek w poradniku na YT odnośnie clienta wifi i kursu walut ze strony. Postaram się podrzucić linka
https://youtu.be/DJpRk3CVQCc?t=13m35s

------------------------ [ Dodano po: 7 minutach ]

A ogólnie obrazek wrzuć na forum a nie gdzieś w świecie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 paź 2015, o 23:37 
Offline
Nowy

Dołączył(a): 18 mar 2014
Posty: 16
Pomógł: 0

Obejrzałem, świetny poradnik, ogólnie przećwiczyłem działa. Tylko że w ćwiczeniu jest ładowanie tej struktury po wciśnięciu odpowiedniego przycisku, a ja przecież nie mam wpływu na zawartość struktury, bo komend będzie kilka a załadować można tylko jedną.
Jakieś inspiracje? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2015, o 23:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Zastanów się nad jednym - masz dwie możliwe sytuacje (w zależności od ustawień):

1) Moduł informuje Cię, że dostał sms i podaje numer w pamięci (troszkę upraszczam, ale chyba się połapiesz). Cały czas parsujesz to, co dostajesz po uart. Jeśli trafisz na daną komendę "mam sms" to wysyłasz modułowi polecenie "wyświetl sms". Wyświetlenie sms też ma swój charakterystyczny początek. Jak go wyłapiesz parsując dane to masz treść sms i robisz z nią co chcesz. Pamiętaj - reagujesz na zdarzenie "uart coś odebrał", szukasz odpowiedniej frazy i albo coś robisz , albo nie.

2)Tu już uproszczę - moduł po otrzymaniu sms naje znać i wypisuje sms do uart. Ty czekasz parsując dane z uart na początek, wyłapujesz treść sms i pozamiatane. Dlatego lepiej, jeśli w module ustawisz żeby od razu wypisał sms.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2015, o 00:40 
Offline
Nowy

Dołączył(a): 18 mar 2014
Posty: 16
Pomógł: 0

To już mam opanowane, do uart z automatu lecą dwie linie, pierwsza z numerem tel godziną itp. ,druga to sama treść wiadomości.
Bazując na poradniku, gdzie mechanizm jest genialny i działa, bo tak sobie przerobiłem że wyświetla mi parametry komendy z sms na LCD, tylko jeden mankament na który nie mam pomysłu.
W poradniku poprzez pilot ładujemy strukturę, w uproszczeniu, tym czego zaraz będziemy się spodziewali, a ja nie wiem jaka komenda może przyjść w danym momencie, z jakimi parametrami i jaką funkcję ma wywołać.
Czy da się ten mechanizm jakoś przystosować jakby na każdą z możliwości?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2015, o 07:10 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Miccrel napisał(a):
a ja nie wiem jaka komenda może przyjść w danym momencie, z jakimi parametrami i jaką funkcję ma wywołać.
Panie to się nazywa programowanie zdarzeń asynchronicznych ... hmmm najlepiej to byłoby jednak jakbyś wziął w łapki Greenbooka i poczytał rozdział o parsowaniu danych z RS232 właśnie w oparciu o zdarzenia, bo tam jest to dokładnie opisane i to z przykładami.
http://atnel.pl/jezyk-c-pasja-programowania.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 paź 2015, o 17:50 
Offline
Nowy

Dołączył(a): 18 mar 2014
Posty: 16
Pomógł: 0

Dość ciekawa sprawa, GB ćwiczenie z komendami AT:
1. Z terminala wszystko pięknie śmiga ustawione że na "AT" ma wyświetlić na LCD at oraz wysłać zwrot na uart
2. Z modemu gsm sms'em wysyłane "AT" w pierwszej kolejności daje ERROR (pewnie dlatego że pierwsza linia to błędna ramka), później wykonuje LCD, zwrot na urat i uwaga umiera...
Gdzie szukać przyczyny?


--dodano--

Jako ciekawostkę dodam, że mam zrobioną inicjalizację GSM na początku programu, gdy event od uart jest włączony to dochodzi do sytuacji gdzie inicjalizacja przebiegnie poprawnie po czym dochodzi do restartu i tak w kółko.
Proszę help me



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2015, o 23:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Powiem tak - jasnowidzem nikt nie jest. Zamieść kod to podpowiemy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2015, o 12:08 
Offline
Nowy

Dołączył(a): 18 mar 2014
Posty: 16
Pomógł: 0

Kod to biblioteka z GreenBook'a nic nie przerabiana, w pętli mam tylko dwa eventy od IR oraz UART.
Czyżby mechanizm parsowania z GB zawodził przy współpracy z modułem sim 900? Poniżej przedstawiam ów inicjalizacje oraz widok z terminala jako podgląd tego co się wyprawia.
Czyżby mechanizm nie był odporny na informacje zwrotne z modułu? Próbowałem zmniejszać, zwiększać prędkości i nic nie pomaga ciągle się resetuje po dokonaniu inicjalizacji, bez niej po otrzymaniu sms o treści "AT" także się restartuje.
Fakt gdy gsm odłączony, a z terminala wysyłam "AT" to działa jak należy.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2015, o 12:19 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Miccrel napisał(a):
Czyżby mechanizm nie był odporny na informacje zwrotne z modułu?


Oooo panie to żeś pan teraz wystrzelił ;)

A kto ci napisał i gdzie (podaj źródło), że w GB jest program na komunikację GSM ? Chyba że mówisz o jakiejś innej książce ;) Jak ja "uwielbiam" takie uproszczenia ... i oczekiwanie na gotowce ...

Książka ma pokazać jak podchodzić do tego zagadnienia, pokazać co to znaczy komunikacja za pomocą komend AT. Nie ma to NIC wspólnego z asynchroniczną komunikacją z modemami GSM ;) .... Ale oczywiście po przeczytaniu, zapoznaniu się z tematem od podstaw można sobie spokojnie zacząć pisać ... trzeba tylko zrozumieć co to znaczy: "Asnychroniczna komunikacja szeregowa z modemem", trzeba pomyśleć o Timeoutach a więc także o timerach programowych - no sporo rzeczy trzeba wziąć pod uwagę .... a o wszystkim po trochu i w różnych rozdziałach masz napisane w GB

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO