Подключение GSM модуля SIM900A V4.0 mini

cilentlekx
Offline
Зарегистрирован: 14.12.2014

Здравствуйте! Подскажите пожалуйста можно ли подключить данный модуль к Ардуино? Никакой более или менее внятной информации по этому модулю найти не удалось! Буду всем признателен кто откликнется на данную тему ,или поделится информацией по настройке,подключению,конфигурированию данного модуля! За ранее спасибо!

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

Какой внешний вид модуля?
P.S. SIM900A увы, скорей всего останется кирпичом.

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

Мне удалось на нем только АТ команды заюзать, на большее он не реагирует. Перепрошивать SIM900A надо, а он по ходу 32

Araris
Offline
Зарегистрирован: 09.11.2012

Точно, SIM900A - это же версия для Азии, я на этих граблях уже побывал (http://arduino.ru/forum/proekty/gsmgprssmsphone-modul-na-sim900a-ne-mozhet-zaregistrirovatsya-v-seti).

Правда есть надежда, вот здесь : http://arduino.ru/forum/apparatnye-voprosy/gsm-sim900a-delaem-iz-dvukh-diapazonov-chetyre

cilentlekx
Offline
Зарегистрирован: 14.12.2014

http://ru.aliexpress.com/item/New-SIM900A-V4-0-Kit-Wireless-Extension-Mo...

Вот ссылка на внешний вид,и кое какие данные.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Я себе тоже хотел такой заказать, но потом прочитал что может незаработать. Написал китайцу на алике, он сказал что это новая версия и если написано S2-1040V-Z096X то в России заработает 100% ну и отзывы там есть из России, пишут что всё работает. Но пока себе не заказывал.

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

 AT+CGMR и вы узнаете какой у вас чип 32 или 64
С 64 еще можно повозиться, а с 32... вообщем я чуть отложил в сторону и чуть попозже попробую прошить и посмотреть

cilentlekx
Offline
Зарегистрирован: 14.12.2014

И все таки заказывать или нет? Если нет,то посоветуйте мне какой.и не слишком дорогой? За ранее спасибо!

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

Берите любой, но БЕЗ буквы А!
Кстати цены сейчас демократичные и можно за 20-21 взять SHIELD там уже все разведено и даже батарейка есть.
Я помучавшись с модулем, взял шилд.

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

Geeetech SIM900 GSM GPRS Shield development board Quad-band wireless for Arduino

SIM900 Quad-band GSM/GPRS Shield for Arduino

Вот эти два точно заработают =)

главное, без буквы А

cilentlekx
Offline
Зарегистрирован: 14.12.2014

http://ru.aliexpress.com/item/GPS-GSM-Module-Antenna-GPRS-900-1800-MHz-S...

А вот еще модуль GSM! Пишут,что для ардуино! Есть у кого какая нибудь информация? Или кто нибудь конфигурировал такой?

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

cilentlekx пишет:

http://ru.aliexpress.com/item/GPS-GSM-Module-Antenna-GPRS-900-1800-MHz-S...

А вот еще модуль GSM! Пишут,что для ардуино! Есть у кого какая нибудь информация? Или кто нибудь конфигурировал такой?

Про этот ничего не скажу, но я владею SIM900

http://www.ebay.com/itm/261679201038?_trksid=p2060778.m2749.l2649&ssPage...

и TC35

у меня такой - http://www.ebay.com/itm/GSM-SIEMENS-TC35-SMS-Wireless-Module-UART-232-/1...

есть подешевле - http://www.ebay.com/itm/1PC-GSM-SIEMENS-TC35-SMS-Board-LM2596-UART-Wirel...

Оба они прекрасно работают.

drcollapse
Offline
Зарегистрирован: 09.02.2015

Добрый день всем.

На всякий случай... Купил вот такой модуль: http://www.ebay.com/itm/201220054604

Плата маркирована как SIM900A mini, хотя на модуле написано SIM900 без "А"

Но суть в другом - железяка упорно не хотела заводится, лампочки горели, но она ни на что не отвечала, даже на АТ, хотя в порту изредко проскакивали какие-то непонятные отклики.

Ларчик открылся неожиданно - она не хотела нормально работать ни при 5в, ни при 3,3в, но прекрасно запустилать при 4вольтах.

Специально перетыкал питание на разное напряжение - стабильно работает только в диапазоне 3,8-4,2в... Переключал ее раз 20 - точно дело в в напряжении. Имейте это ввиду, если не получается нормально оживить устройство, может дело оказаться в этом.

Теперь вопрос к уважаемым (чтоб отдельных тем не плодить). Сильно не бейте - я пару недель как влез в программиование и железки, если не считать школьного бейскика на "агате" 25 лет назад :) 

