Sim800l+ реле

Тема в разделе "Arduino & Shields", создана пользователем Naher90, 13 сен 2019 в 13:48.

  1. Naher90

    Naher90 Нуб

    Всем привет. Прошу помощи с проектом. Основа взята с просторов. Код компилируется, но работать не хочет. Использую nano +sim800l.Прошу подсказать почему.
    Код (C++):
    #include "SIM900.h" //библиотека для работы с gsm модулем

    #include <SoftwareSerial.h>

    #include "sms.h"

    SMSGSM sms;


    //2 и 3 Rx Tx


    int flag=0;

    boolean started=false;

    char smsbuffer[160];

    char n[20];// переменная с номером

    char n1[]="+7**********";

    String input_string = "";

    String smsContent = "";


    char smsDv[] ="Komanda Vipolnena!";//массив с текстом ответной смс

    char pos;//переменная с номером последней смс

    char sendsms[160];//переменная с текстом смс

    void setup() {


    pinMode(7, OUTPUT);

    digitalWrite(7,HIGH);

    pinMode(8, OUTPUT);

    digitalWrite(8,HIGH);

    Serial.begin(9600);


    if (gsm.begin(4800)) {

    Serial.println("\nstatus=READY");

    started=true;

    } else Serial.println("\nstatus=IDLE");


    }

    void loop() {


    pos = sms.IsSMSPresent(SMS_UNREAD); // присваиваем переменной номер последней смс

    if (pos) {                    // если есть не принятые смс, то

    getsms(); // получаем эту смс

    if(strstr(n, n1) != NULL){

    if (input_string=="ON_1"){Serial.print("YES!");

    //n1.toCharArray(n,20);

    sms.SendSMS(n, smsDv);//отправка ответа на номер из переменной n с содержанием массива smsDv

    sms.DeleteSMS(1);

    memset(n,0,20); //очистка переменной n с номером

    input_string="";

    char smsbuffer[160]="";//очистка массива с текстом

    digitalWrite(7,LOW);// нажатие кнопки, подаём низкий уровень сигнала на 7 пин

    delay(1000);//удержание кнопки, пауза

    digitalWrite(7,HIGH);//отпускание кнопки, подаём высокий уровень сигнала на 7 пин

    }

    else if (input_string=="OFF_1"){Serial.print("YES!");

    //n1.toCharArray(n,20);

    sms.SendSMS(n, smsDv);//отправка ответа на номер из переменной n с содержанием массива smsDv

    sms.DeleteSMS(1);

    memset(n,0,20);

    input_string="";

    char smsbuffer[160]="";

    digitalWrite(8,LOW);

    delay(1000);

    digitalWrite(8,HIGH);

    }

    }

    sms.DeleteSMS(pos); // удаляем СМС  из сим-карты

    }

    }

    void getsms()//функция получения непрочитанной смс

    {

    sms.GetSMS(pos,n,20,smsbuffer,160);//получаем, присваиваем номер,

    input_string =String(smsbuffer);// в переменную переносится содержимое массива smsbuffer

    }
     
  2. Daniil

    Daniil Гуру

    Если он компилируется, то он и работает (если вы его же и загружаете в мк)
     
  3. b707

    b707 Гуру

    Naher90 - вам уже на ардуино.ру сказали. что так вопрос не задают. Вместо того. чтоб исправится - вы на другой форум пришли.

    Что значит "работать не хочет"?
    Или вы ждете что кто-то соберет макет и будет проверять ваш код вживую? Не слишком ли много внимания ради просто го вопроса в форуме?
     
    Andrey12 нравится это.
  4. Asper Daffy

    Asper Daffy Гуру

    Злые Вы, блин все.

    Не чтобы оторваться от порнхаба и порыться «по просторам», найти там код ТС, прочитать что он должен делать. Потом взять хрустальный шар и узнать чего от этого кода ожидает ТС, потом запустить его, посмотреть что именно работает не так, как ожидает ТС, всё исправить, выложить для ТС готовый исправленный код и спросить куда можно перевести денежку за полученное от всего этого удовольствие. Я вот всегда так поступаю :)

    А Вы чё-та от бедного ТС требуете. Для чего тогда вообще форумы, если ТС всё сам объяснять должен?
     
    Daniil, DetSimen, parovoZZ и ещё 1-му нравится это.
  5. parovoZZ

    parovoZZ Гуру

    так пусть на просторах и ответят. У нас другие задачи.
     
  6. DetSimen

    DetSimen Гуру

    Я могу еще тапки ТСу ваксой почистить за такую радость
     
    Asper Daffy нравится это.