Скетч компилируется с ошибкой

Тема в разделе "Arduino & Shields", создана пользователем User111, 14 янв 2021.

  1. User111

    User111 Нерд

  2. Ariadna-on-Line

    Ariadna-on-Line Гуру

    А не проще ли прямо сюды выложить. И так реклама задолбала до немогу. Скетч скомпилировался. А компилятор пишет - нежелательное конвертирование строки в символ.
    Точнее - старомодное или устаревшее.
     
    Последнее редактирование: 14 янв 2021
    NikitOS нравится это.
  3. User111

    User111 Нерд

    Ошибка

    Код (C++):

    C:\VKL_RELE_DAROM3_GSM\VKL_RELE_DAROM3_GSM.ino: In function 'void loop()':

    C:\VKL_RELE_DAROM3_GSM\VKL_RELE_DAROM3_GSM.ino:25:25: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

      if ( mySerial.find("OK")) // ОТВЕТ  РћРљ

                             ^

    C:\VKL_RELE_DAROM3_GSM\VKL_RELE_DAROM3_GSM.ino:37:28: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

       if (mySerial.find("CLIP:")) // если нашли RING

                                ^

    C:\VKL_RELE_DAROM3_GSM\VKL_RELE_DAROM3_GSM.ino:45:39: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

           if (mySerial.find("+79028764567")) { // ищим номер телефона, если нашли

                                           ^

    C:\VKL_RELE_DAROM3_GSM\VKL_RELE_DAROM3_GSM.ino:64:37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

                if (mySerial.find("CLIP:"))  

                                         ^

    C:\VKL_RELE_DAROM3_GSM\VKL_RELE_DAROM3_GSM.ino:73:31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             if (mySerial.find("OK"))

                                   ^


    Скетч использует 5 104 байт (16%) памяти устройства. Всего доступно 30 720 байт.
    Глобальные переменные используют 451 байт (22%) динамической памяти, оставляя 1 597 байт для локальных переменных. Максимум: 2 048 байт.
     
    Скетч

    Код (C++):
    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(10, 11); // RX, TX
    unsigned long timing; // Переменная для хранения точки отсчета

    void setup()
    { Serial.begin(9600);
       mySerial.begin(9600);
       pinMode(2, OUTPUT); // ЭТО РЕЛЕ
       digitalWrite(2, HIGH); //  ПОДТЯЖКА ПОРТА
       mySerial.println("ATE0");  //ОТКЛ ЭХО
       delay(5000);
       mySerial.println("AT+IPR=9600;");
        delay(300);
    mySerial.println("AT+CLIP=1"); // ВКЛ ОПРЕДЕЛИТЕЛЬ НОМЕРА
      delay(300);
    mySerial.println("AT+CLIP=1"); // ВКЛ ОПРЕДЕЛИТЕЛЬ НОМЕРА
        delay(300);
      }
       
    void loop()
    {
    { digitalWrite(13, HIGH);// ИНДИКАЦИЯ СВЯЗИ СИМ800 И МИКРОК.
      mySerial.println("AT"); // РЕГИСТАЦИЯ  СЕТИ
    if (millis() - timing > 500){ // Вместо 10000 подставьте нужное вам значение паузы
    if ( mySerial.find("OK")) // ОТВЕТ  ОК
          { Serial.println("SOEDINENIE OK");
            digitalWrite(13, LOW); }//  МИГАЕМ ВСЕ ОК
    else{ Serial.println("SOEDINENIE NO");
           digitalWrite(13, HIGH); // ЕСЛИ НЕ НАШЛИ ГОРИМ
            }
      timing = millis();
    }

          /////////////ИЩЕМ ЗВОНОК/////////////
     
      if (mySerial.find("CLIP:")) // если нашли RING
      {
        Serial.println("RING!");
        delay(200);
        mySerial.println("AT+CLIP=1"); // ВКЛ ОПРЕДЕЛИТЕЛЬ НОМЕРА
        delay(500);
        while (1) // в цикле
        {
          if (mySerial.find("+79028764567")) { // ищим номер телефона, если нашли
            { digitalWrite(2, !digitalRead(2)); // инвертируем A1
              delay(200);
              Serial.println("INVERSIA RELE");
              ////////////////////////////////////////
              delay(200);
               if( digitalRead(2)==LOW)//ЕСЛИ РЕЛЕ ВКЛ
               { mySerial.println("AT+CHUP;"); // сбрасываем вызов
                delay(200);
                Serial.println("VKL RELE");
                  }
                else
               {
                Serial.println("OTKL  RELE");
                delay(6000);
                 mySerial.println("AT+CHUP;"); // сбрасываем вызов
                 delay(500);
             
               }
               if (mySerial.find("CLIP:"))  
                   break;
            }
             
            }
         
          else { // иначе
            mySerial.println("AT"); // спрашиваем состояние модема
            delay(200);
            if (mySerial.find("OK"))
              break;   // и если он в "готовности", выходим из цикла
          }            // если звонок в процессе, возвращает +CPAS: 3
        }              // и крутимся дальше

        mySerial.println("AT+CHUP;"); // сбрасываем вызов
        delay(200);

      }
    }
    }    
     
  4. User111

    User111 Нерд

    Скетч не мой но с этими ошибками он может работать ?
     
  5. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Это не ошибки, это предупреждения. Вероятно компилятор "знает" более рациональные методы. Я такое получал - однако работало.
    Ждите когда программные гуру соизволят посмотреть. Они тонкости знают наверняка.
     
    Последнее редактирование: 14 янв 2021
  6. User111

    User111 Нерд

    Спасибо буду пробовать .
    Еще вопрос есть .
    Этот скетч работает с SIM 800L , Подаю питанние на SIM 800L там где верхняя антенна на второй + и нижний контакт - 4,2в но светодиод не мигает , это брак быстрее всего ?
     
  7. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Вы должны вставить симку, подать питание и успешно об-ресетить модуль. То есть получить-таки ОК после команды АТ. После этого модуль начнет искать сеть и мигать светодиодом.


    The onboard LED indicator will blink once every two to three seconds when it has completely registered the SIM to a network. When the LED indicator is blinking every second, this means that the SIM800L is still searching for a network to register onto. If the LED indicator does not blink, recheck the power supply to enusre that it provides plentiful current and precise output voltage. Note that the SIM800L module requires voltage in range of 3.4 to 4.4 V. If proper voltage is not provided, the module will give under- and overvoltage warnings.
     
  8. parovoZZ

    parovoZZ Гуру

    Видимо, метод find устарел или вся библиотека в целом.
     
  9. User111

    User111 Нерд

    А до получения АТ каманды светодиод будет мигать ? Вот я кинул плюс и минус на модуль без ардуино как светодиод на SIM 800L себя ведет ?
     
  10. Asper Daffy

    Asper Daffy Иксперд

    Ой. вей! :)