Помогите найти проблему. Не могу понять программный или хардовый косяк. Шилд вроде работает. Стоит на контроле температуры в загородном доме. Задача:
1. при отклонении t от заданных параметров автоматически отправлять смс со значениями этой температуры
2. При приёме команды ZAPROS отсылать смс со значениями температуры.
Первая задача выполняется. А вторая глючит. При получении команды запрос смс отправляется может раз из 10 попыток, а если глюкнуло, то и ни задача 1, ни 2 уже не выполняется. В момент выполнения задачи 1 светодиод питания шилда горит и не гаснет. Во момент выполнения 2 задачи светодиод на мгновение гаснет и смс не отправляется.
Питание шилда в норме (пробовал даже от аккумулятора шуруповерта). Код такой, косяк как мне кажется в функции readSMS ()
#include <OneWire.h>
#include <DallasTemperature.h> // библиотека для DS18B20
#define ONE_WIRE_BUS 2 // датчики DS18B20 на 2 пин
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature ds(&oneWire); // Везде где встречается ds - это работа с датчиками Dallas DS18B20
long previousMillis = 0; // храним время последнего замера для цикла izmereniya()
long interval = 1000; // время интервала измерения
DeviceAddress ZalC ={0x28, 0xFF, 0xB1, 0x43, 0x52, 0x15, 0x01, 0xDB}; // Сетевой адрес датчика DS18B20 в доме
int TempC;
int TempZalC = 20;
bool SMSAlarmTemp = false;
bool AlarmTemp = false;
//_______Для работы терминала по Sim900______________________________
String currStr = "";
boolean isStringMessage = false;
//_______Стартовый цикл________
void setup() {
ds.begin();
ds.setResolution(ZalC, 10);
pinMode(9, OUTPUT);
digitalWrite(9, HIGH); // Подаем High на пин 9
delay(1500); // на 3 секунды
digitalWrite(9, LOW); // и отпускаем в Low.
delay(5000);
Serial.begin(19200);
delay(2000);
NastroykaGSM ();
}
void loop(){
izmereniya();
alarms();
readSMS();
}
void izmereniya() // Замер температур с датчиков DS18B20 и влажности с датчика DHT11
{ // http://arduino.ru/tutorials/BlinkWithoutDelay на основе
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) { // Замеры в интервале
ds.requestTemperatures(); // Замеры температур с DS18B20
delay(750); // Необязательная задержка
TempZalC = ds.getTempC(ZalC); // Считываем температуру в зале
if(TempZalC == -127) // Перезапрос при ошибке датчика
{
ds.requestTemperatures(); delay(750); // +1 к счетчику ошибок DS18B20
TempZalC = ds.getTempC(ZalC); // Считываем температуру в зале
}
previousMillis = currentMillis;}
}
void alarms()
{
if (TempZalC != -127 && TempZalC > 29) {AlarmTemp=1; AlarmsSMS();}
else SMSAlarmTemp = false; AlarmTemp=0;
}
void NastroykaGSM ()
{
Serial.print("AT+CMGF=1\r"); //устанавливает текстовый режим смс-сообщения
delay(100);
Serial.print("AT+IFC=1, 1\r"); //устанавливает программный контроль потоком передачи данных
delay(100);
Serial.print("AT+CPBS=\"SM\"\r"); //открывает доступ к данным телефонной книги SIM-карты
delay(100);
Serial.print("AT+GSMBUSY=1, 1\r"); //запрет всех входящих звонков
delay(100);
Serial.print("AT+CNMI=1,2,2,1,0\r"); //включает оповещение о новых сообщениях
delay(300);
}
void startOneSMS() //__________________Цикл подготовки модуля к отправке СМС-сообщений по первому номеру
{
Serial.print("AT+CMGF=1\r");
delay(100);
Serial.println("AT + CMGS = \"+79000000000\""); // (+79000000000 сдесь должен быть ваш номер №1)
delay(100);
}
void EndSMS ()
{
delay(100);
Serial.println((char)26); // Команда отправки СМС
delay(5000);
}
void AlarmsSMS()
{
if (AlarmTemp==1 && SMSAlarmTemp == false)
{
startOneSMS();
Serial.println("Vnimanie Temperatura!!!");
Serial.print("Temp:"); Serial.print (TempZalC); Serial.print("*C.");
EndSMS (); SMSAlarmTemp = true;
}
}
void readSMS() //_____Цикл чтения входящих СМС-сообщений______________
{
if (!Serial.available()) return;
char currSymb = Serial.read();
if ('\r' == currSymb)
{
if (isStringMessage)
{
//если текущая строка - SMS-сообщение,
//отреагируем на него соответствующим образом
if (!currStr.compareTo("ZAPROS")) { SMSzapros();} // Передача параметров по СМС
isStringMessage = false;
}
else { if (currStr.startsWith("+CMT")) { isStringMessage = true;}} //если текущая строка начинается с "+CMT",то следующая строка является сообщением
currStr = "";
}
else if ('\n' != currSymb) { currStr += String(currSymb);}
}
void SMSzapros()
{
startOneSMS();
Serial.print("Temp:"); Serial.print (TempZalC); Serial.print("*C.");
EndSMS();
}
Лично меня смутило, что ты читаешь символы из СМС-сообщения в общем цикле (метода loop()), выходя из фукнции readSMS, а не дочитывая сообщение до конца, и при этом мне кажется, что состояние поля isStringMessage несоклько не детерменировано.
И еще, я натыкался раньше, что Serial.alvailable() показывает что в буфере есть данные, причем эти данные '\0' в больших количествах.
Я сейчас еще раз перечитаю твой код, но вот первые мысли были именно такими.
Вообще я в программировании не силен, и код позаимстововал у Slavyanina из соседней темы про умный дом, у него система уже больше года работает. Вопрос другой может я неправильно из его кода "выдернул" нужную мне часть.
Добрый день. Столкнулся с таким же шилдом. Проблема как в первых постах. Шилд включается. Загорается основной светодиод. Нажимаю кнопку - загорается два диода status и NetLight. Последний моргает 5 раз и тухнут оба. После этого не происходит ничего. Припаяли резистор. Соединили 9 пин. Теперь диоды загораются при подаче на 2,5 секунды питания от ардуинки. Сим-карта стоит новая, рабочая, проверена телефоном раз 20 уже. Запрос пин-кода отключен. Питаю шилд отдельным БП 5V 2A. Ардуинку от usb. Но никакие команды шилд не отрабатывает. При звонке на симку - гудка нет.
Подключал двумя разными способоми:
1.
2.
Использую следующий скетч для проверки:
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);
void setup()
{
SIM900.begin(19200);
while (!SIM900) {
// ждём, пока не откроется монитор последовательного порта
// для того, чтобы отследить все события в программе
}
SIM900power();
delay(20000); // give time to log on to network.
}
void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(2500);
digitalWrite(9, LOW);
delay(5000);
}
void sendSMS()
{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
SIM900.println("AT + CMGS = \"+37529XXXXXXX\""); // recipient's mobile number, in international format
delay(100);
SIM900.println("Hello, world. This is a text message from an Arduino Uno."); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
delay(100);
SIM900.println();
delay(5000); // give module time to send SMS
SIM900power(); // turn off module
}
void loop()
{
sendSMS();
do {} while (1);
}
Вопросы:
1. при включении шилда отдельно от ардуинки он должен выходить в сеть? т.е. при звонке на номер в шилде я должен слышать гудки? А при запуске с ардуинки? Или разницы нет никакой?
2. Правильная ли у меня схема подключения/скетч? Что я делаю не так?
Спор на алике еще не открывал. Решил попробовать разобраться в проблеме.
TX RX берите с красного разъема, туда куда вы припаяли, это не для вас, есть еще перемычки J11 J12 ими переключается пины, или 1 2 или 7 8 , модуль не болтливый, увидить можно только при включении или отключении в сериал мониторе
Получается нижняя фотка - правильное соединение? 8 пин ардуины в 8 пин шилда, 7 ардуины в 7 шилда. Или их накрест нужно (7в8, 8в7)? Джамперы j11 и j12 стоят в правом положении (ближе к чипу). Может выдите какой-то скетч что бы увидеть где затык или что он не может прожевать? Буду безумно благодарен.
если хотите использовать выводы 7 и 8, то переставьте перемычки ближе к антенне , еще может быть симка, старые (которые больше года) не работают с шилдом, ну и землю не забываем соединять между шилдом и ардуино
Припаяли резистор. Соединили 9 пин. Теперь диоды загораются при подаче на 2,5 секунды питания от ардуинки.
void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(2500);
digitalWrite(9, LOW);
delay(5000);
}
User can power on SIM900 by pulling down the PWRKEY pin for at least 1 second and release. Похоже сброс надо делать с точностью до наоборот, сначала LOW, потом HIGH.
Симку взял свежую. 2 месяца симке. Перемычки поставил ближе к антене. Но Тут написано что это "hardware serial". Мы же SoftwareSerial используем... Или я чего-то не понимаю?
В любом случае не отправило смс. Два дня мучаюсь. Если кому не сложно - сфоткайте ваше подключение и опубликуйте скетч. Может быть кто-то знает еще способы проверить шилд на работоспособность?
лучше проверять без ардуино, a через usb-uart например
Ну так я его еще месяца два проверять буду. Не вариант. Надо как-то выкрутиться на том что есть. Либо открывать с китайцем спор либо нет. По факту - дня 4 еще могу баловаться спокойно. Потом придется что-то делать.
void setup()
{
SIM900.begin(19200);
Serial.begin(19200);
Serial.print(" Start ");
pinMode( 9, OUTPUT ); // software equivalent of pressing the GSM shield "power" button
digitalWrite(9, HIGH);
delay(2000);
digitalWrite(9, LOW);
Serial.print(" Wait for network ");
delay(20000); // give time to log on to network.
}
Но для очистки совести я для начала померял кнопку. Она работает на замыкание. т.е. подачу напряжения на управляющий контакт. Далее пробовал сделать наоборот, как предлагаете вы. Происходит следующая реакция. Диоды загораются. Активность начинает моргать и тут же снова ярко загорается. Как буд-то чип уходит в непрерывный ребут.
Смотрим мою запись специально для этого форума. Стартуем на вашем варианте LOW=>HIGH. Модуль подвисает и я перезапускаю ардуинку. Затем я делаю изменение на HIGH=>LOW и стартую снова. Потом когда я тянусь рукой к кнопке запуска на самом шилде что бы сравнить реакцию платы на подачу питания, но не успеваю нажать кнопку. Жду пару секунд и нажимаю.
Сравниваем поведение платы и вариант HIGH=>LOW похож на штатную работу от кнопки.
Так же в начале я пишу о том что припаяли резистор 4,7 на R13.
Модуль запускается при отрицательном импульсе длинной не менее 1 сек. на ноге PWRKEY (вывод 12). Для подачи импульса рекомендуется использовать следующую схему:
Для открытия транзистора можно использовать кнопку или импульс с микроконтроллера. Если снова подать импульс на эту ногу, то модуль выключится.
k2name пишет:
т.е. при звонке на номер в шилде я должен слышать гудки? А при запуске с ардуинки? Или разницы нет никакой?
Ничего ты не должен слышать, твой скетч подает импульс на отключение модуля и уходит в бесконечный цикл do {} while(1);
Да бог с ним с этим пином. Реакция не меняется если я убираю совсем управление 9 пином и руками нажимаю кнопку. Сообщение все-равно не шлется. Мне кажется проблема в отправке команды или в самом шилде. На всех видео он после включения и нажатия на кнопку должен включать два светодиода Status и NetLight. Status должен оставаться светящимся. NetLight должен подмаргивать время от времени. У меня же во всех ситуациях оба светодиода гаснут спустя примерно 5 секунд. Из этого я делаю вывод что плата или не смогла прочитать симкарту или не смогла с ее помощью войти в сеть. Можно предположить что симка не читаемая. Я перепробовал новых симок штук 5 уже. У всех работников на конторе брал попробовать. Только на старой забытой симке с включенным пинкодом ситуация была иная. Но пина никто уже не помнит. На всех остальных симках с выключенным запросом оба светодиода гасли через 5 секунд.
Скетч откровенно плохой, выплевывает что-то и уходит в аут. Надо не только писать в модуль, но и получать из него данные, тогда будет понятно, что происходит.
Начни со скорости 9600
--------------------
По идее, если дуину зажать сбросом, а Rx Tx дуины соединить с Rx Tx модуля, то с модулем можно пообщаться из терминала, подать АТ команды, получить ответ.
Подскажите пожалуйста еще один момент. Шилд без симкарты либо не подключенный к GSM сети должен что-то отвечать на "AT"? Либо же он ответит OK только когда соединен с сетью?
Ура! Есть подвижки. Добился ответов модуля. Залил скетч из первого примера.
Потом отправил на него:
AT+IPR=19200
AT+GSV
Полученные результаты опроса:
SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B05SIM900M64_ST_ENHANCE
SIM900 R11.0
Далее нашел древнюю симку. С ней модуль нормально завелся. Симке лет 5 или даже больше. Через sscom32e отправил ручками команды (отправка смс). Успешно, смс-ка пришла. Позвонил на шилд - гудки идут. В sscom выдало трижды RING.
Подозреваю, что модуль нужно шить свежей либо наоборот стабильной прошивкой. Открыл отдельный топ по поиску актуальной/стабильной прошивки тут.
trak вам удалось решить проблему? У меня же беда. Подключил sim900 к ардуино уно. Поставил перемычку,на AT команды не реагирует. Звоню на номер ,гудок идет. Внешне не проявляется не как
Valera 19701 спасибо вам за совет но перемычка не дала результата. На AT команды не реагирует.Звонок на симку идет,но не ответа не сброса не происходит. Посоветуйте что можно еще попробывать?
nolimitcrew, проверьте, соответствуют ли джамперы на шилде используемуму сериал соединению. Если да, то все таки поиграйтесь джамперами и сериал соединениями - смените software на хард или наоборот (при этом естественно в скетче нужно сериал тоже менять ). Мне в свое время это помогло.
Дело не много сдвинулось. Поменял ардуино уно на другую, сигнал пошел. АТ команды пошли. Теперь другая напасть: пишу сообщение в мониторе но не могу закончить. Команда Ctrt+z не останавливает! После каждого раза продолжает появляется значек > . Кто знает как решить проблему?
Не пойму в чем дело, может библиотека для шилда нужна другая...
Нужна отправка смс при тревоге.
#include <SIM900.h>
#include <SoftwareSerial.h>
При заливке скетча ошибка
gprsSerial.print("AT+CMGF=1\r"); не подходит, нужно gprsSerial.print("AT+CMGF=1");
gprsSerial.println("AT+CMGS = \"+37529*****\""); не отрабатывает при проверке модуля через AT команды, ответ ERROR.
подходит такая команда gprsSerial.println("AT+CMGS = "+37529*****""); но при заливке скетча ошибка (error: expected ')' before string constant gprsSerial.println("AT+CMGS = "+37529*****"");
exit status 1
expected ')' before string constant)
еще где-то встречал, что из-за пинкода на симке не работает модуль, надо в телефон вставить и отключить пинкод
Нету пинкода, я на модуль даже звоню. И он лампочками мне подмыргивает в этот момент. Вот нет именно связи AT-командами
тогда для нормальной проверки только это поможет
http://ru.aliexpress.com/item/1PCS-USB-to-TTL-UART-module-CH340G-CH340-3-3V-5V-free-shipping/32357763285.html
Земля общая с модулем(если питание внешнее)?
Общая земля, ага. Пойду осцилоскоп паять.
Спаял осциллоскоп. На ногу SIM900 приходит сигнал, а вот с ноги RX ничего. Открою спор на алиэксперессе. :-(
он и не сыпет сообщениями, только в момент включения и выключения, так что можете и не увидеть
Ну так ему AT-AT-AT и все такое, и звонил ему. А он молчит, гад!
Так, проверить включение еще, спасибо. попробую!
И все таки надо нормальный осциллоскоп.
Конечно, хочется его завести. А не покупать сам чип а потом городить обвязку.
Помогите найти проблему. Не могу понять программный или хардовый косяк. Шилд вроде работает. Стоит на контроле температуры в загородном доме. Задача:
1. при отклонении t от заданных параметров автоматически отправлять смс со значениями этой температуры
2. При приёме команды ZAPROS отсылать смс со значениями температуры.
Первая задача выполняется. А вторая глючит. При получении команды запрос смс отправляется может раз из 10 попыток, а если глюкнуло, то и ни задача 1, ни 2 уже не выполняется. В момент выполнения задачи 1 светодиод питания шилда горит и не гаснет. Во момент выполнения 2 задачи светодиод на мгновение гаснет и смс не отправляется.
Питание шилда в норме (пробовал даже от аккумулятора шуруповерта). Код такой, косяк как мне кажется в функции readSMS ()
Лично меня смутило, что ты читаешь символы из СМС-сообщения в общем цикле (метода loop()), выходя из фукнции readSMS, а не дочитывая сообщение до конца, и при этом мне кажется, что состояние поля isStringMessage несоклько не детерменировано.
И еще, я натыкался раньше, что Serial.alvailable() показывает что в буфере есть данные, причем эти данные '\0' в больших количествах.
Я сейчас еще раз перечитаю твой код, но вот первые мысли были именно такими.
Вообще я в программировании не силен, и код позаимстововал у Slavyanina из соседней темы про умный дом, у него система уже больше года работает. Вопрос другой может я неправильно из его кода "выдернул" нужную мне часть.
Прости дурака:
Функция string.compareTo(string2)
a negative number: if string comes before string2
0: if string equals string2
a positive number: if string comes after string2
А восклицательный знак это "НЕ"
То есть у тебя: Если строка из СМС НЕ "ЗАПРОС", то послать сообщение с температурой?
Я дома проверю поведение этой функции, тут нет доски с собой.
UPD: я понял замысел автора. ТАм в строке не только ZAPROS, но и еще служебный шлак. Но лучше проверить все равно.
надо попробовать убрать восклицательный знак. но смущает то, что иногда прокатывает и смс отправляется. Хотя вот здесь тоже с восклицательным знаком (см. управление светодиодами) http://wiki.amperka.ru/%D0%B1%D0%B5%D1%81%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C:gprs-shield
Моя проблема решилась , если кому интересно http://arduino.ru/forum/apparatnye-voprosy/shild-sim-900-ne-vosprinimaet-komandy-sms#comment-171716
Добрый день. Столкнулся с таким же шилдом. Проблема как в первых постах. Шилд включается. Загорается основной светодиод. Нажимаю кнопку - загорается два диода status и NetLight. Последний моргает 5 раз и тухнут оба. После этого не происходит ничего. Припаяли резистор. Соединили 9 пин. Теперь диоды загораются при подаче на 2,5 секунды питания от ардуинки. Сим-карта стоит новая, рабочая, проверена телефоном раз 20 уже. Запрос пин-кода отключен. Питаю шилд отдельным БП 5V 2A. Ардуинку от usb. Но никакие команды шилд не отрабатывает. При звонке на симку - гудка нет.
Подключал двумя разными способоми:
1.
2.
Использую следующий скетч для проверки:
Вопросы:
1. при включении шилда отдельно от ардуинки он должен выходить в сеть? т.е. при звонке на номер в шилде я должен слышать гудки? А при запуске с ардуинки? Или разницы нет никакой?
2. Правильная ли у меня схема подключения/скетч? Что я делаю не так?
Спор на алике еще не открывал. Решил попробовать разобраться в проблеме.
TX RX берите с красного разъема, туда куда вы припаяли, это не для вас, есть еще перемычки J11 J12 ими переключается пины, или 1 2 или 7 8 , модуль не болтливый, увидить можно только при включении или отключении в сериал мониторе
Получается нижняя фотка - правильное соединение? 8 пин ардуины в 8 пин шилда, 7 ардуины в 7 шилда. Или их накрест нужно (7в8, 8в7)? Джамперы j11 и j12 стоят в правом положении (ближе к чипу). Может выдите какой-то скетч что бы увидеть где затык или что он не может прожевать? Буду безумно благодарен.
если хотите использовать выводы 7 и 8, то переставьте перемычки ближе к антенне , еще может быть симка, старые (которые больше года) не работают с шилдом, ну и землю не забываем соединять между шилдом и ардуино
User can power on SIM900 by pulling down the PWRKEY pin for at least 1 second and release. Похоже сброс надо делать с точностью до наоборот, сначала LOW, потом HIGH.
Я отталкивался от огромного количества сэмплов в сети и даже на этом форуме
http://arduino.ru/forum/apparatnye-voprosy/programmnoe-vklyuchenie-modulya-sim900
http://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules/
http://forum.arduino.cc/index.php?topic=308227.5
Valera19701
Симку взял свежую. 2 месяца симке. Перемычки поставил ближе к антене. Но Тут написано что это "hardware serial". Мы же SoftwareSerial используем... Или я чего-то не понимаю?
В любом случае не отправило смс. Два дня мучаюсь. Если кому не сложно - сфоткайте ваше подключение и опубликуйте скетч. Может быть кто-то знает еще способы проверить шилд на работоспособность?
для проверки все брал здесь
http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0
лучше проверять без ардуино, a через usb-uart например
http://ru.aliexpress.com/item/1PCS-USB-to-TTL-UART-module-CH340G-CH340-3-3V-5V-free-shipping/32357763285.html
лучше проверять без ардуино, a через usb-uart например
Ну так я его еще месяца два проверять буду. Не вариант. Надо как-то выкрутиться на том что есть. Либо открывать с китайцем спор либо нет. По факту - дня 4 еще могу баловаться спокойно. Потом придется что-то делать.
Да с чего вы взяли?
Смотрим сюда
Но для очистки совести я для начала померял кнопку. Она работает на замыкание. т.е. подачу напряжения на управляющий контакт. Далее пробовал сделать наоборот, как предлагаете вы. Происходит следующая реакция. Диоды загораются. Активность начинает моргать и тут же снова ярко загорается. Как буд-то чип уходит в непрерывный ребут.
Тоже самое описано Здесь.
Откуда уверенность, что гансы обсуждают рабочий код? В этой же теме, но на второй странице...
Может начать немецкий учить?
Разве что в шилде есть такой транзистор, тогда управление инверсное, но перемычку jp1 надо замкнуть.
Откуда уверенность, что гансы обсуждают рабочий код? В этой же теме, но на второй странице...
Может начать немецкий учить?
Смотрим на Ютуб, где у человека оно работает.
Смотрим мою запись специально для этого форума. Стартуем на вашем варианте LOW=>HIGH. Модуль подвисает и я перезапускаю ардуинку. Затем я делаю изменение на HIGH=>LOW и стартую снова. Потом когда я тянусь рукой к кнопке запуска на самом шилде что бы сравнить реакцию платы на подачу питания, но не успеваю нажать кнопку. Жду пару секунд и нажимаю.
Сравниваем поведение платы и вариант HIGH=>LOW похож на штатную работу от кнопки.
Так же в начале я пишу о том что припаяли резистор 4,7 на R13.
Использованный скетч.
ЗАПУСК МОДУЛЯ
Да бог с ним с этим пином. Реакция не меняется если я убираю совсем управление 9 пином и руками нажимаю кнопку. Сообщение все-равно не шлется. Мне кажется проблема в отправке команды или в самом шилде. На всех видео он после включения и нажатия на кнопку должен включать два светодиода Status и NetLight. Status должен оставаться светящимся. NetLight должен подмаргивать время от времени. У меня же во всех ситуациях оба светодиода гаснут спустя примерно 5 секунд. Из этого я делаю вывод что плата или не смогла прочитать симкарту или не смогла с ее помощью войти в сеть. Можно предположить что симка не читаемая. Я перепробовал новых симок штук 5 уже. У всех работников на конторе брал попробовать. Только на старой забытой симке с включенным пинкодом ситуация была иная. Но пина никто уже не помнит. На всех остальных симках с выключенным запросом оба светодиода гасли через 5 секунд.
Скетч откровенно плохой, выплевывает что-то и уходит в аут. Надо не только писать в модуль, но и получать из него данные, тогда будет понятно, что происходит.
Начни со скорости 9600
--------------------
По идее, если дуину зажать сбросом, а Rx Tx дуины соединить с Rx Tx модуля, то с модулем можно пообщаться из терминала, подать АТ команды, получить ответ.
http://www.electrodragon.com/w/SIM908_SIM900_Common_AT_Commands
Подскажите пожалуйста еще один момент. Шилд без симкарты либо не подключенный к GSM сети должен что-то отвечать на "AT"? Либо же он ответит OK только когда соединен с сетью?
Ура! Есть подвижки. Добился ответов модуля. Залил скетч из первого примера.
Потом отправил на него:
AT+IPR=19200
AT+GSV
Полученные результаты опроса:
SIMCOM_Ltd
SIMCOM_SIM900
Revision:1137B05SIM900M64_ST_ENHANCE
SIM900 R11.0
Далее нашел древнюю симку. С ней модуль нормально завелся. Симке лет 5 или даже больше. Через sscom32e отправил ручками команды (отправка смс). Успешно, смс-ка пришла. Позвонил на шилд - гудки идут. В sscom выдало трижды RING.
Подозреваю, что модуль нужно шить свежей либо наоборот стабильной прошивкой. Открыл отдельный топ по поиску актуальной/стабильной прошивки тут.
Валерий добрый день! Нужна ваша помощь по подключению sim900 к arduino uno
Куда этот резистор впаивать. Не понял. Объясните плиз
Куда этот резистор впаивать. Не понял. Объясните плиз
R13 рядом с конденсатором С6, можно перемычку поставить
trak вам удалось решить проблему? У меня же беда. Подключил sim900 к ардуино уно. Поставил перемычку,на AT команды не реагирует. Звоню на номер ,гудок идет. Внешне не проявляется не как
Valera 19701 спасибо вам за совет но перемычка не дала результата. На AT команды не реагирует.Звонок на симку идет,но не ответа не сброса не происходит. Посоветуйте что можно еще попробывать?
Valera 19701 Поставил перемычку Не помогло. На AT команды не реагирует. Что можно еще попробывать?
to k2name
такая же проблема, с тем же шилдом. Сегодня читаю а ссылка "Залил скетч из первого примера." не работает.
Шилд запускается, видимо находит сеть (диод D6 мигает редко), но связи с ним нету. На команды не отвечает.
nolimitcrew, проверьте, соответствуют ли джамперы на шилде используемуму сериал соединению. Если да, то все таки поиграйтесь джамперами и сериал соединениями - смените software на хард или наоборот (при этом естественно в скетче нужно сериал тоже менять ). Мне в свое время это помогло.
del
del
Торможу ребята, у меня и с ethernet шилдом косяк
попутал темы
А так, пины менял на 01 и 78 и ставил на Uno и по всякому
nolimitcrew а причем здесь в этой теме шилд W5100?
Дело не много сдвинулось. Поменял ардуино уно на другую, сигнал пошел. АТ команды пошли. Теперь другая напасть: пишу сообщение в мониторе но не могу закончить. Команда Ctrt+z не останавливает! После каждого раза продолжает появляется значек > . Кто знает как решить проблему?
Ctrt+z это команда = char(26)
в гугле забанили?
http://forum.sources.ru/index.php?showtopic=93678
Да я видел это. Но что бы я не вставлял в конце строки ,выскакивает >
Либо я что то не до понимаю или что то не так делаю. Если есть варианты подскажите плиз! Пример : > hi Ctri+Z и клавиша enter
каким терминалом пользуетесь?
вот здесь все есть
http://www.geeetech.com/wiki/index.php/Arduino_GPRS_Shield
ставите галку send hex и набираете в строке 1А и отправляете
Sscom32E родным ардуино портом
Не пойму в чем дело, может библиотека для шилда нужна другая...
Нужна отправка смс при тревоге.
#include <SIM900.h>
#include <SoftwareSerial.h>
При заливке скетча ошибка
gprsSerial.print("AT+CMGF=1\r"); не подходит, нужно gprsSerial.print("AT+CMGF=1");
gprsSerial.println("AT+CMGS = \"+37529*****\""); не отрабатывает при проверке модуля через AT команды, ответ ERROR.
подходит такая команда gprsSerial.println("AT+CMGS = "+37529*****""); но при заливке скетча ошибка (error: expected ')' before string constant gprsSerial.println("AT+CMGS = "+37529*****"");
exit status 1
expected ')' before string constant)
Проверял модуль через пример GSM_GPRSLibrary_AT, стартует на 2400, звонит и отправляет смс, но написание команд как на примерах в скетче http://wiki.amperka.ru/%D0%B1%D0%B5%D1%81%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C:gprs-shield не подходит
Коллеги, объясните по шилду: в сети регистрируется. Но на команды АТ не отвечает, хоть тресни.
Пробовал на Меге и на Уно - ноль эмоций. У кого получилось его оживить - поясните, замыкать выводы R13 нужно или нет?
На каких в итоге перемычках J11 или J12 удалось подружить этот шилд с Мегой?