потреб код відправити AT команди для PDU форматі SMS

A

amila133

Guest
Мені вдалося набрати телефон за допомогою ПОС.Мій телефон тільки підтримка формату PDU.Я вивчав про формат PDU і я відправив SMS використанням Hyperterminal в ПК через послідовний порт.

Але коли я звернувся до тієї ж методологією ПІК вона не працює.

Мені потрібен код, наприклад, робити it.If у вас є, будь ласка надішліть мені.Це мій код.

Код:Int = 0;

Int J = 0;
вакуум основних () (сопзЬ іпзхдпей сЬаг пункт [3] = "AT";

сопзЬ іпзхдпей сЬаг pdumode [10] = "AT CMGF = 0" / / вибрати режим PDU (а даний нам 1 дається в текстовому режимі)

сопзЬ іпзхдпей сЬаг набір [17] = "ATD0716530115, \ г \ п";

сопзЬ іпзхдпей сЬаг tpdu_length [11] = "AT CMGS = 16"; / / довжина повідомлення

сопзЬ іпзхдпей сЬаг message1 [47] = "069149170000F311000B914917560311F50000AA02C822" / / повідомлення

непідписаних короткий отримати;

/ / ToPDU ("Це просто відправити смс-повідомлення", відправити);Usart_Init (9600);

TRISB = 0;

PORTB = 0;в той час як (1) (для (я = 0; я <3; я ) (

Usart_Write (пункт [я]); / / типу на

Delay_ms (200);

)

Usart_Write (0x0D);

якщо (Usart_Data_Ready ()) (

PORTB = 1;

Delay_ms (4000);

PORTB = 0; / / встановити pdumode

для (я = 0; я <10; я ) (

/ / Якщо (команда1 [я] == '\ 0') перерви;

Usart_Write (pdumode [я]);

Delay_ms (200);

)

Usart_Write (0x0D);

якщо (Usart_Data_Ready ()) (

PORTB = 1;

Delay_ms (4000);

PORTB = 0;

для (я = 0; я <11; я ) (

/ / Якщо (команда1 [я] == '\ 0') перерви;

Usart_Write (tpdu_length [я]); / / довжина повідомлення

Delay_ms (200);

)Usart_Write (0x0D) / / введіть

якщо (Usart_Data_Ready ()) (

PORTB = 1;

Delay_ms (4000);

PORTB = 0;

для (я = 0; я <47; я ) (/ / відправити повідомлення

/ / Якщо (команда1 [я] == '\ 0') перерви;

Usart_Write (message1 [я]);

Delay_ms (200);

)

PORTB = 1;

Delay_ms (500);

PORTB = 0;Usart_Write (26); / / Ctrl Z

PORTB = 1;

Delay_ms (7000);

PORTB = 0;

якщо (Usart_Data_Ready ()) (
для (я = 0; я <17; я ) (/ / набрати дійсно починають

якщо (наберіть [я] == '\ 0') перерви;

Usart_Write (наберіть [я]);

Delay_ms (200);

)PORTB = 1;

Delay_ms (1000);

PORTB = 0;))

)

)

)

)

 
HII Аміла,

Що Phonecell ви використовуєте?

Мені здається, ви забули закрити команди AT з повернення каретки.

Приклад:

Для відправлення AT необхідно відправити => "AT" CHAR (0x0D) (це символ повернення каретки).Якщо з'єднання в порядку, то телефон буде надсилати вам "OK" характер.Я думаю, ви повинні перевірити це перший символ, щоб перевірити з'єднання з допомогою виборчих Methode або переривати Methode.

для відправки SMS PDU режим використання ==> "AT CMGF = 5" CHAR (0x0D) (відправка 5 символів).Якщо команда правильно, стільниковий телефон буде відповісти з характером ">" або символів (0x13).Так що ви повинні перевірити цей персонаж, перш ніж ви відправити PDU формат.Наприкінці формат PDU ви повинні додати CTRL-Z і РНК (26).

У мене проста програма для 8051 С (Я ніколи не використовував ПОС перед цим).якщо вам потрібно, Я пошлю до вас.

Сподіваюся, що це допоможе.

Заборонити (Bodat'z)

 
Велике спасибі за Вашу відповідь.
Я зробив те, що ви сказали.
коли я відправити повідомлення через HyperTerminal Це нормально, але коли він Сенді від ПІК показує CMS ПОМИЛКА: 304.

Я тільки що підключений телефон для ПІК
TX (ПОС) -> RX (телефон)
RX (ПОС)) -> TX (телефон)
GND (ПОС) -> GND (телефон)
зв'язку з цим всі інші команди, в тому числі в порядку набору command.It отримують помилку тільки для SMS.

Ви можете відправити Вашу програму і схему.Спасибі

 
Я думаю, ви повинні перетворити між TTL і RS232 логічних рівнів напруги.ПІК використовує 5V, в той час як телефон, ймовірно, використовує 3v3 2v7 і рівня напруги.Ви можете використовувати Зеннера діоди або чіп від Maxim (max232).
Якщо я помиляюсь, будь ласка, хто-то мене поправить

 
Привіт,

Я робив його за допомогою MAX232.Але це не працює.Без MAX232 Я можу робити все команди успішно, за винятком відправки SMS (в режимі PDU). (Помилка CMS 304).Я можу відправити SMS використанні HyperTerminal не в ПОС.

Спасибі.

 
Am також працює над аналогічним проектом, мені потрібен мікроконтроллер доручити телефон для відправки SMS після виявлення вторгнень, я nitially я був AT89C51 і навіть написав код, але я втратив його, тепер я тільки з PIC16F84, але не мають для цього коду , чи може один допомогти плиз?
заранее спасибо

 
Привіт Аміла,

Ви сказали, manaded дзвонити за допомогою АТ команд.Ти відправити AT команду мікро-контролера.Якщо так, будь ласка допоможіть мені, як ви, що Діді.Я також намагаюся / відсутності з тим же проектом.

Спасибі

 
Thing, щоб не забути:pC ----> для Max232 = Номери Перевернутий
ПІК ---> для Max232 = Перевернутий
ПІК ---> для Max232 для Max232 = Номери Перевернутий

тощо.

Не турбуйтеся про дроту, використання модуля Bluetooth для з'єднання з телефономБагато підтримкою протоколу, наприклад: Дан, карта, і т.д.сподіваюся, що це допоможе

 

Welcome to EDABoard.com

Sponsor

Back
Top