Отправка SMS с переменной.

monser
Offline
Зарегистрирован: 01.07.2017
#include <SoftwareSerial.h>                 
SoftwareSerial M590(2, 3);                 // RX, TX

#define ledS 5
#define BOOT 6                             // нога BOOT на модеме
#define analogG A2
int gasValue = 0;                          //переменная для хранения количества газа

void setup() 
{
  delay(2000);                             // чтобы не повисало при включении  
  M590.begin(9600);          
  Serial.begin(9600); 
  pinMode(BOOT, OUTPUT);                   // нога BOOT на модеме
  pinMode(ledS, OUTPUT);

  digitalWrite(ledS, HIGH);                // включаем лед  
  digitalWrite(BOOT, LOW);                 // включаем модем 
 
  delay(2000);                             // если меньше не проходят следущие команды команды
  
  M590.println("ATE0");                    // выключаем эхо
  delay(200); 
  M590.println("AT+CLIP=1");               // включаем АОН,
  delay(200);                          
  M590.println("AT+CMGF=1");               // текстовый формат SMS
  delay(200);                         
  M590.println("AT+CSCS=\"GSM\"");         // кодировка текста - GSM
  delay(200);                        
  M590.println("AT+CNMI=2,2,0,0,0");       // вывод смс в консоль 
  delay(300);                            

  while(1)
    {                                        
     M590.println("AT+COPS?");
     if (M590.find("+COPS: 0")) break;  
        digitalWrite(ledS, LOW);            
        delay(100);                        
        digitalWrite(ledS, HIGH);  
        delay(500); 
    }  
   digitalWrite(ledS, LOW);                   // мигаем светодиодом
   delay(1500);  
   digitalWrite(ledS, HIGH);
   delay(250); 
   digitalWrite(ledS, LOW);
}

void loop() 
{
 gasValue = analogRead(analogG);

                    // получение звонков и SMS
   if (M590.available())                 //если есть данные от GSM модуля
  {
    char ch = ' ';
    String val = "";
    
    while (M590.available())              //сохраняем входную строку в переменную val
    {
      ch = M590.read();
      val += char(ch);                    //собираем принятые символы в строку
      delay(5);                             
    }  

   Serial.println(val);                   //дублируем сообщение в терминал

 if (val.indexOf("+CMT") > -1)            //если есть входящее sms
  {
  if(val.indexOf("money?") > -1)         // смотрим, что за команда
    {  
     delay(3000);
     M590.println("ATD#102#;");
    }
       
  if (val.indexOf("GAS?") > -1)        // смотрим, что за команда      
    {
     Serial.print("GAS Value:"); 
     Serial.println(gasValue);         
     sms(String(gasValue), String("+7909*******"));
    }    
  }
 if(val.indexOf("+CUSD") > -1)            //если есть сообщение в терминале
   {
   if(val.indexOf("balans") > -1)       // смотрим, что за команда
   {  
    delay(3000);       
    val = val.substring(val.indexOf("Vash"),val.indexOf("r"));
    sms(String(val), String ("+7909*******")); 
   }     
  }
 }
}
                   // отправка СМС
void sms(String text, String phone)              
  {
  M590.println("AT+CMGS=\"" + phone + "\"");
  delay(500);
  M590.print(text);
  delay(500);
  M590.print((char)26);
  delay(2000);
  }

 

monser
Offline
Зарегистрирован: 01.07.2017

Все прекрасно работает, но ...

при получении SMS на запрос "GAS?" приходят только цифры, а хотелось бы, что бы перед ними стояло "Gas Value:"

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, а пытался-то как? Показывайте. 

monser
Offline
Зарегистрирован: 01.07.2017

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

перебрал кучу скетчей с отправкой смс, но такого в примерах не попалось.

Или отправляет только текст или цифры, а вот вместе ну никак

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

monser пишет:

показывать нечего

Ну, на "нечего" и суда нет. Здесь помогают тем, кто делает сам. А те, кому просто нужно сделать - обращаются в платный раздел.

monser
Offline
Зарегистрирован: 01.07.2017

а что конкретно Вам показать?

Как пробовал в разных интерпретациях менять строку 80?

