GSM Сигнализация

Тема в разделе "Arduino & Shields", создана пользователем a2kuz, 28 июн 2018.

  1. a2kuz

    a2kuz Нуб

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

    ошибка вот в этой строчке sms.GetSMS(1,n,20,smsbuffer,160);
    пишет exit status 1
    no matching function for call to 'SMSGSM::GetSMS(int, char [20], int, char [160], int)'
    Спасибо.
    Код (C++):

    #include <call.h>
    #include <gps.h>
    #include <GSM.h>
    #include <HWSerial.h>
    #include <inetGSM.h>
    #include <LOG.h>
    #include <SIM900.h>
    #include <sms.h>
    #include <Streaming.h>
    #include <WideTextFinder.h>


    #include "SIM900.h"
    #include <SoftwareSerial.h>

    #include "sms.h"
    #include "call.h"
    SMSGSM sms;
    CallGSM call;

    //=================Пины 2 и 3 для Подключения GSM модуля

    int sensor1=0; // дачик движения
    int flag1=0;
    boolean started=false;
    char smsbuffer[160];
    char n[20];
    String n1 = "+79022577700";
    String input_string = "";
    String smsContent = "";
    char sirena[] = "Sirena  vkluchena!";
    char PowerOFF[] = "Snyato s ohrani";
    char smsDv[] ="Wnimaniye! Dvijeniye na objekte!";
    char smsDve[] ="Wnimaniye! Dver otkrita!"; //=== дверь открыта
    char smsW[] ="Postanovka na ohranu!";
    char pos;
    char sendsms[160];

    void setup() {
    pinMode(10, OUTPUT); // Пассивный зумер (сигнал)
    pinMode(7, OUTPUT);

    Serial.begin(9600);
      pinMode(4, INPUT); // датчик движения
    //  digitalWrite(4, HIGH);
      pinMode(5, INPUT); // еще какой-нибудь датчик ( геркон)
    //  digitalWrite(5, HIGH);

           if (gsm.begin(4800)) {
              Serial.println("\nstatus=READY");
              started=true;
         } else Serial.println("\nstatus=IDLE");

    }
    void loop() {

    //===========================Первое срабатывание датчика двери
      if ((digitalRead(5)==HIGH) && sensor1==1 && flag1==0){
      n1.toCharArray(n,20);
      sms.SendSMS(n, smsDve);   // Посылаем СМС о том, что дверь открыта
      sms.DeleteSMS(1);memset(n,0,20);
      char smsbuffer[160]="";
      flag1++;
    // delay(5000); // Ждем 5 секунд
      }


    //===========================Второе срабатывание датчика двери
    if ((digitalRead(5)==HIGH) && sensor1==1 && flag1==1){
    n1.toCharArray(n,20);
    sms.SendSMS(n, sirena);               // Посылаем СМС о том, что сирена включена
    sms.DeleteSMS(1);memset(n,0,20);
    char smsbuffer[160]="";
    flag1++;
    delay(5000); // Ждем 5 секунд
    }

    //===========================Первое срабатывание датчика движения
      if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==0){
        n1.toCharArray(n,20);
        sms.SendSMS(n, smsDv);               // Посылаем СМС о том, что есть движение
        sms.DeleteSMS(1);memset(n,0,20);
        char smsbuffer[160]="";
        flag1++;
        delay(5000); // Ждем 5 секунд
      }
    //===========================Повторное срабатывание датчика движения и/ или двери
      if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==1){
        n1.toCharArray(n,20);
        sms.SendSMS(n, sirena);            // Посылаем СМС о том, что включена сирена
        sms.DeleteSMS(1);memset(n,0,20);
        char smsbuffer[160]="";
        flag1++;
      }

      if (flag1>=2){
        tone(10, 2780, 200); // Сирена
      }


    pos = sms.IsSMSPresent(SMS_UNREAD); // смотрим непрочитанные СМС
          if (pos) {                    // Если непрочитанные СМС есть, то...
           
    getsms(); // получаем непрочитанную СМС

         if (input_string=="0"){Serial.print("Snyato s ohrani!");n1.toCharArray(n,20); sms.SendSMS(n, PowerOFF); sms.DeleteSMS(1);memset(n,0,20); // Команда "0" - снять с охраны
         sensor1=0;digitalWrite(4,LOW);input_string=""; char smsbuffer[160]=""; flag1=0;}
       
         if (input_string=="1"){Serial.print("Postanovka na ohranu!");n1.toCharArray(n,20); sms.SendSMS(n, smsW); sms.DeleteSMS(1); memset(n,0,20); // Команда "1" - Поставить на охрану
         sensor1=1; input_string=""; char smsbuffer[160]=""; flag1=0;}
           
            sms.DeleteSMS(pos); // удаляем СМС  из симки
          }
    }
    void getsms()
    {
    sms.GetSMS(1,n,20,smsbuffer,160);
    input_string =String(smsbuffer);
              }
     
  2. itsWoland

    itsWoland Нерд

    на какой версии иде проверялось впервые?
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Что это за фигня #include <HWSerial.h> ?У Вас какое то чудовищное нагромождение библиотек вот они и конфликтуют.
     
  4. Mitrandir

    Mitrandir Гуру

    Ещё смущает включение sim900.h
    Одно из стандартной папки инклудов, другое из текущей папки
     
  5. Mitrandir

    Mitrandir Гуру

    Ищите где объявлен класс SMSGSM и какой контракт у метода GetSMS
     
  6. a2kuz

    a2kuz Нуб

    скорее всего на старой сейчас просит обновление но я не обновлялся.
     
  7. a2kuz

    a2kuz Нуб

    это да , я пробовал и так и так .