gsm sim900

levkrs
Offline
Зарегистрирован: 20.10.2015

Добрый день товарищи.

 

Какой день мучаюсь с сие издели. http://www.aliexpress.com/item/SIM900-GPRS-GSM-Shield-Development-Board-Quad-Band-For-Arduino-Compatible-High-Quality-Free-Shipping/32384656530.html

 

Сколько уже с ним не бился. Лампочки горят, а ответа на команду АТ не могу добиться. Я уже и пины менял, и что только не делал. Может кто помочь моему горю ?? До этого был http://ru.aliexpress.com/item/GSM-GPRS-Shield-For-Arduino/733792647.html?adminSeq=116310200&shopNumber=604119    и спокойной заработал, без всяких танцов с бубном. 

Radjah
Offline
Зарегистрирован: 06.08.2014

Подключаешь как? Через USB-TTL с без ардуины устройство отвечает?

levkrs
Offline
Зарегистрирован: 20.10.2015

Тестил бутербродом через USB. Как проврить без ардуины я хз. Пробовал также не бутербродом а просто проводами на пины 0,1 Tx Rx и 7,8Tx Rx

Лампочки на Sim900 горят. Но на ардуине диод TX не горит и не мегает.

Radjah
Offline
Зарегистрирован: 06.08.2014

Покупаешь вот такую штуку:

Подключаешь Rx-Tx, Tx-Rx, GND-GND.

Запитываешь GSM от отдельного источнка.

Выставляешь в программе-терминале скорость из даташита на шилд.

Шлешь свои команды

??????

ПРОФИТ

levkrs
Offline
Зарегистрирован: 20.10.2015

НУ это все прекарсно. Но может есть идеи в подключении обычным бутербродом ?

Radjah
Offline
Зарегистрирован: 06.08.2014

RST на землю замкни, тогда будет работать только переходник USB-TTL.

levkrs
Offline
Зарегистрирован: 20.10.2015

Не понял последнее. RST замкнуть на землю и бутербродом заработает ?

Radjah
Offline
Зарегистрирован: 06.08.2014

Контроллер не будет запускаться, и ардуиноплата будет работать как переходник TTL-USB.

levkrs
Offline
Зарегистрирован: 20.10.2015

Так мне же потом надо както с ардуиной запустить. Смысл мне от этого переходника та будет ?

Radjah
Offline
Зарегистрирован: 06.08.2014

Исправность шилда проверишь. Может он вообще ни на что не реагирует.

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

сегодня получил такой же шилд, через бутерброд все работает, перемычки только надо переключить

проверялку брал отсюда

http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0

levkrs
Offline
Зарегистрирован: 20.10.2015

Отпишись если не трудно как перемычки ставил, какой контроллер, и что в скетче прописывал. 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

levkrs пишет:

Отпишись если не трудно как перемычки ставил, какой контроллер, и что в скетче прописывал. 

'этот

http://ru.aliexpress.com/item/SIM900-GPRS-GSM-Shield-Development-Board-Quad-Band-For-Arduino-Compatible-High-Quality-Free-Shipping/32384656530.html?adminSeq=222081231&shopNumber=1503266

перемычки J11 J12 к ближе антене

код вот

/*Note: this code is a demo for how to using gprs shield to send sms message, dial a voice call and 
  send a http request to the website, upload data to pachube.com by TCP connection,
 
  The microcontrollers Digital Pin 7 and hence allow unhindered
  communication with GPRS Shield using SoftSerial Library. 
  IDE: Arduino 1.0 or later
  Replace the following items in the code:
  1.Phone number, don't forget add the country code
  2.Replace the Access Point Name
  3. Replace the Pachube API Key with your personal ones assigned
  to your account at cosm.com
  */
 
 
#include <SoftwareSerial.h>
#include <String.h>
 
SoftwareSerial mySerial(7, 8);
 
void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);    // the GPRS baud rate 
  delay(500);
}
 