monser
Offline
Зарегистрирован: 01.07.2017

еще в 95й добавлял один стринг

monser
Offline
Зарегистрирован: 01.07.2017

ЕвгенийП пишет:

 А те, кому просто нужно сделать - обращаются в платный раздел.

Скетч рабочий уже сделан и конструкция тоже.

Писал правда его не сам- собрал из разных примеров гуляющих по сети- поздно мне уже учиться.

Вообще он в несколько раз больше.

Я просто его сократил чтобы желающим помочь тратить меньше времени.

Если знаете решение- подскажите, если нет, ну что же не Вы один тут грамотный.

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Показывай, как пробовал.

monser
Offline
Зарегистрирован: 01.07.2017

Вы решение знаете?

Скорее все в строке 80.

ВАм что, все варианты написать которые я пробовал?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

напишите хоть один

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

monser пишет:

Вы решение знаете?

Скорее все в строке 80.

ВАм что, все варианты написать которые я пробовал?

Не...е решение не в строке, а в Вашей голове. Мы можем только пнуть в нужном направлении, а дальше сами, ручками.

Короче - пну: Переменные String, как и разные другие переменные, поддерживают операцию сложения. По-моему достаточно.

monser
Offline
Зарегистрирован: 01.07.2017

а никто и не спорит, что не в голове.

Поздно мне уже учиться.А пинать можете мальчиков 17 летних, а я пока страницу до конца дочитаю, что в начале было уже забыл.

за операцию сложения конечно спасибо, но вряд ли мне это поможет.

 

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

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

monser
Offline
Зарегистрирован: 01.07.2017

я уж как нибудь сам разберусь куда мне обращаться без сопливых.

Сайт неплохой, только жалко люди гавно

 

monser
Offline
Зарегистрирован: 01.07.2017

всем спасибо за помощь.

Только цифры, да и нормально.

работало пол года и еще проработает .

А вы тут рассуждайте кому куда обращаться учителя дорогие

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

значит не пытался, ну что, пусть и так работает.

з.ы. заведите тему в платном разделе, там помогут.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

monser пишет:

я уж как нибудь сам разберусь куда мне обращаться без сопливых.

Сайт неплохой, только жалко люди гавно

 

Да, согласен - столько говна сюда лезет, устали отбиваться от всяких монсёров-усёров.

monser
Offline
Зарегистрирован: 01.07.2017

Я вот представляю, если человек собирая какую нибудь простенькую конструкцию ( типа транзистора и реле)

Впаял вместо PNP NPN  и  обратился бы ко мне с вопросом  почему не работает. 

Да у меня бы язык отсох если бы я ему начал втирать про теорию полупроводников и т.д.

Не проще ли сказать, где ошибка и что надо впаять?

Но тут видимо другие люди общаются.

Почитав форум я давно заметил, что тут не помогают, а упражняются в остроте ответов.

А вот интересно, за какую сумму будет оказана такая помощь?

 

 

 

monser
Offline
Зарегистрирован: 01.07.2017

Ты то олень от кого устал отбиваться?

Тебя в мою тему никто не звал.

Не знаешь ответа на вопрос - прочитал и вали дальше, а ты вафельницу открываешь.

А вообще незнакомых людей принято называть на Вы.

Так , что ты сначала научись культурному общению, а уж потом рассуждай.

 А вообще  прочитай как называется этот раздел форума. Умник.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

monser пишет:

А вот интересно, за какую сумму будет оказана такая помощь?

вы можете хоть что-то сделать, чтобы получить результат?

monser
Offline
Зарегистрирован: 01.07.2017

Ну я же писал, что просмотрел много скетчей с отправкой смс , но к сожалению нужного мне (текст + переменная) не попалось. Либо идет отправка текста либо данных. Соединить у меня не получилось.

В программировании как понимаете я 0, но понимаю, что вопрос этот не стоит выеденного яйца, но вот ответить на него не смог, поэтому и попросил помощи.

А тут меня пытаются обучить программированию.

   

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

monser пишет:

Ты то олень от кого устал отбиваться?

Тебя в мою тему никто не звал.

Не знаешь ответа на вопрос - прочитал и вали дальше, а ты вафельницу открываешь.

