neoway m590
- Войдите на сайт для отправки комментариев
Чт, 22/12/2016 - 22:17
Здравствуйте купил модуль gsm neoway m590 запустить запустил а как подключить не могу понять программу в интернете нашел залил проверяю не какх эффектов что делать? заранее спасибо
http://arduino.ru/forum/apparatnye-voprosy/ne-rabotaet-neoway-m590 читали ?
да читал модуль запускается но на каманды не отвечает звоню гудки идут
Здравствуйте купил модуль gsm neoway m590 запустить запустил а как подключить не могу понять программу в интернете нашел залил проверяю не какх эффектов что делать? заранее спасибо
купили - поздравляем.
как подключить? - читайте ветку, заливайте пока не потечет через верх, пока мало залили.
ЗЫ: кстати ответы вполне в вашем стиле вопросов - никакой конкретики, сплошны рекомендации.
Я брал программу с инета заливал в ардуино и в мониторе порта писал команды и нет ответа
Да читал взял не много информации получилось запустить дозвон пошел а ардуино не видит
вот нашел программу для neoway m590 залил к себе для обработки и что то не догоняю где здесь ошибка
Попробуйте вот это
01
#include <avr/pgmspace.h>{
08
Serial
.begin(9600);
//Скорость порта для связи Arduino с компьютером
09
Serial
.println(F(
"Goodnight moon!"
));
10
mySerial.begin(9600);
//Скорость порта для связи Arduino с GSM модулем
11
mySerial.println(F(
"AT")
);
12
delay(100);
13
mySerial.println(F(
"AT+CMGF=1"
));
//включаем текстовый режим
14
delay(100);
15
mySerial.println(F(
"AT+CLIP=1")
);
//включаем АОН
16
delay(100);
17
mySerial.println(F(
"AT+CSCS=\"GSM\"")
);
//режим кодировки текста
18
delay(100);
19
mySerial.println(F(
"AT+CNMI=2,2"
));
//отображение СМС в терминале
20
delay(100);
21
}
А еще можно захерачить все тестовые АТ команды не в обычную память которой катастрофически не хватает, а во флешпамять..
я так уменьшил занятось памяти с 70% до 20% !!!
Попробуйте вот это
Кстати, не затруднит чуть более прокоментировать что и где в лупе делается?
Спасибо.
5
Если совсем коротко, то мы берем команду и парсим её
получается что то типа <command>;<command>;<command>; и т.д.
т.е. избавляемся от лишних переносов и все записываем в одну строку
;RING;+CLIP: "7961*******",145,,,"",0;
String data - не забываем добавлять
bool
f_enter =
false
;
//первый перенос или нет
26
byte
r_byte = 0;
//текущий обрабатываемый бит
27
28
if
(mySerial.available()) //Ждем данных
29
{
30
while
(mySerial.available() > 0) //если данные пришли...
31
{
32
r_byte = mySerial.read(); //читаем байт
33
34
switch
(r_byte)
35
{
36
case
13:
if
(!f_enter) //если это перенос (enter) то в место него записываем;
37
{
38
data +=
';'
;
39
f_enter =
true
;
40
}
break
;
41
case
10: {}
break
; //если это другой перенос (он в основном в связке с enter идет) то тупо пропускаем
42
default
: {
43
data += (
char
)r_byte; //если это не символы переноса то пишем в data
44
f_enter =
false
;
45
}
46
}
47
}
48
49
if
(mySerial.available() == 0) delay(50); //ждем вдруг ещё данные прийдут (если большая смс например)
50
}
51
все данные теперь у нас в data в виде <command>;<command>;<command>;
byte
r_byte = 0;
//текущий обрабатываемый бит
тут ошибка в описании точнее байт
про уменьшение памяти
Идея хорошая, но у меня настройки в памяти храняться,
для оптимизации кода можно написать процедурку
и вместо полностью хранимых команд в памяти можно записать что то типа
AT+ - это старт
остальные команды CNMI=2,2 и т.д. т.е. без AT+
будет выглядеть примерно так
дел.....