Есть задача отправлять СМС со значением из переменной (проще говоря - показания с температурного датчика). Но библиотека sms.h описывает только отправку "фиксированного" текста, заключенного в кавычки. Любая попытка вписать вместо него переменную (по подобию печати в порт) приводит либо к ошибке компиляции, либо к отправке имени перменной, а не его значения. Других вариантов в описании библиотеки не нашел.

В какую сторону стоит копать? 

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

вот примерно так 

String stringMsg = "Temp = "+String(roomTemp)+"C,  hum = "+String(roomHum)+"%";

 

drcollapse
Offline
Зарегистрирован: 09.02.2015

Спасибо, попробую!

Sll
Sll аватар
Offline
Зарегистрирован: 08.01.2015

Ну как заработало?

 

Sll
Sll аватар
Offline
Зарегистрирован: 08.01.2015
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

#include "SIM900.h"
#include "SoftwareSerial.h"
#include "sms.h"
SMSGSM sms;
int numdata;
boolean started=false;
char smsbuffer[160];
char* mynumber = "+77777777777"; // свой номер
char n[20];

LiquidCrystal_I2C lcd(0x27,16,2); 
int potPin = 0;                // пин куда подключен датчик
float t = 0;                // переменная для температуры

byte position;

void setup() 
{
 Serial.begin(9600);
  Serial.println("GSM Shield testing.");
    if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
    if(started)
{
    //убрать "//" из следующих двух строчек для отправки SMS.
//    if (sms.SendSMS(mynumber, "Arduino SMS"))
//      Serial.println("\nSMS sent OK");
 }
};

void loop() 
{
   lcd.init();                 // инициализируем lcd 
lcd.clear();               //очистка экрана
  // считываем и вычисляем температуру
  float t = ( 5.0 * analogRead(potPin) * 100.0) / 1024.0;
  
lcd.backlight();  
 lcd.setCursor(0, 0);     // устанавливаем курсор в 0-ом
                                    // столбце, 1 строке (начинается с 0)
  lcd.print("Temperatura");
  lcd.setCursor(0, 1);
  lcd.print("         ");
  lcd.print(t);        // выводим текущую температуру на LSD
  lcd.print("'C");

  if(started){
    
    if (isnan(t)) {
    Serial.println("Failed to read from ????"); // это остаток от прежнего скетча
    }

    //со своего номера отправляем любое СМС и в ответ получаем данные

    char smsbuffer[160] = "";
    char n[20] = "";
    position = sms.IsSMSPresent(SMS_UNREAD);
    if(sms.GetSMS(position, n, smsbuffer, 100))
    {
      if(strlen(smsbuffer)>0) {
        String smsstring = "Temperature: " + String(t, 1) + " *C";
        sms.SendSMS(n, (char*)(smsstring.c_str()));
      }
      Serial.println(n);
      Serial.println(smsbuffer);
    }
    position = sms.IsSMSPresent(SMS_UNREAD);
    if (position) {
      sms.DeleteSMS(position);
    }
     delay(5000);   // задержка перед повторением измерений

  }
};

 

Sll
Sll аватар
Offline
Зарегистрирован: 08.01.2015

drcollapse     попробуй так. у меня работает.

Darth_Vader
Offline
Зарегистрирован: 12.10.2013

Совсем не факт, кстати.

Магия превращения разжёвана тут - http://kotyamba.livejournal.com/18261.html

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

     Уважаемые господа форумчане. Прошу помощи. Приобрел вот такой шилд:

    Только мой "SIM900A", но проблема не в этом. Я его перепрошил, и в программе "AL Terminal" шилд прекрасно работает. Определяет сеть, делает звонок, принимает звонок, програмируется... и т.д. А вот с мегой подружить не получается. Пробовал и с UNO и с Mega2560. Пробовал различные библиотеки, скетчи, перепробовал пины(0,1; 2,3; 7,8; 50,51; 18,19), ни чего не выходит. Подскажите, умные люди, что не так делаю. Например, такой скетч, пишут, что должен работать с Serial monitor, у меня не работает...

Скетч для проверки работоспособности - можешь посылать в него АТ команды с сериал монитора...

#include <SoftwareSerial.h>

SoftwareSerial mySerial(50, 51); // RX, TX

 
void setup() 

{

  // Open serial communications and wait for port to open:

  Serial.begin(9600);

//  while (!Serial) {

 //   ; // wait for serial port to connect. Needed for Leonardo only

 // }

  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port

  mySerial.begin(9600);

  mySerial.println("Hello, world?");

}

 

void loop() // run over and over

{

  if (mySerial.available())

    Serial.write(mySerial.read());

  if (Serial.available())

    mySerial.write(Serial.read());

}

 

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

4 дня бьюсь с этой проблемой. Ни кто не поможет? Похоже, проблема скорее аппаратная, чем софтовая...

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

Проблема решена, всем спасибо за помощь...