А вообще незнакомых людей принято называть на Вы.

Так , что ты сначала научись культурному общению, а уж потом рассуждай.

 А вообще  прочитай как называется этот раздел форума. Умник.

Тебе, олень, уже не один раз подсказали, что надо сделать: надо сложить в строку, операцией сложения, нужные части. Но ты, олень - хочешь, чтобы тебе дали на блюдечке готовое решение. На твоём примере: ты хочешь, чтобы за тебя впаяли нужные транзисторы, склеротичный олень.

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

З.Ы. Хочешь нормального общения - извинись, что назвал всех форумчан говном. Именно ты это начал, культурный олень.

monser
Offline
Зарегистрирован: 01.07.2017

mykaida пишет:

Переменные String, как и разные другие переменные, поддерживают операцию сложения.

Прочитал я про арифметические операторы, но так к сожалению  и не понял как это мне поможет.

Можете поконкретнее сказать?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

monser пишет:

mykaida пишет:

Переменные String, как и разные другие переменные, поддерживают операцию сложения.

Прочитал я про арифметические операторы, но так к сожалению  и не понял как это мне поможет.

Можете поконкретнее сказать?

Ещё раз: как только ты приведёшь примеры того, как пробовал - тебе сразу укажут на то, в чём ошибка. И сам поймёшь быстрее.

Приведи, пожалуйста, примеры того, как ты пробовал решить проблему.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015
String s1,s2;

s1 = "12345";
s2 = "67890";
s1 = s1 + s2;

 

monser
Offline
Зарегистрирован: 01.07.2017

