Включение двух реле от Смс

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

Всем привет. Прошу помощи с проектом. Основа взята с просторов. Код компилируется, но работать не хочет. Использую nano +sim800l.Прошу подсказать почему.

Naher90
Offline
Зарегистрирован: 01.07.2017
#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

}

 

b707
Онлайн
Зарегистрирован: 26.05.2017

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

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Naher90 пишет:
Всем привет. Прошу помощи с проектом. Основа взята с просторов. Код компилируется, но работать не хочет. Использую nano +sim800l.Прошу подсказать почему.

Код заливается в контроллер?

Если "нет", выясняйте, что ему мешает, в частности, установлен ли драйвер.

Если "да", значит, код работает. Работает так, как написан. Возможно, не так, как Вам бы хотелось, ну так откуда мы можем узнать, чего Вам хочется?

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

Извиняюсь. Дополняю. После загрузки, реле срабатывают, после отправки смс команд ничего не происходит, через какое то время загорается после пары раз миганий диод tx. И всё. Никакой реакции больше.

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

Должен сработать как по коду на команду on_1 включить на время первое реле, второй командой второе