RomAndry
RomAndry аватар
Offline
Зарегистрирован: 20.02.2014

Хорошо бы изложить решение проблемы, для подобных проблем

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

   Я предположил и оказался прав, проблема аппаратная. Ноги TX RX на этом шилде необходимо подключать на разъем в центре, где подписано Jumper. А я мучался через RS232 порт.

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

sandr4 пишет:

   Я предположил и оказался прав, проблема аппаратная. Ноги TX RX на этом шилде необходимо подключать на разъем в центре, где подписано Jumper. А я мучался через RS232 порт.

или, как вариант, вы не правильно поняли назначение джамперов...

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

Джампера ставятся для работы с ком-портом, без них микруха max232 сильно греется, и , скорее всего, "пустит дым"( микросхемы работают на "волшебном дыме", раз дым вышел - микросхема не работает...). 

LeoSkv
Offline
Зарегистрирован: 14.06.2015

На ура удалось прошить firmware для sim900, но вот дальше не удается продвинуться с подключением к ардуино, не заводится никак :(

Правильно я понимаю, что пины с модуля 5VR и 5VT подключаем соответственно на Tx1 и Rx0 на ардуино?

Народ выше пишет, что модуль требователен к питанию и заводится при 4В!? Нужно ли отдельное питание или можно записать от 5В с ардуины?

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

Лучше брать отдельный БП. Подключаешь к TX RX ардуино и инициализируй эти пины в скетче.

cilentlekx
Offline
Зарегистрирован: 14.12.2014

Скажите , а этот скетч , что выложен под что написан? Можно описание? За ранее спасибо!

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

Тот скетч что у меня, для проверки работоспособности шилда через сериал-монитор. Шлёшь АТ команды, шилд, если работает - отвечает.

LeoSkv
Offline
Зарегистрирован: 14.06.2015

Спасибо за ответ. Проверял с отдельным БП на 3В, 4.5В и 5В (земля общая), шилд не отвечает. У вас на скольких вольтах работает?

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

Какой шилд? Как подключаешь?

LeoSkv
Offline
Зарегистрирован: 14.06.2015

Шилд SIM900A MINI V3.8.2 перепрошит на 1137B13SIM900M64_ST для чипа SIM900.

Подключение(см.фото):

+ с шилда желтые джамперы с середины платы 5VT и 5VR на ардуино соответственно на порты 0-Rx и 1-Tx

+ на шилд отдельный источник питания 5В, землю с шилда соединил с землей ардуино

Запускаю скетч на команду AT обратно возвращает кракодябры типа ÿÿ

Соединение и инициализация на 9600.Соединение SIM900A и Ардуино

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

sandr4 пишет:

     Уважаемые господа форумчане. Прошу помощи. Приобрел вот такой шилд:

    Только мой "SIM900A", но проблема не в этом. Я его перепрошил, и в программе "AL Terminal" шилд прекрасно работает. Определяет сеть, делает звонок, принимает звонок, програмируется... и т.д. А вот с мегой подружить не получается. Пробовал и с UNO и с Mega2560. Пробовал различные библиотеки, скетчи, перепробовал пины(0,1; 2,3; 7,8; 50,51; 18,19), ни чего не выходит. Подскажите, умные люди, что не так делаю. Например, такой скетч, пишут, что должен работать с Serial monitor, у меня не работает...

Скетч для проверки работоспособности - можешь посылать в него АТ команды с сериал монитора...

#include <SoftwareSerial.h>

SoftwareSerial mySerial(50, 51); // RX, TX

 
void setup() 

{

  // Open serial communications and wait for port to open:

  Serial.begin(9600);

//  while (!Serial) {

 //   ; // wait for serial port to connect. Needed for Leonardo only

 // }

  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port

  mySerial.begin(9600);

  mySerial.println("Hello, world?");

}

 

void loop() // run over and over

{

  if (mySerial.available())

    Serial.write(mySerial.read());

  if (Serial.available())

    mySerial.write(Serial.read());

}

 

 На моем шилде два выхода.На прямую в ком-порт(RS232) и выделенные красным - на ардуино(посерединке, слева и справа). А как у вас подключено не вижу.Поближе фото...

cilentlekx
Offline
Зарегистрирован: 14.12.2014

Перед тем как подключить GSM модуль к ардуино,какие манипуляции или настройки нужно с ним проделать? Подскажите пожалуйста!

И у кого нибудь есть работающий скетч для считывания температуры через GSM? За ранее спасибо!

LeoSkv
Offline
Зарегистрирован: 14.06.2015

Модуль такой же как и у тебя на фото.

gena
Offline
Зарегистрирован: 04.11.2012

  А есть полная распиновка шести выводного разъаёма? Или ссылка на схему.

LeoSkv
Offline
Зарегистрирован: 14.06.2015

схему 900A пока не нашел, распиновка очень мелко написана на плате

3VT,3VR

5VT,5VR

GND,Vcc

что-то типа этого, если я хорошо рассмотрел

gena
Offline
Зарегистрирован: 04.11.2012

  Возникают такие вопросы:

1. Какое питание производитель рекомендует для питания модуля (5 В или 3,3 В, или иное)?

2. Есть ли на плате стабилизатор для понижения напряжения?

   Если смотреть на предущий пост, то на плате есть выводы Rx, Tx для уровней 3 В - от этих выводов, вероятно, проводники идут прямо в микросхему SIM900. Есть два вывода Rx, Tx для уровней 5 В - видимо подключены к микросхеме MAX232. Просмотрите по плате, я правильно предполагаю распиновку шестивыводного разъёма?

3. Какое полное название микросхемы MAX232?

 

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

 LeoSkv У меня в скетче поменяй пины 50 51 на 0 и 1 для УНО, если не заработает - поменяй наоборот: 1 , 0.

(Питание от 4 до 5 вольт.)

LeoSkv
Offline
Зарегистрирован: 14.06.2015

1. Я не нашел официального даташита на эту плату, но судя по надписи на разъеме питания VC5, то скорее всего можно питать от 5В.

2/3. Да как вы написали, стоит микросхема MAX232 [ESE + 1508].

Вчера удалось установить соединение с ардуино, подключив пины 3VT и 3VR на 7 и 8 пины ардуино, запитав с внешнего источника 4.5В.

Если интересно, вот тут нашел еще немного информации по данному вопросу: https://www.insidegadgets.com/2015/04/03/using-the-simcomm-sim900a-grps-...

Сегодня вставлю симку и продолжу эксперименты по регистрации в сети.

gena и sandr4 СПАСИБО за помощь!!!

 

 

gena
Offline
Зарегистрирован: 04.11.2012

  Насколько помню, микросхема SIM900 имеет питание ДО 4,8 В, обычно в типовых платах запитывается от 5 Вольт через стабилизатор. Так, что на самой микросхеме питание 4,1 В. Проверьте, какое напряжение на микросхеме, когда Вы её запитываете от 5 В. Думаю что превышение допустимого напряжения если не убьёт микросхему, то может вызвать непредсказуемые результаты в работе.

cilentlekx
Offline
Зарегистрирован: 14.12.2014

Здравствуйте! Ну подскажите пожалуйста!Что делать дальше по пунктам. Модуль мне пришел-SIM900A.Прошил на российские сети все получилось,в сети регистрируется,на модуль звонишь,идут длинные гудки. Но что делать дальше,С ардуиной в сериал монимторе не контачит! Скетч залил для сериал монитора! Пробовал и на 5в пины и 3.3в пины модуля,на ардуино на 0,и1  ответа нет в гипер терминале тоже тишина. Подскажите пожалуйста по пунктам что делать? Может его нужно как то сконфигурировать чтобы он по АТ работал,или настройки порта ,передачи данных? За ранее всем спасибо кто откликнется!

gena
Offline
Зарегистрирован: 04.11.2012

http://www.avrki.ru/articles/content/gsm_1/  и  там есть ещё другие статьи на эту тему.

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

  Пост №19. Там скетч для работы с ком-портом. Ноги, что справа, подключаешь к ком-порту на прямую(распиновку ком-порта загуглишь).Подключаешь RX шилда к TX порта , TX шилда к RX порта. Заливаешь скетч и "балуйся" АТ-командами. Питание - 4-5 вольт. Удачи. 

cilentlekx
Offline
Зарегистрирован: 14.12.2014

Всем привет! Парни все получилось! Всем спасибо! Подключил на ардуино нано Tx RX на 7,и 8 ноги, а на модуле на 5вольтовые ноги, и все заработало!

Yarockiisergei
Offline
Зарегистрирован: 17.01.2015

Добрый день не поможите теперь мне? У меня http://www.aliexpress.com/snapshot/6693257241.html?orderId=67474130484997

Немогу понять как послать простую at куоманду. Подключаю к promicro

void setup()  
{
   Serial.begin(9600);
   Serial1.begin(9600);
}

void loop()
{ 
  Serial1.println("at");
  delay(500);
    if(Serial1.available())
       Serial.write(Serial1.read());
}

Подключил rx модема к rx контроллера и соответственно tx

9600 это правельная скорость?

Когда в модуль вставляеш sim начинаер моргать светодиод.

Darth_Vader
Offline
Зарегистрирован: 12.10.2013

Попробуйте послать команду "at\n" :-)

Yarockiisergei
Offline
Зарегистрирован: 17.01.2015

нет результата

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

at\r\n

Yarockiisergei
Offline
Зарегистрирован: 17.01.2015

не работает, вопрос в подключении и скорости обмена