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

a2kuz
Offline
Зарегистрирован: 17.04.2017

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

ощибка вот в этой строчке 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)'

Спасибо.

#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 = "+79170417032";
String input_string = "";
String smsContent = "";
char sirena[] = "Sirena  vkluchena!";
char PowerOFF[] = "Snyato s ohrani";
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(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);
          }

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Никто, кроме Вас не знает, что у Вас за файл sms.h, но если вот этот, то оно не могло работать, Вам это приснилось. У функции getSMS

char GetSMS(byte position, char *phone_number, char *SMS_text, byte max_SMS_len);

четыре параметра, а Вы в строке №84 пытаетесь передать пять.

a2kuz
Offline
Зарегистрирован: 17.04.2017

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

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

a2kuz пишет:

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

вы, простите, в программировании что-либо понимаете?

ЭТО В ПРИНЦМПЕ НЕ МОГЛО РАБОТАТЬ.

Если работало - значит скетч был не этот или файл sms.h другой.

a2kuz
Offline
Зарегистрирован: 17.04.2017

b707 пишет:

a2kuz пишет:

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

вы, простите, в программировании что-либо понимаете?

ЭТО В ПРИНЦМПЕ НЕ МОГЛО РАБОТАТЬ.

Если работало - значит скетч был не этот или файл sms.h другой.

Нет я не особо понимаю в программировании возможно был файл другой скетч я спас с жесткого диска (съемного) который сгорел, доказывать я не буду не чего я 100% знаю что работала сигналка и тестировал я ее взято это вот от сюда только немного было доработанно. https://vk.com/arduino_nodemcu_esp8266?z=video-123836335_456239059%2Ff576a503cffd11ac92%2Fpl_post_-123836335_573 был добавлен  геркон. сейчас не понимаю почему не хочет .... 

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

чего вы от форума-то хотите? Как исправить ошибку компиляции - вам Евгений указал.

deosxf
Offline
Зарегистрирован: 15.08.2018

Вот мой код.

Тут еще есть 2 реле, которые работают как GSM розетки, все работает.

Правда у меня стоит промежуточный ППКОП Кварц и на 10 пин идет с реле.

Сделанно для того, точ бы постоянно смс не снимать охрану, Кварц реле щелкает, только когда сработка произойдет, а его я снимаю обыкновенным TouchMemory. И Кварц питает у меня Ардуино.

Сильно прошу не пинать - это мой 1 скетч и первая разработка на Ардуино

#include <SoftwareSerial.h>                                      // Библиотека програмной реализации обмена по UART-протоколу
SoftwareSerial SIM800(8, 9);                                     // RX, TX

int flag1=0;                                                     //Переменная 1 для выполнения программы сработки
int flag2=0;                                                     //Переменная 2 для выполнения программы взятия и снятия
int flag3=0;                                                     //Переменная 3 для выполнения программы контроля входящего напряжени
int flag4=0;                                                     //Переменная 4 для выполнения программы РЕЛЕ
int flag5=0;                                                     //Переменная 5 для выполнения программы Розетка
String n1 = "+71111111111";
String n2 = "+71111111112";
String sms0 = "Pod Ohranoi";
String sms1 = "Srabotka";
String sms2 = "+12Volt Warning";
String sms3 = "+12Volt Ready";
String sms4 = "Snyto";
String sms5 = "Realy ON";
String sms6 = "Realy OFF";
String sms7 = "Realy2 ON";
String sms8 = "Realy2 OFF";
String msgphone   = "";


String _response    = "";                                         // Переменная для хранения ответа модуля
long lastUpdate = millis();                                       // Время последнего обновления
long updatePeriod   = 15000;                                      // Проверять каждые 15 секунд

String phones = "+71111111111, +71111111112, +71111111113";                     // Белый список телефонов