void loop()
{
  //after start up the program, you can using terminal to connect the serial of gprs shield,
  //if you input 't' in the terminal, the program will execute SendTextMessage(), it will show how to send a sms message,
  //if input 'd' in the terminal, it will execute DialVoiceCall(), etc.
 
  if (Serial.available())
    switch(Serial.read())
   {
     case 't':
       SendTextMessage();
       break;
     case 'd':
       DialVoiceCall();
       break;
     case 'h':
       SubmitHttpRequest();
       break;
     case 's':
       Send2Pachube();
       break;
   } 
  if (mySerial.available())
    Serial.write(mySerial.read());
}
 
///SendTextMessage()
///this function is to send a sms message
void SendTextMessage()
{
  mySerial.print("AT+CMGF=1\r");    //Because we want to send the SMS in text mode
  delay(100);
  mySerial.println("AT + CMGS = \"+86138xxxxx615\"");//send sms message, be careful need to add a country code before the cellphone number
  delay(100);
  mySerial.println("A test message!");//the content of the message
  delay(100);
  mySerial.println((char)26);//the ASCII code of the ctrl+z is 26
  delay(100);
  mySerial.println();
}
 
///DialVoiceCall
///this function is to dial a voice call
void DialVoiceCall()
{
  mySerial.println("ATD + +86138xxxxx615;");//dial the number
  delay(100);
  mySerial.println();
}
 
///SubmitHttpRequest()
///this function is submit a http request
///attention:the time of delay is very important, it must be set enough 
void SubmitHttpRequest()
{
  mySerial.println("AT+CSQ");
  delay(100);
 
  ShowSerialData();// this code is to show the data from gprs shield, in order to easily see the process of how the gprs shield submit a http request, and the following is for this purpose too.
 
  mySerial.println("AT+CGATT?");
  delay(100);
 
  ShowSerialData();
 
  mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");//setting the SAPBR, the connection type is using gprs
  delay(1000);
 
  ShowSerialData();
 
  mySerial.println("AT+SAPBR=3,1,\"APN\",\"CMNET\"");//setting the APN, the second need you fill in your local apn server
  delay(4000);
 
  ShowSerialData();
 
  mySerial.println("AT+SAPBR=1,1");//setting the SAPBR, for detail you can refer to the AT command mamual
  delay(2000);
 
  ShowSerialData();
 
  mySerial.println("AT+HTTPINIT"); //init the HTTP request
 
  delay(2000); 
  ShowSerialData();
 
  mySerial.println("AT+HTTPPARA=\"URL\",\"www.google.com.hk\"");// setting the httppara, the second parameter is the website you want to access
  delay(1000);
 
  ShowSerialData();
 
  mySerial.println("AT+HTTPACTION=0");//submit the request 
  delay(10000);//the delay is very important, the delay time is base on the return from the website, if the return datas are very large, the time required longer.
  //while(!mySerial.available());
 
  ShowSerialData();
 
  mySerial.println("AT+HTTPREAD");// read the data from the website you access
  delay(300);
 
  ShowSerialData();
 
  mySerial.println("");
  delay(100);
}
 
