Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięBascom i wysyłanie SMS`ów.
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Czy komuś może udało się wysłać sms`a z wykorzystaniem mikrokontrolera AVR oprogramowanym przy pomocy BASCOMA z zaprzęgnięciem telefonu komórkowego lub modułu wavecom`a?
Jeżeli tak to proszę o szczegóły.
Pozdrawiam
Jeżeli tak to proszę o szczegóły.
Pozdrawiam
Poczytaj o komendach AT.
Są uniwersalne (jedynie nokia ma swój standard komunikacji)
Część tych komend znajdziesz chyba na http://sagemdoctor.de.vu/
Są uniwersalne (jedynie nokia ma swój standard komunikacji)
Część tych komend znajdziesz chyba na http://sagemdoctor.de.vu/
re
Znajomość komend AT pomoże Ci wysłać sms z pamięci telefonu ( w przypadku Siemensa)
jeżeli chcesz wysłać dowolny, zmieniający się tekst za pomocą procesora to musisz "spakować dane do 7 bitów" tzw PDU.
innego rodzaju danych telefon nie przyjmie.( chyba, że ma możliwość przełączenia w tryb tekstowy)
Pozdrawiam
jeżeli chcesz wysłać dowolny, zmieniający się tekst za pomocą procesora to musisz "spakować dane do 7 bitów" tzw PDU.
innego rodzaju danych telefon nie przyjmie.( chyba, że ma możliwość przełączenia w tryb tekstowy)
Pozdrawiam
Komendy AT
http://www.easy-soft.tsnet.pl/artykuly/m20t/m20t.pdf
Komendy AT do M20 SIEMENSa,
sprawdzone i dzialaja na 100%, no i ciekawy pomysl podlaczenia najpierw
terminala GSM do PC i pisanie mu polecen ręczie i czytanie odpowiedzi,
dowiesz sie jak Twoj sprzet reaguje na dene komendy
Komendy AT do M20 SIEMENSa,
sprawdzone i dzialaja na 100%, no i ciekawy pomysl podlaczenia najpierw
terminala GSM do PC i pisanie mu polecen ręczie i czytanie odpowiedzi,
dowiesz sie jak Twoj sprzet reaguje na dene komendy
Kodowanie PDU
Witam
Widząc rosnące zainteresowanie wysyłaniem SMSów
Kupiłem SIEMENSA C35 i obsługuje ładnie komendy AT.
Dzwoni, odbiera telefony, sprawdza zasięg itd...
Tylko nie można z niego wysłać bezpośrednio SMSa w trybie AT.
Wiec szukam opisu kodowania PDU.
pozdrawiam patyk
Widząc rosnące zainteresowanie wysyłaniem SMSów
Kupiłem SIEMENSA C35 i obsługuje ładnie komendy AT.
Dzwoni, odbiera telefony, sprawdza zasięg itd...
Tylko nie można z niego wysłać bezpośrednio SMSa w trybie AT.
Wiec szukam opisu kodowania PDU.
pozdrawiam patyk
to ci załatwi sprawę
$baud = 19200
Declare Sub Wyslij
Dim I As Byte
Dim J As Byte
Dim K1 As Byte
Dim K2 As Byte
Dim K As Byte
Dim Flaga As Byte
Dim Pomoc As String * 2
Dim Pomoc2 As String * 1
Dim Dlugosc1 As Byte
Dim Dlugosc2 As Byte
Dim Numer_tel As Byte
Dim Komunikat As String * 80
Dim Numer_gsm As String * 13
Do
Numer_gsm = "48501000000" ' tu wpisz numer komórki na którą wysyłasz
Komunikat = "JEZELI WIDZISZ TEGO SMS TO ZNACZY, ZE DZIALA"
Call Wyslij
Wait 10
Loop
Sub Wyslij
I = 1
Flaga = 0
Do
Pomoc = Mid(numer_gsm , I , 1 )
J = Asc(pomoc)
Incr I
Loop Until J = 0
Dlugosc1 = I - 2
I = 1
Do
Pomoc = Mid(komunikat , I , 1 )
J = Asc(pomoc)
Incr I
Loop Until J = 0
Dlugosc2 = I - 2
I = Dlugosc1 Mod 2
J = Dlugosc1 / 2
I = I + J
Numer_tel = 7 + I
I = Dlugosc2 Mod 8
J = Dlugosc2 / 8
J = J * 7
J = J + I
Numer_tel = Numer_tel + J
Print "AT+CMGS=" ; Numer_tel
Wait 1
Print "000100" ;
Print Hex(dlugosc1);
Print "91";
For I = 1 To Dlugosc1 Step 2
J = I + 1
If J >= Dlugosc1 Then
Print "F";
Else
Pomoc = Mid(numer_gsm , J , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
End If
Pomoc = Mid(numer_gsm , I , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
Next
Print "0000";
Print Hex(dlugosc2);
I = 1
J = 2
Flaga = 0
Do
Pomoc = Mid(komunikat , I , 1 )
K1 = Asc(pomoc)
Pomoc2 = Mid(komunikat , J , 1 )
K2 = Asc(pomoc2)
K = Flaga Mod 8
Shift K1 , Right , K
K = 7 - K
Shift K2 , Left , K
K1 = K1 + K2
Print Hex(k1);
Incr I
Incr J
Incr Flaga
If K = 1 Then
Incr J
Incr I
Incr Flaga
End If
Loop Until Flaga >= Dlugosc2
Print Chr(26);
End Sub
End
Pozdrawiam
ps:
nie zapomnij zmniejszyć napięcia na komunikacji do 3,6 V bo będzie ci się wieszał ten C35 ( poda komunikat na wyswietlaczu"Szukam sieć"
Declare Sub Wyslij
Dim I As Byte
Dim J As Byte
Dim K1 As Byte
Dim K2 As Byte
Dim K As Byte
Dim Flaga As Byte
Dim Pomoc As String * 2
Dim Pomoc2 As String * 1
Dim Dlugosc1 As Byte
Dim Dlugosc2 As Byte
Dim Numer_tel As Byte
Dim Komunikat As String * 80
Dim Numer_gsm As String * 13
Do
Numer_gsm = "48501000000" ' tu wpisz numer komórki na którą wysyłasz
Komunikat = "JEZELI WIDZISZ TEGO SMS TO ZNACZY, ZE DZIALA"
Call Wyslij
Wait 10
Loop
Sub Wyslij
I = 1
Flaga = 0
Do
Pomoc = Mid(numer_gsm , I , 1 )
J = Asc(pomoc)
Incr I
Loop Until J = 0
Dlugosc1 = I - 2
I = 1
Do
Pomoc = Mid(komunikat , I , 1 )
J = Asc(pomoc)
Incr I
Loop Until J = 0
Dlugosc2 = I - 2
I = Dlugosc1 Mod 2
J = Dlugosc1 / 2
I = I + J
Numer_tel = 7 + I
I = Dlugosc2 Mod 8
J = Dlugosc2 / 8
J = J * 7
J = J + I
Numer_tel = Numer_tel + J
Print "AT+CMGS=" ; Numer_tel
Wait 1
Print "000100" ;
Print Hex(dlugosc1);
Print "91";
For I = 1 To Dlugosc1 Step 2
J = I + 1
If J >= Dlugosc1 Then
Print "F";
Else
Pomoc = Mid(numer_gsm , J , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
End If
Pomoc = Mid(numer_gsm , I , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
Next
Print "0000";
Print Hex(dlugosc2);
I = 1
J = 2
Flaga = 0
Do
Pomoc = Mid(komunikat , I , 1 )
K1 = Asc(pomoc)
Pomoc2 = Mid(komunikat , J , 1 )
K2 = Asc(pomoc2)
K = Flaga Mod 8
Shift K1 , Right , K
K = 7 - K
Shift K2 , Left , K
K1 = K1 + K2
Print Hex(k1);
Incr I
Incr J
Incr Flaga
If K = 1 Then
Incr J
Incr I
Incr Flaga
End If
Loop Until Flaga >= Dlugosc2
Print Chr(26);
End Sub
End
Pozdrawiam
ps:
nie zapomnij zmniejszyć napięcia na komunikacji do 3,6 V bo będzie ci się wieszał ten C35 ( poda komunikat na wyswietlaczu"Szukam sieć"
Siemens C35
$regfile = "M32def.dat"
Dim I As Byte
Dim J As Byte
Dim Dl_sms As Byte
Dim Dl_text As Byte
Dim Pomoc As String * 1
Dim Pomoc2 As String * 1
Dim K As Byte
Dim K1 As Byte
Dim K2 As Byte
Dim Flaga As Byte
Dim Komunikat As String * 80
Dim Numer_gsm As String * 13
'Numer na ktory wysyłamy SMS MUSI BYC W FORMACIE 48XXXXXXXXX
Numer_gsm = "48505000000"
'Treść wiadomości SMS
Komunikat = "I mamy naszego SMSa"
'Obliczenie długości SMSa i długość jego treści
Dl_text = Len(komunikat)
I = Dl_text / 8
Dl_sms = I * 7
I = Dl_text Mod 8
Dl_sms = Dl_sms + I
Dl_sms = Dl_sms + 13
'Komenda AT do wysłania SMSa wraz z długością SMSa
Print "AT+CMGS=" ; Dl_sms
'czekamy na znak zachęty od strony telefonu ">"
Wait 1
'07 - Liczba oktetów numeru Centrum Usług z uwzględnieniem pola typu numeracji
'91 - Typ numeru centrum usług - dla numeracji międzynarodowej 91H
'8405210077F7 - Zakodowany numer Centrum Usług (Dla Idea 48501200777)
'11 - Wartość 11H przy wywołaniu funkcji SMS-SUBMIT oraz relacyjny formatokresu ważności SMS
'00 - Pierwszy komunikat z wiadomości dzielonej lub pojedyńczy komunikat
'0B - Liczba cyfr numeru odbiorcy
'91 - Typ numeru odbiorcy - dla numeracji międzynarodowej 91H
Print "07918405210077F711000B91";
'Kodowanie numeru odbiorcy, (ten kawałek kodu możemy wykożystać do zakodowania Numeru Centrum Usług
For I = 1 To 11 Step 2
J = I + 1
If J >= 11 Then
Print "F";
Else
Pomoc = Mid(numer_gsm , J , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
End If
Pomoc = Mid(numer_gsm , I , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
Next
'00 - Oznacza dostarczenie wiadomości jako normalnej wiadomości SMS
'00 - Oznacza kodowanie domyśle w formacie 7-bitowych znaków ASCII
'C4 - Okres ważności wiadomości SMS 30 dni (8F - 12 godzin)
Print "0000C4";
'Liczba okietów pola komunikatów (długość samej treści SMSa)
Print Hex(dl_text);
'Kodowanie samej treści SMSa
I = 1
J = 2
Flaga = 0
Do
Pomoc = Mid(komunikat , I , 1 )
K1 = Asc(pomoc)
Pomoc2 = Mid(komunikat , J , 1 )
K2 = Asc(pomoc2)
K = Flaga Mod 8
Shift K1 , Right , K
K = 7 - K
Shift K2 , Left , K
K1 = K1 + K2
Print Hex(k1);
Incr I
Incr J
Incr Flaga
If K = 1 Then
Incr J
Incr I
Incr Flaga
End If
Loop Until Flaga >= Dl_text
'Znak (Ctrl+Z) Znak końca treści wiadomości SMS
Print Chr(26)
End
Programik ten wysyła mi co prawda SMSa do odbiorcy, ale telefon zwraca mi "ERROR" i nie jestem w stanie rozpoznać czy SMS został wysłany czy też nie, pewnie robie gdzieś błąd, ale nie wiem gdzie.
Dim I As Byte
Dim J As Byte
Dim Dl_sms As Byte
Dim Dl_text As Byte
Dim Pomoc As String * 1
Dim Pomoc2 As String * 1
Dim K As Byte
Dim K1 As Byte
Dim K2 As Byte
Dim Flaga As Byte
Dim Komunikat As String * 80
Dim Numer_gsm As String * 13
'Numer na ktory wysyłamy SMS MUSI BYC W FORMACIE 48XXXXXXXXX
Numer_gsm = "48505000000"
'Treść wiadomości SMS
Komunikat = "I mamy naszego SMSa"
'Obliczenie długości SMSa i długość jego treści
Dl_text = Len(komunikat)
I = Dl_text / 8
Dl_sms = I * 7
I = Dl_text Mod 8
Dl_sms = Dl_sms + I
Dl_sms = Dl_sms + 13
'Komenda AT do wysłania SMSa wraz z długością SMSa
Print "AT+CMGS=" ; Dl_sms
'czekamy na znak zachęty od strony telefonu ">"
Wait 1
'07 - Liczba oktetów numeru Centrum Usług z uwzględnieniem pola typu numeracji
'91 - Typ numeru centrum usług - dla numeracji międzynarodowej 91H
'8405210077F7 - Zakodowany numer Centrum Usług (Dla Idea 48501200777)
'11 - Wartość 11H przy wywołaniu funkcji SMS-SUBMIT oraz relacyjny formatokresu ważności SMS
'00 - Pierwszy komunikat z wiadomości dzielonej lub pojedyńczy komunikat
'0B - Liczba cyfr numeru odbiorcy
'91 - Typ numeru odbiorcy - dla numeracji międzynarodowej 91H
Print "07918405210077F711000B91";
'Kodowanie numeru odbiorcy, (ten kawałek kodu możemy wykożystać do zakodowania Numeru Centrum Usług
For I = 1 To 11 Step 2
J = I + 1
If J >= 11 Then
Print "F";
Else
Pomoc = Mid(numer_gsm , J , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
End If
Pomoc = Mid(numer_gsm , I , 1 )
K1 = Asc(pomoc)
Print Chr(k1);
Next
'00 - Oznacza dostarczenie wiadomości jako normalnej wiadomości SMS
'00 - Oznacza kodowanie domyśle w formacie 7-bitowych znaków ASCII
'C4 - Okres ważności wiadomości SMS 30 dni (8F - 12 godzin)
Print "0000C4";
'Liczba okietów pola komunikatów (długość samej treści SMSa)
Print Hex(dl_text);
'Kodowanie samej treści SMSa
I = 1
J = 2
Flaga = 0
Do
Pomoc = Mid(komunikat , I , 1 )
K1 = Asc(pomoc)
Pomoc2 = Mid(komunikat , J , 1 )
K2 = Asc(pomoc2)
K = Flaga Mod 8
Shift K1 , Right , K
K = 7 - K
Shift K2 , Left , K
K1 = K1 + K2
Print Hex(k1);
Incr I
Incr J
Incr Flaga
If K = 1 Then
Incr J
Incr I
Incr Flaga
End If
Loop Until Flaga >= Dl_text
'Znak (Ctrl+Z) Znak końca treści wiadomości SMS
Print Chr(26)
End
Programik ten wysyła mi co prawda SMSa do odbiorcy, ale telefon zwraca mi "ERROR" i nie jestem w stanie rozpoznać czy SMS został wysłany czy też nie, pewnie robie gdzieś błąd, ale nie wiem gdzie.
witam
Ja nie podaję numeru centrum serwisu, ponieważ te dane są na karcie SIM.Umieszczenie numeru centrum serwisu w procku skazuje użytkownika na jednego operatora.okres ważności dla sms to najwięcej chyba 72 godziny u naszych operatorów.
Może się mylę, już ponad rok nie zajmowałem się GSM.
A pamięć jest ulotna.
Ważne jest ograniczenie napięcia na "TX" do poziomu 3.3 ...3.6V.
pozdrawiam
Może się mylę, już ponad rok nie zajmowałem się GSM.
A pamięć jest ulotna.
Ważne jest ograniczenie napięcia na "TX" do poziomu 3.3 ...3.6V.
pozdrawiam
No wlasnie, ja też poszukuję algorytmu odbierającego sms'y. Znalazłem coś takiego w C, ale w kod tego algorytmu są wplecione elementy obsługi pamięci zewnętrznej. Jestem zbyt słaby, żeby przelożyć to na Bascoma. Jeśli ktoś to potrafi, to byłbym wdzięczny za taki kod źródłowy.a ma ktoś może przykład na odebranie i zdekodowanie SMSów z komórki ?
[ Dodano: 14-01-2005, 21:31 ]
Tu własnie w/w dokument, rozpakować i otworzyć (format pdf). modules.zip
- Załączniki
-
- modules.zip
- ArtykuĹ na temat zastosowanie PDU
- (127.88KiB)Pobrany 917 razy
Znam ten artykuł. Zaprezentowana w nim obsługa obejmuje tylko wybrany sposób kodowania SMS. W pewnych zastosowaniach to może nie wystarczyć. Dość łatwo się o tym przekonać przyjmując SMSy pochodzące z różnych źródeł.No wlasnie, ja też poszukuję algorytmu odbierającego sms'y. Znalazłem coś takiego w C, ale w kod tego algorytmu są wplecione elementy obsługi pamięci zewnętrznej. Jestem zbyt słaby, żeby przelożyć to na Bascoma. Jeśli ktoś to potrafi, to byłbym wdzięczny za taki kod źródłowy.a ma ktoś może przykład na odebranie i zdekodowanie SMSów z komórki ?
[ Dodano: 14-01-2005, 21:31 ]
Tu własnie w/w dokument, rozpakować i otworzyć (format pdf). modules.zip
mam kit avt2777 i telefon s35, ale coś nie bardzo mi chce ten telefon wysyłać sms'y podłączyłem RX do 2 pin'a w DB9 TX do 3 mase do 5 i niestety nic sprawdziłem czy działa kit i działa bo jak podsłuchałem co wysyła to wysyła to co powinien na rs232 ale telefon nie wysyła sms'ow wsadziłem nawet te programy z tego tematu i też nic ktoś może domyśla się co może być nie tak?
Witam
Jeśli chodzi o BASCOMa i odbiór w SMSów w PDU to wszystko jest tu :
http://www.mcselec.com/index2.php?optio ... hlight=pdu
Odbieranie i dekodowanie z PDU do TXT. Sprawdzone i działające - u mnie z ME45 i ATmega32
Pozdrawiam
Jeśli chodzi o BASCOMa i odbiór w SMSów w PDU to wszystko jest tu :
http://www.mcselec.com/index2.php?optio ... hlight=pdu
Odbieranie i dekodowanie z PDU do TXT. Sprawdzone i działające - u mnie z ME45 i ATmega32
Pozdrawiam
-
- -
- Posty:6
- Rejestracja:29 mar 2007, o 12:53
- Lokalizacja:radom
- Kontaktowanie:
Witam czy może ktoś umieścić schemat połączenia telefonu Siemens c35 z mikrokontrolerem uwzględniając zmianę napięcia do 3,3 V ??
Ostatnio zmieniony 1 sty 1970, o 01:00 przez grabek_radek, łącznie zmieniany 1 raz.
-
- -
- Posty:6
- Rejestracja:29 mar 2007, o 12:53
- Lokalizacja:radom
- Kontaktowanie:
pierw dalem kod euromatic i nic poziej dlaem cos takiego
aby sprawdzic czy tel zadzwoni na odpowiedni numer
i nic sie dzilalo klapa telefon siemens s55
podlaczony tak
prosze o pomoc
atmega 8 dzial na zewnetrznym rezonatorze kwarcowy sprawdzane pierw przestawilem fuse bit i pozniej odczepilem rezonator i procek nie dzialal po podlaczeniu dzila
aby sprawdzic czy tel zadzwoni na odpowiedni numer
Kod: Zaznacz cały
$regfile = "m8def.dat"
$crystal = 8000000
$Baud = 19200
Config Serialin = Buffered , Size = 200
Dim Kod As Byte
Dim Bufor As Byte
Do
Print "ATE0" ; Chr(13)
Print "ATD777777777;" ; Chr(13) 'zamiast 777777777 to moj tel podalem na ktory ma dzwnonic
Wait 15
Print "ATH" ; Chr(13)
Wait 1
Gosub Oproznij_bufor
Loop
End
Oproznij_bufor: 'Opróżnia bufor z odpowiedzi telefonu
Do
Kod = Inkey()
Bufor = Ischarwaiting()
Loop Until Bufor = 0 [/quote]
podlaczony tak
prosze o pomoc
atmega 8 dzial na zewnetrznym rezonatorze kwarcowy sprawdzane pierw przestawilem fuse bit i pozniej odczepilem rezonator i procek nie dzialal po podlaczeniu dzila
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 47 gości