void setup() {
 pinMode(2, OUTPUT);                                              //  Сюда подключаем выход на реле управления розеткой
 pinMode(3, OUTPUT);                                              //  Сюда подключаем выход на реле управления обогрева АВТО
 pinMode(4, OUTPUT);                                              //  Сюда подключаем красный Диод черз резистор минус к выходу 4 через резистор 560 Ом
 pinMode(5, OUTPUT);                                              //  Сюда подключаем зеленый Диод черз резистор минус к выходу 5 через резистор 560 Ом
 pinMode(10, INPUT);                                              //  геркон или объемник
 pinMode(7, INPUT);                                               //  +5 вольт с делителя напряжения питания (следит за питанием 12 вольт БП)
  
  Serial.begin(9600);                                             // Скорость обмена данными с компьютером (это для отладки)
  SIM800.begin(9600);                                             // Скорость обмена данными с модемом
  Serial.println("Start!");

  sendATCommand("AT", true);                                      // Отправили AT для настройки скорости обмена данными
  delay(5000); // Ждем 5 секунд
  sendATCommand("AT+CMGDA=\"DEL ALL\"", true);                    // Удаляем все SMS, чтобы не забивать память

  // Команды настройки модема при каждом запуске
  _response = sendATCommand("AT+CLIP=1", true);                   // Включаем АОН
  _response = sendATCommand("AT+DDET=1", true);                   // Включаем DTMF
  _response = sendATCommand("AT+CMGF=1;&W", true);                // Включаем текстовый режима SMS (Text mode) и сразу сохраняем значение (AT&W)!
  lastUpdate = millis();                                          // Обнуляем таймер
}

String sendATCommand(String cmd, bool waiting) {
  String _resp = "";                                              // Переменная для хранения результата
  Serial.println(cmd);                                            // Дублируем команду в монитор порта
  SIM800.println(cmd);                                            // Отправляем команду модулю
  if (waiting) {                                                  // Если необходимо дождаться ответа...
    _resp = waitResponse();                                       // ... ждем, когда будет передан ответ
    // Если Echo Mode выключен (ATE0), то эти 3 строки можно закомментировать
    if (_resp.startsWith(cmd)) {                                  // Убираем из ответа дублирующуюся команду
      _resp = _resp.substring(_resp.indexOf("\r", cmd.length()) + 2);
    }
    Serial.println(_resp);                                        // Дублируем ответ в монитор порта (для отладки)
  }
  return _resp;                                                   // Возвращаем результат. Пусто, если проблема
}

String waitResponse() {                                           // Функция ожидания ответа и возврата полученного результата
  String _resp = "";                                              // Переменная для хранения результата
  long _timeout = millis() + 10000;                               // Переменная для отслеживания таймаута (10 секунд)
  while (!SIM800.available() && millis() < _timeout)  {};         // Ждем ответа 10 секунд, если пришел ответ или наступил таймаут, то...
  if (SIM800.available()) {                                       // Если есть, что считывать...
    _resp = SIM800.readString();                                  // ... считываем и запоминаем
  }
  else {                                                          // Если пришел таймаут, то...
    Serial.println("Timeout...");                                 // ... оповещаем об этом и...
  }
  return _resp;                                                   // ... возвращаем результат. Пусто, если проблема
}

bool hasmsg = false;                                              // Флаг наличия сообщений к удалению