///send2Pachube()///
///this function is to send the sensor data to the pachube, you can see the new value in the pachube after execute this function///
void Send2Pachube()
{
  mySerial.println("AT+CGATT?");
  delay(1000);
 
  ShowSerialData();
 
  mySerial.println("AT+CSTT=\"CMNET\"");//start task and setting the APN,
  delay(1000);
 
  ShowSerialData();
 
  mySerial.println("AT+CIICR");//bring up wireless connection
  delay(3000);
 
  ShowSerialData();
 
  mySerial.println("AT+CIFSR");//get local IP adress
  delay(2000);
 
  ShowSerialData();
 
  mySerial.println("AT+CIPSPRT=0");
  delay(3000);
 
  ShowSerialData();
 
  mySerial.println("AT+CIPSTART=\"tcp\",\"api.cosm.com\",\"8081\"");//start up the connection
  delay(2000);
 
  ShowSerialData();
 
  mySerial.println("AT+CIPSEND");//begin send data to remote server
  delay(4000);
  ShowSerialData();
  String humidity = "1031";//these 4 line code are imitate the real sensor data, because the demo did't add other sensor, so using 4 string variable to replace.
  String moisture = "1242";//you can replace these four variable to the real sensor data in your project
  String temperature = "30";//
  String barometer = "60.56";//
  mySerial.print("{\"method\": \"put\",\"resource\": \"/feeds/42742/\",\"params\"");//here is the feed you apply from pachube
  delay(500);
  ShowSerialData();
  mySerial.print(": {},\"headers\": {\"X-PachubeApiKey\":");//in here, you should replace your pachubeapikey
  delay(500);
  ShowSerialData();
  mySerial.print(" \"_cXwr5LE8qW4a296O-cDwOUvfddFer5pGmaRigPsiO0");//pachubeapikey
  delay(500);
  ShowSerialData();
  mySerial.print("jEB9OjK-W6vej56j9ItaSlIac-hgbQjxExuveD95yc8BttXc");//pachubeapikey
  delay(500);
  ShowSerialData();
  mySerial.print("Z7_seZqLVjeCOmNbEXUva45t6FL8AxOcuNSsQS\"},\"body\":");
  delay(500);
  ShowSerialData();
  mySerial.print(" {\"version\": \"1.0.0\",\"datastreams\": ");
  delay(500);
  ShowSerialData();
  mySerial.println("[{\"id\": \"01\",\"current_value\": \"" + barometer + "\"},");
  delay(500);
  ShowSerialData();
  mySerial.println("{\"id\": \"02\",\"current_value\": \"" + humidity + "\"},");
  delay(500);
  ShowSerialData();
  mySerial.println("{\"id\": \"03\",\"current_value\": \"" + moisture + "\"},");
  delay(500);
  ShowSerialData();
  mySerial.println("{\"id\": \"04\",\"current_value\": \"" + temperature + "\"}]},\"token\": \"lee\"}");
 
 
  delay(500);
  ShowSerialData();
 
  mySerial.println((char)26);//sending
  delay(5000);//waitting for reply, important! the time is base on the condition of internet 
  mySerial.println();
 
  ShowSerialData();
 
  mySerial.println("AT+CIPCLOSE");//close the connection
  delay(100);
  ShowSerialData();
}
 
void ShowSerialData()
{
  while(mySerial.available()!=0)
    Serial.write(mySerial.read());
}

 

Radjah
Offline
Зарегистрирован: 06.08.2014

Ты бы ключи из кода убрал что ли.

bax
Offline
Зарегистрирован: 29.10.2015

Добрый день. Хочу подключить шилд к компу через TTL адапетер. Посмотрите, правильно ли я подключил и установил перемычки. Питание внешнее. Система видит адаптер но ни одна команда не проходит (не возвращается ответ).

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

не правильно, выходы D0 D1 на красном разъеме RX TX, скорость 19200 ,бод перемычки верните по умолчанию

bax
Offline
Зарегистрирован: 29.10.2015

Перемычки переставил. Все равно ноль эмоций

bax
Offline
Зарегистрирован: 29.10.2015

bax пишет:

Перемычки переставил. Все равно ноль эмоций

При этом даже светодиоды на плате не горят при подключении

bax
Offline
Зарегистрирован: 29.10.2015

bax пишет:

bax пишет:

Перемычки переставил. Все равно ноль эмоций

При этом даже светодиоды на плате не горят при подключении

D0 - это же TX, а D1 - RX. Пожет GND не так?

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

модуль ничего не посылает во время работы, только при включении или выключении поэтому ничего и не моргает

bax
Offline
Зарегистрирован: 29.10.2015

Valera19701 пишет:

модуль ничего не посылает во время работы, только при включении или выключении поэтому ничего и не моргает

А подключено правильно? Может модуль уже "сдох"

bax
Offline
Зарегистрирован: 29.10.2015

Отправлял следующий набор команд

"AT\r\n"

"AT+CMGF=1\r\n"

"AT+CMGS=\"7XXXXXXXXXX\"\r\n"

"test\x1A\r\n"

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

приподключении питания должны гореть два светодиода на шилде, при удержании кнопки 3 сек должен запустится модем и моргать 3 светодиод

bax
Offline
Зарегистрирован: 29.10.2015

Valera19701 пишет:

приподключении питания должны гореть два светодиода на шилде, при удержании кнопки 3 сек должен запустится модем и моргать 3 светодиод

этого не знал. Запустилось, засветилось. СМс не приходит, команты ничего не возвращают.

bax
Offline
Зарегистрирован: 29.10.2015

