Изменение пинов для подключения SIM800l

restiv
Offline
Зарегистрирован: 03.01.2016

Уважаемые форумчане!

Нашел в интернете подходящий для меня скетч по работе с SIM800l. Но проблема в том, что в скетче не указаны пины для подключения SIM800l, но в коментариях написано, что нужно подключать к пинам 2 и 3. Но дело в том, что мне нужно подключать модуль к пинам 8 и 9. Подскажите пожалуйста как поменыть пины для подключения модуля????

vvadim
Offline
Зарегистрирован: 23.05.2012

вы уже три года на форуме и самостоятельно не можете решить этот вопрос ? ))))))))))))))))

restiv
Offline
Зарегистрирован: 03.01.2016

vvadim пишет:

вы уже три года на форуме и самостоятельно не можете решить этот вопрос ? ))))))))))))))))

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

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

belousovev
Offline
Зарегистрирован: 14.02.2017

Какая библиотека у Вас подключена?

restiv
Offline
Зарегистрирован: 03.01.2016

belousovev пишет:

Какая библиотека у Вас подключена?

SIM900.h

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Сюда выложите скетч и дайте ссылку на библиотеку.

restiv
Offline
Зарегистрирован: 03.01.2016

Jeka_M пишет:

Сюда выложите скетч и дайте ссылку на библиотеку.

#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 = "+77051314021";
String input_string = "";
String smsContent = "";
char sirena[] = "Sirena  vkluchena!";
char PowerOFF[] = "Snyato s ohrani";
char smsDo[] ="Wnimaniye! Door open!";
char smsDv[] ="Wnimaniye! Dvijeniye na objekte!";
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(4)==HIGH) && sensor1==1 && flag1==0){
    digitalWrite(7, HIGH);
    n1.toCharArray(n,20);
    sms.SendSMS(n, smsDo);               // Посылаем СМС о том, что дверь открылась
    sms.DeleteSMS(1);memset(n,0,20);
    char smsbuffer[160]="";
    flag1++;
    delay(5000); // Ждем 5 секунд
  }
//===========================Первое срабатывание датчика движения
  if ((digitalRead(5)==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(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++;
  }

  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(7,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);
          }

 

Библиотеки отсюда: https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield

Проект отсюда: https://pikabu.ru/story/gsm_signalizatsiya_na_arduino_i_sim800l_i_datchi...

Способ решения не компиляции скетча брал тут: http://forum.amperka.ru/threads/%D0%9F%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%...

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

В файле GSM.cpp строки 27 и 28: 

#define _GSM_TXPIN_ 2
#define _GSM_RXPIN_ 3

 

restiv
Offline
Зарегистрирован: 03.01.2016

Jeka_M пишет:

В файле GSM.cpp строки 27 и 28: 

#define _GSM_TXPIN_ 2
#define _GSM_RXPIN_ 3

Спасибо большое!