void loop() {
  if (lastUpdate + updatePeriod < millis() ) {                    // Пора проверить наличие новых сообщений
    do {
      _response = sendATCommand("AT+CMGL=\"REC UNREAD\",1", true);// Отправляем запрос чтения непрочитанных сообщений
      if (_response.indexOf("+CMGL: ") > -1) {                    // Если есть хоть одно, получаем его индекс
        int msgIndex = _response.substring(_response.indexOf("+CMGL: ") + 7, _response.indexOf("\"REC UNREAD\"", _response.indexOf("+CMGL: ")) - 1).toInt();
        char i = 0;                                               // Объявляем счетчик попыток
        do {
          i++;                                                    // Увеличиваем счетчик
          _response = sendATCommand("AT+CMGR=" + (String)msgIndex + ",1", true);  // Пробуем получить текст SMS по индексу
          _response.trim();                                       // Убираем пробелы в начале/конце
          if (_response.endsWith("OK")) {                         // Если ответ заканчивается на "ОК"
            if (!hasmsg) hasmsg = true;                           // Ставим флаг наличия сообщений для удаления
            sendATCommand("AT+CMGR=" + (String)msgIndex, true);   // Делаем сообщение прочитанным
            sendATCommand("\n", true);                            // Перестраховка - вывод новой строки
            parseSMS(_response);                                  // Отправляем текст сообщения на обработку
            break;                                                // Выход из do{}
          }
          else {                                                  // Если сообщение не заканчивается на OK
            Serial.println ("Error answer");                      // Какая-то ошибка
            sendATCommand("\n", true);                            // Отправляем новую строку и повторяем попытку
          }
        } while (i < 10);
        break;
      }
      else {
        lastUpdate = millis();                                    // Обнуляем таймер
        if (hasmsg) {
          delay(4000); // Ждем 4 секунд
          sendATCommand("AT+CMGDA=\"DEL ALL\"", true);            // Удаляем все сообщения
          hasmsg = false;
        }
        break;
      }
    } while (1);
  }

  if (SIM800.available())   {                                     // Если модем, что-то отправил...
    _response = waitResponse();                                   // Получаем ответ от модема для анализа
    _response.trim();                                             // Убираем лишние пробелы в начале и конце
    Serial.println(_response);                                    // Если нужно выводим в монитор порта
    if (_response.indexOf("+CMTI:")>-1) {                         // Пришло сообщение об отправке SMS
      lastUpdate = millis() -  updatePeriod;                      // Теперь нет необходимости обрабатываеть SMS здесь, достаточно просто
                                                                  // сбросить счетчик автопроверки и в следующем цикле все будет обработано
    }
  }
  if (Serial.available())  {                                      // Ожидаем команды по Serial... (возможность через серийный порт общаться с модемом для отладки)
    SIM800.write(Serial.read());                                  // ...и отправляем полученную команду модему
  };

//Сработка

  if (digitalRead(10)==HIGH && flag2==1 && flag1==0) {
        flag1++;
        digitalWrite(5, LOW);                                      // Выключаем зеленый светодиод
        digitalWrite(4, HIGH);                                     // Включаем красный светодиод
       
        SIM800.println("AT+CMGS=\"" + n1 + "\"");                  // ...и отправляем полученную команду модему
        delay(500);                                                // Ждем 0,5 секунд
        SIM800.println(sms1+ "\r\n" + ((char)26));                 // текст смс и После текста отправляем перенос строки и Ctrl+Z
        delay(5000);                                               // Ждем 5 секунд

      
}
    
//Контроль питания отсутствие
   
  if (digitalRead(7)==LOW && flag3==0) {
    flag3++;
   
    SIM800.println("AT+CMGS=\"" + n1 + "\"");                       // ...и отправляем полученную команду модему
    delay(500); // Ждем 0,5 секунд
    SIM800.println(sms2+ "\r\n" + ((char)26));                      // текст смс и После текста отправляем перенос строки и Ctrl+Z
    delay(5000);                                                    // Ждем 5 секунд

   
}

//Контроль питания востановлено
   
  if (digitalRead(7)==HIGH && flag3==1) {
    flag3=0;
    SIM800.println("AT+CMGS=\"" + n1 + "\"");                       // ...и отправляем полученную команду модему
    delay(500); // Ждем 0,5 секунд
    SIM800.println(sms3+ "\r\n" + ((char)26));                      // текст смс и После текста отправляем перенос строки и Ctrl+Z
    delay(5000);                                                    // Ждем 5 секунд

   
}

}

void parseSMS(String msg) {                                   // Парсим SMS
  String msgheader  = "";
  String msgbody    = "";
  

  msg = msg.substring(msg.indexOf("+CMGR: "));
  msgheader = msg.substring(0, msg.indexOf("\r"));            // Выдергиваем телефон

  msgbody = msg.substring(msgheader.length() + 2);
  msgbody = msgbody.substring(0, msgbody.lastIndexOf("OK"));  // Выдергиваем текст SMS
  msgbody.trim();

  int firstIndex = msgheader.indexOf("\",\"") + 3;
  int secondIndex = msgheader.indexOf("\",\"", firstIndex);
  msgphone = msgheader.substring(firstIndex, secondIndex);

  Serial.println("Phone: " + msgphone);                       // Выводим номер телефона на компьютер в монитор порта
  Serial.println("Message: " + msgbody);                      // Выводим текст SMS  на компьютер в монитор порта

  if (msgphone.length() > 6 && phones.indexOf(msgphone) > -1) { // Если телефон в белом списке, то...
    setLedState(msgbody, msgphone);                           // ...выполняем команду
  }
  else {
    Serial.println("Unknown phonenumber");
    SIM800.println("AT+CMGS=\"" + n1 + "\"");   // ...и отправляем полученную команду модему, отправляет 1 номеру Unknown phonenumber, можно добавить, чтоб номер еще отправлял левый
    delay(1000); // Ждем 1 секунд
    SIM800.println(msgphone + " Unknown phonenumber" + "\r\n" + ((char)26));    // текст смс и После текста отправляем перенос строки и Ctrl+Z
    }
}