Valera19701 пишет:

приподключении питания должны гореть два светодиода на шилде, при удержании кнопки 3 сек должен запустится модем и моргать 3 светодиод

Только для внешнего питания пришлось перещелкнуть переключатель питания от антенны. А провода правильно у меня подключены? Интересует особенно GND

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

bax пишет:

Valera19701 пишет:

приподключении питания должны гореть два светодиода на шилде, при удержании кнопки 3 сек должен запустится модем и моргать 3 светодиод

этого не знал. Запустилось, засветилось. СМс не приходит, команты ничего не возвращают.

да ничего не возвращают, только привключении видно

RDY

+CFUN: 1+CPIN: READYCall Ready RDY

 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

GND правильно, попробуйте tx rx местами поменять

bax
Offline
Зарегистрирован: 29.10.2015

Valera19701 пишет:

GND правильно, попробуйте tx rx местами поменять

Да я сразу попробовал

bax
Offline
Зарегистрирован: 29.10.2015

bax пишет:

Valera19701 пишет:

GND правильно, попробуйте tx rx местами поменять

Да я сразу попробовал

Попробую с другим TTL адаптером

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

а перемычки j11 j12 вернули на место, должны быть дальше от антены?

bax
Offline
Зарегистрирован: 29.10.2015

Valera19701 пишет:

а перемычки j11 j12 вернули на место, должны быть дальше от антены?

Да, возвращал.

Спасибо, с Вашей помощью все получилось. Заработало при замене на плате RX-TX (хотя подписи говорят об обратном) и GND переместил со второй на третью позицию в желтом штекере. Написал приложение на C#. Кстати, на команду "AT+CMGS=..." возвращается все-таки ответ с текстом СМС 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

bax пишет:

 Заработало при замене на плате RX-TX (хотя подписи говорят об обратном)

ну это же китай

bax
Offline
Зарегистрирован: 29.10.2015

Valera19701 пишет:

bax пишет:

 Заработало при замене на плате RX-TX (хотя подписи говорят об обратном)

ну это же китай

Надо почитать, но скорее всего из-за этого

https://learn.sparkfun.com/tutorials/serial-communication

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

это давно известно

vladimirk68
Offline
Зарегистрирован: 30.10.2015

Кто знает, как подключить клавиатуру и дисплей к SIM900 ?

sandr4
sandr4 аватар
Offline
Зарегистрирован: 11.02.2015

vladimirk68 пишет:

Кто знает, как подключить клавиатуру и дисплей к SIM900 ?

Тоже интересует данный вопрос.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Какую клавиатуру, какой дисплей и зачем?

vladimirk68
Offline
Зарегистрирован: 30.10.2015

Матричную клавиатуру и дисплей 1602 - чтобы набрать номер и позвонить.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

vladimirk68 пишет:

Кто знает, как подключить клавиатуру и дисплей к SIM900 ?

vladimirk68 пишет:

Матричную клавиатуру и дисплей 1602 - чтобы набрать номер и позвонить.

Никак. SIM900 не обладает ресурсами для управления матричной клавиатурой и дисплеем.

Если подключать к Ардуино - то никаких проблем. Каждый модуль подключаете, как описано в библиотечном примере и собираете все в кучу.

vladimirk68
Offline
Зарегистрирован: 30.10.2015

Вообще-то у SIM900 есть 10 выводов GPIO, "second funtion - keypad matrix column (row)" (матрица 5х5) и выводы 11-14 LCD display interface.

Вопрос - как их использовать? Скорее всего нужна спец. прошивка и среда для программирования. Чего в свободном доступе может и не быть.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

vladimirk68 пишет:

Вообще-то у SIM900 есть 10 выводов GPIO, "second funtion - keypad matrix column (row)" (матрица 5х5) и выводы 11-14 LCD display interface.

Вопрос - как их использовать? Скорее всего нужна спец. прошивка и среда для программирования. Чего в свободном доступе может и не быть.

тогда я пошел читать даташит

izyasCig
Offline
Зарегистрирован: 25.05.2017

anabolic steroids where to buy
- anabolic

anabolic supplements
- [url=https://anabolicsteroidsnpc.com/]buy anabolics
[/url]