для начала смотри какие команды поддерживает телефон для прочтения смс для удаления смс и посмтори в гугле есть справочник at команд
для начала смотри какие команды поддерживает телефон для прочтения смс для удаления смс и посмтори в гугле есть справочник at команд
справочник ATкоманд взял от сюда http://www.microchip.ru/phorum/read....=37681&t=37681 с 4поста, он на русском
Ну да, надо смотреть что телефон поддерживает, а что нет.
а все таки в скетчах с Serial1 на какие пины мне сажать tx rx ???
в скетчах с NewSoftSerial мы указываем.... а с Serial1 ???
тебе придется ставить эксперементы с програмным сериал подключать библиотеку. это только на меге есть несколько сериал портов. для начала подключись к терминалу залей скетч в самом начале где то и смотри команды может и смысла нет с этим телефоном работать не все сименсы одинаково хороши я на с 45 и с 55 работаю сейчас
Последний раз редактировалось andrei2882; 26.03.2012 в 23:12.
Ну с терминалом putty я уже вчера наигрался(потом продолжу)
Сегодня звонил с МК.... и принимал МК команду @а1 результат светодиод моргал.
А сейчас меня интересует та добрая половина скетчей, что в этой ветке в которых нету библиотеки NewSoftSerial. Я не пойму куда мне подключать tx и rx телефона...и вообще подходят ли мне эти скетчи?
Вообще меня тоже здорово интересует возможность управления МК по средством именно СМС ... жаль только что пока не в зуб ногой тут.
У тебя какой контроллер?
Какая скорость обмена у телефона?
Это не что-то... Это ничего. Светодиод моргает, когда ты скетч загружаешь, либо когда ардуина принимает данные с порта. СМС не стираются, потому, что не выполнено условие -
Когда оно выполняется, СМС нормально удаляются. И вообще, где ты взял этот скетч? Это что-то непонятное...PHP код:
if(gsm.available() >0 && gsm.read()=='1'){gsm.println(" AT+CMGL=0 ");
digitalWrite(ledpin, HIGH);delay(1000);digitalWrite(ledpin, LOW);delay(1000);
for(int i=0;i<98;i++)
Ничего и не будет. Этот скетч написан для модуля поддерживающий текстовый формат СМС, а твой Сименс поддерживает только PDU. Можно его приспособить для Сименса, но сначала нужно разобраться, как вытащить нужные байты. Как раз над этим я сейчас и мучаюсь (из-за нехватки времени, не так "фанатично", как хотелось бы)
Смотри документацию к freeduino2009. На МЕГЕ, Serial1 это 18 и 19. И старайся, пока не разберещься не использовать NewSoftSerial, т.к. замечено, что на некоторых версиях Ардуино, она не совсем корректно работает. Во всяком случае на МЕГЕ.
Для лучшего понимания, почитай тему с самого начала. Я ее создал в первый день, как только увидел Ардуину. До этого, никогда с этим не сталкивался.
И еще, если хочещь зажечь светодиод, отправь на телефон СМС и в Serial Monitor'e, посмотри, что придет. Потом попробуй этот скетч, только в условии, вместо N пропиши первые 8 байт (по-байтно), которые видишь в Serial Monitor'e:
PHP код:
#include <NewSoftSerial.h>
char inchar[40];
NewSoftSerial gsm(2,3);
int ledpin = 13;
long previousMillis = 0;
long interval = 30000;
void setup()
{
pinMode(ledpin, OUTPUT);
gsm.begin(19200); // эксперементируй со скоростью
Serial.begin(19200);
gsm.flush();
delay(5000);
gsm.println("AT+CPMS =SM" ); // тут тоже эксперементы, или SM или МТ
delay(1000);
gsm.println("AT+CNMI=1,1\r");
delay(1000);
}
void loop()
{
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval)
{
previousMillis = currentMillis;
gsm.println("AT+CMGL=4\r");
delay(100);
}
if(gsm.read()=='N'&&gsm.read()=='N'&&gsm.read()=='N'&&gsm.read()=='N'&&gsm.read()=='N'&&gsm.read()== 'N'&&gsm.read()=='N'&&gsm.read()=='N')
{
digitalWrite(ledpin,HIGH);
delay(1000);
}
}
}
Последний раз редактировалось metaforos; 27.03.2012 в 05:01.
Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.
metaforos
Я теперь хоть и не уверен, НО у меня светодиод в том скетче включался выключался после прихода смс! с сообщением @a1, к томуже я менял время delay и светодиод отрабатывал это время как положенно. А вот смс с сообщением @а0 уже ничего не делал.
Скетч лежит 3-4странички назад.
Вообще то в скетче еще не разбирался если вообще разбирусь...нету опыта програмирования ...работаю по примерам смотрю результаты и т.д....как-то так
разбирайся, я тоже не много знаю про ардуино но оно заработало через 2 недели мучений и к этой части кода не стоит цепляться
if(gsm.available() >0 && gsm.read()=='1')
{
gsm.println(" AT+CMGL=0 ");
digitalWrite(ledpin, HIGH);
delay(1000);
digitalWrite(ledpin, LOW);
delay(1000);
for(int i=0;i<98;i++)
тут оно замигает в любом случае если в порту что то появилось
Последний раз редактировалось andrei2882; 27.03.2012 в 20:04.
andrei2882
Жаль что это так я в расстройство счас впаду.
А так у меня в терминале кроме нормальных ответов вылетает и эта длинная строка видимо принятое смс( а может и нет) но она в виде закорючек...еслиб в нормальном виде была то можно было бы хоть как-то разобрать ее...а так
Завтра день детальных тестов у меня... отсчитаюсь о понятом и нет!
в этой длинной строчке нет ничего сложного тебе ее суть не особо важна но если интересно читай про PDU формат из этой строчки нужное нам в конце находиться, отпровляй к примеру @a1 (англ. язык) записал строку в конце должно быть что то вроде '380700C' потом отпрвляй @a0 смотри что пришло должно быть что то типа 380300C, закономерность быстро найдется суть самой раскодировки НЕНУЖНА ищи закономерность в символах и с ними работай
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)