void setLedState (String result, String phone) {
  bool correct = false;                           // Для оптимизации кода, переменная корректности команды
  String msgToSend = "";
  String my_ohr = "";                             // Переменная для хранения ответа охраны
  String my_power = "";                           // Переменная для хранения ответа питания
  String my_realy = "";                           // Переменная для хранения ответа Реле
  String my_realy2 = "";                           // Переменная для хранения ответа Розетки
  
  //Постановка на охрану
  
  if (result == "OhrOn" && digitalRead(10)==LOW && flag1==0 && flag2==0) {
          digitalWrite(5, HIGH);                                 // Исполняем команду
          flag2++;
          delay(2000); // Ждем 1 секунд
          msgToSend = sms0;                                      // Статус исполнения
      
   correct = true;                                               // Флаг корректности команды
 
}
   //Снятие с охраны
   
  if (result == "OhrOff" && flag2==1) {
    flag1=0;
    flag2=0;
    digitalWrite(5, LOW);                      // выключаем светодиод
    digitalWrite(4, LOW);                      // выключаем светодиод
    delay(1000); // Ждем 1 секунд
    msgToSend = sms4;                                         // Статус исполнения

 correct = true;                                         // Флаг корректности команды
 
}

//Включение РЕЛЕ
   
  if (result == "Realy ON" && flag4==0) {
    flag4=1;
    digitalWrite(3, HIGH);                     // включаем РЕЛЕ
    delay(1000); // Ждем 1 секунд
    msgToSend = sms5;                          // Статус исполнения

 correct = true;                               // Флаг корректности команды
 
}

//Выключение РЕЛЕ
   
  if (result == "Realy OFF" && flag4==1) {
    flag4=0;
    digitalWrite(3, LOW);                     // вsключаем РЕЛЕ
    delay(1000); // Ждем 1 секунд
    msgToSend = sms6;                         // Статус исполнения

 correct = true;                              // Флаг корректности команды
 
}

//Включение Розетки
   
  if (result == "Realy2 ON" && flag5==0) {
    flag5=1;
    digitalWrite(2, HIGH);                     // включаем РЕЛЕ
    delay(1000); // Ждем 1 секунд
    msgToSend = sms7;                          // Статус исполнения

 correct = true;                               // Флаг корректности команды
 
}

//Выключение Розетки
   
  if (result == "Realy2 OFF" && flag5==1) {
    flag5=0;
    digitalWrite(2, LOW);                     // вsключаем РЕЛЕ
    delay(1000); // Ждем 1 секунд
    msgToSend = sms8;                         // Статус исполнения

 correct = true;                              // Флаг корректности команды
 
}


//Статус
   
  if (result == "Status") {
    if (flag2==1 && digitalRead(5)==HIGH){
    my_ohr = "Pod Ohranoi";                                                    //Статус на охране
    }
    if (flag2==0 && flag1==0 && digitalRead(5)==LOW && digitalRead(4)==LOW) {
    my_ohr = "Snyto";                                                          //Статус снят с охраны
    }
    if (flag2==1 && flag1==1 && digitalRead(5)==LOW && digitalRead(4)==HIGH) {
    my_ohr = "Srabotka";                                                       // Статус сработки
    }
    if (flag3==0) {
    my_power = "+12Volt Ready";                                                // Статус наличия питания 12 вольт
    }
    if (flag3==1) {
    my_power = "+12Volt Warning";                                              // Статус отсутствия питания 12 вольт
    }
    if (flag4==1 && digitalRead(3)==HIGH) {
    my_realy = "Realy ON";                                                     // Статус включеного РЕЛЕ
    }
    if (flag4==0 && digitalRead(3)==LOW) {
    my_realy = "Realy OFF";                                                    // Статус отключеного РЕЛЕ
    }
    if (flag5==1 && digitalRead(2)==HIGH) {
    my_realy2 = "Realy2 ON";                                                     // Статус включеного РЕЛЕ
    }
    if (flag5==0 && digitalRead(2)==LOW) {
    my_realy2 = "Realy2 OFF";                                                    // Статус отключеного РЕЛЕ
    }
        
   msgToSend = (my_ohr + "\r\n" + my_power + "\r\n" + my_realy + "\r\n" + my_realy2);               // Статус исполнения

 correct = true;                                                               // Флаг корректности команды
   
}
  
  if (!correct) {
  msgToSend = "Incorrect command: " + result;               // Статус исполнения
  }

  //Тут идет проверка номера, если команды отправляет 1 номер, то все в норме, если 2 или 3 и так далее из белого списка, то ответ дублируется 1 номеру + номер того, кто производит запросы
  if (msgphone == "+71111111111"){
  SIM800.println("AT+CMGS=\"" + msgphone + "\"");   // ...и отправляем полученную команду модему
  delay(500); // Ждем 0,5 секунд
  SIM800.println(msgToSend + "\r\n" + ((char)26));    // текст смс и После текста отправляем перенос строки и Ctrl+Z
  Serial.println("1 uslovie" + msgphone + msgToSend + "\r\n" + ((char)26));
  }

  
  else
  {
  SIM800.println("AT+CMGS=\"" + msgphone + "\"");   // ...и отправляем полученную команду модему
  delay(500); // Ждем 0,5 секунд
  SIM800.println(msgToSend+ "\r\n" + ((char)26));    // текст смс и После текста отправляем перенос строки и Ctrl+Z
  delay(5000); // Ждем 5 секунд
 
  SIM800.println("AT+CMGS=\"" + n1 + "\"");   // ...и отправляем полученную команду модему
  delay(500); // Ждем 0,5 секунд
  SIM800.println(msgphone + " " + msgToSend + "\r\n" + ((char)26));    // текст смс и После текста отправляем перенос строки и Ctrl+Z
  delay(1000); // Ждем 1 секунд
  Serial.println("2 uslovie" + msgphone + msgToSend + "\r\n" + ((char)26));
  }

}



 

