Выбор сотового телефона в качестве модема

wasd
Offline
Зарегистрирован: 27.05.2013

Добрый день, сильно не ругайте, я только второй день как знаю такое слово как "Ардуино"

Делаю модуль, с доступом к нему через GSM. В моём городе гсмшилда в наличии ни у кого нету, хочу использовать сотовый телефон.

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

Ардуинка мега 2560

 

Заранее спасибо.

axill
Offline
Зарегистрирован: 05.09.2011

ищите по теме siemense или nokia + RS232, до появления ардуинок была модная тема использования телефонов именно этих марок в качесиве обычных модемов. вот пример http://cxem.net/sotov/sotov107.php

из примера можно наверно удалить max232 так как это адаптация к RS232 уровням и подключить к выводам RX и TX ардуинки

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

wasd
Offline
Зарегистрирован: 27.05.2013

Спасибо, как раз нашёл simens C60, буду пробовать, через пару деньков отпишусь о результатах

Апрайсин
Апрайсин аватар
Offline
Зарегистрирован: 05.08.2013

А можно ведь использовать любой телефон? Если знаешь где Rx и Tx ? И обязательно нужен резистор?

paf
Offline
Зарегистрирован: 25.01.2013

Обязательно. И отпишитесь через пару деньков?

Апрайсин
Апрайсин аватар
Offline
Зарегистрирован: 05.08.2013

использую такой код:

#include <SoftwareSerial.h>

int ledpin = 13;

SoftwareSerial gprsSerial(10, 11);

String currStr = "";

char currSymb;
String num1 = "+380999674794";
String num2 = "";
String num3 = "";

String number="";


void setup()
{
    gprsSerial.begin(9600);
    pinMode(ledpin, OUTPUT);
    // Настраиваем приём сообщений с других устройств
    // Между командами даём время на их обработку
    gprsSerial.print("AT+CMGF=1\r");
    delay(300);
    gprsSerial.print("AT+IFC=1, 1\r");
    delay(300);
    gprsSerial.print("AT+CPBS=\"SM\"\r");
    delay(300);
    gprsSerial.print("AT+CNMI=1,2,2,1,0\r");
    delay(500);
    gprsSerial.print("AT+CMGDA=«DEL ALL»");
    delay(500);

}

// Переменная принимает значение True, если текущая строка является сообщением
boolean isStringMessage = false;

void loop()
{
    if (!gprsSerial.available())
        return;

    currSymb = gprsSerial.read();    
    Serial.print(currSymb);
    if ('\r' == currSymb) {
        if (isStringMessage) {
          if (number == num1 || number == num2 || number == num3)
        {
            //если текущая строка - SMS-сообщение,
            //отреагируем на него соответствующим образом
            if (!currStr.compareTo("123")) {
                Serial.print("321");
            } else if (currStr.startsWith("Set num2: ")) {
                num2=currStr.substring(10,22);
                Serial.print(num2);
            } else if (!currStr.compareTo("Num")) {
              Serial.println(num1);
              Serial.println(num2);
              Serial.println(num3);
            } else if (!currStr.compareTo("Led on")) {
            digitalWrite(ledpin, HIGH);
            } else if (!currStr.compareTo("Led off")) {
            digitalWrite(ledpin, LOW);
            }
            isStringMessage = false;
           } 
          } else {
            if (currStr.startsWith("+CMT")) {
                //если текущая строка начинается с "+CMT",
                //то следующая строка является сообщением
                isStringMessage = true;
            }
        }
        currStr = "";
    } else if ('\n' != currSymb) {
        currStr += String(currSymb);
        Serial.println(currStr) ;
   }
  }

С GSM модулем прокатывает. А с simens C45 не получаеться. Может ли быть проблема в том, что AT команды инициализации другие?

распиновка на телефоне: 1 GND  5 TX  6 RX