-
Re: Управление внешними устройствами с Arduino при помощи СМС
Я так и сделал .;)
Теперь мучаю скетч :
#include <NewSoftSerial.h>
NewSoftSerial gsm(2,3);
void setup()
{
gsm.begin(9600);
gsm.print('atd');
gsm.print(34,BYTE); // символ "
gsm.print(43,BYTE); // символ +
gsm.print('380675678366');
gsm.print(34,BYTE); // символ "
gsm.println(59,BYTE);
}
void loop()
{
}
НЕ ХОЧЕТ ЗВОНИТЬ!!! Хотя с терминалом работает отлично.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Думаю что проблема с кодировкой.
Попробуй отправлять не строкой, а по байтно по таблице ASCII
-
Re: Управление внешними устройствами с Arduino при помощи СМС
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Не получилось.
#include <NewSoftSerial.h>
NewSoftSerial gsm(2,3);
void setup()
{
gsm.begin(9600);
gsm.print(39,BYTE); // символ '
gsm.print(65,BYTE); // A
gsm.print(84,BYTE); // T
gsm.print(68,BYTE); // D
gsm.print(39,BYTE); // символ '
gsm.print(34,BYTE); // символ "
gsm.print(43,BYTE); // символ +
gsm.print(51,BYTE); // 3
gsm.print(56,BYTE); // 8
gsm.print(48,BYTE); // 0
gsm.print(54,BYTE); // 6
gsm.print(55,BYTE); // 7
gsm.print(53,BYTE); // 5
gsm.print(54,BYTE); // 6
gsm.print(55,BYTE); // 7
gsm.print(56,BYTE); // 8
gsm.print(51,BYTE); // 3
gsm.print(54,BYTE); // 6
gsm.print(54,BYTE); // 6
gsm.print(34,BYTE); // символ "
gsm.println(59,BYTE);
}
void loop()
{
}
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Не правильно , команда шлется одной строкой
Затолкать команду можно в массив и отправлять из массива
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Пнятно, что ничего не понятно :) Можешь пример привести?
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Serial.write(buf, len) - отправляет массив
если телефон подключить к RX и TX ардуины то смело можешь отправлять на телефон массивы с командами.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
не смог сходу найти ссылку , но видел что после at команды ставили delay на три секунды
нашел , правда тут про сонерики
_http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1290601471/all
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Chip, почитал я про SerialWrite, но не совсем понял.
Т.е., :
1. Ты предлагаешь вместо print использовать SerialWrite? (тогда не нужно мучаться с ASCII?)
2. строки gsm.print поменять на одну SerialWrite ("+380675678366",12)?
Извини, но я не очень силен в программировании и не могу представить, как должен выглядеть этот скетч...
Из литературы по программированию Ардуиной, пользуюсь http://arduino.ru/Reference, а там по SerialWrite (buf,len) не очень много (во всяком случае для меня) информации.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Цитата:
Сообщение от
Mitos
не смог сходу найти ссылку , но видел что после at команды ставили delay на три секунды
нашел , правда тут про сонерики
_http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1290601471/all
Тут бы для начала со звонком разобраться... А в дебри СМС позже залезим :)
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Подключил я свой телефон , он даже реагирует на at команды , перезагружается или пытается номер набирать , но работает что то не стабильно , иногда выключается , не пойму от чего это происходит .
metaforos как успехи ?
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Если отключается, возможно плохой контакт на 2,5,7 контактах. Либо сам телефон уже "уставший".
А на счет успехов, пытаюсь найти пример использования SerialWrite (buf,len).
-
Re: Управление внешними устройствами с Arduino при помощи СМС
я не совсем понял почему так сложно выглядит ввод at команд в твоих примерах
#include <NewSoftSerial.h>
NewSoftSerial gsm(2,3);
void setup()
{
gsm.begin(9600);
gsm.print('atd');
gsm.print(34,BYTE); // символ "
gsm.print(43,BYTE); // символ +
gsm.print('380675678366');
gsm.print(34,BYTE); // символ "
gsm.println(59,BYTE);
}
void loop()
{
}
у меня с таким вариантом начинает вызов
phone.println("ATD1234"); // набор номера
-
Re: Управление внешними устройствами с Arduino при помощи СМС
У тебя набирается номер с этим скетчем?
-
Re: Управление внешними устройствами с Arduino при помощи СМС
#include <NewSoftSerial.h>
NewSoftSerial phone(2, 3);
void setup() {
Serial.begin(9600);
Serial.println("Arduino has booted.");
phone.begin(9600);
// Serial.println("phone connected");
}
void loop() {
phone.println("ATD1234"); //Asking the phone if the connection is working
//Serial.println("ATDT1234567");
delay(150000);
}
это то что у меня работает и набирает номер правда только из под arduino 0.23
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Сейчас попробую. А насчет arduino 0.23 это правильно. Т.к. под 1.0 нужно какие-то изменения вносить для работы NewSerialSoft.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Ели работает то значит проблема не скодировкой
-
Re: Управление внешними устройствами с Arduino при помощи СМС
А у меня не звонит... Открываю ПУТТИ, пишет "Arduino has booted." и все...
-
Re: Управление внешними устройствами с Arduino при помощи СМС
на экране телефона ничего не происходит ?
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Ничего.
NewSoftSerial phone(2, 3) - что означают цифры 2 и 3?
-
Re: Управление внешними устройствами с Arduino при помощи СМС
пины на меге куда подключен телефон
3 пин на меге 4 на телефоне
2 на меге 3 на телефоне
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Спасибо. Я уже успел разобраться. :) Начинает звонить, но что-то не то в скетче, т.к. сразу звонок сбрасывается.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Цитата:
Сообщение от
metaforos
Спасибо. Я уже успел разобраться. :) Начинает звонить, но что-то не то в скетче, т.к. сразу звонок сбрасывается.
В конце номера телефона ставим ; и все работает.
phone.println("ATD+380675678366;");
-
Re: Управление внешними устройствами с Arduino при помощи СМС
значит звонить мы его уже научили
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Подключаем кнопку или внешний датчик :
#include <NewSoftSerial.h>
NewSoftSerial phone(2, 3);
const int buttonPin = 4;
int buttonState = 0;
void setup() {
Serial.begin(9600);
phone.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
phone.println("ATD+380675678366;");
delay(150000);
}
}
РАБОТАЕТ!!! Теперь нужно пробовать отправлять СМС с заданным текстом вместо звонка.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
а вот это должно реагировать на смс , но работать не хочет .
надо ошибки искать
http://pastebin.com/jcqHXwr5
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Да уж... Ну ладно, читать и реагировать на СМС научим позже. Сейчас нужно научиться их отправлят. У меня к сожалению до вечера эксперементировать не получится, но форум я с блекбери смотрю. Так что если будет что-нибудь стоящее, пишите, будем мудрить.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
AT+CMGS=<длинна сообщения в формате PDU> - команда отправляющая СМС
После отправки этой команды нужно передать символ перевода строки. Телефон ответит символом «>». Теперь можно передавать непосредственно сообщение. Сообщение должно заканчиваться символом с кодом 0×1A.
Hint: Чтобы ввести этот символ в терминал нужно нажать ctrl+z
не соображу как это отправить на телефон
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Наверное что-то типа этого http://avrlab.com/node/318
Я вместо phone.println("ATD+380675678366;");
писал phone.println("AT+CMGS=13"; );
phone.println("079183609310000001000A8190832152830 0000153\x1a"; );
Тоже не получилось...
-
Re: Управление внешними устройствами с Arduino при помощи СМС
ctrl-z это phone.print(0x1A);
но результат пока нулевой
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Пробую сейчас просто с терминала отправить...
Пишу - ат+cmgs=13
Получаю - >
Ввожу смс в ПДУ формате - пишет ERROR
-
Re: Управление внешними устройствами с Arduino при помощи СМС
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Да вот как раз с размером я и напутал.
Пишу в терминале - at+cmgs=22
Ввожу (после >) 0011000C918360577638660008FF080074006500730074
Жму Ctrl+Z - Все Ок и СМС ушла.
Попробовал перенести в скетч :
phone.println("AT+CMGS=22");
phone.println("0011000C918360577638660008FF0800740 06500730074\x1a");
И ничего...
-
Re: Управление внешними устройствами с Arduino при помощи СМС
вместо \x1a попробуй phone.print(0x1A);
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Вот так?
phone.println("0011000C918360577638660008FF0800740 06500730074");
phone.println(0x1A);
Неа, не работает.
-
Re: Управление внешними устройствами с Arduino при помощи СМС
phone.println("0011000C918360577638660008FF0800740 06500730074");
phone.print(0x1A);
как то так , но у меня пока не работает .
-
Re: Управление внешними устройствами с Arduino при помощи СМС
Такая же ерунда... Скоро мозги наружу вылезут. :)
-
Re: Управление внешними устройствами с Arduino при помощи СМС
надо наладить обратную связь и видеть что телефон отвечает , тогда проще понять где проблема
-
Re: Управление внешними устройствами с Arduino при помощи СМС
если команда phone.print("AT+GSN=?") работает как ввод команды в телефон то какой командой я могу в в сериал монитор вернуть ответ с телефона ?
Chip помоги !
-
Re: Управление внешними устройствами с Arduino при помощи СМС
При заливки скетча содержащего at+cmgs и т.д. Телефон тухнет...