yucan
Offline
Зарегистрирован: 20.04.2015

У Вас пожарная сигнализация тоже задействована?

Если не трудно накидайте схему подключения к ардуино.

deosxf
Offline
Зарегистрирован: 15.08.2018

yucan пишет:

У Вас пожарная сигнализация тоже задействована?

Если не трудно накидайте схему подключения к ардуино.

Пожарный шлейф заведен на прибор кварц параллельно охранному шлейфу (в охранном шлейфе стоит оконечное сопротивление, которое видит Кварц), т.е. когда прибор Кварц стоит на охране, происходит обрыв шлейфа охранного (сработка охранной сигнализации, Кварц перестает видеть оконечное сопротивление), он включает реле, то же самое при замыкании датчика пожарного на внешний диод (Прибор Кварц видит что-то на подобие КЗ в шлейфе), так же кварц включает реле.

А уже с этого реле я беру на ардуино сигнал.

Я не вижу что сработало, пожарка или охранка пока не подойду к гаражу. Ко мне только смс приходит "Srabotka".

В этом скетче нет еще звонка на телефон.

У меня вообще работает так:

1. Происходит сработка.

2. Сига мне звонит на телефон мне, чтоб разбудить, если я сплю (я на ночь телефон ставлю на беззвучку, смс приходят я их только утром могу увидеть - сигнала звукового нет, а звонок на телефон если идет, то телефон забрякает).

3. Потом шлет смс с текстом, что произошло. (сработка или пропажа питания 12 вольт - 12 вольт у меня идет с Кварца, в GSM сиге стоит аккумулятор на 3,7 вольта свой).

пунктирным контуром обозначен корпус GSM модуля на ардуино построенный (в скетче с реле идет на 10 пин, а на схеме идет на 6 пин - 6 пин вылетел у меня на ардуинке).