sms(String("Gas Value:"),(String(gasValue), String("+7909*******"));

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

monser пишет:

sms(String("Gas Value:"),(String(gasValue), String("+7909*******"));

Измени вот так:

sms(String("Gas Value:") + String(gasValue), String("+7909*******"));

Видишь в первом параметре сложение двух строк? Это аналогично вот такому:

String message = "GAS value: ";
message += gasValue;

sms(message,"+7918...");

 

monser
Offline
Зарегистрирован: 01.07.2017

ладно проехали. ща попробую

monser
Offline
Зарегистрирован: 01.07.2017

Сдается мне , что с тремя стрингами надо будет менять процедуру отправки.

Я подобное делал, только без плюса

monser
Offline
Зарегистрирован: 01.07.2017

Извините сейчас уже не попробую. Пол первого ночи уже оказывается.

monser
Offline
Зарегистрирован: 01.07.2017

Все таки попробовал. 

стало приходить как и задумано. Спасибо за помощь.

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

проще же было сказать подправь строку 80 таким образом.

И всёёё. вопрос был бы решен за один пост. 

что бы поменять запятую на плюсик потратили ХЗ сколько времени и нервов.

 

 

monser
Offline
Зарегистрирован: 01.07.2017

DIYMan пишет:

Помогай потом таким невменяшкам...

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

ладно, проехали. спасибо за помощь.

затираем всю хрень.

monser
Offline
Зарегистрирован: 01.07.2017

Ооо уже не затереть оказывется.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

monser пишет:

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

Давай ты откроешь глаза, перечитаешь тему и посмотришь, кто кого первый назвал говном, ок?

Извинения будут, культурный ты наш?

monser
Offline
Зарегистрирован: 01.07.2017

ну это было в 14 посте.

А мне что до 14го писали?

Да и всех я в виду не имел, а тех кто сам это знает.

ладно еще раз спасибо за помощь.

 

 

monser
Offline
Зарегистрирован: 01.07.2017

Вопрос по ходу возник:

В мониторе при отправке смс пишет +CMGS: 63, ну и естественно при каждой отправке число увеличивается.

Если память в М590 закончится чем это грозит?

Может добавить команду для затирки смс?

 
DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

monser пишет:

ну это было в 14 посте.

А мне что до 14го писали?

Да и всех я в виду не имел, а тех кто сам это знает.

ладно еще раз спасибо за помощь.

 

 

А что тебе до 14-го поста писали? Неужели оскорбляли и называли "говном"? Покажи - где?

Т.е. извинений не будет, и ты считаешь это совершенно нормальным и культурным - обозвать всех говном и теперь делать невинный вид? С тобой всё в порядке?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

monser пишет:

Вопрос по ходу возник:

В мониторе при отправке смс пишет +CMGS: 63, ну и естественно при каждой отправке число увеличивается.

Если память в М590 закончится чем это грозит?

Может добавить команду для затирки смс?

 

Ответ будет сразу после извинений за "говно".

monser
Offline
Зарегистрирован: 01.07.2017

Со мной все в порядке. я уже наверное третий или четвертый раз пишу, что в виду я имел не всех, а ты всё пытаешься мне это поставить в вину. 

ты сам еще раз прочитай до 14го поста.

Ты считаешь это нормальныое общение?

Для меня такое высокомерие ненормально.

Тем более вывод я сделал судя не только по своей теме.

Время от времени захожу сюда, просматриваю кое какие решения и вижу как общаются с теми кто просит помощи.

Если для Вас это нормально, то я так не считаю и уж тем более извиняться за свои убеждения не буду.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

monser пишет:

Впаял вместо PNP NPN  и  обратился бы ко мне с вопросом  почему не работает. 

Так это если он впаял! Вы же ни хрена не сделали. По крайней мере нихрена нам не показали.

Так что тут другая ситуация - я нихрена не впаял, а пришёл к Вам - ну-ка впайте мне, а то мне влом.

monser пишет:

А вот интересно, за какую сумму будет оказана такая помощь?

Так Вы разместите там заказ - узнаете. Или мы и это должны за Вас делать?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ещё один, прости, Господи.

sadman41
Offline
Зарегистрирован: 19.10.2016

Да... Это радиоаппаратуру нельзя мастерить путая закон Ома с правилом Буравчика, а вот ардуину программить можно вообще ничего не зная и не пытаясь думать. Во всяком случае я такую тенденцию вижу в размышлениях новичков.

monser
Offline
Зарегистрирован: 01.07.2017

sadman41 пишет:

Да... Это радиоаппаратуру нельзя мастерить путая закон Ома с правилом Буравчика, а вот ардуину программить можно вообще ничего не зная и не пытаясь думать. Во всяком случае я такую тенденцию вижу в размышлениях новичков.

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

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

А тут помоганцы пытаются не помогать а поучать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

monser пишет:

Это я нихрена не сделал?

Да, Вы.

Вас как человека просили "покажите, что Вы сделали для решения проблемы". Вы не показали ни хрена вплоть до поста #30. Была только болтовня "я всё пробовал", "что тут Вам показывать".

Был сделат очевидный вывод, что Вы не делали ни хрена, а пришли сюда за готовым решением. И мы тут же оказались "говном". Это, безусловно, повышает Ваши шансы получать помощь впредь. Надеюсь, Вы это понимаете.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП пишет:

Вас как человека просили "покажите, что Вы сделали для решения проблемы". Вы не показали ни хрена вплоть до поста #30. Была только болтовня "я всё пробовал", "что тут Вам показывать".

Евгений, прошу заметить, что как только от ТС был получен один из его вариантов проб - то ТУТ ЖЕ последовал ответ, что надо изменить, чтобы заработало. И оно, в итоге, заработало.

А вот мы - как были говном, так и останемся. Пичальбида.

sadman41
Offline
Зарегистрирован: 19.10.2016

Дак а я о чем... купил я водонагреватель на 5кВТ повесил на гипсач, подключил в розетку через трехметровый удлинитель 2x0,75. Только же один раз в жизни это делаю - зачем мне детали по-серъезному выяснять. Вот розетка с двумя дырками, вот вилка...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

monser пишет:

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

Кому понятно? Вам? Ну, вот Вы получили "по понятиям". Вот здесь, в третьем абзаце написано, что обычно бывает, когда такой, котором "понятно" приходит на форум. Почитайте и не удивляйтесь.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DIYMan пишет:

прошу заметить

Разумеется, я это заметил, я же сначала в теме. надо было сразу поступать как на лурке написано - не было бы никакого срача.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

xDriver пишет:

вот как жиСть устроена, ведь имено DIYMan показал решение после которого все заработало, а в конце оказался ....

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

Мне, кажется, поциент здесь не нужен.