Выбор сотового телефона в качестве модема
- Войдите на сайт для отправки комментариев
Пнд, 27/05/2013 - 16:15
Добрый день, сильно не ругайте, я только второй день как знаю такое слово как "Ардуино"
Делаю модуль, с доступом к нему через GSM. В моём городе гсмшилда в наличии ни у кого нету, хочу использовать сотовый телефон.
Не моглы бы вы уважаемые друзья подсказать, какие модели телефонов более предпочтительные, что бы мне не перепробовать все. И если есть у кого примеры подключений, покажите пожалуста. Буду премного благодарен.
Ардуинка мега 2560
Заранее спасибо.
ищите по теме siemense или nokia + RS232, до появления ардуинок была модная тема использования телефонов именно этих марок в качесиве обычных модемов. вот пример http://cxem.net/sotov/sotov107.php
из примера можно наверно удалить max232 так как это адаптация к RS232 уровням и подключить к выводам RX и TX ардуинки
а дальше логика такая - настраиваем последовательный порт на телефоне и на ардуинке на одну скорость, берем из интерента табличку AT команд для нашего телефона и пишем программу управления отправляя в сериял команды AT
Спасибо, как раз нашёл simens C60, буду пробовать, через пару деньков отпишусь о результатах
А можно ведь использовать любой телефон? Если знаешь где Rx и Tx ? И обязательно нужен резистор?
Обязательно. И отпишитесь через пару деньков?
использую такой код:
#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