deosxf
Offline
Зарегистрирован: 15.08.2018

Еще к Сиге хочу добавить 3 цифровых датчика температуры по каналу 1Wire, что бы видеть температуру в самом гараже, GSM модуле и на улице (что бы знать на сколько там холодно и как одеться).

В добавок поставить нагреватель в корпус GSM сиги, включающийся по уставкам одного из датчиков температуры (тот что в корпусе), на сколько я зная Ардуинка не любит морозы, а в гарже мороз до -12 опускался.

Скетч на температуру уже написал, остается только исправить некоторые огрехи схемы и собрать новую схему и новый скетч.

sva_khv
Offline
Зарегистрирован: 19.12.2016

deosxf пишет:

Диоды возле стабилизаторов правильно нарисованы?

И питание на SIM800 правильно нарисуйте - а то кто-нибуть по вашей схеме начнет собирать - печалька будет.

deosxf
Offline
Зарегистрирован: 15.08.2018

sva_khv пишет:

Диоды возле стабилизаторов правильно нарисованы?

Конечно же нет))) Спасибо! На схеме спаяно, как надо, но как говорится - это же черновая схема.)))

sva_khv пишет:

И питание на SIM800 правильно нарисуйте - а то кто-нибуть по вашей схеме начнет собирать - печалька будет.

А что в питании не так?!

Я знаю, что порог у Сим 800 4,7 вольта, но как показала практика и на 5,2 вольта она работает (не вижу смысла усложнять). Если питание превысит порог, то сим 800 уйдет в аварию.

Может чего не учел?!

sva_khv
Offline
Зарегистрирован: 19.12.2016

deosxf пишет:
Я знаю, что порог у Сим 800 4,7 вольта, но как показала практика и на 5,2 вольта она работает (не вижу смысла усложнять). Если питание превысит порог, то сим 800 уйдет в аварию.

Может чего не учел?!

Если  делаете "для себя" - тода экспериментируйте на здоровье :-). Но Вы ВЫЛОЖИЛИ схему как РАБОТАЮЩУЮ. И кто-то захочет повторить. И если у него сгорит SIM из-за повышеного напряжения- он справедливо будет винить ВАС.  Вам это надо?   :-(

 

deosxf
Offline
Зарегистрирован: 15.08.2018

sva_khv пишет:

deosxf пишет:
Я знаю, что порог у Сим 800 4,7 вольта, но как показала практика и на 5,2 вольта она работает (не вижу смысла усложнять). Если питание превысит порог, то сим 800 уйдет в аварию.

Может чего не учел?!

Если  делаете "для себя" - тода экспериментируйте на здоровье :-). Но Вы ВЫЛОЖИЛИ схему как РАБОТАЮЩУЮ. И кто-то захочет повторить. И если у него сгорит SIM из-за повышеного напряжения- он справедливо будет винить ВАС.  Вам это надо?   :-(

 

Мне почему-то казалось, что такие самоделки делаются на свой страх и РИСК)))))

Поправлю схему!

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

deosxf пишет:

Мне почему-то казалось, что такие самоделки делаются на свой страх и РИСК)))))

Так то оно так, только Вы понимаете разницу между помощью и мелким пакостничеством?

deosxf
Offline
Зарегистрирован: 15.08.2018

andriano пишет:

deosxf пишет:

Мне почему-то казалось, что такие самоделки делаются на свой страх и РИСК)))))

Так то оно так, только Вы понимаете разницу между помощью и мелким пакостничеством?

Ну совсем-то меня распинать уже не будем может)))) Я с этой темой, как Ардуино вообще в первый раз столкнулся и это мой первый проект, в котром возможны ошибки.

deosxf
Offline
Зарегистрирован: 15.08.2018

Схему с питанием СИМ поправил, Диоды на стабилизоторах развернул. Замечания устранил.

sva_khv
Offline
Зарегистрирован: 19.12.2016

deosxf пишет:

Ну совсем-то меня распинать уже не будем может)))) Я с этой темой, как Ардуино вообще в первый раз столкнулся и это мой первый проект, в котром возможны ошибки.

Для этого сдесь и обсуждаем как лучше и ПРАВИЛЬНЕЙ делать. Чтоб следующие уже знали где грабли лежат.